| ### |
| ### 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; |
| # mediaprovider searches through /cache looking for orphans |
| # Ignore denials to /cache/recovery and /cache/backup. |
| dontaudit mediaprovider cache_private_backup_file:dir getattr; |
| dontaudit mediaprovider cache_recovery_file:dir getattr; |
| |
| # Access external sdcards through /mnt/media_rw |
| allow mediaprovider { mnt_media_rw_file }:dir search; |
| |
| allow mediaprovider app_api_service:service_manager find; |
| allow mediaprovider audioserver_service:service_manager find; |
| allow mediaprovider cameraserver_service:service_manager find; |
| allow mediaprovider drmserver_service:service_manager find; |
| allow mediaprovider mediaextractor_service:service_manager find; |
| allow mediaprovider mediaserver_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; |
| allowxperm mediaprovider functionfs:file ioctl FUNCTIONFS_ENDPOINT_DESC; |
| allowxperm mediaprovider functionfs:file ioctl FUNCTIONFS_ENDPOINT_ALLOC; |
| |
| # MtpServer sets sys.usb.ffs.mtp.ready |
| get_prop(mediaprovider, ffs_config_prop) |
| set_prop(mediaprovider, ffs_control_prop) |
| |
| # DownloadManager may retrieve DRM status |
| get_prop(mediaprovider, drm_service_config_prop) |