十、adb命令管理应用高级权限的操作
在手机设置内无法操作的应用高级权限可以通过adb命令来管理,主要是针对2种电耗子权限(“WAKE_LOCK”阻止手机CPU休眠和“RUN_IN_BACKGROUND”常驻后台)和各种应用最爱的“OP_READ_PHONE_STATE”读取本机识别码
手机连接电脑,adb服务正常启用的条件下,以淘宝为例输入以下命令查看具体应用的权限:
adb shell appops get com.taobao.taobao
返回淘宝应用各种权限的状态,allow为已允许、deny为被拒绝、defauld为默认、ignore为被忽略
建议把已允许的权限,需要拒绝的操作以忽略的形式操作,忽略的优势在于应用无法感知申请的权限没有得到,专治不给权限就不允许的流氓行为,命令如下:
adb shell appops set com.taobao.taobao OP_READ_PHONE_STATE ignore
不返回任何信息代表忽略权限成功
附录部分权限释义:
OP_READ_PHONE_STATE 读取本机识别码 (应用最爱)
RUN_IN_BACKGROUND 后台运行(流氓最爱之一)
WAKE_LOCK 阻止CPU休眠(流氓最爱之一)
WIFI_SCAN 探测WLAN(流氓最爱之一)
COARSE_LOCATION 低精度定位
FINE_LOCATION 高精度定位
READ_EXTERNAL_STORAGE 读取外置存储 (微信内关闭此权限,无法显示头像和进朋友圈)
WRITE_EXTERNAL_STORAGE 写入外置存储
READ_CONTACTS 读取通讯录 WRITE_CONTACTS 写入通讯录
POST_NOTIFICATION 通知 ACCESS_NOTIFICATIONS 读取通知(流氓最爱之一)
SYSTEM_ALERT_WINDOW 弹窗(流氓最爱之一)
GET_USAGE_STATS 查询各种应用状态
GET_ACCOUNTS 查询系统账户
USE_FINGERPRINT 可用指纹
BODY_SENSORS 可用身体传感器
对每一个应用的权限进行查看后再根据需要选择操作,因每次只能操作一个权限,故过程较为繁琐,需要一定的耐心,提高效率的办法请看“本文的第三步”最后一句备注;也可通过建立不同的应用列表后分批的进行权限操作,具体命令如下:
adb shell pm list packages -s >syslist.txt (建立系统应用包列表)
adb shell pm list packages -3 >userlist.txt (建立第三方和自己安装的应用包)
备注:系统自带的“手机管家”和“设置”中部分功能只是样子货,比如怎么关也关不掉的“系统更新”,再比如“关闭应用后台运行”后,通过appops查看发现该权限仍然处于allow状态。想要真正管控住应用,必须利用adb工具实现。