绕过selinux权限一种方法
问题:在Android应用中删除一些敏感的文件夹会有权限问题,但是按照下面更改之后CTS认证会Fail。allow system_app system_app_data_file:file execute;allow system_app system_data_file:dir write;思路:依据一:init.rc中service的启动流程绝对不会有权限问题依据二:删除操作可以用rm -rf
·
问题:在Android应用中删除一些敏感的文件夹会有权限问题,但是按照下面更改之后CTS认证会Fail。
allow system_app system_app_data_file:file execute;
allow system_app system_data_file:dir write;
思路:
依据一:init.rc中service的启动流程绝对不会有权限问题
依据二:删除操作可以用rm -rf等shell命令操作
需求:删除操作要求重启后生效
想法:
把需要执行的命令写在shell脚本中,作为service嵌到init.rc文件中。通过判断自定义属性值决定是否执行,而这个属性值可以在应用中设置。
部分代码如下:
init.kane.rc
...
# 开机程序判断属性值,执行脚本
service deldata /cleansettingsdata.sh
class main
user root
group root
disabled
oneshot
on property:factory.deldata=1
start deldata
...
cleansettingsdata.sh
# 删除脚本示例
rm -rf /data/system/usr/0
device.mk
...
# 导入脚本
PRODUCT_COPY_FILES += $(DEVICE_FOLDER)/cleansettingsdata.sh:root/cleansettingsdata.sh
...
下面两个文件是对属性进行进一步设置用的,可以不加。
property_contexts
...
# 给属性打标签
factory.deldata u:object_r:factory_deldata_prop:s0
...
factory.te
...
# 定义类型,用于设置这个属性的权限
type factory_deldata_prop,property_type;
...
更多推荐
已为社区贡献1条内容
所有评论(0)