Android Studio 模擬器修改hosts檔案的方法 2020.8
阿新 • • 發佈:2020-07-30
因為服務端尚未部署到真正的伺服器, 只在本地方便除錯。所以安卓訪問介面需要修改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檔案是否修改成功