V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
phoolean
V2EX  ›  Android

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

  •  4
     
  •   phoolean · 2019-04-25 22:42:19 +08:00 · 102382 次点击
    这是一个创建于 2046 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

    感谢。因为我这里发现,那个知名的 55 程序,无论怎么设置,都会在手机休眠一段时间后被杀掉,然后系统不断的在同步 GG 服务,一晚上手机啥都没碰掉了 20%电
    etnperlong
        121
    etnperlong  
       2019-07-31 11:07:05 +08:00 via Android
    同样在研究怎么去掉这个规则
    连不上 GMS 很是郁闷
    phoolean
        122
    phoolean  
    OP
       2019-08-09 20:55:15 +08:00
    @billytom 有三种方法:
    1、稳定版 root,用 re 文件浏览器删掉 mcd 文件;
    2、刷开发版 MIUI,开发版不存在这个问题;
    3、稳定版使用手机分身,分身里 gms 的 uid 会变,mcd 无法拦截
    phoolean
        123
    phoolean  
    OP
       2019-08-09 20:55:46 +08:00
    @etnperlong 见上条回复
    etnperlong
        124
    etnperlong  
       2019-08-09 21:00:07 +08:00 via Android
    @phoolean 感谢!开发版果然👌
    billytom
        125
    billytom  
       2019-08-10 12:15:53 +08:00
    @etnperlong 请问开发版是怎么搞的?要解锁才能刷吗?
    billytom
        126
    billytom  
       2019-08-10 12:16:18 +08:00
    @phoolean 感谢回复,看来还是刷开发版比较好,root 貌似麻烦比较多
    billytom
        127
    billytom  
       2019-08-10 12:22:46 +08:00
    @phoolean 忘了请教,你的红米 K20Pro 开发版固件在哪里下的啊?或者是有什么可以申请的地方?
    phoolean
        128
    phoolean  
    OP
       2019-08-27 22:29:42 +08:00
    @billytom 我没有红米 K20Pro 啊。。。
    CloudnuY
        129
    CloudnuY  
       2019-09-03 11:24:23 +08:00
    亲测正式版 MIUI 10.3.17 电池优化里把 Google Play 设为无限制就可以通信正常了……
    file0X0088
        130
    file0X0088  
       2019-09-22 12:13:40 +08:00
    @CloudnuY note 7 pro 测试可用!
    lxml
        131
    lxml  
       2019-10-01 16:06:13 +08:00
    @CloudnuY #129 已解,妈蛋必须去内网喷一波
    DINKHo
        132
    DINKHo  
       2019-10-13 20:02:16 +08:00
    @phoolean 我用 re 把 mcd 删掉了,感觉还是有问题阿!

    @CloudnuY 我在电池优化里把 Google Play 设为无限制,还是不行。

    Google Play 无法连线,google 日历等等不能同步
    CloudnuY
        133
    CloudnuY  
       2019-10-14 08:56:10 +08:00
    @DINKHo #132 清一下 google play 的数据试试
    andywiny
        134
    andywiny  
       2019-10-17 21:08:18 +08:00 via Android
    @CloudnuY 果然设置为无限制就可以了,还一直以为是路由器代理问题,排查了 DNS,iptables 均无果,原来是这个原因...
    jianzx
        135
    jianzx  
       2019-11-22 10:07:01 +08:00
    @phoolean @CloudnuY 感谢,一直以为是 DNS 污染的问题,研究了好久,都不行,因为我的华为手机没这个问题,小米 8 miui11 稳定版却不行,开飞行模式也不行,遂觉得不是 dns 的问题,怀疑是 miui 的问题。在电量管理放开限制,上诉问题果然解决了。
    youtoshell
        136
    youtoshell  
       2020-01-29 11:04:31 +08:00 via Android
    找了很久终于找到原因了
    红米 note 7 pro miui 11.0.4 正式版也有这情况
    只要在把 play 商店 电池优化设为无限制一段时间
    iptables -nvL -line 查看
    但 gms_wall 链还在,但 INPUT OUPUT 链中两条引用 gms_wall 作 target 策略自动取消了。
    diligentpig
        137
    diligentpig  
       2020-02-28 22:55:34 +08:00
    @CloudnuY 感谢,红米 note5 测试也是如此。新安装的 google 服务,过两天就用不了了,删了重装又能用,再次循环。。。直到电池优化里把 Google Play 设为无限制就可以通信正常了。
    AsherTan
        138
    AsherTan  
       2020-03-04 09:58:31 +08:00
    @CloudnuY 可以的,困扰许久的问题终于好了
    ycyppq123
        139
    ycyppq123  
       2020-04-02 13:46:04 +08:00
    @CloudnuY 你的回答靠谱 miui 好坑啊。。
    jssss
        140
    jssss  
       2020-04-28 21:23:22 +08:00
    小米 mix2,开发版 miui12 ,重新下载,清除数据缓存,移出省电模式,删除 hosts 文件,这些方法都无法使用,有什么好办法吗?
    phoolean
        141
    phoolean  
    OP
       2020-04-28 23:38:43 +08:00
    @jssss 开发版应该没有这个问题,你看看 iptables 还有没有 gms_wall 这条链,删掉规则就行了
    jssss
        142
    jssss  
       2020-04-29 14:25:06 +08:00
    @phoolean ee,请问 iptables 怎么弄? 我用手机分身尝试下谷歌配套,直接提示不适用本机型号。。。
    jssss
        143
    jssss  
       2020-05-04 14:23:10 +08:00   ❤️ 1
    miui12 可以查看应用行为记录,发现服务框架被拒绝启动,我已经将权限都打开了,但是仍然被拒绝? 请问这是什么情况? 有没有解决方法?
    octalempyrean
        144
    octalempyrean  
       2020-07-13 21:43:09 +08:00 via Android
    @jssss 谢啦,老哥,困扰好久,我就这问题,开发版,突然这样了,原来没问题👌🏻。
    Imfondof
        145
    Imfondof  
       2020-09-21 17:36:31 +08:00
    MIUI12 android10 (以下多个方法依次尝试)

    1 、重启

    2 、卸载 google 三件套,使用 go 重新安装,重启

    3 、应用设置 google 服务 设置为自启动

    4 、以上方法还不行,在小米的 下载管理 app 里关闭迅雷下载引擎,重启
    aprill
        146
    aprill  
       2022-05-26 19:59:56 +08:00
    MIUI 12 Android 9
    上面推荐的都试过,最后搜到将工具由 v2 换成 ss 即可正常连接.
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2591 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:23 · PVG 12:23 · LAX 20:23 · JFK 23:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.