2016-12-13 9 views
5

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

Update: Я также пытался тянуть и толкать файлы с помощью ADB $ ./adb -s эмулятор-5554 толчок ~/Desktop/хосты/системы/и т.д./хосты

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

+0

вам нужно использовать ADB для этого, это правда. покажите, как вы пробовали. –

+0

Я пытался вытащить и нажимать файлы с помощью adb, но он все равно возвращает файловую систему только для чтения – BradlyMan

ответ

3

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

0

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

+0

Я попытался использовать chmod внутри оболочки, но он возвращает файловую систему только для чтения. Но когда я ввожу whoami в shell, он возвращает root. – BradlyMan

+0

@BradlyMan Не chmod, попробуйте переустановить файловую систему в RW 'mount -o rw, remount, rw ' –

+0

попытался ввести команду «mount -o, remount, rw/etc/hosts» и «mount -o, remount, rw/etc ", возвращает mount: 'etc/hosts/not in/proc/mounts – BradlyMan

7

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

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

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

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

вы можете veryfy копия была преуспевающая по ./adb shell, а затем cat /system/etc/hosts

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

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

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

+0

Мне нужно было разделить команду на шаге 4. на две части: сначала «adb root», а затем «adb remount && adb push». Но, спасибо вам, в любом случае - написание команд вместе решило мою проблему, которую я не мог решить в часах ... –

1

Следуйте ниже 3 шага:

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

Примечание:

  1. Запустите одно и только одно имя эмулятора с вышеуказанными шагами
  2. исполняемый файл emulator находится в android-sdk. Для меня это было под sdk/emulator.
  3. Файл прикрепленных файлов разрешает www.facebook.com до 127.0.0.1, следовательно блокирует www.facebook.com на эмуляторе.
5
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 
+1

Мне очень понравилось, насколько кратким представлено решение, хотя это почти то же самое, что и другие ответы здесь. –