bf0c34d59b
SystemPropPoker in settings app lists and communicates with every service on the system on property change, which is not currently allowed for all services. This occurs, for instance, when toggling Developer options -> Monitoring -> Profile GPU Rendering -> On scren as bars. Addresses the following denials: SELinux : avc: denied { find } for service=samplingprofiler scontext=u:r:system_app:s0 tcontext=u:object_r:samplingprofiler_service:s0 tclass=service_manager SELinux : avc: denied { find } for service=DockObserver scontext=u:r:system_app:s0 tcontext=u:object_r:DockObserver_service:s0 tclass=service_manager SELinux : avc: denied { find } for service=devicestoragemonitor scontext=u:r:system_app:s0 tcontext=u:object_r:devicestoragemonitor_service:s0 tclass=service_manager SELinux : avc: denied { find } for service=media.camera.proxy scontext=u:r:system_app:s0 tcontext=u:object_r:cameraproxy_service:s0 tclass=service_manager SELinux : avc: denied { find } for service=scheduling_policy scontext=u:r:system_app:s0 tcontext=u:object_r:scheduling_policy_service:s0 tclass=service_manager SELinux : avc: denied { find } for service=battery scontext=u:r:system_app:s0 tcontext=u:object_r:battery_service:s0 tclass=service_manager SELinux : avc: denied { find } for service=processinfo scontext=u:r:system_app:s0 tcontext=u:object_r:processinfo_service:s0 tclass=service_manager SELinux : avc: denied { find } for service=batteryproperties scontext=u:r:system_app:s0 tcontext=u:object_r:healthd_service:s0 tclass=service_manager SELinux : avc: denied { find } for service=drm.drmManager scontext=u:r:system_app:s0 tcontext=u:object_r:drmserver_service:s0 tclass=service_manager SELinux : avc: denied { find } for service=commontime_management scontext=u:r:system_app:s0 tcontext=u:object_r:commontime_management_service:s0 tclass=service_manager Bug: 20762975 Bug: 21446739 Change-Id: I92b7629077eb5aabffb72170f4ef71f574ebb95c
73 lines
2.2 KiB
Text
73 lines
2.2 KiB
Text
#
|
|
# Apps that run with the system UID, e.g. com.android.system.ui,
|
|
# com.android.settings. These are not as privileged as the system
|
|
# server.
|
|
#
|
|
type system_app, domain;
|
|
app_domain(system_app)
|
|
net_domain(system_app)
|
|
binder_service(system_app)
|
|
|
|
# Read and write /data/data subdirectory.
|
|
allow system_app system_app_data_file:dir create_dir_perms;
|
|
allow system_app system_app_data_file:{ file lnk_file } create_file_perms;
|
|
|
|
# Read /data/misc/keychain subdirectory.
|
|
allow system_app keychain_data_file:dir r_dir_perms;
|
|
allow system_app keychain_data_file:file r_file_perms;
|
|
|
|
# Read and write to other system-owned /data directories, such as
|
|
# /data/system/cache and /data/misc/user.
|
|
allow system_app system_data_file:dir create_dir_perms;
|
|
allow system_app system_data_file:file create_file_perms;
|
|
allow system_app misc_user_data_file:dir create_dir_perms;
|
|
allow system_app misc_user_data_file:file create_file_perms;
|
|
# Audit writes to these directories and files so we can identify
|
|
# and possibly move these directories into their own type in the future.
|
|
auditallow system_app system_data_file:dir { create setattr add_name remove_name rmdir rename };
|
|
auditallow system_app system_data_file:file { create setattr append write link unlink rename };
|
|
|
|
# Read wallpaper file.
|
|
allow system_app wallpaper_file:file r_file_perms;
|
|
|
|
# Write to properties
|
|
set_prop(system_app, debug_prop)
|
|
set_prop(system_app, system_prop)
|
|
set_prop(system_app, ctl_bugreport_prop)
|
|
set_prop(system_app, logd_prop)
|
|
set_prop(system_app, net_radio_prop)
|
|
set_prop(system_app, system_radio_prop)
|
|
auditallow system_app net_radio_prop:property_service set;
|
|
auditallow system_app system_radio_prop:property_service set;
|
|
|
|
# Create /data/anr/traces.txt.
|
|
allow system_app anr_data_file:dir ra_dir_perms;
|
|
allow system_app anr_data_file:file create_file_perms;
|
|
|
|
# Settings need to access app name and icon from asec
|
|
allow system_app asec_apk_file:file r_file_perms;
|
|
|
|
allow system_app servicemanager:service_manager list;
|
|
allow system_app service_manager_type:service_manager find;
|
|
|
|
allow system_app keystore:keystore_key {
|
|
get_state
|
|
get
|
|
insert
|
|
delete
|
|
exist
|
|
list
|
|
reset
|
|
password
|
|
lock
|
|
unlock
|
|
is_empty
|
|
sign
|
|
verify
|
|
grant
|
|
duplicate
|
|
clear_uid
|
|
user_changed
|
|
};
|
|
|
|
control_logd(system_app)
|