Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 1 | ### |
| 2 | ### Apps signed with the platform key. |
| 3 | ### |
| 4 | |
Alex Klyubin | f5446eb | 2017-03-23 14:27:32 -0700 | [diff] [blame] | 5 | typeattribute platform_app coredomain; |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 6 | |
Nick Kralevich | b56e6ef | 2016-12-09 20:14:31 -0800 | [diff] [blame] | 7 | app_domain(platform_app) |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 8 | |
| 9 | # Access the network. |
| 10 | net_domain(platform_app) |
| 11 | # Access bluetooth. |
| 12 | bluetooth_domain(platform_app) |
| 13 | # Read from /data/local/tmp or /data/data/com.android.shell. |
| 14 | allow platform_app shell_data_file:dir search; |
| 15 | allow platform_app shell_data_file:file { open getattr read }; |
| 16 | allow platform_app icon_file:file { open getattr read }; |
Chad Brubaker | 4c40d73 | 2017-01-25 14:55:56 -0800 | [diff] [blame] | 17 | # Populate /data/app/vmdl*.tmp, /data/app-private/vmdl*.tmp files |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 18 | # created by system server. |
Chad Brubaker | 4c40d73 | 2017-01-25 14:55:56 -0800 | [diff] [blame] | 19 | allow platform_app { apk_tmp_file apk_private_tmp_file }:dir rw_dir_perms; |
| 20 | allow platform_app { apk_tmp_file apk_private_tmp_file }:file rw_file_perms; |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 21 | allow platform_app apk_private_data_file:dir search; |
| 22 | # ASEC |
| 23 | allow platform_app asec_apk_file:dir create_dir_perms; |
| 24 | allow platform_app asec_apk_file:file create_file_perms; |
| 25 | |
| 26 | # Access to /data/media. |
| 27 | allow platform_app media_rw_data_file:dir create_dir_perms; |
| 28 | allow platform_app media_rw_data_file:file create_file_perms; |
| 29 | |
| 30 | # Write to /cache. |
| 31 | allow platform_app cache_file:dir create_dir_perms; |
| 32 | allow platform_app cache_file:file create_file_perms; |
| 33 | |
| 34 | # Direct access to vold-mounted storage under /mnt/media_rw |
| 35 | # This is a performance optimization that allows platform apps to bypass the FUSE layer |
| 36 | allow platform_app mnt_media_rw_file:dir r_dir_perms; |
Jeff Sharkey | 000cafc | 2018-03-30 12:22:54 -0600 | [diff] [blame] | 37 | allow platform_app sdcard_type:dir create_dir_perms; |
| 38 | allow platform_app sdcard_type:file create_file_perms; |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 39 | |
Jeff Vander Stoep | a12aad4 | 2017-07-10 20:39:50 -0700 | [diff] [blame] | 40 | # com.android.systemui |
| 41 | allow platform_app rootfs:dir getattr; |
| 42 | |
Jeff Vander Stoep | c15d54e | 2017-07-25 16:43:49 -0700 | [diff] [blame] | 43 | # com.android.captiveportallogin reads /proc/vmstat |
Tri Vo | 06d7dca | 2018-01-10 12:51:51 -0800 | [diff] [blame] | 44 | allow platform_app { |
| 45 | proc_vmstat |
| 46 | }:file r_file_perms; |
Jeff Vander Stoep | c15d54e | 2017-07-25 16:43:49 -0700 | [diff] [blame] | 47 | |
Jeff Vander Stoep | 7a4af30 | 2018-04-10 12:47:48 -0700 | [diff] [blame] | 48 | # /proc/net access. |
| 49 | # TODO(b/9496886) Audit access for removal. |
| 50 | r_dir_file(platform_app, proc_net_type) |
| 51 | userdebug_or_eng(` |
| 52 | auditallow platform_app proc_net_type:{ dir file lnk_file } { getattr open read }; |
| 53 | ') |
| 54 | |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 55 | allow platform_app audioserver_service:service_manager find; |
| 56 | allow platform_app cameraserver_service:service_manager find; |
| 57 | allow platform_app drmserver_service:service_manager find; |
| 58 | allow platform_app mediaserver_service:service_manager find; |
Ray Essick | 3918540 | 2017-01-24 12:53:45 -0800 | [diff] [blame] | 59 | allow platform_app mediametrics_service:service_manager find; |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 60 | allow platform_app mediaextractor_service:service_manager find; |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 61 | allow platform_app mediadrmserver_service:service_manager find; |
| 62 | allow platform_app persistent_data_block_service:service_manager find; |
| 63 | allow platform_app radio_service:service_manager find; |
Todd Poynor | bbc692c | 2017-07-12 18:12:52 -0700 | [diff] [blame] | 64 | allow platform_app thermal_service:service_manager find; |
Neil Fuller | ca595e1 | 2017-01-11 16:27:02 +0000 | [diff] [blame] | 65 | allow platform_app timezone_service:service_manager find; |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 66 | allow platform_app app_api_service:service_manager find; |
| 67 | allow platform_app system_api_service:service_manager find; |
| 68 | allow platform_app vr_manager_service:service_manager find; |
Yiwei Zhang | 544d6b3 | 2019-02-07 15:00:55 -0800 | [diff] [blame] | 69 | allow platform_app gpu_service:service_manager find; |
joshmccloskey | 6f5a7b8 | 2019-02-07 14:02:06 -0800 | [diff] [blame] | 70 | allow platform_app stats_service:service_manager find; |
Mark Chien | 9dfaa7d | 2019-11-11 21:30:23 +0900 | [diff] [blame^] | 71 | allow platform_app tethering_service:service_manager find; |
Andrei Onea | 87c885b | 2019-09-12 18:36:39 +0100 | [diff] [blame] | 72 | userdebug_or_eng(` |
| 73 | allow platform_app platform_compat_service:service_manager find; |
| 74 | ') |
Yiwei Zhang | 544d6b3 | 2019-02-07 15:00:55 -0800 | [diff] [blame] | 75 | |
| 76 | # Allow platform apps to interact with gpuservice |
| 77 | binder_call(platform_app, gpuservice) |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 78 | |
joshmccloskey | 6f5a7b8 | 2019-02-07 14:02:06 -0800 | [diff] [blame] | 79 | # Allow platform apps to log via statsd. |
Joel Galenson | 4321551 | 2019-10-22 13:08:10 -0700 | [diff] [blame] | 80 | binder_call(platform_app statsd) |
joshmccloskey | 6f5a7b8 | 2019-02-07 14:02:06 -0800 | [diff] [blame] | 81 | |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 82 | # Access to /data/preloads |
| 83 | allow platform_app preloads_data_file:file r_file_perms; |
| 84 | allow platform_app preloads_data_file:dir r_dir_perms; |
Fyodor Kupolov | b238fe6 | 2017-03-14 11:42:03 -0700 | [diff] [blame] | 85 | allow platform_app preloads_media_file:file r_file_perms; |
| 86 | allow platform_app preloads_media_file:dir r_dir_perms; |
Alex Klyubin | c42d134 | 2017-01-09 14:52:59 -0800 | [diff] [blame] | 87 | |
Mark Salyzyn | d33a9a1 | 2016-11-07 15:11:39 -0800 | [diff] [blame] | 88 | read_runtime_log_tags(platform_app) |
Nick Kralevich | 45766d4 | 2017-04-26 11:40:48 -0700 | [diff] [blame] | 89 | |
Nathan Harold | ee26864 | 2017-12-14 18:20:30 -0800 | [diff] [blame] | 90 | # allow platform apps to use UDP sockets provided by the system server but not |
| 91 | # modify them other than to connect |
Nathan Harold | 252b015 | 2018-03-27 06:34:54 -0700 | [diff] [blame] | 92 | allow platform_app system_server:udp_socket { |
| 93 | connect getattr read recvfrom sendto write getopt setopt }; |
Nathan Harold | ee26864 | 2017-12-14 18:20:30 -0800 | [diff] [blame] | 94 | |
Mark Salyzyn | 3443caf | 2015-10-24 16:20:18 -0700 | [diff] [blame] | 95 | # allow platform apps to connect to the property service |
| 96 | set_prop(platform_app, test_boot_reason_prop) |
| 97 | |
felkachang | 0c40201 | 2019-01-30 15:44:24 +0800 | [diff] [blame] | 98 | # allow platform apps to create symbolic link |
| 99 | allow platform_app app_data_file:lnk_file create_file_perms; |
| 100 | |
Nick Kralevich | 45766d4 | 2017-04-26 11:40:48 -0700 | [diff] [blame] | 101 | ### |
| 102 | ### Neverallow rules |
| 103 | ### |
| 104 | |
| 105 | # app domains which access /dev/fuse should not run as platform_app |
| 106 | neverallow platform_app fuse_device:chr_file *; |