前几天忽然发现我的小米 mix2s 和红米 note7 出现了一种很奇怪的现象:浏览器能访问 google,而谷歌系的 app 连不上服务器,但此时另一台 nexus5x 却完全正常,这三部手机连接的是同一台自动分流代理的路由器。我以为是账号出现问题就想退出后再登录 google 账号,结果发现怎么也登不上去了,两部小米手机一直提示与 google 服务器通信时出现问题。
我按照网上各种解决方法所说的开定位、用谷歌安装器重装 gms,结果这些方法只对红米 note7 有效。更奇怪的是一天之后红米 note7 又连不上了。后来我又发现这种情况只出现在手机连接 wifi 时,如果在手机上打开代理则能正常连接。
之后我想用 charles 和 wireshark 抓包看看到底哪儿出了问题,没想到手机在登录 google 账号时基本没有数据包发出。然后我又用 adb 导出了手机启动后的日志,才发现了原因:
54:53.573 I octvm : [arg_idx 7]: /system/bin/mcd init sudebug init_gms_iptable_chain gms_wall 10035 REJECT
54:53.573 I octvm : run command: iptables -N gms_wall
54:53.573 I octvm : iptables -A gms_wall -m owner --uid-owner 10035 -j REJECT
55:07.086 I octvm : run command: iptables -D INPUT -j gms_wall
55:07.086 I octvm : iptables -A INPUT -j gms_wall
55:07.129 I octvm : run command: iptables -D OUTPUT -j gms_wall
55:07.129 I octvm : iptables -A OUTPUT -j gms_wall
一个名叫 mcd 的系统程序,在 iptables 里写了规则,把 uid 为 10035 的用户相关的包拒绝了,在我手机上 gms 相关进程所属的 user 是 u0_a35,也就是 uid 为 10035。
没想到竟然是小米的 rom 屏蔽了 google play 服务,真的是无语了。
101
oovveeaarr 2019 年 4 月 26 日
这个我还是倾向于省电策略一些的,之前用米酒的时候就发现了更激进一些的省电策略,猜测如下。
这个原理是 MIUI 为了省电把 Google 的 retry service timer 掐了 如果在被掐的时候进 426 看,可以看到 next retry time 是负数 但是 Google service framework 注册了网路环境改变事件,也就是你开关数据,连接 wifi,连接 vn 之类的 都会导致这个服务复活 从而继续连接 就是为了防止 Google 一直重试省电 PS:GCM 在大部分地区都没被禁止事项,只不过不太稳定而已。 |
102
XnEnokq9vkvVq4 2019 年 4 月 26 日 via Android
mcd 据我了解是 miui 的强力清理还是啥。这个应该是省电策略没错
这些本地化的 rom 也挺蛋疼的。这么搞可以理解,但不是最优选择 |
104
fish3125 2019 年 4 月 26 日 via Android
我的米 9 最新正式版系统用路由分流也会,但是手机开下全局 openv 就好了^0^~。
|
106
baobao1270 2019 年 4 月 27 日
红米 4A EU 版 MIUI 无此问题
米 8 国内稳定版 Google Apps 可连接但时常抽风 估计是在系统级有限制,想想之前小米系统内置浏览器屏蔽 GitHub 的事情 |
107
xieyudi 2019 年 4 月 27 日 via Android 前阵子 steam 被 dns 污染,贴吧一堆人洗地,“肯定是 steam 服务器出了问题”,“看吧美国也出问题了”(确实刚好美国 cdn 抽风了几个小时的报道),“就算是国家行为,不让上是因为有害内容,肯定是为我们好”。
楼上一些帖子真是逗。真的是省电,为什么不用系统自带框架,而是后台偷偷改 iptables 这么阴的?为什么国际版无问题?怎么解释之前小米盒子 YouTube 应用无故消失的?也是为了省电吗? 背后的原因是什么谁都不好说。但考虑到某国的性质( ducai 军国,所有公司均有 dang 支部),小米与中殃的关系( cctv 钦点),助纣为虐的前科,而且多个品牌大陆 rom 都有类似问题,怎么看都是 “那个原因” 吧。 |
108
wxyedward 2019 年 4 月 27 日
已换用 EU 版,感觉世界瞬间清静了
|
109
huiji 2019 年 5 月 25 日
我也出现问题了 怎么解决
|
110
idxinxi 2019 年 6 月 12 日
手机上开酸酸乳就可以用,路由器端智能开网页,APP 服务连不上
|
111
zxloveyyy 2019 年 6 月 13 日
同样遇到这个问题, 路由器代理就会这样,手机 SSR 代理就不会出现问题
|
113
datou 2019 年 6 月 19 日
|
115
DINKHo 2019 年 6 月 20 日
我的小米 9SE 也有这个问题,
请问可以把 mcd 删掉或是修改权限(去掉 x )吗? 是不是删掉后就正常了? 删掉后会不会对系统有影响? 谢谢! |
119
idxinxi 2019 年 6 月 24 日
手机端开酸乳可以连,用路由死活连不上
|
120
billytom 2019 年 7 月 13 日
|
121
etnperlong 2019 年 7 月 31 日 via Android
同样在研究怎么去掉这个规则
连不上 GMS 很是郁闷 |
122
phoolean OP @billytom 有三种方法:
1、稳定版 root,用 re 文件浏览器删掉 mcd 文件; 2、刷开发版 MIUI,开发版不存在这个问题; 3、稳定版使用手机分身,分身里 gms 的 uid 会变,mcd 无法拦截 |
123
phoolean OP @etnperlong 见上条回复
|
124
etnperlong 2019 年 8 月 9 日 via Android
@phoolean 感谢!开发版果然👌
|
125
billytom 2019 年 8 月 10 日
@etnperlong 请问开发版是怎么搞的?要解锁才能刷吗?
|
129
CloudnuY 2019 年 9 月 3 日
亲测正式版 MIUI 10.3.17 电池优化里把 Google Play 设为无限制就可以通信正常了……
|
130
file0X0088 2019 年 9 月 22 日
@CloudnuY note 7 pro 测试可用!
|
132
DINKHo 2019 年 10 月 13 日
|
134
andywiny 2019 年 10 月 17 日 via Android
@CloudnuY 果然设置为无限制就可以了,还一直以为是路由器代理问题,排查了 DNS,iptables 均无果,原来是这个原因...
|
135
jianzx 2019 年 11 月 22 日
|
136
youtoshell 2020 年 1 月 29 日 via Android
找了很久终于找到原因了
红米 note 7 pro miui 11.0.4 正式版也有这情况 只要在把 play 商店 电池优化设为无限制一段时间 iptables -nvL -line 查看 但 gms_wall 链还在,但 INPUT OUPUT 链中两条引用 gms_wall 作 target 策略自动取消了。 |
137
diligentpig 2020 年 2 月 28 日
@CloudnuY 感谢,红米 note5 测试也是如此。新安装的 google 服务,过两天就用不了了,删了重装又能用,再次循环。。。直到电池优化里把 Google Play 设为无限制就可以通信正常了。
|
140
jssss 2020 年 4 月 28 日
小米 mix2,开发版 miui12 ,重新下载,清除数据缓存,移出省电模式,删除 hosts 文件,这些方法都无法使用,有什么好办法吗?
|
143
jssss 2020 年 5 月 4 日 miui12 可以查看应用行为记录,发现服务框架被拒绝启动,我已经将权限都打开了,但是仍然被拒绝? 请问这是什么情况? 有没有解决方法?
|
144
octalempyrean 2020 年 7 月 13 日 via Android
@jssss 谢啦,老哥,困扰好久,我就这问题,开发版,突然这样了,原来没问题👌🏻。
|
145
Imfondof 2020 年 9 月 21 日
MIUI12 android10 (以下多个方法依次尝试)
1 、重启 2 、卸载 google 三件套,使用 go 重新安装,重启 3 、应用设置 google 服务 设置为自启动 4 、以上方法还不行,在小米的 下载管理 app 里关闭迅雷下载引擎,重启 |
146
aprill 2022 年 5 月 26 日
MIUI 12 Android 9
上面推荐的都试过,最后搜到将工具由 v2 换成 ss 即可正常连接. |