Huawei Nexus 6P August 22 Android N Update
LG Nexus 5X August 22 Android N Update
android central 有一条新闻,说 telus 的官方论坛表示 5x 和 6p 会收到 Android N 的更新 显然这个 Android N 肯定是 Android 7 的第一个正式版
来源:
http://www.androidcentral.com/android-70-nougat-likely-releasing-august-22
http://forum.telus.com/t5/Mobility/Software-Update-Schedule/ta-p/53566
对付那些喜欢非必要地占后台的可能不需要的软件(PUAs), Android 7 提供了一个很好的 AppOps OP 也就是
RUN_IN_BACKGROUND
打开 adb shell 然后输入:
appops set [package name] RUN_IN_BACKGROUND ignore
[package name]是应用的包名。 这么做会让隐式启动的 Service 无法运行,后台类型的 Service 也会在离开应用后几分钟内,被系统杀掉。大致在微信上测试了下,确实有效果。
还有一个从 Android 6 开始就可使用的:
appops set [package name] OP_READ_PHONE_STATE ignore
可以解决那些拿不到电话权限便强退的 PUA 此外,电话权限对应了数个 OP 。
OP_READ_PHONE_STATE
只是其中一个,其它还有
CALL_PHONE
等。此外,有一个叫
WAKE_LOCK
的 OP 实际上是没有用的,只是做了审计,具体可以看 Android 的源代码
前面那个帖子多次穿越,语无伦次,非常抱歉。
1
kitalphaj 2016-08-19 07:46:53 +08:00
不是说要等下一代 Nexus 出的时候才推送正式版么?
|
2
BROWNURSIDAE 2016-08-19 08:01:36 +08:00 via Android
这样对微信会不会造成消息延迟???另外 wakelock 的想研究一下
|
3
honeycomb OP @BROWNURSIDAE 微信的 service 被杀光了
|
4
BROWNURSIDAE 2016-08-19 08:27:49 +08:00 via Android
@honeycomb 试了一下,在一定时间内 service 全无,推送也没了,微信的 gcm 是绑在 notifiy service 内吧,所以估计 gcm 推送也会没有?怎么恢复呢???
|
5
terence4444 2016-08-19 08:31:17 +08:00 via iPhone
Adb... 放在界面上让用户设置就这么难… 唉…
iPhone 7 取消 3.5mm 以后又让我摇摆了,结果 Android 还是这样子… |
6
Cavolo 2016-08-19 08:41:29 +08:00 via iPhone
国内几家流氓大厂又回出新对策的
|
7
yaoppp 2016-08-19 08:45:59 +08:00 via Android
那么现在有哪个管理软件能在手机上完成上述操作呢?
|
8
honeycomb OP @terence4444 它没打算让用户使用 appops
|
11
l8mEQ331 2016-08-19 11:59:28 +08:00
不知道三星多久可以推送,比较喜欢新加入的双击切换最近的两个 app 。
|
12
fyooo 2016-08-19 13:13:35 +08:00 via Android
诶,几大厂的不提供通讯录就不让使用了,好无耻啊
|
13
honeycomb OP |
14
toor00 2016-08-19 13:41:29 +08:00
RUN_IN_BACKGROUND
这个特性非常好啊,多谢楼主介绍 在加上 改进的 doze 模式,看来这次谷歌是下决心要收紧了 或是为了推进 GCM? |
15
toor00 2016-08-19 13:43:33 +08:00
|
16
honeycomb OP @toor00 最适合的可能是绿色守护之类的。
出现这个 op 的原因可能是 Google 准备最终在 Android 里放弃隐式广播触发的启动和后台类型的 service (不包括前台 service 和被 bind 的 service )。 Android 7 正式版仅是废掉了 connectivity_changed 等三个隐式广播触发的启动。 这个 op 可能是给开发者一个禁用那些旧式自启动 /后台方案的测试环境 |
19
fyooo 2016-08-19 14:46:48 +08:00
@honeycomb 主要关心的还是短信权限,像银行验证码之类的是通过短信接收的,安卓的 app 只要是声明旧版本的 api 就可以绕过 android m 的限制未经允许就拥有读取短信的权限。
而手动设置 app 的短信权限很容易忘掉,经常是突然看到别人推荐什么游戏, app 就装一下,但是没有想起来需要检查权限。 |
20
honeycomb OP @fyooo 不会绕过的,只是因为兼容性的缘故,默认允许而已,只能手动修改。
不需要用 appops 的,何况对于这类应用,把权限设为禁止等同于在 appops 把这个权限对应的所有 op 设置为 ignore 。 |
21
honeycomb OP @fyooo 啊,你是希望让它能发短信但不能收 /查看短信数据库的内容?
这样的话确实需要 appops 的细分设置了而且在 appops 设置好后,再到权限机制里允许短信权限( appops 和权限机制的设定部分是串联的,即在运行时权限机制部分放行整个短信权限,但在 appops 部分阻止短信权限的一部分) |
22
fyooo 2016-08-19 15:12:59 +08:00
@honeycomb 不是啦,可能刚才没有表达好。
我是希望通过一些设置可以使得 android 可以跟 iOS 一样,除了默认的短信应用 messenger ,其他 app 一律默认没有读取短信,电话,通讯录的权限。 |
23
fyooo 2016-08-19 15:18:23 +08:00
不过应该有批量处理的方法,比如
1.用 adb shell 'pm list packages -3' 列出所有第三方的 app 的名字。 2.adb shell dumpsys package PACKAGENAME |grep permission 枚举每一个 app 的权限 3.如果有发现 app 滥用了,就 appops set [package name] OP_READ_PHONE_STATE ignore 教育它 不知道有没有开源的项目做了上面的事情呢?有的话就不用造轮子了。 |
24
fyooo 2016-08-19 15:28:49 +08:00
有趣的是发现没有限制读取短信的指令
拿权限大户微信做试验: adb shell dumpsys package com.tencent.mm |grep permission 返回 runtime permissions: android.permission.READ_SMS: granted=true ... android.permission.READ_PHONE_STATE: granted=true ... 然后 $ adb shell appops set com.tencent.mm OP_READ_SMS ignore Error: Unknown operation string: OP_READ_SMS $ adb shell appops set com.tencent.mm OP_READ_PHONE_STATE ignore $ 结论: OP_READ_PHONE_STATE 成功,但是自己拼凑出来的指令 OP_READ_SMS 则失败。 |
26
fyooo 2016-08-19 15:56:11 +08:00
哦,刚刚 google 一下,发现短信相关的权限设置应该是 adb shell appops set com.tencent.mm READ_ICC_SMS ignore
|
28
lsmgeb89 2016-08-20 03:38:14 +08:00 via Android
手持 6P ,但不知道国外大厂的 App 兼容情况怎么样了?
|
30
honeycomb OP @dvorak
这个 OP 似乎不会限制前台 service ,或者是处于 bound 状态的 我只找到了一个关于这个 OP 的说明: “ They have an adb command that will make the app stop receiving Implicit Broadcasts that are registered statically, and also impose a timeout on Background Services when the app is in the background ” 这里“ Background Services ”显然不包括前台 Service ,可能也不包括 bound service https://oneprogrammingtip.wordpress.com/2016/04/11/getting-your-apps-ready-for-android-n-background-optimization/ 在 Android 7 DP5 及以前的 Android 有一个一直没有解决的 bug ,应用可以发起一个前台 service 并不显示通知(前台 service 本被设计为不允许出现这种情况)。但是这个 bug 目前已经被标注为 releaseFuture ,所以有可能会出现在 22 号的更新 |
32
int64ago 2016-08-22 11:41:34 +08:00
所以 已经 22 号了,按照时差算,美国也基本 22 号了
|
33
zhxhwyzh14 2016-08-22 17:30:52 +08:00
这个相当于 组织运行的功能啦?
|
34
zhxhwyzh14 2016-08-22 17:31:06 +08:00
@int64ago 咋也得等人家上班吧。。
|
35
janeyee110 2016-08-22 19:06:53 +08:00
估计明天,今天并没有收到 7.0 的推送。
|
36
honeycomb OP @zhxhwyzh14
见 30 楼,是有限的限制。 相比之下,这个 managed profile 新增的特性比较有用: Work mode: Work mode allows you to turn on and off your device's work apps and notifications for a better work, life balance. 意味着 Oasisfeng 的新应用 island 可以加入在某种程度比冰箱 /阻止运行更好的解决方案: 1 ,那些不令人喜爱的应用会老实地呆在额外地 managed profile 沙盘里,无法访问外界的任何用户数据 2 ,为了让它们没有后台运行,直接“ turn off your device's work apps ”即可 注: Android for work 使用了 Android 5.0 新增的 managed profile 特性 |
37
int64ago 2016-08-23 07:13:32 +08:00 via Android
|
38
caiych 2016-08-23 11:21:25 +08:00
@honeycomb Island 刚出的时候给 oasis 写过 feedback 问会不会加一个按钮停掉所有 Work Profile 中的 App
结果现在 Android 有这个 feature 了… |
40
BROWNURSIDAE 2016-08-28 15:32:38 +08:00
@honeycomb 所以打算做一个有 gui 的吗
|
41
honeycomb OP @BROWNURSIDAE
本事不够 |
42
WuMingyu 2016-09-15 21:47:13 +08:00
实测对微信有效,但是对支付宝无效
|
43
Liir 2016-09-20 09:11:12 +08:00 via iPhone
纠结通知的请爱用 iOS
|
46
Wicheol 2017-02-13 10:55:08 +08:00
UC 浏览器国际版,设置了 OP_READ_PHONE_STATE ignore 依然不让用,设置里是禁止的
|
47
Wicheol 2017-02-13 11:18:39 +08:00
微博国际版可以成功忽略,不知 UC 这个流氓怎么绕过的
|