Skip to content
Snippets Groups Projects
Select Git revision
  • 12dbd8f701dee14be3f702937a7293a30f04b3cf
  • test default
2 results

system_app.te

Blame
  • user avatar
    Stephen Smalley authored and Nick Kralevich committed
    We were using system_data_file for the /data/data directories of
    system UID apps to match the DAC ownership of system UID shared with
    other system files.  However, we are seeing cases where files created
    in these directories must be writable by other apps, and we would like
    to avoid allowing write to system data files outside of these directories.
    So introduce a separate system_app_data_file type and assign it.
    This should also help protect against arbitrary writes by system UID
    apps to other system data directories.
    
    This resolves the following denial when cropping or taking a user photo
    for secondary users:
    avc:  denied  { write } for  path="/data/data/com.android.settings/cache/TakeEditUserPhoto2.jpg" dev="mmcblk0p28" ino=82120 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:system_data_file:s0 tclass=file
    
    avc:  denied  { write } for path="/data/data/com.android.settings/cache/CropEditUserPhoto.jpg" dev="mmcblk0p30" ino=602905 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:system_data_file:s0 tclass=file
    
    Bug: 14604553
    Change-Id: Ifa10e3283b07f6bd6ecc16eceeb663edfd756cea
    Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
    91a4f8d4
    History
    system_app.te 1.00 KiB
    #
    # Apps that run with the system UID, e.g. com.android.system.ui,
    # com.android.settings.  These are not as privileged as the system
    # server.
    #
    type system_app, domain;
    permissive_or_unconfined(system_app)
    app_domain(system_app)
    net_domain(system_app)
    binder_service(system_app)
    
    # Read and write /data/data subdirectory.
    allow system_app system_app_data_file:dir create_dir_perms;
    allow system_app system_app_data_file:file create_file_perms;
    
    # Read wallpaper file.
    allow system_app wallpaper_file:file r_file_perms;
    
    # Write to dalvikcache.
    allow system_app dalvikcache_data_file:file { write setattr };
    
    # Write to properties
    unix_socket_connect(system_app, property, init)
    allow system_app debug_prop:property_service set;
    allow system_app radio_prop:property_service set;
    allow system_app system_prop:property_service set;
    allow system_app ctl_bugreport_prop:property_service set;
    
    # Create /data/anr/traces.txt.
    allow system_app anr_data_file:dir ra_dir_perms;
    allow system_app anr_data_file:file create_file_perms;