屬性系統(tǒng)服務(wù)在android源碼根目錄下的 system/core/init/property_service.cpp偷霉,查看代碼發(fā)現(xiàn)源碼中有對(duì)修改的屬性值進(jìn)行物理保存饿自,如下第一個(gè)方框中的 int r1 = fsync(fd);
第二個(gè)方框是我添加的代碼,重新open再進(jìn)行fsync保存锈拨,
這是比較簡(jiǎn)單粗暴的方法砌庄,經(jīng)過(guò)查看log,log如下:
Line 2644: <12>[? 37.875323] avc:? denied? {set} for property=persist.sys.wwd scontext=u:r:shell:s0 tcontext=u:object_r:system_prop:s0 tclass=property_service
問(wèn)題真正根源是selinux權(quán)限問(wèn)題奕枢,可以直接修改te文件來(lái)解決:在device\rockchip\common\sepolicy下的shell.te文件最后面添加
allow shell system_prop:property_service set;
重新make 編譯燒錄boot.img