appops(不是指本应用)是一个存在于 Android 系统中的框架,通过在系统中很多地方预埋来实现权限控制和统计追踪的功能。但通常系统并不提供界面给用户修改 appops 设置,不能应用提供友好的界面供用户修改。但由于普通应用没有权限修改设置,因此需要 root 或是 adb 才能使用。
App Ops简介
AppOps全称是Application Operations,类似我们平时常说的应用程序的操作(权限)管理。AppOps是Google原生Android包含的功能,但是Google在每次版本更新时都会隐藏掉AppOps的入口。
在今年的Google IO大会上,Google透露Android M ( Android 6.0 )会加入Application Permission Manage的功能,该功能应该就是基于AppOps实现的。
注意:AppOps虽然涵盖了App的权限管理,但是Google原生的设计并不仅仅是对“权限”的管理,而是对App的“动作”的管理。我们平时讲的权限管理多是针对具体的权限(App开发者在Manifest里申请的权限),而AppOps所管理的是所有可能涉及用户隐私和安全的操作,包括access notification, keep weak lock, activate vpn, display toast等等,有些操作是不需要Manifest里申请权限的。
App Ops特色
Setting UI:
AppOps的权限设置是在系统的Settings App里, Settings -> Security -> AppOps.
点击某一app,可以查看该app的权限管理详情
如前面所说,这一入口默认已经被google屏蔽了,而且屏蔽的手段越来越严格,很多辅助打开工具已经不好用了~
但也有个别厂商重新打开了入口,也可能改了名字~
App Ops功能
AppOps默认给用户提供了两个设置选项:
允许该项权限/禁止该项权限
而其实代码逻辑里,有三种可选项:
允许/禁止/提示
用户选择“提示”选项,则该app在执行这一操作时,系统会给用户相应的提示,待用户选择后app继续执行。
我修改源码把appops的“提示”设置项重新打开后,效果如下:
(禁止百度地图的定位权限)
∨ 展开