69 votes

Comment puis-je changer le nom de mon appareil Android?

Mon appareil Android est le Nexus One. Mais cela devrait s'appliquer à tous les appareils Android actuels.

Comment puis-je changer le nom de mon appareil Android?

Lorsque je me connecte aux tables des clients de mon routeur sans fil, mon appareil Android est listé par exemple comme : android_1234567890abedfc. J'aimerais lui donner un nom plus lisible.

0 votes

Il est également possible de configurer le nom d'hôte via le serveur DHCP. Mais je n'ai pas vérifié si Android utilise cette option de configuration. Ce n'est de toute façon qu'une option cosmétique.

2 votes

0 votes

@Flow (Varies but) Android DHCPCD n'a pas les dhcpcd-run-hooks pour définir le nom d'hôte à partir du DHCP. Du moins sur mon appareil Samsung Froyo. Il n'a pas non plus les hooks ntp. Cependant, DHCPCD le prend en charge.

22voto

Eder Gusatto Points 341

Pour changer le nom d'hôte (nom de l'appareil), vous devez utiliser le terminal (en tant que root) :

Pour Eclair (2.1) : echo MONNOM > /proc/sys/kernel/hostname

Pour Froyo (2.2) : (fonctionne également sur la plupart des 2.3) setprop net.hostname MONNOM

Ensuite, redémarrez votre Wi-Fi. Pour voir le changement, tapez uname -a

certains appareils nécessitent un redémarrage pour fonctionner !

0 votes

Est-ce que cela fonctionne sur Jelly Bean?

5 votes

Cela fonctionne, mais ne persiste pas au redémarrage.

1 votes

uname -a ne montre pas le nom d'hôte pour moi, même s'il dit localhost. Que vous attendez-vous à ce qu'il montre?

20voto

cde Points 713

Résumé :

  • getprop net.hostname (Nom d'hôte système Android, probablement de type android_24412414)
  • echo $HOSTNAME (nom d'hôte shell/terminal/env, probablement ro.product.device depuis build.prop)
  • cat /proc/sys/kernel/hostname (Nom d'hôte système Linux, probablement localhost)
  • head /etc/hosts (Nom d'hôte système Linux, probablement localhost)
  • hostname (Commande pas toujours installée, si installée via busy box, elle lira /proc/sys/kernel/hostname)

Dépend de la version d'Android que vous avez.

Android 4.0 et supérieur

Les versions récentes utiliseront la bonne entrée de build.prop. En d'autres termes, Android lit le build.prop lors de son processus de démarrage normal. Une fois que le service de connectivité est en cours d'exécution, il vérifie si net.hostname est défini dans les paramètres, puis si c'est vide, alors il utilise l'ID Android "android_" + (ID Android permanent). Donc c'est tout ce que vous avez à faire.

Ajoutez net.hostname=HOSTNAMEICI à /system/build.prop (Un accès root peut être nécessaire). Laissez une ligne vide à la fin du fichier.

ConnectivityService.java de Kitkat, remarquez l'instruction IF isEmpty:

    // configuration de notre nom de périphérique unique
    if (TextUtils.isEmpty(SystemProperties.get("net.hostname"))) {
        String id = Settings.Secure.getString(context.getContentResolver(),
                Settings.Secure.ANDROID_ID);
        if (id != null && id.length() > 0) {
            String name = new String("android-").concat(id);
            SystemProperties.set("net.hostname", name);

Android 2.3 et inférieur

Les anciennes versions, Gingerbread, Froyo, etc., écrasent simplement cela. Elles ne prennent pas la peine de vérifier. Elles définiront net.hostname sur android_24412414... quoi qu'il en soit. Vous devrez donc le changer après que le service de connectivité ait fini de se charger. Heureusement, il ne s'exécute qu'une fois au démarrage, pas à chaque nouvelle connexion. Il suffit donc d'exécuter setprop net.hostname NOMHOTEICI après cela pour que cela reste. Malheureusement, cela se produit assez tard dans le processus de démarrage, vous avez donc besoin de quelque chose qui apportera les modifications une fois le démarrage terminé. Très probablement une application qui s'exécute seule.

ConnectivityService.java de Froyo:

    // configuration de notre nom de périphérique unique
    String id = Settings.Secure.getString(context.getContentResolver(),
            Settings.Secure.ANDROID_ID);
    if (id != null && id.length() > 0) {
        String name = new String("android_").concat(id);
        SystemProperties.set("net.hostname", name);

Mais alors il y a un autre problème.

Le paramètre net.hostname n'est pas copié sur l'ensemble du système ! Si vous utilisez une application console/terminal, vous pourriez ne pas obtenir le même nom d'hôte. Mon téléphone, un Samsung Sidekick 4G (basé sur semi-Galaxy S) a un init.rc qui exécute hostname localhost, donc toutes les commandes en dessous ne verront pas non plus votre nom d'hôte build.prop ou le nom d'hôte android_id ! Vous devez donc également le définir.

hostname NOMHOTEICI ou echo NOMHOTEICI > /proc/sys/kernel/hostname

Remarque : Selon la manière dont vous le faites, vous devrez exécuter la commande ci-dessus en tant que root pour que cela fonctionne. Init.rc se trouve généralement sur la partition système en lecture seule, donc un accès root est nécessaire pour le modifier.

La commande dhcpcd, qui est exécutée pour obtenir une adresse dhcp, ne mettra pas à jour vers un nom d'hôte fourni par le serveur (Cela peut être corrigé en ajoutant les bons dhcpcd-run-hooks et dhcpcd.conf), et elle ne fournira pas de nom d'hôte au serveur dhcp si $(hostname) (La commande hostname) est vide ou localhost, et elle n'utilise pas internalement net.hostname. libnetutils est utilisé pour appeler dhcpcd avec -h "net.hostname", mais si pour une raison quelconque il décide de ne pas appeler avec -h, DHCPCD ENVERRA QUAND MÊME LE NOM D'HÔTE DU SYSTÈME via gethostname(), tant que ce n'est pas "(none)", "localhost" ou vide. En tout cas, sur Froyo stock. Samsung a foiré sur certains appareils comme le mien. Pas de passage de nom d'hôte, temps réseau forcé, etc.

Ma solution pour Gingerbread et les Samsung antérieurs, Modifier la configuration du client DHCP :

La dernière chose que vous pouvez faire est de modifier /etc/dhcpcd/dhcpcd.conf. Si vous ajoutez hostname VOTRENOMHOTE au fichier, il l'utilisera, sauf si un nom d'hôte est donné en ligne de commande. Cela ne résoudra pas le problème de android_234etc, mais le résoudra si le nom d'hôte est localhost (Mon problème, puisque Samsung a bricolé libnetutils et localhost dans init.rc). Vous aurez besoin des droits root, mais cela fonctionne à travers les redémarrages. Cela ne fonctionnera pas si dhcpcd est appelé avec l'option -h Nomhote.

0 votes

Qui utilise Android 2.3? Est-ce que cette version fonctionne encore en 2020? Les liens de 2008 fonctionnent toujours, c'est incroyable.

0 votes

@user3123159 eh bien, j'ai répondu à cela en 2014...

11voto

philnash Points 8783

J'ai trouvé un moyen de le faire sur mon Nexus 7 rooté avec la version 4.2.2. Le paramètre est enregistré de manière persistante et fonctionne à travers les redémarrages.
Source: http://nileshgr.com/2012/10/13/how-to-change-wifi-host-name-of-your-android-device

  1. Remarque : l'appareil doit être rooté pour utiliser adb
  2. Exécutez adb pull /system/build.prop
  3. Modifiez le fichier build.prop et ajoutez net.hostname=NewHostname
  4. Exécutez adb push build.prop /sdcard/build.prop (ou /mnt/sdcard, si cela échoue)
  5. Exécutez adb shell et exécutez les commandes suivantes:
    $ su
    # mount -o rw,remount /system
    # cp /sdcard/build.prop /system/build.prop (ou /mnt/sdcard si vous l'avez utilisé précédemment)
    # mount -o ro,remount /system
    # exit
  6. Redémarrez l'appareil

0 votes

Cela a été corrigé dans les versions plus récentes d'Android. Il vérifie net.hostname depuis le build.prop. Les anciennes versions d'Android ne le font pas (principalement Froyo, peut-être Gingerbread).

0 votes

ICS n'est pas 4.2.2, ce serait JB

0 votes

Une façon plus facile de faire cela est d'utiliser la commande setprop via une racine shell sur l'appareil: par exemple setprop net.hostname NouveauNomHôte

9voto

Cela fonctionne sur CyanogenMod et probablement sur d'autres ROM modifiées mais pas sur les ROMs stock AOSP:

Allez dans Paramètres > Options pour les développeurs et faites défiler jusqu'à Hostname du périphérique. Pas besoin de root.

(Cliquez sur l'image pour l'agrandir)

IMG:

2 votes

Oui, vous ne pouvez pas le faire sur une tablette Acer A100 fonctionnant sous Android 4.0.3. En fait, il n'a même pas de "Nom de l'appareil" dans les Options pour les développeurs.

7voto

Superman Points 1226

Je n'ai pas exécuté d'inventaire depuis longtemps mais dans Paramètres de l'application > Développement, vous verrez l'option 'Nom d'hôte de l'appareil'.

0 votes

Sur quelles versions d'Android? Quand je regarde les options de développement sur mon Droid 3 (Android 2.3.4), je n'ai pas cette option.

4 votes

Cela fonctionne sur CyanogenMOD et probablement sur d'autres ROM modifiées, mais pas sur les ROMs stock AOSP.

0 votes

Entièrement dépendant du fabricant et du constructeur, ainsi que de la version d'Android.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X