From 3cc6a95944529aa1700b120206c6d0fb0b0b85e3 Mon Sep 17 00:00:00 2001 From: Alex Klyubin <klyubin@google.com> Date: Wed, 12 Apr 2017 16:24:33 -0700 Subject: [PATCH] Remove unnecessary attributes Test: mmm system/sepolicy Bug: 34980020 Change-Id: I36547658a844c58fcb21bb5a0244ab6f61291736 --- public/attributes | 9 ----- public/domain.te | 58 --------------------------- public/rild.te | 3 -- vendor/hal_audio_default.te | 4 -- vendor/hal_camera_default.te | 5 --- vendor/hal_drm_default.te | 5 --- vendor/hal_fingerprint_default.te | 4 -- vendor/hal_nfc_default.te | 4 -- vendor/hal_wifi_supplicant_default.te | 5 --- vendor/hostapd.te | 4 -- vendor/tee.te | 2 - 11 files changed, 103 deletions(-) diff --git a/public/attributes b/public/attributes index d446ca9f0..4f5953c89 100644 --- a/public/attributes +++ b/public/attributes @@ -44,15 +44,6 @@ attribute core_data_file_type; # All types in /vendor attribute vendor_file_type; -# All vendor domains which violate the requirement of not accessing -# data outside /data/vendor. -# TODO(b/34980020): Remove this once there are no violations -attribute coredata_in_vendor_violators; -# All core domains which violate the requirement of not accessing vendor -# owned data. -# TODO(b/34980020): Remove this once there are no violations -attribute vendordata_in_core_violators; - # All types use for sysfs files. attribute sysfs_type; diff --git a/public/domain.te b/public/domain.te index 2a27ad965..1db627fec 100644 --- a/public/domain.te +++ b/public/domain.te @@ -536,64 +536,6 @@ full_treble_only(` } servicemanager:binder { call transfer }; ') -## -# On full TREBLE devices core android components and vendor components may -# not directly access each other's data types. All communication must occur -# over HW binder. Open file descriptors may be passed and read/write/stat -# operations my be performed on those FDs. Disallow all other operations. -full_treble_only(` - # do not allow vendor component access to coredomains data types - neverallow { - domain - -coredomain - -appdomain - -coredata_in_vendor_violators - } - core_data_file_type - -zoneinfo_data_file # Stable API provided by libc - :{ - file_class_set - } ~{ append getattr ioctl read write }; - # do not allow vendor component access to coredomains data directories. - # /data has the system_data_file type. Allow all domains to have dir - # search permissions which allows path traversal. - neverallow { - domain - -coredomain - -appdomain - -coredata_in_vendor_violators - } { - core_data_file_type - -system_data_file - -zoneinfo_data_file # Stable API provided by libc - }:dir *; - neverallow { - domain - -coredomain - -appdomain - -coredata_in_vendor_violators - } system_data_file:dir ~search; - # do not allow coredomains to directly access vendor data. Exempt init - # because it is responsible for dir/file creation in init.rc scripts. - # Also exempt halclientdomain to exclude rules for passthrough mode. - neverallow { - coredomain - -halclientdomain - -init - -vendordata_in_core_violators - } { - data_file_type - -core_data_file_type - }:file_class_set ~{ append getattr ioctl read write }; - # do not allow coredomain to access vendor data directories. - neverallow { - coredomain - -halclientdomain - -init - -vendordata_in_core_violators - } { data_file_type -core_data_file_type }:dir *; -') - # On full TREBLE devices, socket communications between core components and vendor components are # not permitted. full_treble_only(` diff --git a/public/rild.te b/public/rild.te index 77f146ba5..e4b018690 100644 --- a/public/rild.te +++ b/public/rild.te @@ -19,9 +19,6 @@ allow rild efs_file:file create_file_perms; allow rild shell_exec:file rx_file_perms; allow rild bluetooth_efs_file:file r_file_perms; allow rild bluetooth_efs_file:dir r_dir_perms; -# TODO (b/36601950) remove RILD's access to radio_data_file and -# system_data_file. Remove coredata_in_vendor_violators attribute. -typeattribute rild coredata_in_vendor_violators; allow rild radio_data_file:dir rw_dir_perms; allow rild radio_data_file:file create_file_perms; allow rild sdcard_type:dir r_dir_perms; diff --git a/vendor/hal_audio_default.te b/vendor/hal_audio_default.te index a10a6cf5b..9c38819c7 100644 --- a/vendor/hal_audio_default.te +++ b/vendor/hal_audio_default.te @@ -7,7 +7,3 @@ init_daemon_domain(hal_audio_default) hal_client_domain(hal_audio_default, hal_allocator) typeattribute hal_audio_default socket_between_core_and_vendor_violators; -# TODO (b/36601590) move hal_audio's data file to -# /data/vendor/hardware/hal_audio. Remove coredata_in_vendor_violators -# attribute. -typeattribute hal_audio_default coredata_in_vendor_violators; diff --git a/vendor/hal_camera_default.te b/vendor/hal_camera_default.te index 60b6a5ced..8f86a2717 100644 --- a/vendor/hal_camera_default.te +++ b/vendor/hal_camera_default.te @@ -3,8 +3,3 @@ hal_server_domain(hal_camera_default, hal_camera) type hal_camera_default_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hal_camera_default) - -# TODO (b/36601397) move hal_camera's data file to -# /data/vendor/hardware/hal_camera. Remove coredata_in_vendor_violators -# attribute. -typeattribute hal_camera_default coredata_in_vendor_violators; diff --git a/vendor/hal_drm_default.te b/vendor/hal_drm_default.te index 3aeec069d..b79c3b580 100644 --- a/vendor/hal_drm_default.te +++ b/vendor/hal_drm_default.te @@ -6,8 +6,3 @@ init_daemon_domain(hal_drm_default) allow hal_drm_default mediacodec:fd use; allow hal_drm_default { appdomain -isolated_app }:fd use; - -# TODO (b/36601695) remove hal_drm's access to /data or move to -# /data/vendor/hardware/hal_drm. Remove coredata_in_vendor_violators -# attribute. -typeattribute hal_drm_default coredata_in_vendor_violators; diff --git a/vendor/hal_fingerprint_default.te b/vendor/hal_fingerprint_default.te index 322c1040e..638b6030c 100644 --- a/vendor/hal_fingerprint_default.te +++ b/vendor/hal_fingerprint_default.te @@ -3,7 +3,3 @@ hal_server_domain(hal_fingerprint_default, hal_fingerprint) type hal_fingerprint_default_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hal_fingerprint_default) - -# TODO (b/36644492) move hal_fingerprint's data file to -# /data/vendor/. Remove coredata_in_vendor_violators attribute. -typeattribute hal_fingerprint_default coredata_in_vendor_violators; diff --git a/vendor/hal_nfc_default.te b/vendor/hal_nfc_default.te index 2f1c09255..6a1002f09 100644 --- a/vendor/hal_nfc_default.te +++ b/vendor/hal_nfc_default.te @@ -4,8 +4,4 @@ hal_server_domain(hal_nfc_default, hal_nfc) type hal_nfc_default_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hal_nfc_default) -# TODO (b/36645109) Remove hal_nfc's access to the nfc app's -# data type. Remove coredata_in_vendor_violators and -# socket_between_core_and_vendor_violators attribute associations below. -typeattribute hal_nfc_default coredata_in_vendor_violators; typeattribute hal_nfc_default socket_between_core_and_vendor_violators; diff --git a/vendor/hal_wifi_supplicant_default.te b/vendor/hal_wifi_supplicant_default.te index c2bdc738b..62b03be4a 100644 --- a/vendor/hal_wifi_supplicant_default.te +++ b/vendor/hal_wifi_supplicant_default.te @@ -11,8 +11,3 @@ type_transition hal_wifi_supplicant_default wifi_data_file:dir wpa_socket "socke # Allow wpa_supplicant to talk to Wifi Keystore HwBinder service. hwbinder_use(hal_wifi_supplicant_default) binder_call(hal_wifi_supplicant_default, wifi_keystore_service_server) - -# TODO (b/36645291) Move hal_wifi_supplicant's data access to /data/vendor -# Remove coredata_in_vendor_violators attribute. -# wpa supplicant or equivalent -typeattribute hal_wifi_supplicant_default coredata_in_vendor_violators; diff --git a/vendor/hostapd.te b/vendor/hostapd.te index d20581e0c..2c62cf035 100644 --- a/vendor/hostapd.te +++ b/vendor/hostapd.te @@ -31,7 +31,3 @@ r_dir_file(hostapd, wifi_data_file) allow hostapd hostapd_socket:dir create_dir_perms; # hostapd needs to create, bind to, read, and write its control socket. allow hostapd hostapd_socket:sock_file create_file_perms; - -# TODO (b/36646171) Move hostapd's data access to /data/vendor -# Remove coredata_in_vendor_violators attribute. -typeattribute hostapd coredata_in_vendor_violators; diff --git a/vendor/tee.te b/vendor/tee.te index e5e8b2d2d..f7c2cb59f 100644 --- a/vendor/tee.te +++ b/vendor/tee.te @@ -15,7 +15,5 @@ allow tee self:netlink_generic_socket create_socket_perms_no_ioctl; allow tee ion_device:chr_file r_file_perms; r_dir_file(tee, sysfs_type) -# TODO(b/36720355): Remove this once tee no longer access non-vendor files -typeattribute tee coredata_in_vendor_violators; allow tee system_data_file:file { getattr read }; allow tee system_data_file:lnk_file r_file_perms; -- GitLab