最近刚开始接触Android,是三星的i809,行货,双网双待,如你所想的——没有GMS。
拿到手第一步就是root,然后装上GMS,然后发现市场不能用,遂开始改host。当时没有注意Linux下Hosts文件的换行要求,添加的大部分内容都没有实际产生作用,但误打误撞就是能用了,google的各项服务都正常。
这两天突发奇想(我所有技术文章里提到这个词就意味着接下来是无穷无尽的折腾)把网上广为流传、常年更新的那个《Google和各种网站的 IPv4 服务hosts》放到手机里,并且用notepad++替换了所有的换行符(确定行末是LF而不是CR LF),谁知产生了如下问题:
1、Latitude无法访问网络
可以获得定位,但无法访问网络下载好友的位置并上传自己的位置。
解决方法:注释掉Maps那一整节,可以保留Satellite View和Street View的部分,也可以不保留(后面会讲原因)
2、Google+客户端无法登陆
体现为Google+不断显示连接断开。
解决方法:注释掉第一段即##Google.com段,可以保留google.com和services.google.com。
3、Google+客户端无法显示图片
仅在电信3G下有此现象,电信有线宽带通过家用路由产生的WIFI无问题。
解决方案:请按照这篇文章作相应修改,但无须改掉第一条,即picadaweb.google.com可以保留为203.208.46.144或其他google.cn的IP
4、SMS Backup+无法连接Gmail
SMS Backup+是一个可以把短信、通话记录甚至彩信备份到Gmail和Calendar的软件,最牛逼的是他还能恢复……可惜用了上述Hosts文件后无法使用(未测试无Hosts文件的情况)。
解决方案:注释掉imap.gmail.com、imap.google.com、imap.googlemail.com、gmail-imap.l.google.com的Host记录,因为这软件是直连imap.gmail.com的993端口的,google.cn的IP群好像不提供这功能。
5、GTasks无法同步
一个非官方的与Gmail的Tasks同步的软件,它也无法连接。
解决方案:注释掉mail.google.com的Host记录,估计它也是直连该域名的某端口。
由于我的PC上使用的是Acrylic DNS Proxy来作为本地DNS服务,它支持通配符,我是暴力地将所有google域名都设置为203.208.46.148的,在PC上很正常,但是到了手机上就有很多服务不能访问,因为手机apps不一定是通过类似浏览器的途径来访问google服务的,对于浏览器有效的google.cn转发未必适用于手机软件。
另一方面,经过研究发现,手机上网(仅测试了电信3G,但根据网上资料,其他运营商似乎也如此)不存在严重的DNS污染和断流现象,对于没有直接封禁的google服务,不妨通过手机自己的解析或者正确的IP(比如上面Google+的图片服务器)来访问,而不需要在hosts文件中用google.cn的IP群来做转发。在我的手机上实测,ping 74.125.71段(官方IP,大陆和香港的正确解析结果)甚至比203.208.46段(google.cn的IP)还要快。
也就是说,对于彻底不能上的服务才需要修改Host,不要在Android系统中添加像PC上那样大而全的Host文件。
明确有必要的Hosts修改大致有:
203.208.46.148 profiles.google.com #用以上google+,未详细测试,可能也不需要 203.208.46.148 market.android.com #用以上官方菜市场 #Twitter,可用官方客户端 199.59.149.243 oauth.twitter.com 199.59.149.243 twitter.com 199.59.149.243 www.twitter.com 199.59.149.243 mobile.twitter.com 199.59.149.243 api.twitter.com 199.59.148.201 search.twitter.com 199.59.148.139 userstream.twitter.com 199.59.149.243 ssl.twitter.com 199.59.149.243 status.twitter.com 199.59.149.243 assets0.twitter.com 199.59.149.243 assets1.twitter.com 199.59.149.243 assets2.twitter.com 199.59.149.243 assets3.twitter.com 199.59.149.243 static.twitter.com 184.29.36.124 platform.twitter.com 219.76.10.138 platform0.twitter.com 199.59.148.206 help.twitter.com 199.59.148.206 support.twitter.com 209.84.4.102 si0.twimg.com 209.84.4.102 si1.twimg.com 209.84.4.102 si2.twimg.com 209.84.4.102 si3.twimg.com 209.84.4.102 si4.twimg.com 209.84.4.102 si5.twimg.com 199.59.149.243 upload.twitter.com 199.59.149.210 t.co
广为流传的修改android.clients.google.com、android.l.google.com、clients2.google.com这三个域名,经测试都是不必要的,没有任何影响。而不管怎么改gmail和gtalk的host,他们的客户端都能正常上。本文提到的Hosts文件里面的有些注释是不对的,比如修改了某一条会影响Gtalk等,是针对IPv6环境下的PC上的Gtalk而言,要追根溯源看问题的原因就明白了。
最后的遗留问题是,不管怎么修改都无法解决Google Docs没法上的问题,PC上改一下host就能解决的问题,Android的客户端死活不认,不知谁能指导一下……
Related posts:
一般而言手机运营商的干扰会比相应的网络运营商大,联通是最明显的。
其实只是你的ip段不太支持罢了,算不上BUG吧。
但我看到很多人说手机上某些被墙的网站都是直接上,联通没测试过,但应该也是类似
至于IP段不太支持,我不知道你是指我用的203.208段不够好(最后一位144-148是最新流行的啊),还是指我拨上的电信3G的IP段碰巧访问google.cn很慢,不管哪种情况,都不可能导致问题1、2、5,所以说对于PC有效的host方式在手机上并不是通用的
有人在g 上问我为什么要修改hosts,其实我的本意是想把docs解决掉,结果还是不行,这一点是最诡异的,按理说我已经用了最全的hosts了,不应该有google服务在我的列表外
至今还在被联通劫持的漂过
我没钱,买写号机,风险自己承担~
骨骼的东西除了gmail,地图,搜索,其他基本不用,用了别人也不用。
Pingback: WilliamGates Blog » Blog Archive » 再谈不要乱改Android的hosts文件