web-dev-qa-db-fra.com

Comment éditer le fichier/etc/hosts dans l'émulateur Android Studio s'exécutant dans le nougat?

Quelqu'un sait comment éditer le fichier/etc/hosts dans un émulateur de studio Android fonctionnant dans le nougat? Je vais le modifier pour pouvoir utiliser mon hôte virtuel sur mon serveur Web local. J'ai essayé de le modifier via terminal en utilisant adb cependant, il retourne le système de fichiers en lecture seule. Essayé aussi en utilisant chmod mais ça échoue quand même.

Mise à jour: J'ai également essayé d'extraire et de transférer des fichiers avec adb $ ./Adb -s emulator-5554 Push ~/Bureau/hôtes/système/etc/hosts

adb: error: impossible de copier '/ Users/Christian/Desktop/hosts' vers '/ system/etc/hosts': impossible de créer le fichier: système de fichiers en lecture seule

17
BradlyMan

J'ai pu modifier le fichier/etc/hosts en lançant l'émulateur avec -writable-system et en remontant l'émulateur à l'aide de adb remount. Après cela, le fichier hosts à l'intérieur de l'émulateur est éditable. J'ai essayé de pousser/remplacer le fichier et j'ai réussi. 

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

Fichier Android hôte peut être

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

Vérifier

1) ./adb Shell
2) cat /etc/hosts
3) ping customsite.com
43
P.O.W.

Voici comment j'ai été capable de le faire fonctionner sous OSX. Après avoir lu un tas d'instructions différentes, rien ne semblait fonctionner pour moi jusqu'à ce que quelqu'un dise que vous avez une fenêtre très étroite pour copier le fichier de votre disque sur le périphérique émulé ou qu'il redevient en lecture seule.

  1. Lancez votre émulateur.
  2. Dans votre terminal, trouvez le dossier "platform-tools" pour vos appareils.
  3. Préparez le fichier hosts que vous voulez copier sur votre appareil (dans mon cas, je le mets sur le bureau)
  4. Enchaînez plusieurs commandes pour copier le fichier rapidement. C’est ce qui a fonctionné pour moi. ./adb root && ./adb -s emulator-5554 remount && ./adb -s emulator-5554 Push ~/Desktop/hosts /system/etc/hosts 'émulateur-5554' est le nom de mon appareil que vous pouvez trouver en tapant ./adb devices.

après que le terminal a répondu avec 

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

vous pouvez même vérifier que la copie a été réussie avec ./adb Shell et ensuite cat /system/etc/hosts

J'ai ensuite pu me connecter à mes hôtes virtuels à partir du périphérique émulé

Pour être complet, voici à quoi ressemblait mon fichier hosts 10.0.2.2 my-virtual-Host

J'espère que cela aidera quelqu'un pendant que je passe du temps à essayer de comprendre cela.

10
Mask Ota

Suivez les 3 étapes ci-dessous: 

  1. Démarrer l'émulateur en mode écriture: ./emulator -avd <emulator_name> -writable-system
  2. remonter: adb remount
  3. Poussez le fichier hosts attaché : adb Push hosts /system/etc/

Remarque :

  1. Exécuter un et un seul nom_émulateur avec les étapes ci-dessus
  2. le fichier exécutable emulator est situé dans Android-sdk. Pour moi, c'était sous sdk/emulator.
  3. Le fichier d'hôtes attaché résoudra www.facebook.com à 127.0.0.1, bloquant ainsi www.facebook.com sur l'émulateur.
3
shailesh mota

Pas à pas

  1. Ne créez pas l’AVD avec une image Google Play.  
  2. Utilisez par exemple API Google Intel x86 Atom System Image
  3. Démarrez l'émulateur avec la commande suivante…

    emulator.exe –avd <avd name> -writable-system
    

Par exemple:

    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. Racinez et remontez l’AVD comme suit…

    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 #
    
2

Vous pouvez utiliser le shell ADB pour éditer le fichier en modifiant l'accès (lecture seule à RW)

1
Cyprien Aubry

Essayez @ P.O.W répondre, 

Assurez-vous de laisser une ligne vide après la dernière entrée du fichier hosts Si vous utilisez des tabulations dans le fichier hosts, remplacez-les par des espaces Redémarrez Android et essayez à nouveau:

adb reboot
0
Sam