1. 程式人生 > >android property屬性property_set()&& property_get() selinux許可權問題

android property屬性property_set()&& property_get() selinux許可權問題

首先得知道,android property屬性,在selinux許可權下我們不管是property_set還是property_get,相關服務都是需要許可權去操作的,特別是property_set,

這裡就我遇到的問題為例說明下(Android 8.0):

1.開始我就設定好需要的屬性名(property_set("sys.dualcamera.cali.cit", "cit");)

2.我去property_set("sys.dualcamera.cali.cit", "cit");這個屬性的時候遇到了許可權問題。

3.這裡我現在我要操作的服務下新增:

property.te檔案:

type camera_cali_cit_prop, property_type;

property_contexts檔案:

sys.dualcamera.cali.cit u:object_r:camera_cali_cit_prop:s0

factory.te檔案:

allow factory camera_cali_cit_prop:property_service set;
allow factory camera_cali_cit_prop:file {getattr open read };

這裡面的property.te和property_contexts檔案就是起到一個許可權轉化的功能,這裡實際最後起作用的是sys.dualcamera.cali.cit這個屬性(這裡就不細述),最後在factory.te(你相關服務許可權檔案)里加上對應的許可權就行。

這裡提醒下我自己的遇到的問題點

在factory.te裡面沒有加allow factory camera_cali_cit_prop:file {getattr open read };的這個許可權的時候,你去property_set和property_get的時候都會報: Access denied finding property “XXXXXX”,所以在你需要property_get的時候也需要新增這個許可權。

           本文如有問題,歡迎指出糾正,感恩