android AppOps operation mode设置权限浅析
来源:互联网 发布:js防水涂料检验批 编辑:程序博客网 时间:2024/05/16 06:57
1. AppOpsManager提供了setMode方法对指定packageName的应用的Operation mode
/** @hide */ public void setMode(int code, int uid, String packageName, int mode) { try { mService.setMode(code, uid, packageName, mode); } catch (RemoteException e) { }}
2. 主要看mService.setMode()方法,位于AppOpsService.java
@Override public void setMode(int code, int uid, String packageName, int mode) { verifyIncomingUid(uid); verifyIncomingOp(code); ....... .......}
3. 我们主要看verifyIncomingUid(uid)
private void verifyIncomingUid(int uid) { if (uid == Binder.getCallingUid()) { return; } if (Binder.getCallingPid() == Process.myPid()) { return; } mContext.enforcePermission(android.Manifest.permission.UPDATE_APP_OPS_STATS, Binder.getCallingPid(), Binder.getCallingUid(), null); }
总共执行了三步:
1. 如果uid == Binder.getCallingUid(),即配置的对象就是调用者,也就是进程自己配置自己应用的operation。直接return,就是通过了判定。
2. 如果Binder.getCallingPid() == Process.myPid(),即调用者为AppOps进程本身,直接return,就是通过了判定。
3. 如果上述都不符合就调用mContext.enforcePermission()方法,这个是判定调用进程是否拥有android.Manifest.permission.UPDATE_APP_OPS_STATS,这个权限是系统级应用才可以。
阅读全文
0 0
- android AppOps operation mode设置权限浅析
- Android原生权限管理:AppOps
- Android原生权限管理:AppOps
- Android原生权限管理:AppOps
- Android原生权限管理:AppOps
- Android隐藏的权限管理机制:AppOps
- Appops权限管理
- 浅析 Android recovery mode
- 浅析 Android recovery mode
- Android 5.1 AppOps总结
- Android 6.0 AppOps 简介
- 开启4.4X AppOps,用来拦截垃圾短信和设置各种app权限
- Android4.3\4.4 应用权限控制隐藏功能AppOps
- Android的权限管理浅析
- 写得较好的浅析 Android recovery mode分析
- Android应用程序权限设置
- Android设置权限问题
- 设置android文件权限
- PE详解之区块表(节表)和区块(节)(PE详解04)
- Python起步之字典案例(词频统计)
- POJ
- git--标签管理
- CentOS下搭建Java Web开发环境
- android AppOps operation mode设置权限浅析
- c语言
- NOIP2013 Day1 T3 货车运输
- C# winform打印RDLC
- ModelAndView详解
- android_视频播放器(VideoView)
- 反转链表
- LeetCode | 63. Unique Paths II
- 20160721考试总结