您的位置:首页 > 移动开发 > Android开发

Android下修改hosts文件

2015-11-07 17:23 573 查看



Android下修改hosts文件-重启有效

2011/08/16





转自 http://irising.me/2011/08/9691/

由于某些原因,可能需要指定域名对应的IP地址。Android是基于Linux的系统,与Linux类似,通过hosts文件来设置。先通过各种方法让Android手机获取Root权限。然后通过adb程序访问手机,以命令行方式来替换hosts文件。
在Android下,/etc是link到/system/etc的,我们需要修改/system/etc/hosts来实现。但是这个文件是只读,不能通过shell直接修改。可以通过连接到PC上使用adb来修改。



1、ADB 命令行替换法

为方便操作,可以将压缩包中的adb[1. adb(Android Debug Bridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态。]程序连文件夹解压缩到C盘。

步骤如下:

1、获得root权限:adb root

2、设置/system为可读写:adb remount

3、将hosts文件复制到PC:adb pull /system/etc/hosts (此时adb文件夹下已经有了复制到PC上的hosts文件)

4、修改PC机上文件

5、将PC机上文件复制到手机:adb push hosts /system/etc/hosts

如果要查看是否修改成功,可以在PC上执行adb shell,运行cat /system/etc/hosts;或者在手机上运行cat /system/etc/hosts。

hosts文件格式的写法应该是每个域名一行才能使用,例如:

127.0.0.1 host1.example.com

127.0.0.1 host2.example.com

127.0.0.1 host3.example.com

ps:如何判断手机是否已经root了,输入adb shell回车,su 回车,如果出现#,那么你的手机的确ROOT了。

另:文件稍微大点,输入完命令就提示out of memory,在网上找到的解决办法都是针对模拟器的.后来通过下面的方式彻底搞定.

2、针对ROOT但是S-ON的解决方案(猪哥的实践)

我的手机是Legend ,HBOOT-1.0.1 s-on(因为s-on被论坛很多帖子误导),按照以上方式修改后重启就还原了,小郁闷。不过最终还是搞定,感谢hero_213的博文,由于刷的ROM是CM
Legend,内置程序中包含CM Recovery(固件管理器中),可以进入Recovery Mode中的shell进行修改。

具体方法:进入固件管理器,选择重启进入恢复模式。

手机重启后会进入CM Recovery 菜单界面,滑动选择 – mounts and storage 项,确认进入.选择第一项 mounts /system,确认后会变成 unmount/system;





由PC端输入以下命令,也就是由PC上复制已经改好的hosts文件到手机。(以下是假定adb程序和修改后的hosts在同一个文件夹)

adb remount

adb push hosts /system/etc/hosts

修改完成后,回到手机,可以在此操作unmount /system,变回 mounts /system,按返回键回到CM Recovery 菜单界面选择第一项reboot 重启即可。

重启后,可以在pc端验证一下

adb shell

cd /system/etc

cat hosts

看到显示出一堆你hosts中修改的ip地址,说明已经OK.

以上方式同样适用于删除system中的系统程序.

adb shell

cd /system/app

ls

查找到你要删除的文件(如Talk.apk)将其删除之:

rm Talk.apk(如果还有同名的只是后缀不同,也可以用Talk.*)

重启手机就OK了.

3、使用R.E管理器直接替换

这种方法适合已经ROOT,并且S-OFF的手机,直接将hosts文件复制/system/etc/目录替换系统原来的即可。

4、安装 Android 自动改 Hosts工具

适合已经ROOT,并且S-OFF的手机,安装附件中的 Android 自动改 Hosts.apk.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: