这是一篇关于 Android 系统应用预装、权限配置以及 SELinux 策略修改的通用技术指南。文章隐去了特定项目路径和应用名称,适用于通用的 Android 系统开发场景。
Android 系统应用预装与权限配置通用指南
在 Android 系统开发中,预装系统应用(Privileged Apps)并为其配置权限、解决 SELinux 权限问题是常见需求。本文将介绍如何高效管理多个应用的权限文件,以及在存在多个 sepolicy.mk 时如何准确定位修改路径。
一、 如何辨别并选择正确的 sepolicy.mk
在复杂的系统源码中,可能会发现多个路径下都存在 sepolicy.mk(例如对应不同的 Android 版本代号,如 u_sys 代表 Android 14,v_sys 代表 Android 15)。
辨别方法:
- 查看宏定义赋值:检查各个 sepolicy.mk 文件中的 SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS 或 BOARD_VENDOR_SEPOLICY_DIRS 变量。
详细请下载
通过网盘分享的文件:Android系统预制应用指南-2.zip
链接: https://pan.baidu.com/s/14ya3Z52z7BPjWGaw1YmdcA?pwd=j47u 提取码: j47u
- 确认路径:通过版本号和宏定义,定位当前生效的 sepolicy.mk 所在目录。
- 合并配置:将所有预装应用的 privapp 权限和 default-permissions 权限分别汇总到两个独立的公共 XML 中。
- 脚本拷贝:在产品配置脚本中使用 PRODUCT_COPY_FILES 将 XML 拷贝到系统 etc/permissions/ 和 etc/default-permissions/ 目录下。
- 配置 SE策略:在 file_contexts 中关联目录与标签,并在 .te 文件中放开对应 App 域对该标签的读写权限。
- 编译验证:全量编译后,通过 adb shell dumpsys package <package_name> 确认权限是否已正确授予。