3 votos

Editar el archivo de hosts en el estudio de Android estropeó mi emulador

Tuve que editar el archivo de hosts de mi emulador para conectarme a un entorno de desarrollo local. He seguido estos pasos:

Ponga en marcha el emulador:

~/Library/Android/sdk/tools/emulator -writable-system -avd Nexus_5_API_19

En otro terminal/computadora:

adb reboot

adb root

adb -s emulator-5554 remount

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

add the IP to host file

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

adb reboot

Ahora, cada vez que trato de iniciar mi emulador desde el AVD Manager no responde. Siempre tengo que iniciarlo con:

 ~/Library/Android/sdk/tools/emulator -writable-system -avd Nexus_5_API_19

Menciono que trabajo en High Sierra.

Mención: Lo he intentado con adb para hacer que mi emulador rw pero no me permitía empujar el archivo de mis anfitriones.

1voto

Gugelhupf Puntos 111

Hay otra forma de manipular el /etc/hosts (se necesita un Linux máquina )

Usa el system.img que viene de Google

ir a la página de inicio del SDK de Android

  1. cd $ANDROID_HOME

encontrar el system.img adecuado para su emulador

  1. sudo mount -w system-images/Android-25/google_apis/x86_64/system.img

editar el archivo /etc/hosts

  1. sudo vi /mnt/etc/hosts
  2. sudo umount /mnt

Crear un emulador (desde Android Studio)

  1. Gerente de ASD
  2. "Crear dispositivo virtual"
  3. Nexus 5X
  4. Siguiente
  5. Pestaña x86 Imágenes
  6. Nougart - 25 - x86_64
  7. Siguiente
  8. "Nombre del AVD" : "Nexus 5X API 25 con hosts WLAN"
  9. Acabado

He tomado este camino porque emulador -sistema de escritura -avd xx no funcionó en mi entorno. También montar el system.img en mi directorio ~/.Android/avd/xxxx ya no funcionaba.

1voto

Nick Canzoneri Puntos 1574

Paso a paso

  1. No cree el AVD con Imagen de Google Play.

  2. Utilice por ejemplo API de Google Imagen del sistema Intel x86 Atom .

  3. Inicie 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'
  1. Arraigue y vuelva a montar 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.181     sandbox.dmoney.com.bd" >> hosts
    generic_x86:/system/etc # cat hosts
    
    127.0.0.1       localhost
    ::1             ip6-localhost
    192.168.1.181     sandbox.dmoney.com.bd
    generic_x86:/system/etc #

0voto

xavier_fakerat Puntos 1

Tal vez la razón por la que no puedes volver a montar adb como Root es que estás usando una imagen de emulador de producción en lugar de una imagen de depuración ver: ADB Root no funciona en el emulador

Para superar esto trata de rootear tu avd como que se describe aquí y luego instalar un editor de los anfitriones para modificar fácilmente el archivo de hosts. Intenta reiniciar como siempre, ya que todavía necesitas añadir con -writable -system para que los cambios persistan.

Este problema ocurre porque el emulador del estudio Android ha sido cambiado y la partición /system es ya no se puede escribir entre reinicios .

Una solución alternativa será reemplazar los archivos originales en <sdk_path>/system-images/android-xx/default/x86/system.img .

  • Copia el system.img : cp /home/a/Android/Sdk/system-images/android-xx/default/x86/system.img ~/.android/avd/[avdname].avd/system-qemu.img

  • Ponga el nuevo system.img en .android/avd/avd name/ . Renombrarlo a system-qemu.img por lo que el emulador usará esta nueva imagen en lugar de la original, y esto no lo harán sus otros emuladores.

0 votos

Perdonad la tardanza en la respuesta, he estado fuera estos días. He intentado copiar el system.img pero parece que no puedo encontrarlo en /home/a/Android/Sdk/system-images/Android-xx/default/x86/system.img No parece encontrar system-images en ninguna parte en realidad

0 votos

Y no estoy usando una imagen de producción

0 votos

He copiado con éxito system.img pero ha restablecido mi archivo de hosts

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X