V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
phoolean
V2EX  ›  Android

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

  •  4
     
  •   phoolean · Apr 25, 2019 · 110321 views
    This topic created in 2558 days ago, the information mentioned may be changed or developed.

    前几天忽然发现我的小米 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 replies    2022-05-26 19:59:56 +08:00
    1  2  
    oovveeaarr
        101
    oovveeaarr  
       Apr 26, 2019
    这个我还是倾向于省电策略一些的,之前用米酒的时候就发现了更激进一些的省电策略,猜测如下。

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

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

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

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

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

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

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

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

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

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

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

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

    1 、重启

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

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

    4 、以上方法还不行,在小米的 下载管理 app 里关闭迅雷下载引擎,重启
    aprill
        146
    aprill  
       May 26, 2022
    MIUI 12 Android 9
    上面推荐的都试过,最后搜到将工具由 v2 换成 ss 即可正常连接.
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   913 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 22:14 · PVG 06:14 · LAX 15:14 · JFK 18:14
    ♥ Do have faith in what you're doing.