与 google 服务器通信时出现问题?我好像找到原因了

2019-04-25 22:42:19 +08:00
 phoolean

前几天忽然发现我的小米 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 服务,真的是无语了。

107420 次点击
所在节点    Android
146 条回复
oovveeaarr
2019-04-26 15:29:56 +08:00
这个我还是倾向于省电策略一些的,之前用米酒的时候就发现了更激进一些的省电策略,猜测如下。

这个原理是 MIUI 为了省电把 Google 的 retry service timer 掐了
如果在被掐的时候进 426 看,可以看到 next retry time 是负数
但是 Google service framework 注册了网路环境改变事件,也就是你开关数据,连接 wifi,连接 vn 之类的
都会导致这个服务复活
从而继续连接
就是为了防止 Google 一直重试省电

PS:GCM 在大部分地区都没被禁止事项,只不过不太稳定而已。
XnEnokq9vkvVq4
2019-04-26 16:49:29 +08:00
mcd 据我了解是 miui 的强力清理还是啥。这个应该是省电策略没错
这些本地化的 rom 也挺蛋疼的。这么搞可以理解,但不是最优选择
phoolean
2019-04-26 17:44:47 +08:00
@hanqian 我猜也是这样
fish3125
2019-04-26 18:11:32 +08:00
我的米 9 最新正式版系统用路由分流也会,但是手机开下全局 openv 就好了^0^~。
phoolean
2019-04-26 19:10:42 +08:00
@fish3125 是这样,因为 gms 的流量经过代理后 uid 会变,iptables 就拦不住了
baobao1270
2019-04-27 00:49:08 +08:00
红米 4A EU 版 MIUI 无此问题
米 8 国内稳定版 Google Apps 可连接但时常抽风
估计是在系统级有限制,想想之前小米系统内置浏览器屏蔽 GitHub 的事情
xieyudi
2019-04-27 02:56:24 +08:00
前阵子 steam 被 dns 污染,贴吧一堆人洗地,“肯定是 steam 服务器出了问题”,“看吧美国也出问题了”(确实刚好美国 cdn 抽风了几个小时的报道),“就算是国家行为,不让上是因为有害内容,肯定是为我们好”。

楼上一些帖子真是逗。真的是省电,为什么不用系统自带框架,而是后台偷偷改 iptables 这么阴的?为什么国际版无问题?怎么解释之前小米盒子 YouTube 应用无故消失的?也是为了省电吗?

背后的原因是什么谁都不好说。但考虑到某国的性质( ducai 军国,所有公司均有 dang 支部),小米与中殃的关系( cctv 钦点),助纣为虐的前科,而且多个品牌大陆 rom 都有类似问题,怎么看都是 “那个原因” 吧。
wxyedward
2019-04-27 11:48:56 +08:00
已换用 EU 版,感觉世界瞬间清静了
huiji
2019-05-25 15:05:43 +08:00
我也出现问题了 怎么解决
idxinxi
2019-06-12 10:21:09 +08:00
手机上开酸酸乳就可以用,路由器端智能开网页,APP 服务连不上
zxloveyyy
2019-06-13 17:04:12 +08:00
同样遇到这个问题, 路由器代理就会这样,手机 SSR 代理就不会出现问题
zxloveyyy
2019-06-14 19:53:27 +08:00
@datou 米 9 最新开发版 9.5.30 还是有这个问题 请问该怎么解决
datou
2019-06-19 15:09:54 +08:00
@zxloveyyy 五月中的一个开发版修复了这个问题,然后五月二十几号到现在的开发版又重现了这个问题

不过没有自带谷歌框架的米六就没问题

我反正碰到这个问题就在开发版的反馈里提交了

这肯定是小米下的暗桩
uplove
2019-06-20 10:35:52 +08:00
@datou 没错 5 月后的版本,不管是开发版还是正式版都是一样的问题
DINKHo
2019-06-20 21:58:59 +08:00
我的小米 9SE 也有这个问题,
请问可以把 mcd 删掉或是修改权限(去掉 x )吗?
是不是删掉后就正常了?
删掉后会不会对系统有影响?
谢谢!
datou
2019-06-22 01:51:21 +08:00
@zxloveyyy
@uplove

刚更新了开发版 6.20,好像修复了这个问题,你们可以试试
uplove
2019-06-22 13:42:42 +08:00
@datou 感谢告知,9.6.20 开发版果真修正好了。希望不要在乱限制了
uplove
2019-06-23 10:45:34 +08:00
@datou 刚更新 9.6.20 时是正常的,但是重启手机后 youtube 还是同样问题
idxinxi
2019-06-24 18:27:02 +08:00
手机端开酸乳可以连,用路由死活连不上
billytom
2019-07-13 19:28:25 +08:00
@phoolean
@msdx123
@Hoshizora

我的也是遇到这个问题,用家里的软路由就不行了,终于在这里发现了最真实的答案
请问几位大佬如何破解,或者去掉这个 iptables 规则?

感谢。因为我这里发现,那个知名的 55 程序,无论怎么设置,都会在手机休眠一段时间后被杀掉,然后系统不断的在同步 GG 服务,一晚上手机啥都没碰掉了 20%电

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/558774

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX