You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AOSP集成应用:无需平台签名默认授予REQUEST_INSTALL_PACKAGES权限咨询

解决AOSP集成应用默认授予REQUEST_INSTALL_PACKAGES权限的方法

不用重新用平台签名构建APK的话,有这几种可行方案:

1. 使用Priv-App权限配置文件(适用于预装在system/priv-app的应用)

如果你的应用是放在AOSP的system/priv-app目录下的预装应用,可以通过添加专属权限配置文件实现默认授权:

  • 在AOSP源码的frameworks/base/etc/permissions/目录下,创建名为privapp-permissions-<你的应用包名>.xml的文件
  • 文件内容示例:
<?xml version="1.0" encoding="utf-8"?>
<permissions>
    <privapp-permissions package="com.your.app.package">
        <permission name="android.permission.REQUEST_INSTALL_PACKAGES" />
    </privapp-permissions>
</permissions>
  • 编译AOSP时,这个配置会被系统识别,默认给对应包名的应用授予该权限。

2. 修改系统默认权限配置文件

如果应用是预装在system/app目录下,可通过修改default-permissions.xml来配置:

  • 找到AOSP源码中的frameworks/base/etc/default-permissions.xml
  • 在文件中添加针对你应用包名的权限声明:
<default-permission package="com.your.app.package">
    <permission name="android.permission.REQUEST_INSTALL_PACKAGES" granted="true" />
</default-permission>
  • 注意:这个文件是全局默认权限配置,修改后编译系统镜像即可生效。

3. 利用AOSP的产品定制层添加配置

如果是在产品定制层(比如device/<厂商>/<机型>或product/<产品>目录),可以在对应路径下的etc/permissions/目录添加权限配置文件:

  • 创建privapp-permissions-<你的应用包名>.xml(如果是priv-app)或直接在现有配置文件中添加权限声明,内容和第一种方法一致。
  • 这种方式更适合产品定制场景,不会改动framework层源码。

注意事项

  • 以上方法都不需要重新构建APK,只需修改AOSP系统层配置后重新编译系统镜像即可。
  • 确保你的应用确实是预装在AOSP的系统分区(system/priv-app或system/app),否则这些配置不会生效。
  • REQUEST_INSTALL_PACKAGES属于危险权限,系统默认授予后,应用无需再向用户请求该权限。

内容的提问来源于stack exchange,提问作者Stuart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 05:22:16