Skip to content
Snippets Groups Projects
Commit 50ca0a0d authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add sepolicy for fastbootd"

parents a28f4d15 1d85efa9
No related branches found
No related tags found
No related merge requests found
...@@ -18,6 +18,9 @@ userdebug_or_eng(` ...@@ -18,6 +18,9 @@ userdebug_or_eng(`
recovery_only(` recovery_only(`
domain_trans(adbd, rootfs, shell) domain_trans(adbd, rootfs, shell)
allow adbd shell:process dyntransition; allow adbd shell:process dyntransition;
# Allows reboot fastboot to enter fastboot directly
unix_socket_connect(adbd, recovery, recovery)
') ')
# Do not sanitize the environment or open fds of the shell. Allow signaling # Do not sanitize the environment or open fds of the shell. Allow signaling
......
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
exported3_default_prop exported3_default_prop
exported3_radio_prop exported3_radio_prop
exported3_system_prop exported3_system_prop
fastbootd
fingerprint_vendor_data_file fingerprint_vendor_data_file
fs_bpf fs_bpf
hal_audiocontrol_hwservice hal_audiocontrol_hwservice
...@@ -96,6 +97,7 @@ ...@@ -96,6 +97,7 @@
perfetto_traces_data_file perfetto_traces_data_file
perfprofd_service perfprofd_service
property_info property_info
recovery_socket
secure_element secure_element
secure_element_device secure_element_device
secure_element_tmpfs secure_element_tmpfs
......
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
exported_system_radio_prop exported_system_radio_prop
exported_vold_prop exported_vold_prop
exported_wifi_prop exported_wifi_prop
fastbootd
fingerprint_vendor_data_file fingerprint_vendor_data_file
fs_bpf fs_bpf
hal_audiocontrol_hwservice hal_audiocontrol_hwservice
...@@ -83,6 +84,7 @@ ...@@ -83,6 +84,7 @@
perfetto_traces_data_file perfetto_traces_data_file
perfprofd_service perfprofd_service
property_info property_info
recovery_socket
secure_element secure_element
secure_element_device secure_element_device
secure_element_service secure_element_service
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
(typeattributeset new_objects (typeattributeset new_objects
( activity_task_service ( activity_task_service
adb_service adb_service
fastbootd
hal_health_filesystem_hwservice hal_health_filesystem_hwservice
hal_system_suspend_default hal_system_suspend_default
hal_system_suspend_default_exec hal_system_suspend_default_exec
...@@ -14,6 +15,7 @@ ...@@ -14,6 +15,7 @@
llkd_tmpfs llkd_tmpfs
mnt_product_file mnt_product_file
overlayfs_file overlayfs_file
recovery_socket
system_lmk_prop system_lmk_prop
system_suspend_hwservice system_suspend_hwservice
time_prop time_prop
......
typeattribute fastbootd coredomain;
...@@ -149,6 +149,7 @@ ...@@ -149,6 +149,7 @@
/dev/socket/pdx/system/vr/display/vsync u:object_r:pdx_display_vsync_endpoint_socket:s0 /dev/socket/pdx/system/vr/display/vsync u:object_r:pdx_display_vsync_endpoint_socket:s0
/dev/socket/property_service u:object_r:property_socket:s0 /dev/socket/property_service u:object_r:property_socket:s0
/dev/socket/racoon u:object_r:racoon_socket:s0 /dev/socket/racoon u:object_r:racoon_socket:s0
/dev/socket/recovery u:object_r:recovery_socket:s0
/dev/socket/rild u:object_r:rild_socket:s0 /dev/socket/rild u:object_r:rild_socket:s0
/dev/socket/rild-debug u:object_r:rild_debug_socket:s0 /dev/socket/rild-debug u:object_r:rild_debug_socket:s0
/dev/socket/tombstoned_crash u:object_r:tombstoned_crash_socket:s0 /dev/socket/tombstoned_crash u:object_r:tombstoned_crash_socket:s0
......
...@@ -9,6 +9,7 @@ domain_trans(init, rootfs, slideshow) ...@@ -9,6 +9,7 @@ domain_trans(init, rootfs, slideshow)
domain_auto_trans(init, e2fs_exec, e2fs) domain_auto_trans(init, e2fs_exec, e2fs)
recovery_only(` recovery_only(`
domain_trans(init, rootfs, adbd) domain_trans(init, rootfs, adbd)
domain_trans(init, rootfs, fastbootd)
domain_trans(init, rootfs, recovery) domain_trans(init, rootfs, recovery)
') ')
domain_trans(init, shell_exec, shell) domain_trans(init, shell_exec, shell)
......
...@@ -557,6 +557,7 @@ neverallow { ...@@ -557,6 +557,7 @@ neverallow {
domain domain
-adbd -adbd
-dumpstate -dumpstate
-fastbootd
-hal_drm_server -hal_drm_server
-hal_cas_server -hal_cas_server
-init -init
...@@ -591,11 +592,21 @@ neverallow { ...@@ -591,11 +592,21 @@ neverallow {
-fsck -fsck
} metadata_block_device:blk_file { append link rename write open read ioctl lock }; } metadata_block_device:blk_file { append link rename write open read ioctl lock };
# No domain other than recovery and update_engine can write to system partition(s). # No domain other than recovery, update_engine and fastbootd can write to system partition(s).
neverallow { domain -recovery -update_engine } system_block_device:blk_file { write append }; neverallow {
domain
-fastbootd
-recovery
-update_engine
} system_block_device:blk_file { write append };
# No domains other than install_recovery or recovery can write to recovery. # No domains other than install_recovery, recovery or fastbootd can write to recovery.
neverallow { domain -install_recovery -recovery } recovery_block_device:blk_file { write append }; neverallow {
domain
-fastbootd
-install_recovery
-recovery
} recovery_block_device:blk_file { write append };
# No domains other than a select few can access the misc_block_device. This # No domains other than a select few can access the misc_block_device. This
# block device is reserved for OTA use. # block device is reserved for OTA use.
...@@ -604,6 +615,7 @@ neverallow { domain -install_recovery -recovery } recovery_block_device:blk_file ...@@ -604,6 +615,7 @@ neverallow { domain -install_recovery -recovery } recovery_block_device:blk_file
neverallow { neverallow {
domain domain
userdebug_or_eng(`-domain') # exclude debuggable builds userdebug_or_eng(`-domain') # exclude debuggable builds
-fastbootd
-hal_bootctl_server -hal_bootctl_server
-init -init
-uncrypt -uncrypt
......
# 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;
# 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;
allow fastbootd system_block_device:blk_file rw_file_perms;
allow fastbootd boot_block_device:blk_file rw_file_perms;
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;
')
###
### neverallow rules
###
# Write permission is required to wipe userdata
# until recovery supports vold.
neverallow fastbootd {
data_file_type
}:file { no_x_file_perms };
...@@ -342,6 +342,7 @@ type mtpd_socket, file_type, coredomain_socket; ...@@ -342,6 +342,7 @@ type mtpd_socket, file_type, coredomain_socket;
type netd_socket, file_type, coredomain_socket; type netd_socket, file_type, coredomain_socket;
type property_socket, file_type, coredomain_socket, mlstrustedobject; type property_socket, file_type, coredomain_socket, mlstrustedobject;
type racoon_socket, file_type, coredomain_socket; type racoon_socket, file_type, coredomain_socket;
type recovery_socket, file_type, coredomain_socket;
type rild_socket, file_type; type rild_socket, file_type;
type rild_debug_socket, file_type; type rild_debug_socket, file_type;
type system_wpa_socket, file_type, data_file_type, core_data_file_type, coredomain_socket; type system_wpa_socket, file_type, data_file_type, core_data_file_type, coredomain_socket;
......
...@@ -118,6 +118,10 @@ recovery_only(` ...@@ -118,6 +118,10 @@ recovery_only(`
set_prop(recovery, ffs_prop) set_prop(recovery, ffs_prop)
set_prop(recovery, exported_ffs_prop) set_prop(recovery, exported_ffs_prop)
# Set sys.usb.config when switching into fastboot.
set_prop(recovery, system_radio_prop)
set_prop(recovery, exported_system_radio_prop)
# Read ro.boot.bootreason # Read ro.boot.bootreason
get_prop(recovery, bootloader_boot_reason_prop) get_prop(recovery, bootloader_boot_reason_prop)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment