without - ¿Cómo editar el archivo/etc/hosts en el emulador de Android Studio que se ejecuta en turrón?
android hosts file without root (7)
Aquí es cómo pude hacerlo trabajando en OSX. Después de leer un montón de instrucciones diferentes, nada parece funcionar para mí hasta que alguien mencione que tiene una ventana muy estrecha para copiar el archivo de su disco al dispositivo emulado o se vuelve de solo lectura.
- Arranca tu emulador.
- En su terminal encuentre la carpeta "platform-tools" para sus dispositivos.
- Prepare el archivo de hosts que desea copiar en su dispositivo (en mi caso, lo puse en el escritorio)
- Encadena un montón de comandos para copiar el archivo rápidamente. Esto es lo que funcionó para mí
./adb root && ./adb -s emulator-5554 remount && ./adb -s emulator-5554 push ~/Desktop/hosts /system/etc/hosts
''emulator-5554'' es el nombre de Mi dispositivo que puede encontrar escribiendo./adb devices
Después de eso el terminal respondió con
restarting adbd as root remount succeeded [100%] /system/etc/hosts
usted puede muy bien la copia fue exitosa por ./adb shell
y luego cat /system/etc/hosts
Entonces pude conectarme a mis hosts virtuales desde el dispositivo emulado
Solo para completar aquí es cómo se veía mi archivo de hosts como 10.0.2.2 my-virtual-host
Espero que esto ayude a alguien ya que dedico bastante tiempo tratando de resolver esto.
¿Alguien sabe cómo editar el archivo / etc / hosts dentro de un emulador de Android Studio que se ejecuta en turrón? Lo editaré para poder usar mi host virtual en mi servidor web local. Intenté editarlo a través del terminal usando adb, sin embargo, está devolviendo el sistema de archivos de solo lectura. Intenté también usando chmod pero todavía falla.
Actualización: También intenté extraer y empujar archivos usando adb $ ./adb -s emulator-5554 push ~ / Desktop / hosts / system / etc / hosts
adb: error: no se pudo copiar ''/ Users / Christian / Desktop / hosts'' a ''/ system / etc / hosts'': no se pudo crear el archivo: sistema de archivos de solo lectura
Pruebe la respuesta @POW,
Asegúrese de tener una línea en blanco después de la última entrada del archivo hosts. Si usa pestañas en el archivo hosts, reemplácelas con espacios. Reinicie Android e intente nuevamente:
adb reboot
Pude editar el archivo / etc / hosts al iniciar el emulador con el sistema de escritura y al volver a montar el emulador utilizando adb remount. Después de eso, el archivo hosts dentro del emulador es editable. Intenté empujar / reemplazar el archivo y lo logré.
Puede usar el shell de ADB para editar el archivo cambiando el acceso (solo lectura a RW)
Siga los siguientes 3 pasos:
- Inicie el emulador en modo de escritura:
./emulator -avd <emulator_name> -writable-system
- remount:
adb remount
- attached archivo hosts attached :
adb push hosts /system/etc/
Nota :
- Ejecuta uno y solo un nombre de emulador con los pasos anteriores
-
emulator
ejecutable se encuentra dentro de Android-SDK. Para mi estaba bajosdk/emulator
. - El archivo adjunto de hosts resolverá
www.facebook.com
a 127.0.0.1, por lo tanto, bloqueawww.facebook.com
en el emulador.
Paso a paso
- No cree el AVD con una imagen de Google Play.
- Utilice, por ejemplo, las API de Google Intel x86 Atom System Image .
Inicia el emulador con el siguiente comando ...
emulator.exe –avd <avd name> -writable-system
Por ejemplo:
C:/Users/ilyas.mamun/AppData/Local/Android/Sdk/emulator>emulator.exe -avd Pixel_API_25 -writable-system
emulator: WARNING: System image is writable
HAX is working and emulator runs in fast virt mode.
audio: Failed to create voice `goldfish_audio_in''
qemu-system-i386.exe: warning: opening audio input failed
audio: Failed to create voice `adc''
Raíz y remonte el AVD como los siguientes ...
C:/Users/ilyas.mamun/AppData/Local/Android/Sdk/platform-tools>adb root C:/Users/ilyas.mamun/AppData/Local/Android/Sdk/platform-tools>adb remount remount succeeded C:/Users/ilyas.mamun/AppData/Local/Android/Sdk/platform-tools>adb shell eneric_x86:/ # cd system generic_x86:/system # cd etc generic_x86:/system/etc # cat hosts 127.0.0.1 localhost ::1 ip6-localhost generic_x86:/system/etc # echo "192.168.1.120 ilyasmamun.blogspot.com" >> hosts generic_x86:/system/etc # cat hosts 127.0.0.1 localhost ::1 ip6-localhost 192.168.1.120 ilyasmamun.blogspot.com generic_x86:/system/etc #
1) android-sdk-macosx/tools/emulator -avd <avdname> -writable-system
2) ./adb root
3) ./adb remount
4) ./adb push <local>/hosts /etc/hosts
Host de archivos de Android puede ser
/etc/hosts <--- This worked for me
/etc/system/hosts
/system/etc/hosts
Comprobar
1) ./adb shell
2) cat /etc/hosts
3) ping customsite.com