隐私权限控制 精细化管理应用后台访问
Android 权限的局限
Android 的权限管理虽然比早期版本好很多,但仍然不够精细:
- 后台访问限制不完全(部分应用在后台仍然能读取位置)
- 一次性权限(每次启动都要重新授权,非常烦)
- 无法精细到「只允许前台访问,后台就关」
AxManager 可以通过 Shell 命令做更精细的权限控制。
查看应用当前权限
dumpsys package com.tencent.mm | grep -A 20 "runtime permissions"
这个命令可以查看微信当前所有运行时权限的授予状态。把包名换成你想检查的应用。
撤销危险权限
撤销位置权限
pm revoke com.tencent.mm android.permission.ACCESS_FINE_LOCATION
撤销摄像头权限
pm revoke com.tencent.mm android.permission.CAMERA
撤销麦克风权限
pm revoke com.tencent.mm android.permission.RECORD_AUDIO
撤销后台位置权限
pm revoke com.tencent.mm android.permission.ACCESS_BACKGROUND_LOCATION
撤销后,下次打开应用时会重新弹出权限请求对话框。
批量撤销权限脚本
如果你有好几个应用都要撤位置权限,可以写个简单脚本:
# 撤销以下应用的后台位置权限
for pkg in com.tencent.mm com.sina.weibo com.zhihu.android; do
pm revoke $pkg android.permission.ACCESS_BACKGROUND_LOCATION
done
把这段脚本存下来,定期执行一次(比如每周),确保应用不会偷偷恢复后台位置权限。
关于撤销权限的副作用
有些应用在关键权限被撤销后会崩溃或功能异常,这是正常现象——开发者没有处理好权限缺失的情况。
如果撤销权限导致应用无法正常使用,可以:
- 恢复权限(
pm grant) - 查看应用设置中是否有「仅在使用时允许」等中间选项
- 考虑换一个更尊重隐私的同类应用
位置权限特别注意
后台位置权限(ACCESS_BACKGROUND_LOCATION)是最敏感的权限之一,很多用户不知道哪些应用在偷偷用它。
AxManager 可以帮你:
# 列出所有拥有后台位置权限的应用
dumpsys package | grep -B 5 "ACCESS_BACKGROUND_LOCATION"
定期检查这个列表,把不需要后台位置的应用撤销。
结合 Shizuku 的更深度控制
如果同时安装了 Shizuku,可以通过 AxManager 插件调用 Shizuku API 实现更精细的权限管理,比如:
- 按时间段限制权限(上班时禁位置,晚上允许)
- 按地理位置限制(在家允许后台位置,出门就禁)
- 按应用状态限制(前台运行才允许权限,切到后台就收走)
这些属于插件层的能力,需要社区开发者提供相应模块。