題:
如何更改Android設備的名稱?
spong
2010-09-14 00:31:28 UTC
view on stackexchange narkive permalink

我的Android設備是Nexus One。但這應適用於所有當前的Android設備。

如何更改我的Android設備的名稱?

當我連接到無線路由器的客戶端時在表格中,我的android設備列為:android_1234567890abedfc。我想給它一個更易讀的名稱。

也可以通過DHCP服務器配置主機名。但是我還沒有檢查android是否使用此配置選項。無論如何,這只是一個裝飾選擇。
HTTP://blog.burrows apps.com/2011/09/Android-嫦娥-hostname.HTML.
@Flow(但有所不同)Android DHCPCD沒有用於從DHCP設置主機名的dhcpcd-run-hooks。我的Samsung Froyo設備上的Atleast。它也沒有ntp掛鉤。 DHCPCD確實支持它。
對於GNU Linux:http://askubuntu.com/questions/9540/how-do-i-change-the-computer-name,低級內核方法將起作用
七 答案:
#1
+22
Eder Gusatto
2011-11-28 23:40:52 UTC
view on stackexchange narkive permalink

要更改主機名(設備名稱),您必須使用終端(以root用戶身份):

對於Eclair(2.1):echo MYNAME> / proc / sys / kernel / hostname

對於Froyo(2.2):(也適用於大多數2.3)setprop net.hostname MYNAME

然後重新啟動wi-fi。要查看更改,請輸入uname -a

某些設備需要重啟才能正常工作!

對果凍豆有用嗎?
此方法有效,但在重新啟動後不會持續存在。
`uname -a`沒有顯示我的主機名,儘管它確實顯示了'localhost'。您希望它顯示什麼?
#2
+16
cde
2014-01-05 01:21:33 UTC
view on stackexchange narkive permalink

摘要:

  • 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
  • 主機名(並非始終安裝的命令,如果通過繁忙框安裝,將顯示為 / proc / sys / kernel / hostname

Android 4.0及更高版本

較新的版本將使用正確的 build.prop 條目。好吧,也就是說,Android會在正常啟動過程中讀取 build.prop 。連接服務運行後,將檢查是否在“設置”中設置了net.hostname,如果為空,則使用“ android _” +(永久)android ID。所以這就是您要做的全部。

net.hostname = HOSTNAMEHERE 添加到 /system/build.prop (可能需要Root) )。在文件末尾留空行。

Kitkat的ConnectivityService.java,請注意IF isEmpty語句

  // //如果(TextUtils.isEmpty(SystemProperties.get(“ net.hostname”)))設置我們唯一的設備名稱{字符串id = Settings.Secure.getString(context.getContentResolver(),Settings.Secure.ANDROID_ID); if(id!= null && id.length()> 0){字符串名稱=新的String(“ android-”)。concat(id); SystemProperties.set(“ net.hostname”,name);  

Android 2.3及更低版本

較舊的版本,薑餅,Froyo等,只是破壞它。它不會打擾檢查。它將把net.hostname設置為android_24412414 ...無論如何。因此,在連接服務完成加載後,您將需要對其進行更改。幸運的是,它只運行一次啟動,而不是在每個新連接上運行。因此,我們只需要在此之後運行 setprop net.hostname HOSTNAMEHERE 即可。不幸的是,它在啟動過程中運行得很晚,因此您需要在boot_complete上進行更改的內容。最有可能自行運行的應用程序。

Froyo的ConnectivityService.java

  //設置我們唯一的設備名稱String id = Settings.Secure.getString(context.getContentResolver() ,Settings.Secure.ANDROID_ID); if(id!= null && id.length()> 0){字符串名稱=新的String(“ android _”)。concat(id); SystemProperties.set(“ net.hostname”,name);  

,然後又出現另一個問題。

net.hostname設置未復制整個系統!!如果您使用控制台/終端應用程序,則可能不會獲得相同的主機名。我的手機是Samsung Sidekick 4G(基於半Galaxy S),具有運行 hostname localhost 的init.rc,因此所有下面的命令都看不到您的build.prop主機名或android_id主機名!因此,您也需要進行設置。

主機名HOSTNAMEHERE echo HOSTNAMEHERE > / proc / sys / kernel / hostname

注意:根據您的操作方式,您需要以超級用戶身份運行以上命令才能使其正常運行。 Init.rc通常位於只讀系統分區上,因此需要root訪問權限才能對其進行編輯。

運行以獲取dhcp地址的dhcpcd命令不會更新為服務器提供的主機名(可以通過添加正確的dhcpcd-run-hooks和dhcpcd.conf進行修復),並且不會如果 $(hostname)(hostname命令)為空或localhost,並且在內部不使用net.hostname,則為dhcp服務器提供一個主機名。 libnetutils用於以-h“ net.hostname”調用dhcpcd,但是如果由於某種原因它決定不以-h調用,則DHCPCD仍會通過gethostname()發送系統主機名,只要它不是“ (無)”,“本地主機”或空。仍然在Stock Froyo上。三星把狗狗固定在像我這樣的設備上。沒有主機名通過,強製網絡時間等。

我的薑餅和三星以下解決方案,編輯DHCP客戶端守護程序配置:

最後要做的就是編輯/ etc /dhcpcd/dhcpcd.conf。如果將 hostname YOURHOSTNAME 添加到文件,它將使用該文件,除非在命令行中指定了主機名。這不能解決android_234etc問題,但是如果主機名是localhost(我的問題,因為三星在init.rc中將libnetutils和localhost搞砸了)就可以了。您將需要Root,但這可以在重新啟動後起作用。如果使用-h Hostname選項調用dhcpcd,則此方法將無效。

#3
+10
Lennart
2013-04-12 15:00:54 UTC
view on stackexchange narkive permalink

我找到了一種在4.6.2上紮根的Nexus 7上執行此操作的方法。該設置將永久保存並在整個重新啟動過程中起作用。
來源: http://nileshgr.com/2012/10/13/how-to-change-wifi-host-name-of-your-android-設備

  1. 請注意,該設備必須植根才能使用adb
  2. 運行 adb pull /system/build.prop
  3. 編輯 build.prop 文件,並附加 net.hostname = NewHostname
  4. 運行 adb push構建。 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. 重新啟動設備
  7. ol>
這已在較新版本的Android中修復。它從build.prop檢查net.hostname。較舊的Android版本則沒有(主要是Froyo,也許是Gingerbread)。
ICS不是4.2.2,那就是JB
一種更簡單的方法是通過設備上的root shell使用`setprop`命令:例如`setprop net.hostname NewHostName`。
@mark在重新啟動時會崩潰。該答案是永久性版本。
#4
+9
cbabb
2014-01-19 15:28:58 UTC
view on stackexchange narkive permalink

這適用於CyanogenMod和其他可能修改過的ROM,但不適用於現有的AOSP ROM:

轉到設置>開發人員選項,然後向下滾動至設備主機名。不需要根。

(點擊圖片放大) sub>

IMG:

是的,您不能在運行Android 4.0.3的Acer A100平板電腦上執行此操作。實際上,在開發人員選項中甚至沒有“設備主機名”。
#5
+7
Tim T
2011-11-29 12:35:13 UTC
view on stackexchange narkive permalink

我已經很長時間沒有庫存了,但是在“應用程序設置”>“開發”中,您將看到“設備主機名”選項。

在什麼版本的Android上?當我在Droid 3(Android 2.3.4)上查看開發選項時,我沒有該選項。
這適用於CyanogenMOD以及可能的其他修改後的ROM,但不適用於普通的AOSP ROM。
完全取決於製造商和製造商,以及android版本。
#6
+5
Ryan Knell
2013-04-26 11:24:48 UTC
view on stackexchange narkive permalink

轉到Google Play商店。搜索“主機名”,然後下載主機名更改器應用程序。

必須已紮根。

重命名設備會在內部造成混亂嗎?
#7
+1
Irfan Latif
2019-09-29 23:12:29 UTC
view on stackexchange narkive permalink

主機名用於輕鬆識別和記住連接到網絡的主機。它是在啟動時設置的,例如來自基於Linux的系統上的 / etc / hostname 。主機名也是 DHCPREQUEST (由IETF標準化為 code 12)的一部分,DHCP客戶端(在我們的情況下為Android設備)將主機名傳遞到DHCP服務器(WiFi路由器)以獲得分配的IP地址。 DHCP服務器存儲主機名以提供DNS之類的服務。請參閱如何通過主機名ping本地網絡主機?

Android-代替使用Linux內核的 hostname服務-使用的屬性 net.hostname (自Android 2.2起),以便為每個基於 android_id 的設備設置唯一的主機名。此主機名屬性用於DHCP握手(已在Android 2.2 4.0中添加)。在Android 6中,繼續使用 net.hostname 1 2 3 4) sup>在新的 Java DHCP客戶端中,而本地 dhcpcd 被放棄,後來服務被刪除在Android 7中。由於Android 8-當 android_id 對應用程序變得唯一時- net.hostname 不再設置 null 通過 DHCPREQUEST 發送。請參閱Android 8 隱私更改安全增強功能

net.hostname 現在為空,並且dhcp客戶端不再發送主機名

,因此 WiFi路由器沒有顯示Android 8+的主機名,我們也無法設置/取消設置/更改它。

但是在有根設備上,您可以使用 setprop 命令手動設置 net.hostname 或添加一些 init .rc 文件在每次啟動時設置。或者使用第三方客戶端(例如 busybox udhcpc )將所需的主機名和其他選項發送到路由器。請參見通過ADB Shell連接到WiFi



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 2.0許可。
Loading...