Android 10添加分区unlabeled的原因分析及解决办法

问题分析
最近需要在系统中新建一个分区,整个流程走下来和其它Android版本差别不大,毕竟分区是对于底层Linux而言的,但是添加完却发现系统应用不能读写此分区,仔细研究后发现和SELinux有关,具体可以参阅Android Source上的相关资料,将SELinux设为Permissive模式之后能够正常访问,于是参照其它博主提供的方法抓取了SELinux权限拒绝日志,发现原来是因为此分区的sepolicy属性为unlabeled,没有对应的te规则,SELinux默认拒绝未声明的权限,故无法访问。

添加分区的具体步骤在此不详细描述,不同平台有不同的规则,整体而言涉及到Makefile、SELinux te规则、Shell脚本,一般相应的添加方法厂商会给对应的文档。

问题解决
既然清楚了问题,那就好办了,去找新建分区unlabeled的解决办法,看到了一位博主的博客,大致的意思就是,新建的分区在SELinux初始化的时候还未挂载,所以即使配置好了相关的SELinux策略也不生效,因为配置的是具体的type的SELinux权限,而实际上该分区却是unlabeled,我们需要在新建的分区挂载之后重新去加载分区的sepolicy,故在device下的init.xxx.rc文件中加入restorecon_recursive [分区名]即可。
例如:在device\sprd\sharkle\common\rootdir\root\init.common.rc中添加

restorecon_recursive /mnt/new


                        
原文链接:https://blog.csdn.net/ZC_25/article/details/104027721

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值