电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android 7.0 運行時權限彈窗問題的解決

瀏覽:205日期:2022-09-26 08:21:53

Android 7.0系統在運行應用的時候,對權限做了諸多限制,normal, dangerous, signature, signatureOrSystem ,取決于保護級別,在確定是否授予權限時,系統可能采取不同的操作。

normal 表示權限是低風險的,不會對系統、用戶或其他應用程序造成危害; dangerous 表示權限是高風險的,系統將可能要求用戶輸入相關信息,才會授予此權限; signature 表示只有當應用程序所用數字簽名與聲明引權限的應用程序所用數字簽名相同時,才能將權限授給它; signatureOrSystem 表示將權限授給具有相同數字簽名的應用程序或android 包類。這一保護級別適和于非常特殊的情況,比如多個供應商需要通過系統映像共享功能時

運行時權限彈窗問題是很多系統定制的客戶要求屏蔽的,一直以來沒有特別好的方法,下面我分享一下我自己驗證可行的方案

方案1,修改frameworks/base/services/core/java/com/android/server/pm/PackageManagerService和frameworks/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy文件,PackageManagerService文件修改代碼如下:

@Override public void systemReady() { ... synchronized (mPackages) { ... for (int userId : UserManagerService.getInstance().getUserIds()) {//if (!mSettings.areDefaultRuntimePermissionsGrantedLPr(userId)) {//注釋掉這個判斷 grantPermissionsUserIds = ArrayUtils.appendInt( grantPermissionsUserIds, userId);//} } }

DefaultPermissionGrantPolicy文件修改代碼如下:

private void grantPermissionsToSysComponentsAndPrivApps(int userId) { Log.i(TAG, 'Granting permissions to platform components for user ' + userId); synchronized (mService.mPackages) { for (PackageParser.Package pkg : mService.mPackages.values()) { // if (!isSysComponentOrPersistentPlatformSignedPrivAppLPr(pkg) //刪掉isSysComponentOrPersistentPlatformSignedPrivAppLPr判斷 if(!doesPackageSupportRuntimePermissions(pkg) || pkg.requestedPermissions.isEmpty()) { continue;}Set<String> permissions = new ArraySet<>();final int permissionCount = pkg.requestedPermissions.size();for (int i = 0; i < permissionCount; i++) { String permission = pkg.requestedPermissions.get(i); BasePermission bp = mService.mSettings.mPermissions.get(permission); if (bp != null && bp.isRuntime()) { permissions.add(permission); }}if (!permissions.isEmpty()) { grantRuntimePermissionsLPw(pkg, permissions, true, userId);} } } }

簡單說明下這個方案的修改原理,在PMS的systemReady方法中會遍歷所有擁有默認運行時權限應用,通過遍歷它們的UserId來賦予權限,注釋掉判斷是否為擁有運行時權限的應用方法后,會遍歷所有應用,遍歷應用且賦予權限的操作是在DefaultPermissionGrantPolicy中grantPermissionsToSysComponentsAndPrivApps方法,注釋掉判斷簽名應用和系統應用的方法,普通應用也可以獲取所有運行時權限,這樣所有應用都不會有運行時權限的彈窗了。

方案2,只修改frameworks/base/services/core/java/com/android/server/pm/PackageManagerService文件,修改grantPermissionsLPw方法,代碼如下:

private void grantPermissionsLPw(PackageParser.Package pkg, boolean replace, String packageOfInterest) { ... /*add for grant thirdparty app permssion S*/ final String thirdPkgName = SystemProperties.get('persist.thirdparty.packagenames',''); if(isSystemApp(pkg) || pkg.packageName.contains(thirdPkgName)){//xxx為包名 final int permCount = pkg.requestedPermissions.size(); for(int i = 0;i < permCount;i++){ final String name = pkg.requestedPermissions.get(i); final BasePermission bp = mSettings.mPermissions.get(name); if(bp != null && permissionsState.grantInstallPermission(bp) != PermissionsState.PERMISSION_OPERATION_FAILURE){changeInstallPermission = true; } } /*add for grant thirdparty app permission E*/ permissionsState.setGlobalGids(mGlobalGids); ... }

簡單解釋下第二中方案的思路,PMS在應用安裝的時候會根據應用是否為簽名應用、系統應用或三方應用來更新權限,這里可以做成白名單的形式,目前通過SystemProperties來獲取三方包名可以通過adb或者串口來測試三方應用權限是否可以正常獲取。兩種方案大家可以自由選擇。

到此這篇關于Android 7.0 運行時權限彈窗問題的解決的文章就介紹到這了,更多相關Android7.0 權限彈窗 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
主站蜘蛛池模板: 礼堂椅厂家|佛山市艺典家具有限公司| 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 日本东丽膜_反渗透膜_RO膜价格_超滤膜_纳滤膜-北京东丽阳光官网 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 钣金加工厂家-钣金加工-佛山钣金厂-月汇好 | 上海诺狮景观规划设计有限公司 | 小威小说网 - 新小威小说网 - 小威小说网小说搜索引擎 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 苏州西朗门业-欧盟CE|莱茵UL双认证的快速卷帘门品牌厂家 | 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | 集装袋吨袋生产厂家-噸袋廠傢-塑料编织袋-纸塑复合袋-二手吨袋-太空袋-曹县建烨包装 | 杭州代理记账费用-公司注销需要多久-公司变更监事_杭州福道财务管理咨询有限公司 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 劳动法网-专业的劳动法和劳动争议仲裁服务网 | 宝鸡市人民医院| 吨袋包装机|吨包秤|吨包机|集装袋包装机-烟台华恩科技 | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 斗式提升机,斗式提升机厂家-淄博宏建机械有限公司 | 密集柜_档案密集柜_智能密集架_密集柜厂家_密集架价格-智英伟业 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 广州办公室设计,办公室装修,写字楼设计,办公室装修公司_德科 | 防火门|抗爆门|超大门|医疗门|隔声门-上海加汇门业生产厂家 | 海南在线 海南一家| 螺纹三通快插接头-弯通快插接头-宁波舜驰气动科技有限公司 | 一技任务网_有一技之长,就来技术任务网 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 马尔表面粗糙度仪-MAHR-T500Hommel-Mitutoyo粗糙度仪-笃挚仪器 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 步进驱动器「一体化」步进电机品牌厂家-一体式步进驱动 | 北京模型公司-军事模型-工业模型制作-北京百艺模型沙盘公司 | 雷达液位计_超声波风速风向仪_雨量传感器_辐射传感器-山东风途物联网 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 一体式钢筋扫描仪-楼板测厚仪-裂缝检测仪-泰仕特(北京) | 儿童乐园|游乐场|淘气堡招商加盟|室内儿童游乐园配套设备|生产厂家|开心哈乐儿童乐园 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | LED投光灯-工矿灯-led路灯头-工业灯具 - 山东普瑞斯照明科技有限公司 | 手表腕表维修保养鉴定售后服务中心网点 - 名表维修保养 | 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 | 土壤墒情监测站_土壤墒情监测仪_土壤墒情监测系统_管式土壤墒情站-山东风途物联网 |