Androidデバイスの名前を変更するにはどうすればよいですか?


59

私のAndroidデバイスはNexus Oneです。ただし、これは現在のすべてのAndroidデバイスに適用する必要があります。

Androidデバイスの名前を変更するにはどうすればよいですか?

ワイヤレスルーターのクライアントテーブルに接続すると、android_1234567890abedfcのようにAndroidデバイスがリストされます。もっとわかりやすい名前を付けたいと思います。


DHCPサーバー経由でホスト名を構成することもできます。しかし、アンドロイドがこの構成オプションを使用しているかどうかは確認していません。とにかく化粧品のオプションです。
フロー


@Flow(さまざまですが)Android DHCPCDには、DHCPからホスト名を設定するためのdhcpcd-run-hooksがありません。私のSamsung Froyoデバイスで少なくとも。ntpフックもありません。ただし、DHCPCDはサポートしています。
CDE

GNU Linuxの場合:askubuntu.com/questions/9540/how-do-i-change-the-computer-name、低レベルカーネルメソッドが機能します
Ciro Santilli新疆改造中心法轮功六四事件

回答:


22

ホスト名(デバイス名)を変更するには、ターミナルを(ルートとして)使用する必要があります。

Eclair(2.1)の場合:エコーMYNAME> / proc / sys / kernel / hostname

Froyo(2.2)の場合:(ほとんどの2.3でも動作します)setprop net.hostname MYNAME

次に、wi-fiを再起動します。変更を確認するには、una​​me -aと入力します。

一部のデバイスは作業のために再起動する必要があります!


これはジェリービーンで機能しますか?
jrg

3
これは機能しますが、再起動しても持続しません。
palswim

1
uname -aとは言っていますが、ホスト名は表示されませんlocalhost。何を期待していますか?
エンドリス

15

概要:

  • getprop net.hostname (Androidシステムのホスト名、おそらくandroid_24412414タイプ名)
  • echo $HOSTNAME (shell / terminal / envホスト名、おそらくbuild.propのro.product.device)
  • cat /proc/sys/kernel/hostname(Linuxシステムのホスト名、おそらくlocalhost
  • head /etc/hosts(Linuxシステムのホスト名、おそらくlocalhost
  • hostname(コマンドが常にインストールされているわけではなく、ビジーボックス経由でインストールされた場合、/ proc / sys / kernel / hostnameが読み取られます)

使用しているAndroidのバージョンによって異なります。

Android 4.0以降

新しいバージョンでは正しいbuild.propエントリが使用されます。つまり、Androidはbuild.prop通常のブートプロセスとして読み取ります。接続サービスが実行されると、net.hostnameが設定で設定されているかどうかを確認し、空の場合は「android _」+(永続)Android IDを使用します。それで、あなたがする必要があるのはそれだけです。

追加net.hostname=HOSTNAMEHERE/system/build.prop(ルートが必要な場合があります)。ファイルの最後に空白行を残します。

KitkatのConnectivityService.javaでは、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以前

古いバージョン、Gingerbread、Froyoなどは、単にそれを壊します。確認する必要はありません。net.hostnameをandroid_24412414に設定します...何があっても。そのため、接続サービスの読み込みが完了した後に変更する必要があります。幸いなことに、すべての新しい接続ではなく、スタートアップを1回だけ実行します。したがってsetprop net.hostname HOSTNAMEHERE、それを実行するには、それを実行するだけです。残念ながら、ブートプロセスのかなり遅い段階で実行されるため、boot_completeに変更を加えるものが必要です。ほとんどの場合、単独で実行されるアプリです。

FroyoのConnectivityService.java

    // 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は読み取り専用のシステムパーティション上にあるため、編集するにはルートアクセスが必要です。

dhcpアドレスを取得するために実行されるdhcpcdコマンドは、サーバーが提供するホスト名に更新されません(正しいdhcpcd-run-hooksとdhcpcd.confを追加することで修正できます)。ホスト名は提供しません。$(hostname)(hostnameコマンド)が空白またはlocalhostであり、内部的にnet.hostnameを使用しない場合、dhcpサーバーに送信されます。libnetutilsは、-h "net.hostname"を使用してdhcpcdを呼び出すために使用されますが、何らかの理由で-hを使用しない場合、DHCPCDは "(none)でない限り、gethostname()を介してシステムホスト名を送信します。 "、" localhost "、または空。とにかく在庫Froyo。サムスンは、私のようないくつかのデバイスでこの問題を解決しました。ホスト名のパススルーなし、強制ネットワーク時間など

GingerbreadおよびSamsung以下の私のソリューションは、DHCPクライアントデーモン構成を編集します。

最後にできることは、/ etc / dhcpcd / dhcpcd.confを編集することです。hostname YOURHOSTNAMEファイルに追加すると、コマンドラインでホスト名が指定されていない限り、それが使用されます。これでandroid_234etcの問題は修正されませんが、ホスト名がlocalhostの場合は問題が解決します(Samsungがinit.rcでlibnetutilsとlocalhostをねじ込んだため)。ルートが必要になりますが、これは再起動後も機能します。dhcpcdが-h Hostnameオプションで呼び出された場合、これは機能しません。


10

4.2.2でルート化されたNexus 7でこれを行う方法を見つけました。設定は永続的に保存され、再起動中も機能します。
ソース:http : //nileshgr.com/2012/10/13/how-to-change-wifi-host-name-of-your-android-device

  1. adbを使用するには、デバイスをルート化する必要があることに注意してください
  2. 走る adb pull /system/build.prop
  3. build.propファイルを編集して追加net.hostname=NewHostname
  4. 実行adb push build.prop /sdcard/build.prop(または/mnt/sdcard、失敗した場合)
  5. adb shell次のコマンドを実行および実行します:(
    $ su
    # mount -o rw,remount /system
    # cp /sdcard/build.prop /system/build.propまたは/mnt/sdcard以前に使用した場合)
    # mount -o ro,remount /system
    # exit
  6. デバイスを再起動します

これは、Androidの新しいバージョンで修正されました。build.propからnet.hostnameをチェックします。古いAndroidバージョンはサポートしていません(主にFroyo、多分Gingerbread)。
CDE

ICSは4.2.2ではなく、JB
HasH_BrowN 14

これを行う簡単な方法はsetprop、デバイスのルートシェル経由でコマンドを使用することです。たとえば、14setprop net.hostname NewHostName
マークする

1
リブート時に上書きされる@mark。この回答は永続的なバージョンです。
-cde

9

これは、CyanogenModおよびおそらく他の変更されたROMで動作しますが、ストックAOSP ROMでは動作しません。

[設定]> [開発者オプション]に移動し、[ デバイスホスト名]までスクロールします。ルートは必要ありません。

(画像をクリックすると拡大します)

IMG:


2
ええ、Android 4.0.3を実行しているAcer A100タブレットではできません。実際、開発者オプションには「デバイスのホスト名」さえありません。
bgmCoder

7

長い間在庫を管理していませんが、[アプリケーションの設定]> [開発]に[デバイスホスト名]オプションが表示されます。


Androidのどのバージョンですか?Droid 3(Android 2.3.4)の開発オプションを見ると、そのオプションはありません。
マイケルコーネ

3
これは、CyanogenMODおよびおそらく他の変更されたROMで動作しますが、ストックAOSP ROMでは動作しません。
カレブ

製造元とビルダー、およびAndroidバージョンに完全に依存しています。
CDE

5

Google Playストアにアクセスします。「ホスト名」を検索し、ホスト名チェンジャーアプリをダウンロードします。

根ざしている必要があります。


デバイスの名前を変更すると、内部で何か混乱しますか?
bgmCoder

0

ホスト名は、ネットワークに接続されているホストを簡単に識別して記憶するために使用されます。/etc/hostnameLinuxベースのシステムなどからの起動時に設定されます。ホスト名は、DHCPクライアント(この例ではAndroidデバイス)がDHCPサーバー(WiFiルーター)に割り当ててIPアドレスを割り当てる(IETFによりコード12DHCPREQUESTとして標準化)の一部でもあります。DHCPサーバーはホスト名を保存して、DNSなどのサービスを提供します。

Android-Linuxカーネルのホスト名サービスを使用する代わりに、プロパティnet.hostnameを使用して、Android IDに基づいたすべてのデバイスに一意のホスト名を設定しました。このホスト名プロパティは、DHCPハンドシェイクにも使用されました。ただし、Android 5-ネイティブdhcpcdがJava DHCPクライアントを支持して放棄されたため、ホスト名はでnullですDHCPREQUESTnet.hostnameどちらのセット、またDHCPクライアントによって評価しました。そのため、WiFiルーターは新しいAndroidデバイスのホスト名を表示せず、設定も設定解除も変更もできません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.