Как изменить имя моего Android-устройства?

Мое Android-устройство - это Nexus One. Но это должно применяться ко всем текущим устройствам Android.

Как изменить имя моего Android-устройства?

Когда я подключаюсь к клиентским таблицам моего беспроводного маршрутизатора, мои устройства Android отображаются, например, как: android_1234567890abedfc. Я хотел бы дать ему более читаемое имя.

54 голоса | спросил spong 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 13 Sep 2010 23:31:27 +0400 2010, 23:31:27

6 ответов


22

Чтобы изменить имя хоста (имя устройства), вы должны использовать терминал (от имени пользователя root):

Для Eclair (2.1): echo MYNAME> /Труды /SYS /ядро ​​/имя хоста

Для Froyo (2.2): (работает и на большинстве 2.3) setprop net.hostname MYNAME

Затем перезапустите wi-fi. Чтобы увидеть изменение, введите uname -a

некоторым устройствам требуется перезагрузка для работы!

ответил Eder Gusatto 28 12011vEurope/Moscow11bEurope/MoscowMon, 28 Nov 2011 21:40:52 +0400 2011, 21:40:52
15

Резюме:

  • getprop net.hostname (имя системного хоста Android, вероятно, имя типа android_24412414)
  • echo $HOSTNAME (shell /terminal /env hostname, скорее всего ro.product.device из build.prop)
  • cat /proc/sys/kernel/hostname (системное имя хоста Linux, вероятно localhost )
  • head /etc/hosts (Linux System Hostname, вероятно localhost )
  • hostname (команда не всегда устанавливается, если она установлена ​​через загруженный ящик, будет читать /proc /sys /kernel /hostname )

В зависимости от версии Android у вас есть.

Android 4.0 и выше

В новых версиях будет использоваться правая запись build.prop. Ну, то есть Android читает build.prop, так как это обычный процесс загрузки. После запуска Connectivity Service он проверяет, установлено ли net.hostname в настройках, а затем пустое, а затем используется android_ + (постоянный) идентификатор Android. Итак, это все, что вам нужно сделать.

Добавить net.hostname=HOSTNAMEHERE в /system/build.prop (может понадобиться Root). Оставьте пустую строку в конце файла.

ConnectivityService.java Kitkat, обратите внимание на инструкцию IF isEmpty :

    // setup our unique device name
    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 и ниже

Старые версии, пряники, Froyo и т. д., просто сбивают его. Это не нужно проверять. Он установит net.hostname на android_24412414 ... независимо от того, что. Поэтому вам нужно будет изменить его после завершения загрузки службы Connectivity. К счастью, он запускает запуск только один раз, а не на каждом новом соединении. Поэтому нам просто нужно запустить setprop net.hostname HOSTNAMEHERE после этого для этого. К сожалению, он работает довольно поздно в процессе загрузки, поэтому вам нужно что-то, что внесет изменения в boot_complete. Скорее всего, приложение, которое работает само по себе.

ConnectivityService.java от Froyo :

    // setup our unique device name
    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);

Но тогда есть еще одна проблема.

Значение net.hostname не копируется во всю систему! Если вы используете консольное /терминальное приложение, вы можете не получить одно и то же имя хоста. Мой телефон Samsung Sidekick 4G (на базе полугалактики S) имеет init.rc, который запускает hostname localhost, поэтому все под командами не будут видеть ни ваше имя сборки build.prop, ни имя хоста android_id! Поэтому вам тоже нужно установить это.

  

hostname HOSTNAMEHERE или echo HOSTNAMEHERE > /proc/sys/kernel/hostname

Примечание. В зависимости от того, как вы это делаете, вам нужно запустить указанную выше команду как root, чтобы она работала. Init.rc обычно находится в системном разделе только для чтения, поэтому для его редактирования необходим root-доступ.

Команда dhcpcd, которая запускается для получения адреса dhcp, не будет обновляться до имени хоста, предоставляемого сервером (это можно устранить, добавив правильные dhcpcd-run-hooks и dhcpcd.conf), и это не будет укажите имя хоста на сервере dhcp, если $(hostname) (команда hostname) пуст или localhost, и он не использует внутреннее имя net.hostname. libnetutils используется для вызова dhcpcd с -h "net.hostname", но если по какой-то причине он решает не звонить с помощью -h, DHCPCD WILL STILL ОТПРАВИТЬ СИСТЕМУ HOSTNAME через gethostname (), если это не " (none) "," localhost "или пусто. В наличии Froyo в любом случае. Самсунг прикрутил пух на некоторых устройствах, подобных моим. Никакое имя хоста не проходит, принудительное сетевое время и т. Д.

Мое решение для пряников и ниже Samsung, отредактируйте конфигурацию DHCP-клиента DHCP:

Последнее, что вы можете сделать, это отредактировать /etc/dhcpcd/dhcpcd.conf. Если вы добавите в файл hostname YOURHOSTNAME, он будет использовать это, если в командной строке не указано имя хоста. Это не исправит проблему android_234etc, но будет, если имя хоста является localhost (моя проблема, так как Samsung прикрутил libnetutils иlocalhost в init.rc). Вам понадобится Root, но это работает при перезагрузках. Это не будет работать, если dhcpcd вызывается с параметром -h Hostname.

ответил cde 4 Jpm1000000pmSat, 04 Jan 2014 23:21:33 +040014 2014, 23:21:33
10

Я нашел способ сделать это на моем укоренившемся Nexus 7 с 4.2.2. Настройки сохраняются постоянно и работают во время перезагрузки.
Источник: http: //nileshgr.com/2012/10/13/how-to-change-wifi-host-name-of-your-android-device

  
  1. Обратите внимание, что устройство должно быть внедрено для использования adb
  2.   
  3. Запустите adb pull /system/build.prop
  4.   
  5. Отредактируйте файл build.prop и добавьте net.hostname=NewHostname
  6.   
  7. Запустите adb push build.prop /sdcard/build.prop (или /mnt/sdcard, если он не работает)
  8.   
  9. Запустите adb shell и выполните следующие команды:
    $ su
    # mount -o rw,remount /system
    # cp /sdcard/build.prop /system/build.prop (или /mnt/sdcard, если вы использовали это ранее)
    # mount -o ro,remount /system
    # exit
  10.   
  11. Перезагрузите устройство.
  12.   
ответил Lennart 12 PMpFri, 12 Apr 2013 14:00:53 +040000Friday 2013, 14:00:53
9

Это работает на CyanogenMod и, возможно, на других модифицированных ПЗУ, но не на AOSP ROM:

Перейдите в раздел Настройки> Параметры разработчика и прокрутите вниз до Имя хоста устройства . Корень не нужен.

(Нажмите, чтобы увеличить)

 IMG:

ответил cbabb 19 Jpm1000000pmSun, 19 Jan 2014 13:28:58 +040014 2014, 13:28:58
7

Я не заработал в течение длительного времени, но в настройках приложения> В разработке вы увидите опцию «Device hostname».

ответил Tim T 29 22011vEurope/Moscow11bEurope/MoscowTue, 29 Nov 2011 10:35:12 +0400 2011, 10:35:12
5

Перейдите в Google Play Store. Найдите «имя хоста» и загрузите приложение имя хоста .

Необходимо внедрить корни.

ответил Ryan Knell 26 AMpFri, 26 Apr 2013 10:24:47 +040024Friday 2013, 10:24:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132