Skip to content
Snippets Groups Projects
  • Jerry Zhang's avatar
    Split mediaprovider as a separate domain from priv_app · 9f152d98
    Jerry Zhang authored
    MediaProvider requires permissions that diverge from those
    of a typical priv_app. This create a new domain and removes
    Mtp related permissions from priv_app.
    
    Bug: 33574909
    Test: Connect with MTP, download apps and files, select ringtones
    Test: DownloadProvider instrument tests, CtsProviderTestCases
    
    Change-Id: I950dc11f21048c34af639cb3ab81873d2a6730a9
    9f152d98
mediaprovider.te 1.19 KiB
###
### A domain for android.process.media, which contains both
### MediaProvider and DownloadProvider and associated services.
###

typeattribute mediaprovider coredomain;
app_domain(mediaprovider)

# DownloadProvider accesses the network.
net_domain(mediaprovider)

# DownloadProvider uses /cache.
allow mediaprovider cache_file:dir create_dir_perms;
allow mediaprovider cache_file:file create_file_perms;
# /cache is a symlink to /data/cache on some devices. Allow reading the link.
allow mediaprovider cache_file:lnk_file r_file_perms;

allow mediaprovider app_api_service:service_manager find;
allow mediaprovider audioserver_service:service_manager find;
allow mediaprovider mediaserver_service:service_manager find;
allow mediaprovider surfaceflinger_service:service_manager find;

# Allow MediaProvider to read/write cached ringtones (opened by system).
allow mediaprovider ringtone_file:file { getattr read write };

# MtpServer uses /dev/mtp_usb
allow mediaprovider mtp_device:chr_file rw_file_perms;

# MtpServer uses /dev/usb-ffs/mtp
allow mediaprovider functionfs:dir search;
allow mediaprovider functionfs:file rw_file_perms;

# MtpServer sets sys.usb.ffs.mtp.ready
set_prop(mediaprovider, ffs_prop)