From aaecd1ec424be72f0a5f606d57a001582af4bc79 Mon Sep 17 00:00:00 2001 From: Nick Kralevich Date: Tue, 18 Nov 2014 14:36:23 -0800 Subject: [PATCH] allow system_server to set ro.build.fingerprint Some devices leave "ro.build.fingerprint" undefined at build time, since they need to build it from the components at runtime. See https://android.googlesource.com/platform/frameworks/base/+/5568772e8161205b86905d815783505fd3d461d8 for details. Allow system_server to set ro.build.fingerprint Addresses the following denial/error: avc: denied { set } for property=build.fingerprint scontext=u:r:system_server:s0 tcontext=u:object_r:default_prop:s0 tclass=property_service init: sys_prop: permission denied uid:1000 name:ro.build.fingerprint Bug: 18188956 (cherry picked from commit c48971f69fa07c98e62b9a8b0a2ba171846fbea1) Change-Id: I24bc1b3405f60c9d4e16e5a995e987e54692b6aa --- property.te | 1 + property_contexts | 4 ++++ system_server.te | 1 + 3 files changed, 6 insertions(+) diff --git a/property.te b/property.te index cfa3ec96..aff073a7 100644 --- a/property.te +++ b/property.te @@ -3,6 +3,7 @@ type shell_prop, property_type; type debug_prop, property_type; type debuggerd_prop, property_type; type dhcp_prop, property_type; +type fingerprint_prop, property_type; type radio_prop, property_type; type net_radio_prop, property_type; type system_radio_prop, property_type; diff --git a/property_contexts b/property_contexts index f89c4328..91ab594d 100644 --- a/property_contexts +++ b/property_contexts @@ -49,6 +49,10 @@ selinux. u:object_r:security_prop:s0 vold. u:object_r:vold_prop:s0 crypto. u:object_r:vold_prop:s0 +# ro.build.fingerprint is either set in /system/build.prop, or is +# set at runtime by system_server. +build.fingerprint u:object_r:fingerprint_prop:s0 + # ctl properties ctl.bootanim u:object_r:ctl_bootanim_prop:s0 ctl.dumpstate u:object_r:ctl_dumpstate_prop:s0 diff --git a/system_server.te b/system_server.te index 5786c2ee..d45d5de1 100644 --- a/system_server.te +++ b/system_server.te @@ -278,6 +278,7 @@ allow system_server net_radio_prop:property_service set; allow system_server system_radio_prop:property_service set; allow system_server debug_prop:property_service set; allow system_server powerctl_prop:property_service set; +allow system_server fingerprint_prop:property_service set; # ctl interface allow system_server ctl_default_prop:property_service set;