У меня была такая же проблема. Решение @ emmby звучало так, как будто оно должно делать именно то, что мне нужно, но странно, что оно не сработало Команды выполнялись, но просмотр файла hosts впоследствии показал, что он на самом деле не обновлялся.
Но я провел немного больше исследований и выяснил, в чем проблема.
Основная проблема, с которой я столкнулся, заключалась в том, что операционная система эмулированного устройства уже занимала 100% доступного хранилища, поэтому изменения не записывались в файл hosts. Однако сообщения об ошибке тоже не было.
Полагаю, причина в @emmby не в том, что проблема в том, что проблема варьируется в зависимости от версии Android, которую вы установили на эмуляторе; некоторые версии могут дать вам свободное пространство для работы.
Если у вас есть эта проблема, решение этой проблемы - запустить эмулятор с большим объемом памяти. Это можно сделать с помощью аргумента -partition-size
для команды emulator
, например:
emulator -partition-size 128 @MyEmulatedDevice
Затем вы можете использовать команду adb -e shell
и отредактировать файл в соответствии с ответом @ emmby.
Однако, если редактирование файла из оболочки затруднительно, adb
также дает вам возможность скопировать его из эмулятора в вашу хост-ОС, отредактировать его локально и снова скопировать обратно. Это также имеет дело с перемонтированием. Вы бы сделали это так:
adb pull /system/etc/hosts C:\wherever\you\want\to\save\it
Затем отредактируйте его в своем любимом редакторе.
Затем переустановите эмулятор в режим чтения / записи и скопируйте файл обратно:
adb remount
adb push C:\wherever\you\saved\hosts /system/etc/hosts
Обратите внимание, что, поскольку эмулятор сбрасывается обратно в состояние по умолчанию при каждом его перезапуске, это может быть лучшим решением, поскольку вы можете сохранить отредактированный файл локально, поэтому вам не придется повторять шаги adb pull
и редактирования каждый раз; Вы можете просто запустить эмулятор, сделать remount
и push
, и вы в деле.
Надеюсь, это поможет.