在Android 8.1由于selinux权限的限制。默认SystemProperties.set执行报avc denied,即使给 app android:sharedUserId="android.uid.system"
权限也不行,如果想执行必须修改一些文件。
device/mediatek/sepolicy/basic/non_plat/property.te
type persist_defaulthome_prop, property_type;
device/mediatek/sepolicy/basic/non_plat/property_contexts
persist.defaulthome.enable u:object_r:persist_defaulthome_prop:s0
device/mediatek/sepolicy/basic/non_plat/system_app.te
allow system_app persist_defaulthome_prop:property_service set;
allow system_app persist_defaulthome_prop:file {getattr open read };
这样app 就有可执行权限了。
如果想让server 也有权限添加
device/mediatek/sepolicy/basic/non_plat/system_server.te
allow system_server persist_defaulthome_prop:property_service set;
allow system_server persist_defaulthome_prop:file {getattr open read };