platform_system_sepolicy/private/snapshotctl.te
Alessio Balsini 59cfa127e2 snapshotctl: allow to write stats
To send statistics about snapshot merge times, snapshotctl will take
care of packing and sending all the information.
Allow snapshotctl to do so by creating an sepolicy exception.

Bug: 138817833
Test: statsd_testdrive
Change-Id: If805a522898cb6c9838779be23df6078f77d0cdc
Signed-off-by: Alessio Balsini <balsini@google.com>
2020-02-14 20:51:53 +00:00

45 lines
1.5 KiB
Text

type snapshotctl, domain, coredomain;
type snapshotctl_exec, system_file_type, exec_type, file_type;
# Allow init to run snapshotctl and do auto domain transfer.
init_daemon_domain(snapshotctl);
# Allow to start gsid service.
set_prop(snapshotctl, ctl_gsid_prop)
# Allow to talk to gsid.
binder_use(snapshotctl)
allow snapshotctl gsi_service:service_manager find;
binder_call(snapshotctl, gsid)
# Allow to create/read/write/delete OTA metadata files for snapshot status and COW file status.
allow snapshotctl metadata_file:dir search;
allow snapshotctl ota_metadata_file:dir rw_dir_perms;
allow snapshotctl ota_metadata_file:file create_file_perms;
# Allow to get A/B slot suffix from device tree or kernel cmdline.
r_dir_file(snapshotctl, sysfs_dt_firmware_android);
allow snapshotctl proc_cmdline:file r_file_perms;
# Needed to (re-)map logical partitions.
allow snapshotctl block_device:dir r_dir_perms;
allow snapshotctl super_block_device:blk_file r_file_perms;
# Interact with device-mapper to collapse snapshots.
allow snapshotctl dm_device:chr_file rw_file_perms;
# Needed to mutate device-mapper nodes.
allow snapshotctl self:global_capability_class_set sys_admin;
# Snapshotctl talk to boot control HAL to set merge status.
hwbinder_use(snapshotctl)
hal_client_domain(snapshotctl, hal_bootctl)
# Allow snapshotctl to write to statsd socket.
unix_socket_send(snapshotctl, statsdw, statsd)
# Logging
userdebug_or_eng(`
allow snapshotctl snapshotctl_log_data_file:dir rw_dir_perms;
allow snapshotctl snapshotctl_log_data_file:file create_file_perms;
')