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

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

  •  4
     
  •   phoolean · 211 天前 · 21489 次点击
    这是一个创建于 211 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    135 回复  |  直到 2019-11-22 10:07:01 +08:00
    1  2  
        101
    oovveeaarr   210 天前
    这个我还是倾向于省电策略一些的,之前用米酒的时候就发现了更激进一些的省电策略,猜测如下。

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

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

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

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

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

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

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

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

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

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

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

    Google Play 无法连线,google 日历等等不能同步
        133
    CloudnuY   39 天前
    @DINKHo #132 清一下 google play 的数据试试
        134
    andywiny   36 天前 via Android
    @CloudnuY 果然设置为无限制就可以了,还一直以为是路由器代理问题,排查了 DNS,iptables 均无果,原来是这个原因...
        135
    jianzx   19 小时 8 分钟前
    @phoolean @CloudnuY 感谢,一直以为是 DNS 污染的问题,研究了好久,都不行,因为我的华为手机没这个问题,小米 8 miui11 稳定版却不行,开飞行模式也不行,遂觉得不是 dns 的问题,怀疑是 miui 的问题。在电量管理放开限制,上诉问题果然解决了。
    1  2  
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   881 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 21:15 · PVG 05:15 · LAX 13:15 · JFK 16:15
    ♥ Do have faith in what you're doing.