Android Studio 模擬器修改hosts文件的方法 2020.8


因為服務端尚未部署到真正的服務器, 只在本地方便調試。所以安卓訪問接口需要修改hosts文件。但是根據網上的很多教程,直接通過adb命令修改並不好用會提示系統文件只讀。

adb root
// adbd is already running as root
adb remount
// remount succeeded
adb pull /system/etc/hosts
// [100%] /system/etc/hosts
// 這里對拉取的文件進行修改
adb push hosts /etc/hosts
// adb: error: failed to copy 'hosts' to '/etc/hosts': Read-only file system

 

經過一番摸索,總算找到了解決方案。

起初找到的方案是通過adb shell 進入安卓系統命令行,修改文件系統的只讀權限。 但是實際測試發現並沒有用。 包括先將文件推送到模擬器的 /sdcard 目錄,再通過模擬器命令行復制到系統文件夾等方法均以失敗告終。

其實最新的模擬器api已經不允許這樣操作了。 正確的方法是:

在模擬器啟動的時候增加 可寫參數

也就是說,你得先關閉模擬器,然后通過命令行增加啟動參數的方式啟動模擬器,直接通過Android studio 啟動是無法配置參數的。

cd ~/Library/Android/sdk/platform-tools //進入emulator所在的目標文件夾 
emulator -list-avds //列出所有模擬器,方法下一步操作模擬器的名字
emulator -avd Nexus_S_API_24_X86 -writable-system //啟動你想要修改的模擬器,其中 Nexus_S_API_24_X86 即為上一步你列出的要啟動的模擬器名字

這樣啟動成功后再通過上面的方法修改就可以了

adb root //root 運行 
adb remount //掛載文件
adb pull /system/etc/hosts //將模擬器hosts文件拉取到宿主機當前目錄
// 手動在指定文件夾下(本文中放在桌面)打開host文件修改
adb push ~/Desktop/hosts /system/etc/hosts //將修改完成的hosts文件放到模擬器中。 
adb shell cat /etc/hosts //查看host文件是否修改成功

 

參考:https://stackoverflow.com/questions/41117715/how-to-edit-etc-hosts-file-in-android-studio-emulator-running-in-nougat


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM