1###
2### A domain for android.process.media, which contains both
3### MediaProvider and DownloadProvider and associated services.
4###
5
6typeattribute mediaprovider coredomain;
7app_domain(mediaprovider)
8
9# DownloadProvider accesses the network.
10net_domain(mediaprovider)
11
12# DownloadProvider uses /cache.
13allow mediaprovider cache_file:dir create_dir_perms;
14allow mediaprovider cache_file:file create_file_perms;
15# /cache is a symlink to /data/cache on some devices. Allow reading the link.
16allow mediaprovider cache_file:lnk_file r_file_perms;
17# mediaprovider searches through /cache looking for orphans
18# Ignore denials to /cache/recovery and /cache/backup.
19dontaudit mediaprovider cache_private_backup_file:dir getattr;
20dontaudit mediaprovider cache_recovery_file:dir getattr;
21
22# Access external sdcards through /mnt/media_rw
23allow mediaprovider { mnt_media_rw_file }:dir search;
24
25allow mediaprovider app_api_service:service_manager find;
26allow mediaprovider audioserver_service:service_manager find;
27allow mediaprovider drmserver_service:service_manager find;
28allow mediaprovider mediaextractor_service:service_manager find;
29allow mediaprovider mediaserver_service:service_manager find;
30
31# Allow MediaProvider to read/write cached ringtones (opened by system).
32allow mediaprovider ringtone_file:file { getattr read write };
33
34# MtpServer uses /dev/mtp_usb
35allow mediaprovider mtp_device:chr_file rw_file_perms;
36
37# MtpServer uses /dev/usb-ffs/mtp
38allow mediaprovider functionfs:dir search;
39allow mediaprovider functionfs:file rw_file_perms;
40
41# MtpServer sets sys.usb.ffs.mtp.ready
42set_prop(mediaprovider, ffs_prop)
43set_prop(mediaprovider, exported_ffs_prop)
44