Alex Klyubin | f5446eb | 2017-03-23 14:27:32 -0700 | [diff] [blame] | 1 | typeattribute vold coredomain; |
| 2 | |
dcashman | cc39f63 | 2016-07-22 13:13:11 -0700 | [diff] [blame] | 3 | init_daemon_domain(vold) |
| 4 | |
| 5 | # Switch to more restrictive domains when executing common tools |
| 6 | domain_auto_trans(vold, sgdisk_exec, sgdisk); |
| 7 | domain_auto_trans(vold, sdcardd_exec, sdcardd); |
| 8 | |
| 9 | # For a handful of probing tools, we choose an even more restrictive |
| 10 | # domain when working with untrusted block devices |
Paul Crowley | f9f7539 | 2018-11-30 15:58:26 -0800 | [diff] [blame] | 11 | domain_trans(vold, blkid_exec, blkid); |
| 12 | domain_trans(vold, blkid_exec, blkid_untrusted); |
dcashman | cc39f63 | 2016-07-22 13:13:11 -0700 | [diff] [blame] | 13 | domain_trans(vold, fsck_exec, fsck); |
| 14 | domain_trans(vold, fsck_exec, fsck_untrusted); |
| 15 | |
| 16 | # Newly created storage dirs are always treated as mount stubs to prevent us |
| 17 | # from accidentally writing when the mount point isn't present. |
| 18 | type_transition vold storage_file:dir storage_stub_file; |
| 19 | type_transition vold mnt_media_rw_file:dir mnt_media_rw_stub_file; |
Inseob Kim | 55e5c9b | 2020-03-04 17:20:35 +0900 | [diff] [blame] | 20 | |
| 21 | # Property Service |
Inseob Kim | 3f5a7d2 | 2020-04-06 20:49:17 +0900 | [diff] [blame] | 22 | get_prop(vold, vold_config_prop) |
Martijn Coenen | 01234d3 | 2020-04-10 14:11:49 +0200 | [diff] [blame] | 23 | get_prop(vold, storage_config_prop); |
Songchun Fan | 9fdcbcd | 2020-04-28 13:24:54 -0700 | [diff] [blame] | 24 | get_prop(vold, incremental_prop); |
Inseob Kim | 3f5a7d2 | 2020-04-06 20:49:17 +0900 | [diff] [blame] | 25 | |
Inseob Kim | 55e5c9b | 2020-03-04 17:20:35 +0900 | [diff] [blame] | 26 | set_prop(vold, vold_prop) |
Inseob Kim | 3f5a7d2 | 2020-04-06 20:49:17 +0900 | [diff] [blame] | 27 | set_prop(vold, vold_status_prop) |
Inseob Kim | 55e5c9b | 2020-03-04 17:20:35 +0900 | [diff] [blame] | 28 | set_prop(vold, powerctl_prop) |
| 29 | set_prop(vold, ctl_fuse_prop) |
| 30 | set_prop(vold, restorecon_prop) |
| 31 | set_prop(vold, ota_prop) |
| 32 | set_prop(vold, boottime_prop) |
Inseob Kim | 42c7d89 | 2020-03-04 17:20:35 +0900 | [diff] [blame] | 33 | set_prop(vold, boottime_public_prop) |
Janis Danisevskis | 32d7738 | 2020-07-31 22:22:49 -0700 | [diff] [blame] | 34 | |
| 35 | # Vold will use Keystore instead of using Keymint directly. But it still needs |
| 36 | # to manage its Keymint blobs. This is why it needs the `manage_blob` permission. |
| 37 | allow vold vold_key:keystore2_key { |
Satya Tangirala | 0653374 | 2021-03-08 09:48:42 -0800 | [diff] [blame] | 38 | convert_storage_key_to_ephemeral |
Janis Danisevskis | 32d7738 | 2020-07-31 22:22:49 -0700 | [diff] [blame] | 39 | delete |
| 40 | get_info |
Janis Danisevskis | 32d7738 | 2020-07-31 22:22:49 -0700 | [diff] [blame] | 41 | manage_blob |
| 42 | rebind |
| 43 | req_forced_op |
| 44 | update |
| 45 | use |
| 46 | }; |
Xin Li | 11da9e6 | 2020-08-29 01:45:24 -0700 | [diff] [blame] | 47 | |
Satya Tangirala | 5ef8686 | 2021-03-11 03:57:03 -0800 | [diff] [blame^] | 48 | # vold needs to find keystore2 services |
| 49 | allow vold keystore_maintenance_service:service_manager find; |
| 50 | |
| 51 | # vold needs to be able to call earlyBootEnded() |
| 52 | allow vold keystore:keystore2 early_boot_ended; |
| 53 | |
Yo Chiang | ffe786e | 2020-10-07 13:59:52 +0800 | [diff] [blame] | 54 | neverallow { |
| 55 | domain |
| 56 | -system_server |
| 57 | -vdc |
| 58 | -vold |
| 59 | -update_verifier |
| 60 | -apexd |
| 61 | -gsid |
| 62 | } vold_service:service_manager find; |