Как редактировать файл/etc / hosts в эмуляторе Android Studio, работающем в нуге?

кто-нибудь знает, как редактировать /etc/hosts файл внутри эмулятора Android studio, работающего в нуге? Я буду редактировать его, чтобы использовать виртуальный хост на локальном веб-сервере. Я попытался отредактировать его через терминал с помощью adb, однако он возвращает файловую систему только для чтения. Пробовал также использовать chmod, но все равно это не удается.

обновление: Я также попытался вытащить и толкать файлы с помощью adb $ ./ ADB-s emulator-5554 push ~ / рабочий стол /хосты/система/etc / хосты

adb: ошибка: не удалось скопировать '/Users / Christian / Desktop / hosts ' to '/ system / etc / hosts': не удалось создать файл: файловая система только для чтения

6 ответов


1) android-sdk-macosx/tools/emulator -avd <avdname> -writable-system
2) ./adb root
3) ./adb remount
4) ./adb push <local>/hosts /etc/hosts

Android файл хост может быть

/etc/hosts <--- This worked for me
/etc/system/hosts
/system/etc/hosts

Регистрация

1) ./adb shell
2) cat /etc/hosts
3) ping customsite.com

вот как я смог это сделать, работая на OSX. После прочтения кучи разных инструкций ничего не работает для меня, пока кто-то не упомянул, что у вас очень узкое окно для копирования файла с вашего диска на эмулируемое устройство или он снова становится доступным только для чтения

  1. запустите эмулятор.
  2. в вашем терминале найдите папку "platform-tools" для ваших устройств
  3. подготовить файл hosts, который вы хотите скопировать на устройство (в моем случае я положил его на рабочий стол)
  4. строка вместе кучу команд, чтобы скопировать файл быстро. Это то, что сработало для меня ./adb root && ./adb -s emulator-5554 remount && ./adb -s emulator-5554 push ~/Desktop/hosts /system/etc/hosts 'emulator-5554' - это имя моего устройства, которое вы можете найти, набрав ./adb devices

после этого терминал ответил

restarting adbd as root remount succeeded [100%] /system/etc/hosts

вы можете veryfy копия была успешной ./adb shell а то cat /system/etc/hosts

затем я смог подключиться к своим виртуальным хостам из эмулируемого устройство

чтобы быть полным, вот как выглядел мой файл hosts как 10.0.2.2 my-virtual-host

Я надеюсь, что это поможет кому-то, как я spet довольно много времени, пытаясь понять это.


Я смог отредактировать файл/etc / hosts, запустив эмулятор с-writable-system и переустановив эмулятор с помощью ADB remount. После этого файл hosts внутри эмулятора можно редактировать. Я попытался нажать / заменить файл и преуспел.


выполните следующие 3 шага :

  1. запустить эмулятор в режиме записи : ./emulator -avd <emulator_name> -writable-system
  2. перемонтировать : adb remount
  3. нажмите файл hosts прикрепленный : adb push hosts /system/etc/

Примечание :

  1. запустите один и только один emulator_name с вышеуказанными шагами
  2. исполняемый файл emulator находится в пределах android-sdk. Для меня это было под sdk/emulator.
  3. прикрепленный файл hosts разрешит www.facebook.com для 127.0.0.1, поэтому блоки www.facebook.com на эмуляторе.

вы можете использовать оболочку ADB для редактирования файла, изменив доступ (только для чтения в RW)


попробуйте @P. O. W ответ,

убедитесь, что у вас есть пустая строка после последней записи файла hosts Если вы используете вкладки в файле hosts, замените их пробелами Перезагрузите Android и повторите попытку:

adb reboot