主要是解决防止国内流氓应用在Android6.0上不给权限就不让用的问题,e.g. 几个外卖应用。
也可以不root通过adb shell appops set [--user <USER_ID>] <PACKAGE> <OP> <MODE>
忽略授予的权限。
AppOpsX
现在没有调用appops命令的方式去设置,用的是以root权限启用jar后开放LocalSocks
通讯的方式去代理修改权限,
理论上多条执行的时候要比调用命令快,在应用内使用感觉会比较明显,当然底层和appops命令实现一致。
用法:
cd opsxlib
make all
cd ../app
gradle assembleDebug
将会启动一个LocalServerSocket
,供client调用。
前端连接到LocalSocks
后即可发送命令去类似代理执行一样执行IAppOpsService
中的方法。
所有的设置关闭权限使用了MODE_IGNORED
,不要使用MODE_ERRORED
,否则会导致应用设置->应用->配置应用->应用权限崩溃。
只测试了Android 6.0和7.0上可正常使用,其他版本如有问题请提issue。
init.rc: on property:service.adb.tcp.port=* restart adbd on property:service.adb.tcp.enable=1 setprop service.adb.tcp.port 5555 on property:service.adb.tcp.enable=0 setprop service.adb.tcp.port -1