honeycomb
2018-01-17 18:03:54 +08:00
改 manifest 有这些问题:
1,破坏了应用的签名,这肯定是不可取的。
有的应用自己还会检查签名,特别是那些特意做了加固的,也就是说,这是一个普遍行为。
2,在 manifest 禁用权限以后,应用使用相关权限控制的 API 时,会抛出 SecurityException,应用基本不可能去 catch 这些东西,意味着这不实用,比 AppOps 返回 null/empty 对象的做法更不实用。
--------------------------------------
关于主题里琐碎的项目:
“如果能自己改 targetSdkVersion,流氓们只能在 8.1 下面乖乖睡觉”
有现成的 workaround,直接把应用在 AppOps 的 RUN_IN_BACKGROUND 改成 ignore 即可。
注:
应用的电池选项里,有时可以直接改这个设置(8.0 和 8.1 的表现不同,8.0 是只需要应用运行过就可以开启这个限制,8.1 需要别的条件,我没看过具体的源代码)
AOSP 上的 8.1 及 pixel 2 代的全部官方 rom 的开发者选项-->background check 可直接改
“直接修改 /删除四大组件的申明 让 broadcastreceiver 再也收不到“开机 /网络变更 /摄像头开启”之类的唤醒,直接禁用 service/content provider, 或者使其无法向第三方开放。 ”
在 Android 8.0,绝大部分隐式广播已经无法触发系统定义的那些 receiver。
除此以外可以用修改 IFW 配置的方法(如绿色守护的处方特性),pm disable(MyAndroidTools)来处理它们
“ Oreo 对 bound service/content provider 没有约束”
似乎没什么好办法