Android 三大权限介绍-Android第一次开机App授权弹框-默认授权

发布时间:2026/5/15 14:19:26

Android 三大权限介绍-Android第一次开机App授权弹框-默认授权 提示Android第一次开机App授权问题文章目录前言一、 需求-屏蔽授权弹框-默认授权二、参考资料三、修改文件四、实现方案默认授权运行时权限禁止权限预览此权限弹框界面-到底是什么五、Android体系三大权限MTK Android12 三大权限 Activity 完整对比表说明三者底层联系MTK Android12 统一架构各自独立作用小结1. PermissionsAnnouncementActivity2. ReviewPermissionsActivity3. GrantPermissionsActivity六、思考如何解决ReviewPermissionsActivity 批量授权弹框禁止批量授权会不会影响授权总结前言MTK平台刷完固件第一次开机会有App请求授权问题如何规避授权、默认授权。最终目的默认授权不让弹框提醒授权增加、提升体验一、 需求-屏蔽授权弹框-默认授权实际问题如下第一次刷完机、或者恢复出厂设置后开机会弹出这样的授权弹框那么第一次开机有很多流程的不允许弹框让客户去点击的要做的就是默认授权、去掉弹框提醒。二、参考资料Rk-内置应用作为系统Launcher-内置APK-拷贝文件-替换开机动画 内容里面有默认给内置应用授权Android系统默认输入法-搜狗输入法或者谷歌拼音输入法-运行时授权MTK平台-去除第一次开机-默认权限提示框直接来说就是为了解决开机默认这个弹框有人会问这三个弹框和需求弹框不一样呀 后面给出说明这里暂不讨论。三、修改文件frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.java四、实现方案默认授权运行时权限路径frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java如参考资料中给出的之前解决方案在grantDefaultPermissions方法中添加包名即可。禁止权限预览路径frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.java在方法isPermissionsReviewRequiredInternal是否预览中直接返回false不让预览权限。此权限弹框界面-到底是什么首先 dumpsys 一下当前ACTIVITY是啥子ACTIVITYcom.komect.ajlauncher/com.komect.bussness.guide.GuideActivitya534b13 pid3586ACTIVITYcom.android.permissioncontroller/.permission.ui.ReviewPermissionsActivity92b893 pid3173ACTIVITYcom.android.permissioncontroller/.permission.ui.ReviewPermissionsActivity ac6cfe5 pid3173ACTIVITYcom.android.permissioncontroller/.permission.ui.ReviewPermissionsActivity75a8123 pid3173ACTIVITYcom.android.permissioncontroller/.permission.ui.ReviewPermissionsActivity f097229 pid3173ACTIVITYcom.android.permissioncontroller/.permission.ui.ReviewPermissionsActivity a0c4e6b pid3173查阅资料简要说明如下ReviewPermissionsActivity批量授权确认页Android12 新 UIApp 首次启动时一次性让用户审阅并授予所有危险权限。五、Android体系三大权限MTK Android12 三大权限 Activity 完整对比表说明我这里整理一张表分别对应如上界面这里先整体理解三大权限弹框通过整理先搞清楚不同弹框的实际、意义、为什么弹框然后在针对性的解决各种弹框问题、默认授权等。对比项ReviewPermissionsActivityPermissionsAnnouncementActivityGrantPermissionsActivity核心目的App 首次启动批量审阅所有危险权限、统一授权系统开机 / 升级隐私权限政策公告告知App 运行时单个 / 逐个动态申请权限是否实际授权✅ 是操作后直接写入权限授予状态❌ 否仅弹窗告知不修改任何权限✅ 是逐个授予 / 拒绝单项权限触发主体系统 AMS/PMS 主动拦截 App 启动触发系统开机向导 / 系统升级流程主动触发应用主动调用 requestPermissions() 触发触发时机新安装 App 首次启动、清数据后首次启动、系统升级后 App 首启新机恢复出厂首次开机、系统大版本 OTA 升级后首次进桌面 App 运行中用到相机 / 定位 / 麦克风等时随时触发作用范围单个应用所有危险权限组整机系统全局对所有 App 生效单个应用单个权限组界面按钮允许全部 / 拒绝全部知道了 / 同意确认允许 / 仅使用期间允许 / 拒绝 / 拒绝不再询问弹窗频次每个 App终身只弹 1 次已审阅不再弹整机终身只弹 1 次开机 / 升级仅一次可多次弹窗每次缺权限就弹是否拦截流程强拦截不操作无法进入 App 主页强拦截不确认无法进入系统桌面不拦截 App 主流程悬浮弹窗询问Android12 角色Android12 新增批量权限审阅 UI原生遗留 12 强化的隐私合规公告页传统经典运行时权限申请 UIMTK 常用定制点关闭弹窗、默认全授权、豁免系统 App 不弹窗直接屏蔽弹窗、修改公告文案、跳过强制确认默认允许所有单项权限、屏蔽弹窗、静默授权归属场景预装 / 第三方 App 首启权限批量管控系统合规、隐私政策合规弹窗应用日常动态权限申请三者底层联系MTK Android12 统一架构三者都隶属于PermissionController系统priv-app同属于系统权限管理UI层底层都依赖PMS / PermissionManagerService权限管理服务流程优先级PermissionsAnnouncementActivity开机最先弹→ 进入桌面 → 打开新App触发ReviewPermissionsActivity批量授权 →App运行缺权限触发GrantPermissionsActivity单项授权各自独立作用小结1. PermissionsAnnouncementActivity系统全局隐私公告页纯合规告知不授权、不干预 App 权限只做开机首次政策确认是安卓隐私合规强制页面。2. ReviewPermissionsActivityAndroid12 专属App 批量权限审阅页系统主动拦截 App 启动一次性展示该 App 所有高危权限用户批量同意 / 拒绝替代旧版逐个弹的模式。3. GrantPermissionsActivity传统单项运行时权限弹窗App 代码主动申请哪个权限就弹哪个权限的确认框是日常开发最常见的权限弹窗。六、思考如何解决ReviewPermissionsActivity 批量授权弹框分了两步骤默认授权 frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java如参考资料中给出的之前解决方案在grantDefaultPermissions方法中添加包名不让批量授权弹框显示禁止权限批量授权预览frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.java在方法isPermissionsReviewRequiredInternal是否预览中直接返回false不让预览权限禁止批量授权会不会影响授权其实是不会的本身就有运行时权限动态授权 机制的。 比如新按照的第三方应用或者内置应用你屏蔽了批量授权也会有动态申请权限的比如针对源码这里暂不分析了已经知道了弹框的ACTIVITY源码自行查看研究下。总结搞清楚权限弹框是什么批量授权MTK Android12 以后的一个机制以前很少遇到突然遇到了在这里就针对性整理一下恰好三大弹框-权限相关的知识点联系起来了意义很大。

相关新闻