Android 修改HOSTS解决办法,android下修改hosts文件不起作用(无效)的解决办法.

jackxiang 2015-12-17 13:15 | |
背景:想测试android的pad浏览器屏幕的显示情况,而测试机没有网络,如果用wifi热点作fiddler2的代理也成,可是不是人人都有代理,最好是修改一下host文件。
最近在做的项目要通过域名调用内网的服务器,因为android模拟器host文件无法修改,导致无法通过域名使用http方法调用内网服务,因此从网上大量转载的一种方法,这种方法:

    1. 通过emulator -avd avdName -partition-size 128 启动模拟器

    2.通过adb root 和 adb remount 命令获得root权限。

    3.通过 adb pull /system/etc/hosts 命令将hosts文件转移到PC上,手动修改hosts,并且通过adb push将hosts文件再推送回去。

     这个问题是因为linux中的换行符和window中的回车换行不一致引起的,网上大部分方法是让利用ultraedit等编辑器直接修改,但是我复制到编辑器上依然无法修改。上贴中的malbers回复说,利用echo命令,可以直接通过命令将需要修改的内容添加到hosts文件中,试了一下,果然可行。

     首先键入 adb shell 命令(新版本的sdk adb命令被转移到了platform-tools目录中),然后echo 192.168.0.246 www.aaa.com>>/system/etc/hosts,敲入上面这条命令后,再使用 cat /system/etc/hosts查看hosts文件修改情况,发现hosts果然已经被修改,但是问题是依然没有换行,貌似只有换行了以后才能被识别,

因此再次利用echo命令加入了换行符,问题解决。具体操作如下:

     前面几个步骤不变,但是不需要将hosts文件pull到电脑上,如果你已经修改了但是无效,可以先pull出来,还原到原始状态,不要有任何换行,并替换掉

模拟器上已经修改的hosts,使它回复到原始状态。即只有127.0.0.1 localhost。

    然后进入adb shell , 使用 echo -e \\n >> /system/etc/hosts 为hosts文件加入换行符。

    再次使用 echo 192.168.0.246 www.aaa.com >> /system/etc/hosts 。

    这样就完整解决了换行问题。再次在浏览器中敲入www.aaa.com,熟悉的页面也出现了。
转自:http://blog.csdn.net/landen11/article/details/7022376


首先请确认你修改的是文件是 /system/etc/hosts ,如果不是,那你即使改了也无效。

其次,如果你是在windows下修改hosts文件,那就必须注意换行符的问题,以及hosts文件格式的问题:

android下的hosts文件必须像以下这样写:

IP 域名

注意:

在IP和域名之间保留一个空格 每行只能有一个域名,不能一个IP后面跟多个域名。
android上的换行符(也就是回车)是LF,也就是\n,而windows上的换行符是CR LF,也就是\r\n
所以在windows下用记事本之类的软件编辑了hosts文件,放到手机上肯定认不出来的!解决的办法就是用NotePad++之类的文本编辑器,再使用“查找替换”,将“\r\n”替换成“\n”(注意要在notepad++里把查找模式设置为扩展模式,才能识别转义字符\r\n)
如果是在windows下编辑hosts,要保证最后一行结尾也是“\n”


终于搞掂!!!

转自:https://plus.google.com/105237252862440264277/posts/CF9F42e4axj

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/8387/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]