From 6feb600625fcc73d324aa7b1e9a5c90383f30c43 Mon Sep 17 00:00:00 2001 From: roynatech2544 Date: Sat, 11 Jun 2022 13:17:55 +0900 Subject: [PATCH] universal7885: Allow vendor_init to set powerhal init prop The Pixel libperfmgr has following code : std::thread initThread([&]() { ::android::base::WaitForProperty(kPowerHalInitProp.data(), 1); hm->Start(); dlpw->Init(); }); which is basically declare thread { if (powerhalprop_is_not_set) wait; else (powerhal_prop_is_set) init_other_threads; }.start(); But in logcat <11>[ 21.988418] [2: init: 2815] init: Unable to set property 'vendor.powerhal.init' from uid:0 gid:0 pid:2816: SELinux permission check failed <36>[ 21.989189] [3: logd.auditd: 3586] type=1107 audit(1654915533.291:146): uid=0 auid=4294967295 ses=4294967295 subj=u:r:init:s0 msg='avc: denied { set } for property=vendor.powerhal.init pid=2816 uid=0 gid=0 scontext=u:r:vendor_init:s0 tcontext=u:object_r:vendor_powerhal_prop:s0 tclass=property_service permissive=0' So the powerhal's thread was not being run. This commit fixes seplicy to allow vendor init to set the powerhal init prop. May fix some issues on DT2W and deep sleep --- universal7885-common/sepolicy/vendor/vendor_init.te | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/universal7885-common/sepolicy/vendor/vendor_init.te b/universal7885-common/sepolicy/vendor/vendor_init.te index f7036d5..57af5c2 100644 --- a/universal7885-common/sepolicy/vendor/vendor_init.te +++ b/universal7885-common/sepolicy/vendor/vendor_init.te @@ -10,11 +10,10 @@ allow vendor_init wifi_data_file:dir search; allow vendor_init system_data_file:dir create_dir_perms; # mkdir /data/camera/* allow vendor_init camera_data_file:dir create_dir_perms; -allow vendor_init cache_file:dir { remove_name write }; -allow vendor_init boot_logcat_file:file unlink; set_prop(vendor_init, persist_data_df_prop) set_prop(vendor_init, persist_data_wda_prop) set_prop(vendor_init, persist_rmnet_prop) get_prop(vendor_init, system_prop) get_prop(vendor_init, vendor_radio_prop) allow vendor_init efs_file:lnk_file read; +set_prop(vendor_init, vendor_powerhal_prop)