轉載自: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來修改。
為方便操作,可以將壓縮包中的adb[1. adb(Android Debug Bridge)是Android提供的一個通用的調試工具,借助這個工具,我們可以管理設備或手機模擬器的狀態。]程序連文件夾解壓縮到C盤。
步驟如下:
1、獲得root權限:adb root2、設置/system為可讀寫:adb remount3、將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.com127.0.0.1 host2.example.com127.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 remountadb push hosts /system/etc/hosts
修改完成后,回到手機,可以在此操作unmount /system,變回 mounts /system,按返回鍵回到CM Recovery 菜單界面選擇第一項reboot 重啟即可。
重啟后,可以在pc端驗證一下adb shellcd /system/etccat hosts看到顯示出一堆你hosts中修改的ip地址,說明已經OK.
以上方式同樣適用于刪除system中的系統程序.adb shellcd /system/appls查找到你要刪除的文件(如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.
新聞熱點
疑難解答