绕过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等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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值