[AOSP]Android 9.0添加分区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 [分区名]即可。

参考

  1. 分区unlabeled的原因分析
  2. SELinux te规则详解
  3. Android SELinux
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 9.0是一种基于Linux内核的开源移动操作系统,它可以运行在手机、平板电脑、智能手表等设备上。其中的“framework”即是Android应用程序框架,提供了基础的API以及一些高级的功能。如果需要在Android开发中使用这些API和功能,可以下载并引用“framework.jar”。 要下载Android 9.0的“framework.jar”,首先需要安装并配置好Android开发环境,安装Android Studio并下载对应版本的Android SDK。然后,在Android SDK Manager中下载该版本的Android的SDK(Software Development Kit)。选择“SDK Tools”并勾选“Android SDK Build-Tools”和“Android SDK Platform-Tools”等必要组件。完成这些后,就可以开始下载framework.jar了。 接下来,通过以下步骤下载: 1. 从GitHub网站上下载开源代码,找到对应的分支和版本。例如,下载Android 9.0的分支:https://github.com/aosp-mirror/platform_frameworks_base/tree/android-9.0.0_r8。 2. 在下载的代码目录下,运行以下命令,生成framework.jar文件: 1)make update-api:更新API 2)make -j16 framework:生成framework.jar 3. 在“out/target/common/obj/JAVA_LIBRARIES/framework_intermediates”目录下,会生成framework.jar文件,复制到自己的项目中使用。 总之,下载Android 9.0的“framework.jar”需要先安装和配置好Android开发环境,然后从GitHub上下载并生成。通过这种方式,可以在自己的Android项目中使用这些高级API和功能,提升开发效率和质量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值