platform_system_sepolicy/private/recovery.te
David Anderson 8303577f09 Allow snapuserd interaction in recovery and fastbootd.
This is needed to support VABC merges on data wipes and via "fastboot
snapshot-update merge".

Bug: 168258606
Test: fastboot snapshot-update merge
      data wipe during VABC merge
Change-Id: I32770a2e74f2c2710e4964f65c42ae779c1a0b90
2021-02-04 22:48:55 -08:00

46 lines
1.5 KiB
Text

typeattribute recovery coredomain;
# The allow rules are only included in the recovery policy.
# Otherwise recovery is only allowed the domain rules.
recovery_only(`
# Reboot the device
set_prop(recovery, powerctl_prop)
# Read serial number of the device from system properties
get_prop(recovery, serialno_prop)
# Set sys.usb.ffs.ready when starting minadbd for sideload.
get_prop(recovery, ffs_config_prop)
set_prop(recovery, ffs_control_prop)
# Set sys.usb.config when switching into fastboot.
set_prop(recovery, usb_control_prop)
set_prop(recovery, usb_prop)
# Read ro.boot.bootreason
get_prop(recovery, bootloader_boot_reason_prop)
# Read storage properties (for correctly formatting filesystems)
get_prop(recovery, storage_config_prop)
set_prop(recovery, gsid_prop)
# These are needed to allow recovery to manage network
allow recovery self:netlink_route_socket { create write read nlmsg_readpriv nlmsg_read };
allow recovery self:global_capability_class_set net_admin;
allow recovery self:tcp_socket { create ioctl };
allowxperm recovery self:tcp_socket ioctl { SIOCGIFFLAGS SIOCSIFFLAGS };
# Start snapuserd for merging VABC updates
set_prop(recovery, ctl_snapuserd_prop)
# Needed to communicate with snapuserd to complete merges.
allow recovery snapuserd_socket:sock_file write;
allow recovery snapuserd:unix_stream_socket connectto;
allow recovery dm_user_device:dir r_dir_perms;
# Set fastbootd protocol property
set_prop(recovery, fastbootd_protocol_prop)
get_prop(recovery, recovery_config_prop)
')