| # Properties used only in /system |
| system_internal_prop(apexd_prop) |
| system_internal_prop(bootloader_boot_reason_prop) |
| system_internal_prop(device_config_activity_manager_native_boot_prop) |
| system_internal_prop(device_config_boot_count_prop) |
| system_internal_prop(device_config_input_native_boot_prop) |
| system_internal_prop(device_config_media_native_prop) |
| system_internal_prop(device_config_netd_native_prop) |
| system_internal_prop(device_config_reset_performed_prop) |
| system_internal_prop(device_config_runtime_native_boot_prop) |
| system_internal_prop(device_config_runtime_native_prop) |
| system_internal_prop(device_config_storage_native_boot_prop) |
| system_internal_prop(device_config_sys_traced_prop) |
| system_internal_prop(device_config_window_manager_native_boot_prop) |
| system_internal_prop(device_config_configuration_prop) |
| system_internal_prop(firstboot_prop) |
| system_internal_prop(fastbootd_protocol_prop) |
| system_internal_prop(gsid_prop) |
| system_internal_prop(init_perf_lsm_hooks_prop) |
| system_internal_prop(init_svc_debug_prop) |
| system_internal_prop(last_boot_reason_prop) |
| system_internal_prop(netd_stable_secret_prop) |
| system_internal_prop(pm_prop) |
| system_internal_prop(userspace_reboot_log_prop) |
| system_internal_prop(userspace_reboot_test_prop) |
| system_internal_prop(system_adbd_prop) |
| system_internal_prop(adbd_prop) |
| system_internal_prop(traced_perf_enabled_prop) |
| |
| compatible_property_only(` |
| # DO NOT ADD ANY PROPERTIES HERE |
| system_internal_prop(boottime_prop) |
| system_internal_prop(bpf_progs_loaded_prop) |
| system_internal_prop(charger_prop) |
| system_internal_prop(cold_boot_done_prop) |
| system_internal_prop(ctl_adbd_prop) |
| system_internal_prop(ctl_apexd_prop) |
| system_internal_prop(ctl_bootanim_prop) |
| system_internal_prop(ctl_bugreport_prop) |
| system_internal_prop(ctl_console_prop) |
| system_internal_prop(ctl_dumpstate_prop) |
| system_internal_prop(ctl_fuse_prop) |
| system_internal_prop(ctl_gsid_prop) |
| system_internal_prop(ctl_interface_restart_prop) |
| system_internal_prop(ctl_interface_stop_prop) |
| system_internal_prop(ctl_mdnsd_prop) |
| system_internal_prop(ctl_restart_prop) |
| system_internal_prop(ctl_rildaemon_prop) |
| system_internal_prop(ctl_sigstop_prop) |
| system_internal_prop(dynamic_system_prop) |
| system_internal_prop(heapprofd_enabled_prop) |
| system_internal_prop(llkd_prop) |
| system_internal_prop(lpdumpd_prop) |
| system_internal_prop(mmc_prop) |
| system_internal_prop(mock_ota_prop) |
| system_internal_prop(net_dns_prop) |
| system_internal_prop(overlay_prop) |
| system_internal_prop(persistent_properties_ready_prop) |
| system_internal_prop(safemode_prop) |
| system_internal_prop(system_lmk_prop) |
| system_internal_prop(system_trace_prop) |
| system_internal_prop(test_boot_reason_prop) |
| system_internal_prop(time_prop) |
| system_internal_prop(traced_enabled_prop) |
| system_internal_prop(traced_lazy_prop) |
| ') |
| |
| # Properties which can't be written outside system |
| |
| # Properties used by binder caches |
| system_restricted_prop(binder_cache_bluetooth_server_prop) |
| system_restricted_prop(binder_cache_system_server_prop) |
| system_restricted_prop(binder_cache_telephony_server_prop) |
| system_restricted_prop(boottime_public_prop) |
| system_restricted_prop(bq_config_prop) |
| system_restricted_prop(module_sdkextensions_prop) |
| system_restricted_prop(nnapi_ext_deny_product_prop) |
| system_restricted_prop(restorecon_prop) |
| system_restricted_prop(socket_hook_prop) |
| system_restricted_prop(surfaceflinger_display_prop) |
| system_restricted_prop(system_boot_reason_prop) |
| system_restricted_prop(system_jvmti_agent_prop) |
| system_restricted_prop(userspace_reboot_exported_prop) |
| |
| compatible_property_only(` |
| # DO NOT ADD ANY PROPERTIES HERE |
| system_restricted_prop(config_prop) |
| system_restricted_prop(cppreopt_prop) |
| system_restricted_prop(dalvik_prop) |
| system_restricted_prop(debuggerd_prop) |
| system_restricted_prop(default_prop) |
| system_restricted_prop(device_logging_prop) |
| system_restricted_prop(dhcp_prop) |
| system_restricted_prop(dumpstate_prop) |
| system_restricted_prop(exported2_default_prop) |
| system_restricted_prop(exported3_system_prop) |
| system_restricted_prop(exported_dumpstate_prop) |
| system_restricted_prop(exported_fingerprint_prop) |
| system_restricted_prop(exported_secure_prop) |
| system_restricted_prop(exported_vold_prop) |
| system_restricted_prop(ffs_prop) |
| system_restricted_prop(fingerprint_prop) |
| system_restricted_prop(heapprofd_prop) |
| system_restricted_prop(net_radio_prop) |
| system_restricted_prop(pan_result_prop) |
| system_restricted_prop(persist_debug_prop) |
| system_restricted_prop(shell_prop) |
| system_restricted_prop(system_radio_prop) |
| system_restricted_prop(test_harness_prop) |
| system_restricted_prop(theme_prop) |
| system_restricted_prop(use_memfd_prop) |
| system_restricted_prop(vold_prop) |
| ') |
| |
| # Properties which can be written only by vendor_init |
| system_vendor_config_prop(apk_verity_prop) |
| system_vendor_config_prop(cpu_variant_prop) |
| system_vendor_config_prop(exported_audio_prop) |
| system_vendor_config_prop(exported_camera_prop) |
| system_vendor_config_prop(exported_config_prop) |
| system_vendor_config_prop(exported_default_prop) |
| system_vendor_config_prop(exported3_default_prop) |
| system_vendor_config_prop(graphics_config_prop) |
| system_vendor_config_prop(incremental_prop) |
| system_vendor_config_prop(media_variant_prop) |
| system_vendor_config_prop(storage_config_prop) |
| system_vendor_config_prop(userspace_reboot_config_prop) |
| system_vendor_config_prop(vehicle_hal_prop) |
| system_vendor_config_prop(vendor_security_patch_level_prop) |
| system_vendor_config_prop(vendor_socket_hook_prop) |
| system_vendor_config_prop(vndk_prop) |
| system_vendor_config_prop(virtual_ab_prop) |
| |
| # Properties with no restrictions |
| system_public_prop(audio_prop) |
| system_public_prop(bluetooth_a2dp_offload_prop) |
| system_public_prop(bluetooth_audio_hal_prop) |
| system_public_prop(bluetooth_prop) |
| system_public_prop(ctl_default_prop) |
| system_public_prop(ctl_interface_start_prop) |
| system_public_prop(ctl_start_prop) |
| system_public_prop(ctl_stop_prop) |
| system_public_prop(debug_prop) |
| system_public_prop(dumpstate_options_prop) |
| system_public_prop(exported_system_prop) |
| system_public_prop(exported2_config_prop) |
| system_public_prop(exported2_radio_prop) |
| system_public_prop(exported2_system_prop) |
| system_public_prop(exported2_vold_prop) |
| system_public_prop(exported3_radio_prop) |
| system_public_prop(exported_bluetooth_prop) |
| system_public_prop(exported_dalvik_prop) |
| system_public_prop(exported_ffs_prop) |
| system_public_prop(exported_overlay_prop) |
| system_public_prop(exported_pm_prop) |
| system_public_prop(exported_radio_prop) |
| system_public_prop(exported_system_radio_prop) |
| system_public_prop(exported_wifi_prop) |
| system_public_prop(sota_prop) |
| system_public_prop(hwservicemanager_prop) |
| system_public_prop(lmkd_prop) |
| system_public_prop(logd_prop) |
| system_public_prop(logpersistd_logging_prop) |
| system_public_prop(log_prop) |
| system_public_prop(log_tag_prop) |
| system_public_prop(lowpan_prop) |
| system_public_prop(nfc_prop) |
| system_public_prop(ota_prop) |
| system_public_prop(powerctl_prop) |
| system_public_prop(radio_prop) |
| system_public_prop(serialno_prop) |
| system_public_prop(system_prop) |
| system_public_prop(wifi_log_prop) |
| system_public_prop(wifi_prop) |
| |
| # Properties used in default HAL implementations |
| vendor_internal_prop(rebootescrow_hal_prop) |
| |
| # Properties which are public for devices launching with Android O or earlier |
| # This should not be used for any new properties. |
| not_compatible_property(` |
| # DO NOT ADD ANY PROPERTIES HERE |
| system_public_prop(boottime_prop) |
| system_public_prop(bpf_progs_loaded_prop) |
| system_public_prop(charger_prop) |
| system_public_prop(cold_boot_done_prop) |
| system_public_prop(ctl_adbd_prop) |
| system_public_prop(ctl_apexd_prop) |
| system_public_prop(ctl_bootanim_prop) |
| system_public_prop(ctl_bugreport_prop) |
| system_public_prop(ctl_console_prop) |
| system_public_prop(ctl_dumpstate_prop) |
| system_public_prop(ctl_fuse_prop) |
| system_public_prop(ctl_gsid_prop) |
| system_public_prop(ctl_interface_restart_prop) |
| system_public_prop(ctl_interface_stop_prop) |
| system_public_prop(ctl_mdnsd_prop) |
| system_public_prop(ctl_restart_prop) |
| system_public_prop(ctl_rildaemon_prop) |
| system_public_prop(ctl_sigstop_prop) |
| system_public_prop(dynamic_system_prop) |
| system_public_prop(heapprofd_enabled_prop) |
| system_public_prop(llkd_prop) |
| system_public_prop(lpdumpd_prop) |
| system_public_prop(mmc_prop) |
| system_public_prop(mock_ota_prop) |
| system_public_prop(net_dns_prop) |
| system_public_prop(overlay_prop) |
| system_public_prop(persistent_properties_ready_prop) |
| system_public_prop(safemode_prop) |
| system_public_prop(system_lmk_prop) |
| system_public_prop(system_trace_prop) |
| system_public_prop(test_boot_reason_prop) |
| system_public_prop(time_prop) |
| system_public_prop(traced_enabled_prop) |
| system_public_prop(traced_lazy_prop) |
| |
| system_public_prop(config_prop) |
| system_public_prop(cppreopt_prop) |
| system_public_prop(dalvik_prop) |
| system_public_prop(debuggerd_prop) |
| system_public_prop(default_prop) |
| system_public_prop(device_logging_prop) |
| system_public_prop(dhcp_prop) |
| system_public_prop(dumpstate_prop) |
| system_public_prop(exported2_default_prop) |
| system_public_prop(exported3_system_prop) |
| system_public_prop(exported_dumpstate_prop) |
| system_public_prop(exported_fingerprint_prop) |
| system_public_prop(exported_secure_prop) |
| system_public_prop(exported_vold_prop) |
| system_public_prop(ffs_prop) |
| system_public_prop(fingerprint_prop) |
| system_public_prop(heapprofd_prop) |
| system_public_prop(net_radio_prop) |
| system_public_prop(pan_result_prop) |
| system_public_prop(persist_debug_prop) |
| system_public_prop(shell_prop) |
| system_public_prop(system_radio_prop) |
| system_public_prop(test_harness_prop) |
| system_public_prop(theme_prop) |
| system_public_prop(use_memfd_prop) |
| system_public_prop(vold_prop) |
| ') |
| |
| type vendor_default_prop, property_type; |
| |
| typeattribute log_prop log_property_type; |
| typeattribute log_tag_prop log_property_type; |
| typeattribute wifi_log_prop log_property_type; |
| |
| allow property_type tmpfs:filesystem associate; |
| |
| ### |
| ### Neverallow rules |
| ### |
| |
| treble_sysprop_neverallow(` |
| |
| # TODO(b/131162102): uncomment these after assigning ownership attributes to all properties |
| # neverallow domain { |
| # property_type |
| # -system_property_type |
| # -product_property_type |
| # -vendor_property_type |
| # }:file no_rw_file_perms; |
| |
| neverallow { domain -coredomain } { |
| system_property_type |
| system_internal_property_type |
| -system_restricted_property_type |
| -system_public_property_type |
| }:file no_rw_file_perms; |
| |
| neverallow { domain -coredomain } { |
| system_property_type |
| -system_public_property_type |
| }:property_service set; |
| |
| # init is in coredomain, but should be able to read/write all props. |
| # dumpstate is also in coredomain, but should be able to read all props. |
| neverallow { coredomain -init -dumpstate } { |
| vendor_property_type |
| vendor_internal_property_type |
| -vendor_restricted_property_type |
| -vendor_public_property_type |
| }:file no_rw_file_perms; |
| |
| neverallow { coredomain -init } { |
| vendor_property_type |
| -vendor_public_property_type |
| }:property_service set; |
| |
| ') |
| |
| # There is no need to perform ioctl or advisory locking operations on |
| # property files. If this neverallow is being triggered, it is |
| # likely that the policy is using r_file_perms directly instead of |
| # the get_prop() macro. |
| neverallow domain property_type:file { ioctl lock }; |
| |
| # core_property_type should not be used for new properties or |
| # device specific properties. Properties with this attribute |
| # are readable to everyone, which is overly broad and should |
| # be avoided. |
| # New properties should have appropriate read / write access |
| # control rules written. |
| |
| typeattribute audio_prop core_property_type; |
| typeattribute config_prop core_property_type; |
| typeattribute cppreopt_prop core_property_type; |
| typeattribute dalvik_prop core_property_type; |
| typeattribute debuggerd_prop core_property_type; |
| typeattribute debug_prop core_property_type; |
| typeattribute default_prop core_property_type; |
| typeattribute dhcp_prop core_property_type; |
| typeattribute dumpstate_prop core_property_type; |
| typeattribute ffs_prop core_property_type; |
| typeattribute fingerprint_prop core_property_type; |
| typeattribute logd_prop core_property_type; |
| typeattribute net_radio_prop core_property_type; |
| typeattribute nfc_prop core_property_type; |
| typeattribute ota_prop core_property_type; |
| typeattribute pan_result_prop core_property_type; |
| typeattribute persist_debug_prop core_property_type; |
| typeattribute powerctl_prop core_property_type; |
| typeattribute radio_prop core_property_type; |
| typeattribute restorecon_prop core_property_type; |
| typeattribute shell_prop core_property_type; |
| typeattribute system_prop core_property_type; |
| typeattribute system_radio_prop core_property_type; |
| typeattribute vold_prop core_property_type; |
| |
| neverallow * { |
| core_property_type |
| -audio_prop |
| -config_prop |
| -cppreopt_prop |
| -dalvik_prop |
| -debuggerd_prop |
| -debug_prop |
| -default_prop |
| -dhcp_prop |
| -dumpstate_prop |
| -ffs_prop |
| -fingerprint_prop |
| -logd_prop |
| -net_radio_prop |
| -nfc_prop |
| -ota_prop |
| -pan_result_prop |
| -persist_debug_prop |
| -powerctl_prop |
| -radio_prop |
| -restorecon_prop |
| -shell_prop |
| -system_prop |
| -system_radio_prop |
| -vold_prop |
| }:file no_rw_file_perms; |
| |
| # sigstop property is only used for debugging; should only be set by su which is permissive |
| # for userdebug/eng |
| neverallow { |
| domain |
| -init |
| -vendor_init |
| } ctl_sigstop_prop:property_service set; |
| |
| # Don't audit legacy ctl. property handling. We only want the newer permission check to appear |
| # in the audit log |
| dontaudit domain { |
| ctl_bootanim_prop |
| ctl_bugreport_prop |
| ctl_console_prop |
| ctl_default_prop |
| ctl_dumpstate_prop |
| ctl_fuse_prop |
| ctl_mdnsd_prop |
| ctl_rildaemon_prop |
| }:property_service set; |
| |
| neverallow { |
| domain |
| -init |
| } init_svc_debug_prop:property_service set; |
| |
| neverallow { |
| domain |
| -init |
| -dumpstate |
| userdebug_or_eng(`-su') |
| } init_svc_debug_prop:file no_rw_file_perms; |
| |
| compatible_property_only(` |
| # Prevent properties from being set |
| neverallow { |
| domain |
| -coredomain |
| -appdomain |
| -vendor_init |
| } { |
| core_property_type |
| extended_core_property_type |
| exported_config_prop |
| exported_dalvik_prop |
| exported_default_prop |
| exported_dumpstate_prop |
| exported_ffs_prop |
| exported_fingerprint_prop |
| exported_system_prop |
| exported_system_radio_prop |
| exported_vold_prop |
| exported2_config_prop |
| exported2_default_prop |
| exported2_system_prop |
| exported2_vold_prop |
| exported3_default_prop |
| exported3_system_prop |
| -nfc_prop |
| -powerctl_prop |
| -radio_prop |
| }:property_service set; |
| |
| neverallow { |
| domain |
| -coredomain |
| -appdomain |
| -hal_nfc_server |
| } { |
| nfc_prop |
| }:property_service set; |
| |
| neverallow { |
| domain |
| -coredomain |
| -appdomain |
| -hal_telephony_server |
| -vendor_init |
| } { |
| exported_radio_prop |
| exported3_radio_prop |
| }:property_service set; |
| |
| neverallow { |
| domain |
| -coredomain |
| -appdomain |
| -hal_telephony_server |
| } { |
| exported2_radio_prop |
| radio_prop |
| }:property_service set; |
| |
| neverallow { |
| domain |
| -coredomain |
| -bluetooth |
| -hal_bluetooth_server |
| } { |
| bluetooth_prop |
| }:property_service set; |
| |
| neverallow { |
| domain |
| -coredomain |
| -bluetooth |
| -hal_bluetooth_server |
| -vendor_init |
| } { |
| exported_bluetooth_prop |
| }:property_service set; |
| |
| neverallow { |
| domain |
| -coredomain |
| -hal_camera_server |
| -cameraserver |
| -vendor_init |
| } { |
| exported_camera_prop |
| }:property_service set; |
| |
| neverallow { |
| domain |
| -coredomain |
| -hal_wifi_server |
| -wificond |
| } { |
| wifi_prop |
| }:property_service set; |
| |
| neverallow { |
| domain |
| -coredomain |
| -hal_wifi_server |
| -wificond |
| -vendor_init |
| } { |
| exported_wifi_prop |
| }:property_service set; |
| |
| # Prevent properties from being read |
| neverallow { |
| domain |
| -coredomain |
| -appdomain |
| -vendor_init |
| } { |
| core_property_type |
| extended_core_property_type |
| exported_dalvik_prop |
| exported_ffs_prop |
| exported_system_radio_prop |
| exported2_config_prop |
| exported2_system_prop |
| exported2_vold_prop |
| exported3_default_prop |
| exported3_system_prop |
| -debug_prop |
| -logd_prop |
| -nfc_prop |
| -powerctl_prop |
| -radio_prop |
| }:file no_rw_file_perms; |
| |
| neverallow { |
| domain |
| -coredomain |
| -appdomain |
| -hal_nfc_server |
| } { |
| nfc_prop |
| }:file no_rw_file_perms; |
| |
| neverallow { |
| domain |
| -coredomain |
| -appdomain |
| -hal_telephony_server |
| } { |
| radio_prop |
| }:file no_rw_file_perms; |
| |
| neverallow { |
| domain |
| -coredomain |
| -bluetooth |
| -hal_bluetooth_server |
| } { |
| bluetooth_prop |
| }:file no_rw_file_perms; |
| |
| neverallow { |
| domain |
| -coredomain |
| -hal_wifi_server |
| -wificond |
| } { |
| wifi_prop |
| }:file no_rw_file_perms; |
| ') |
| |
| compatible_property_only(` |
| # Neverallow coredomain to set vendor properties |
| neverallow { |
| coredomain |
| -init |
| -system_writes_vendor_properties_violators |
| } { |
| property_type |
| -system_property_type |
| -extended_core_property_type |
| }:property_service set; |
| ') |
| |
| neverallow { |
| -init |
| -system_server |
| } { |
| userspace_reboot_log_prop |
| }:property_service set; |
| |
| neverallow { |
| # Only allow init and system_server to set system_adbd_prop |
| -init |
| -system_server |
| } { |
| system_adbd_prop |
| }:property_service set; |
| |
| neverallow { |
| # Only allow init and adbd to set adbd_prop |
| -init |
| -adbd |
| } { |
| adbd_prop |
| }:property_service set; |
| |
| neverallow { |
| # Only allow init and shell to set userspace_reboot_test_prop |
| -init |
| -shell |
| } { |
| userspace_reboot_test_prop |
| }:property_service set; |
| |
| neverallow { |
| -init |
| -vendor_init |
| } { |
| graphics_config_prop |
| }:property_service set; |
| |
| neverallow { |
| -init |
| -surfaceflinger |
| } { |
| surfaceflinger_display_prop |
| }:property_service set; |