Android新权限机制 AppOps

http://blog.csdn.net/hyhyl1990/article/details/46842915

http://m.blog.csdn.net/article/details?id=51693586

这两篇文章说的比较好了,但是并没有对void setMode ( int code,int uid,String packageName,int mode)的参数有具体的说明

code代表具体的操作权限,mode代表要更改成的类型(允许/禁止/提示)

具体权限对应的code,可以查看AppOpsManager.java源码里的描述。

好吧,又找源码,如下

http://tools.oesf.biz/android-4.3.0_r2.1/xref/frameworks/base/core/java/android/app/AppOpsManager.java

 public static final int MODE_ALLOWED = 0;
     59     public static final int MODE_IGNORED = 1;
     60     public static final int MODE_ERRORED = 2;
     61
     62     // when adding one of these:
     63     //  - increment _NUM_OP
     64     //  - add rows to sOpToSwitch, sOpNames, sOpPerms
     65     //  - add descriptive strings to Settings/res/values/arrays.xml
     66     public static final int OP_NONE = -1;
     67     public static final int OP_COARSE_LOCATION = 0;
     68     public static final int OP_FINE_LOCATION = 1;
     69     public static final int OP_GPS = 2;
     70     public static final int OP_VIBRATE = 3;
     71     public static final int OP_READ_CONTACTS = 4;
     72     public static final int OP_WRITE_CONTACTS = 5;
     73     public static final int OP_READ_CALL_LOG = 6;
     74     public static final int OP_WRITE_CALL_LOG = 7;
     75     public static final int OP_READ_CALENDAR = 8;
     76     public static final int OP_WRITE_CALENDAR = 9;
     77     public static final int OP_WIFI_SCAN = 10;
     78     public static final int OP_POST_NOTIFICATION = 11;
     79     public static final int OP_NEIGHBORING_CELLS = 12;
     80     public static final int OP_CALL_PHONE = 13;
     81     public static final int OP_READ_SMS = 14;
     82     public static final int OP_WRITE_SMS = 15;
     83     public static final int OP_RECEIVE_SMS = 16;
     84     public static final int OP_RECEIVE_EMERGECY_SMS = 17;
     85     public static final int OP_RECEIVE_MMS = 18;
     86     public static final int OP_RECEIVE_WAP_PUSH = 19;
     87     public static final int OP_SEND_SMS = 20;
     88     public static final int OP_READ_ICC_SMS = 21;
     89     public static final int OP_WRITE_ICC_SMS = 22;
     90     public static final int OP_WRITE_SETTINGS = 23;
     91     public static final int OP_SYSTEM_ALERT_WINDOW = 24;
     92     public static final int OP_ACCESS_NOTIFICATIONS = 25;
     93     public static final int OP_CAMERA = 26;
     94     public static final int OP_RECORD_AUDIO = 27;
     95     public static final int OP_PLAY_AUDIO = 28;
     96     public static final int OP_READ_CLIPBOARD = 29;
     97     public static final int OP_WRITE_CLIPBOARD = 30;
     98     /** @hide */
     99     public static final int _NUM_OP = 31;
    100
    101     /**
    102      * This maps each operation to the operation that serves as the
    103      * switch to determine whether it is allowed.  Generally this is
    104      * a 1:1 mapping, but for some things (like location) that have
    105      * multiple low-level operations being tracked that should be
    106      * presented to hte user as one switch then this can be used to
    107      * make them all controlled by the same single operation.
    108      */
    109     private static int[] sOpToSwitch = new int[] {
    110             OP_COARSE_LOCATION,
    111             OP_COARSE_LOCATION,
    112             OP_COARSE_LOCATION,
    113             OP_VIBRATE,
    114             OP_READ_CONTACTS,
    115             OP_WRITE_CONTACTS,
    116             OP_READ_CALL_LOG,
    117             OP_WRITE_CALL_LOG,
    118             OP_READ_CALENDAR,
    119             OP_WRITE_CALENDAR,
    120             OP_COARSE_LOCATION,
    121             OP_POST_NOTIFICATION,
    122             OP_COARSE_LOCATION,
    123             OP_CALL_PHONE,
    124             OP_READ_SMS,
    125             OP_WRITE_SMS,
    126             OP_READ_SMS,
    127             OP_READ_SMS,
    128             OP_READ_SMS,
    129             OP_READ_SMS,
    130             OP_WRITE_SMS,
    131             OP_READ_SMS,
    132             OP_WRITE_SMS,
    133             OP_WRITE_SETTINGS,
    134             OP_SYSTEM_ALERT_WINDOW,
    135             OP_ACCESS_NOTIFICATIONS,
    136             OP_CAMERA,
    137             OP_RECORD_AUDIO,
    138             OP_PLAY_AUDIO,
    139             OP_READ_CLIPBOARD,
    140             OP_WRITE_CLIPBOARD,
    141     };
时间: 2024-10-11 04:03:31

Android新权限机制 AppOps的相关文章

Android测试&权限机制&数据存储

测试 黑盒测试 -测试人员不知道源代码 白盒测试 -测试人员知道源代码,能写一些测试用例 根据测试的粒度 方法测试 function test 单元测试 unit test junit测试框架 集成测试 integration test 系统测试 system test 根据测试的暴力程度 冒烟测试 smoke test 压力测试 pressure test 单元测试框架(JUnit) Android代码只能运行在手机中的Dalvik虚拟机里,在PC机的JVM下会报错异常,写测试用例,通常把上传

Android Notification和权限机制探讨

近期为了在部门内做一次小型的技术分享.深入了解了一下Notification的实现原理.以及android的权限机制.在此做个记录.文章可能比較长,没耐心的话就直接看题纲吧. 先看一下以下两张图 图一: 看到这图可能大家不太明确,这和我们的notification有什么关系,我来简介一下背景.这是发生在15年NBA季后赛期间,火箭队对阵小牛队,火箭队以3:1率先,仅仅要再赢一场就能淘汰对手.这时候火箭队的官方首席运营官发了这条官方推特. 翻译一下就是 "一把枪指着小牛的队标,哼哼,仅仅须要闭上你

android权限机制,你真的了解么

android权限机制,你真的了解么 一.Android的权限机制 Android是目前最流行的智能手机软件平台之一,在智能移动终端如火如荼发展的同时,其安全态势也日益严峻.有调查表明,恶意软件的数量在持续的上升,Google在Android安全机制上面也做了很多工作,并且一直在持续的更新,其Android的安全模型由3个部分组成:Linux安全机制.Android本地库及运行环境安全与Android特有的安全机制,如下图: 本文只涉及到其中的权限机制介绍,其他的部分如果有感兴趣的,我们可以后续

Android安全机制(2) Android Permission权限控制机制

1.概述 Android 是一个权限分离的系统 . 这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid , 从而使得不同的 Application 之间的私有数据和访问( native 以及 java 层通过这种 sandbox 机制,都可以)达到隔离的目的 . 与此 同时, Android 还 在此基础上进行扩展,提供了 permission 机制,它主要是用来对 Application 可以执行的某些具体操作进行权限细分和访问控制,

Android安全机制(2) Android Permission权限控制机制

http://blog.csdn.net/vshuang/article/details/44001661 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 1.概述 Android 是一个权限分离的系统 . 这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid , 从而使得不同的 Application 之间的私有数据和访问( native 以及 Java 层通过这种 sandbox 机制,都可以)达到隔离的目的

Android权限机制(三) 针对权限控制如何设计App

随着Android 5.0的到来,原生的权限管理控制功能AppOps终于登场(虽然4.3的代码中已经包含). 它的使用路径是Settings -> Security -> AppOps(有些厂商的ROM可能依然屏蔽着,或名字被修改) AppOps引进的一个新概念"Ops",也就是"Operations"操作.之前的第三方应用(如LBE)和手机厂商ROM(三星.MIUI),都实现了类似功能,但强调的是permission权限.而在AppOps中,ops操作

android permission权限与安全机制解析(下)

在android permission权限与安全机制解析(上)篇博客中,我已经详细介绍了android相关系统permission和自定义permission,以及一些权限机制和安全机制.这篇博客主要将会介绍到android 6.0的相关权限更改,原理和相关的处理方式,解决方法等. 就以我以前的一个仿最新版微信相册为例子来分析. android 6.0权限全面详细分析和解决方案 Marshmallow版本权限修改 android的权限系统一直是首要的安全概念,因为这些权限只在安装的时候被询问一次

Android权限机制(一) 权限的申请与保存

Android系统采用了sandboxes的安全机制,每个app有对应的PID,UID,资源,数据,以及基本的API.当app需要sandbox没有提供的额外API时,需要声明权限. 在本文中,我们将会探究apk申请的权限信息是如何被保存到系统中的. 一.声明权限 1. 在AndroidManifest.xml中声明权限 AndroidManifest.xml位于工程根目录下 在<activity>标签之前声明权限 声明了app所需要用到的权限 Android要求权限必须在manifest文件

Android安全机制解析与应用实践------- 权限机制 笔记(1)

一.Android 应用程序权限机制(1)安装PachageManagerService:installPackageLI:parsePackage解析AndroidManifest.xml 文件,获得应用申请权限:grandPermissionsLP授予应用相应权限的GID;(2)启动PachageManagerService:startProcessLocked启动应用程序时,创建新进程并传入GID.UID:forkAndSpecializeCommon创建SystemServer进程并设置