2018-05-29 19:54:16 +02:00
|
|
|
# fastbootd (used in recovery init.rc for /sbin/fastbootd)
|
|
|
|
|
|
|
|
# Declare the domain unconditionally so we can always reference it
|
|
|
|
# in neverallow rules.
|
|
|
|
type fastbootd, domain;
|
|
|
|
|
|
|
|
# But the allow rules are only included in the recovery policy.
|
|
|
|
# Otherwise fastbootd is only allowed the domain rules.
|
|
|
|
recovery_only(`
|
|
|
|
# fastbootd can only use HALs in passthrough mode
|
|
|
|
passthrough_hal_client_domain(fastbootd, hal_bootctl)
|
|
|
|
|
|
|
|
# Access /dev/usb-ffs/fastbootd/ep0
|
|
|
|
allow fastbootd functionfs:dir search;
|
|
|
|
allow fastbootd functionfs:file rw_file_perms;
|
|
|
|
|
2018-10-12 18:26:05 +02:00
|
|
|
allowxperm fastbootd functionfs:file ioctl { FUNCTIONFS_ENDPOINT_DESC };
|
2018-05-29 19:54:16 +02:00
|
|
|
# Log to serial
|
|
|
|
allow fastbootd kmsg_device:chr_file { open write };
|
|
|
|
|
|
|
|
# battery info
|
|
|
|
allow fastbootd sysfs_batteryinfo:file r_file_perms;
|
|
|
|
|
|
|
|
allow fastbootd device:dir r_dir_perms;
|
|
|
|
|
|
|
|
# Reboot the device
|
|
|
|
set_prop(fastbootd, powerctl_prop)
|
|
|
|
|
|
|
|
# Read serial number of the device from system properties
|
|
|
|
get_prop(fastbootd, serialno_prop)
|
|
|
|
|
|
|
|
# Set sys.usb.ffs.ready.
|
|
|
|
set_prop(fastbootd, ffs_prop)
|
|
|
|
set_prop(fastbootd, exported_ffs_prop)
|
|
|
|
|
|
|
|
unix_socket_connect(fastbootd, recovery, recovery)
|
|
|
|
|
|
|
|
# Required for flashing
|
|
|
|
allow fastbootd dm_device:chr_file rw_file_perms;
|
|
|
|
allow fastbootd dm_device:blk_file rw_file_perms;
|
|
|
|
|
2018-08-17 20:07:09 +02:00
|
|
|
allow fastbootd super_block_device:blk_file rw_file_perms;
|
2018-09-12 21:42:59 +02:00
|
|
|
allow fastbootd {
|
|
|
|
boot_block_device
|
|
|
|
metadata_block_device
|
|
|
|
system_block_device
|
|
|
|
userdata_block_device
|
|
|
|
}:blk_file { w_file_perms getattr ioctl };
|
|
|
|
|
2018-10-30 23:39:28 +01:00
|
|
|
allowxperm fastbootd {
|
|
|
|
system_block_device
|
|
|
|
super_block_device
|
|
|
|
}:blk_file ioctl { BLKIOMIN BLKALIGNOFF };
|
|
|
|
|
2018-09-12 21:42:59 +02:00
|
|
|
allowxperm fastbootd {
|
|
|
|
metadata_block_device
|
|
|
|
userdata_block_device
|
|
|
|
}:blk_file ioctl { BLKSECDISCARD BLKDISCARD };
|
2018-05-29 19:54:16 +02:00
|
|
|
|
|
|
|
allow fastbootd misc_block_device:blk_file rw_file_perms;
|
|
|
|
|
|
|
|
allow fastbootd proc_cmdline:file r_file_perms;
|
|
|
|
allow fastbootd rootfs:dir r_dir_perms;
|
|
|
|
allow fastbootd sysfs_dt_firmware_android:file r_file_perms;
|
2018-10-15 18:00:38 +02:00
|
|
|
|
|
|
|
userdebug_or_eng(`
|
|
|
|
# Refined manipulation of /mnt/scratch, without these perms resorts
|
|
|
|
# to deleting scratch partition when partition(s) are flashed.
|
|
|
|
allow fastbootd self:process setfscreate;
|
|
|
|
allow fastbootd overlayfs_file:dir { create_dir_perms mounton };
|
|
|
|
allow fastbootd {
|
|
|
|
system_file_type
|
|
|
|
unlabeled
|
|
|
|
vendor_file_type
|
|
|
|
}:dir { remove_name rmdir search write };
|
|
|
|
allow fastbootd {
|
|
|
|
overlayfs_file
|
|
|
|
system_file_type
|
|
|
|
unlabeled
|
|
|
|
vendor_file_type
|
|
|
|
}:{ file lnk_file } unlink;
|
|
|
|
allow fastbootd tmpfs:dir rw_dir_perms;
|
|
|
|
allow fastbootd labeledfs:filesystem { mount unmount };
|
|
|
|
get_prop(fastbootd, persistent_properties_ready_prop)
|
|
|
|
')
|
2018-05-29 19:54:16 +02:00
|
|
|
')
|
|
|
|
|
|
|
|
###
|
|
|
|
### neverallow rules
|
|
|
|
###
|
|
|
|
|
|
|
|
# Write permission is required to wipe userdata
|
|
|
|
# until recovery supports vold.
|
|
|
|
neverallow fastbootd {
|
|
|
|
data_file_type
|
|
|
|
}:file { no_x_file_perms };
|