我无法编辑android模拟器的主机文件

时间:2016-12-14 09:31:47

标签: android

我尝试编辑android模拟器的主机文件。我按照以下步骤操作:

step1
adb root
step2
adb remount
step3
adb pull /system/etc/hosts .

然后我为客户主机信息添加新行,然后我推送主机文件,我收到一些错误:

   step4
   adb push hosts /system/etc/hosts

错误信息:

adb: error: failed to copy 'hosts' to '/system/etc/hosts': couldn't create file: Read-only file system

环境信息:

   osx ei capitan  
   android emulator: android 7.1.1  
   android studio: 2.2.2  

3 个答案:

答案 0 :(得分:28)

我遇到了同样的问题并使其发挥作用。

运行模拟器:

emulator -avd <EMULATORNAME> -partition-size 512 -writable-system

我相信-writable-system param是为我修复它的东西。

在另一个终端/ cmd提示符中

adb root

adb -s emulator-5554 remount

adb -s emulator-5554 pull /system/etc/hosts hosts

现在,发挥你的魔力(将IP添加到主机文件)

adb -s emulator-5554 push hosts /system/etc/hosts

其他信息:

  • emulator-5554是设备名称,您可以使用adb devices
  • 找到您的名称
  • 模拟器程序位于android-sdk / tools
  • adb程序位于android-sdk / platform-tools

评论的重要更新:

请在运行adb reboot之前检查steven关于运行adb root的评论。 这对于能够从AVD管理器启动模拟器非常重要。

船长建议在推送主机文件后运行adb reboot以避免黑屏错误。

快乐的调试:)

答案 1 :(得分:2)

推送主机文件后运行adb reboot,您将不再遇到黑屏问题。

答案 2 :(得分:0)

我遇到其他解决方案的问题,所以我测试了很多,现在我决定写另一个答案,我希望它对其他人有用。

以下是我成功的步骤(第10场胜利的Android Studio):

  • 启动Android Studio并打开AVD Manager并启动您的 仿真器。
  • 打开一个powershell并导航到你的android sdk / platform-tools /
  • .\adb.exe reboot -writable-system(您的模拟器应立即重启)
  • .\adb.exe root
  • .\adb.exe remount
  • .\adb.exe pull /system/etc/hosts C:\Temp\hosts
  • Èdityour hosts file
  • .\adb.exe push C:\Temp\hosts /system/etc/hosts
  • .\adb.exe unroot
  • 现在,您可以在模拟器中打开浏览器并打开自定义域,以检查主机文件是否已更改。
  • 单击模拟器的关闭图标以强制关闭快照保存。您应该看到“正在保存状态...”消息。
  • 现在从AVD Manager再次启动您的模拟器。您的hosts文件应该保留。请再次检查您的域名。

在可写系统模式下启动后,无法启动仿真器时出现了非常奇怪的问题,在不执行unroot的情况下生根和停止模拟器。问题是:每当快照失败时,模拟器都会进行冷启动,而主机文件也会消失。在这种情况下,您需要重复所有步骤。