如何更改我的Android设备的名称? -- settings 领域 和 dhcp 领域 android 相关 的问题

How do I change the name of my Android device?


61
vote

问题

中文

我的Android设备是Nexus One。但这应该适用于所有当前的Android设备。

如何更改我的Android设备的名称?

当我连接到我的无线路由器的客户端表时,我的Android设备被列为:Android_1234567890abedfc。我想给它一个更可读的名字。

英文原文

My Android device is the Nexus One. But this should apply to all current Android devices.

How do I change the name of my Android device?

When I connect to my wireless router's client tables, my android devices is listed for example as: android_1234567890abedfc. I'd like to give it a more readable name.

     
     
     

回答列表

22
 
vote
要更改主机名(设备名称),您必须使用终端(如root):

为Eclair(2.1): echo myname> / proc / sys / kernel / hostname

for froyo(2.2):(也在大多数2.3上工作) setprop net.hostname myname

然后重新启动您的Wi-Fi。 要查看更改,请键入uname -a

一些设备需要重新启动工作!

 

To change the hostname (device name) you have to use the terminal (as root):

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

For Froyo (2.2): (works also on most 2.3) setprop net.hostname MYNAME

Then restart your wi-fi. To see the change, type uname -a

some devices needs reboot for work!

 
 
   
   
17
 
vote

摘要:

  • getprop net.hostname (Android系统主机名,可能是Android_24412414类型名称)
  • echo $HOSTNAME (shell / coder / env hostname,可能的可能ro.product.device from build.prop)
  • cat /proc/sys/kernel/hostname (linux system hostname,可能是 localhost
  • head /etc/hosts (linux system hostname,可能 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 (可能需要root)。留在文件末尾的空白线条。

Kitkat的ConnectivityService.java,注意如果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 ...无论如何。因此,在连接服务完成后,您需要更改它。幸运的是,它只运行初始启动一次,而不是每一个新连接。所以我们只需要运行 echo $HOSTNAME0 以便它粘。不幸的是,它在启动过程中运行得相当迟到,因此您需要一些将使Boot_Complete更改的内容。最有可能由自己运行的应用程序。

Froyo的ConnectivityService.java :

  echo $HOSTNAME1  

但后来还有另一个问题。

net.hostname设置,未复制到整个系统!如果使用控制台/终端应用程序,则可能无法获得相同的主机名。我的手机是三星侧面伙伴4G(半银河系的SATH)有一个init.rc运行 echo $HOSTNAME2 ,所以所有下面的命令都不会看到你的build.prop主机名或android_id主机名!所以你也需要设置。

echo $HOSTNAME3 echo $HOSTNAME4

注意:根据您的执行方式,您需要将上面的命令用作root,以便它工作。 init.rc通常在只读系统分区上,因此需要root访问来编辑它。

运行以获取DHCP地址的DHCPCD命令不会更新到服务器提供的主机名(可以通过添加正确的DHCPCD运行挂钩和DHCPCD.conf来修复。它不会如果 echo $HOSTNAME5 (hostname命令)为空白或localhost提供主机名,则不会在内部使用net.hostname。 libnetutils用于使用-h"net.hostname" 调用dhcpcd,但如果由于某种原因决定不调用-h,则dhcpcd仍将通过gethostname()发送系统主机名,只要它不是" (无)"," localhost",或空的。在rocoyo无论如何。三星在一些像我这样的设备上搞砸了傻瓜。没有主机名通过,强制网络时间等。

我的姜饼和下面的Samsung解决方案,编辑DHCP客户端守护程序配置:

您可以做的最后一件事是编辑/etc/dhcpcd/dhcpcd.conf。如果将 echo $HOSTNAME6 添加到文件,则它将使用它,除非命令行上给出主机名。这不会修复Android_234ETC问题,但如果主机名是localhost(我的问题,因为Samsung锁定了Libnetuts和Init.rc)的localhost。您需要root,但这跨重启工作。如果使用-h hostname选项调用dhcpcd,则不会起作用。

 

Summary:

  • getprop net.hostname (Android System Hostname, likely android_24412414 type name)
  • echo $HOSTNAME (shell/terminal/env hostname, likely ro.product.device from build.prop)
  • cat /proc/sys/kernel/hostname (Linux System Hostname, likely localhost)
  • head /etc/hosts (Linux System Hostname, likely localhost)
  • hostname (Command not always installed, if installed via busy box, will read /proc/sys/kernel/hostname)

Depends on which version of Android you have.

Android 4.0 and Above

Newer versions will use the right build.prop entry. Well, that is to say, Android reads the build.prop as it's normal boot process. Once the Connectivity Service runs, it checks to see if net.hostname is set in the Settings, then if empty, then it uses the "android_" + (permanent) android ID. So that's all you need to do.

Add net.hostname=HOSTNAMEHERE to /system/build.prop (Root may be needed). Leave a blank line at the end of the file.

Kitkat's ConnectivityService.java, notice the IF isEmpty statement:

    // 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 and Below

Older versions, Gingerbread, Froyo, etc, just clobber it. It doesn't bother to check. It will set net.hostname to android_24412414... no matter what. So you will need to change it after that Connectivity Service has finished loading. Luckily, it only runs the startup once, not on every new connection. So we just need to run setprop net.hostname HOSTNAMEHERE after that for it to stick. Unfortunately, it runs fairly late in the boot process, so you need something that will make the changes on boot_complete. Most likely an App that runs by itself.

Froyo's 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); 

But then there is another issue.

The net.hostname setting, is not copied to the entire system! If you use a console/terminal application, you might not get the same hostname. My phone, a Samsung Sidekick 4G (semi-Galaxy S based) has an init.rc which runs hostname localhost, so all underneath commands will not see either your build.prop hostname or the android_id hostname! So you need to set that too.

hostname HOSTNAMEHERE or echo HOSTNAMEHERE > /proc/sys/kernel/hostname

Note: Depending on how you are doing it, you'll need to run the above command as root in order for it to work. Init.rc is typically on the read only system partition, so root access is needed to edit it.

The dhcpcd command, which is run to get a dhcp address, will not update to a hostname provided by the server (That can be fixed by adding the right dhcpcd-run-hooks and dhcpcd.conf), and it will not provide a hostname to the dhcp server if $(hostname) (The hostname command) is blank or localhost, and it does not internally use net.hostname. libnetutils is used for calling dhcpcd with -h "net.hostname", but if for some reason it decides not to call with -h, DHCPCD WILL STILL SEND THE SYSTEM HOSTNAME via gethostname(), as long as it's not "(none)", "localhost", or empty. On Stock Froyo anyway. Samsung screwed the pooch on some devices like mine. No hostname pass through, forced network time, etc.

My Solution for Gingerbread and below Samsung, Edit the DHCP Client Daemon config:

The last thing you can do is edit /etc/dhcpcd/dhcpcd.conf. If you add hostname YOURHOSTNAME to the file, it will use that, unless a hostname is given on the commandline. This won't fix the android_234etc issue, but will if the hostname is localhost (My problem, since Samsung screwed libnetutils and localhost in init.rc). You will need Root, but this works across reboots. This won't work if dhcpcd is called with -h Hostname option.

 
 
 
 
10
 
vote

我发现了一种用4.2.2在我的rooted 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 如果您之前使用过)
    build.prop0
    build.prop1
  6. 重新启动设备
 

I found a way to do this on my rooted Nexus 7 with 4.2.2. The setting is saved persistently and works throughout reboots.
Source: http://nileshgr.com/2012/10/13/how-to-change-wifi-host-name-of-your-android-device

  1. Note that the device must be rooted to use adb
  2. Run adb pull /system/build.prop
  3. Edit the build.prop file and append net.hostname=NewHostname
  4. Run adb push build.prop /sdcard/build.prop (or /mnt/sdcard, if it fails)
  5. Run adb shell and execute the following commands:
    $ su
    # mount -o rw,remount /system
    # cp /sdcard/build.prop /system/build.prop (or /mnt/sdcard if you used that previously)
    # mount -o ro,remount /system
    # exit
  6. Reboot the device
 
 
       
       
9
 
vote

这对CyanogenMod作品,可能是其他修改的ROM,但不是股票AOSP roms:

转到 settings>开发人员选项并向下滚动到设备hostname 。根本不需要。

(单击图像放大)

img:

 

This works on CyanogenMod and probably other modified ROMs but not stock AOSP ROMs:

Go to Settings > Developer Options and scroll down to Device Hostname. Root is not needed.

(Click image to enlarge)

IMG:

 
 
 
 
7
 
vote

我在很长一段时间内没有股票,但在应用程序设置中>开发您将看到"设备主机名" 选项。

 

I have not ran stock in a long time but in Application Settings > Development you will see the option 'Device hostname'.

 
 
     
     
5
 
vote

转到谷歌播放商店。搜索"hostname" ,然后下载 hostname更改器 app。

必须扎根。

 

Go to Google Play Store. Search for "hostname", and download hostname changer app.

Must be rooted.

 
 
 
 
1
 
vote

hostname用于轻松识别和记住连接到网络的主机。它在启动时设置,例如,来自 /etc/hostname 在基于Linux的系统上。 hostname也是 DHCPREQUEST 的一部分(标准化为代码12 如何通过hostname发出本地网络主机?。

android - 而不是使用linux kernel的 hostname service - 二手属性 net.hostname (自android 2.2 < / a>)为每个基于 android_id 的每个设备设置唯一的主机名。此主机名属性用于DHCP握手(如在Android 2.2 和 4.0 )。在Android 6 net.hostname 继续使用( 1 , 2 , 3 , 4 )在new Java DHCP客户端当本机 abcdefghijklmn5 服务被删除< / a>在Android 7.自android 8 - 当 android_id 变得唯一应用程序 - net.hostname 是不再设置,因此, null abcdefghijklmn9 中发送。查看Android 8 隐私更改和安全增强剂:

DHCPREQUEST0 现在是空的,DHCP客户端不再发送主机名

所以

所以 wifi路由器显示Android 8+的主机名,我们都不能设置/取消设置/更改它。

然而

然而

rooted设备上您可以使用 DHCPREQUEST2 命令设置 abcdefghijklmn11 命令或添加一些 DHCPREQUEST3 DHCPREQUEST4 文件设置每个引导。或者使用 DHCPREQUEST5 等第三方客户端将所需的主机名和其他选项发送到路由器。通过adb shell 连接到WiFi,请参阅连接到WiFi。

 

Hostname is used to easily identify and remember hosts connected to a network. It's set on boot, e.g. from /etc/hostname on Linux based systems. Hostname is also a part of DHCPREQUEST (standardized as code 12 by IETF) which a DHCP client (Android device in our case) makes to DHCP server (WiFi router) to get an IP address assigned. DHCP server stores the hostnames to offer services like DNS. See details in How to ping a local network host by hostname?.

Android - instead of using Linux kernel's hostname service - used property net.hostname (since Android 2.2) to set a unique host name for every device which was based on android_id. This hostname property was used for DHCP handshake (as added in Android 2.2 and 4.0). In Android 6 net.hostname continued to be used (1, 2, 3, 4) in new Java DHCP client when native dhcpcd was abandoned and later service was removed in Android 7. Since Android 8 - when android_id became unique to apps - net.hostname is no more set, so a null is sent in DHCPREQUEST. See Android 8 Privacy Changes and Security Enhancements:

net.hostname is now empty and the dhcp client no longer sends a hostname

So the WiFi routers show no host names for Android 8+, neither we can set / unset / change it.

However on rooted devices you can set net.hostname manually using setprop command or add in some init's .rc file to set on every boot. Or use a third party client like busybox udhcpc to send desired hostname and other options to router. See Connecting to WiFi via ADB Shell.

 
 

相关问题

1  从zip安装启用adb的设置  ( Install adb enabled setting from zip ) 
是否可以制作一个zip文件,类似于安装gapps的zip,它将adb调试模式存储为系统设置?也许某种方式修改系统启动脚本以将ADB调试模式设置为ON?我正在设置测试环境,我不能有工厂重置关闭adb。 更新: 我想我几乎得到了它 - 我有一个使用CWM恢复的rooted Deice,我正在使用Supersu进行root...

0  在Zopo 998上逆转的运动(陀螺仪)输入  ( Movement gyro input reversed on zopo 998 ) 
我在Android Kitkat上有Zopo 998,我已经开始使用纸板电影和VR。我的问题是,运动传感器似乎颠倒了:当我右转时,视图向左移动,并且也发生上下。 我已经尝试过许多应用程序,这样一般都表现得相同。我能找到的设置中没有任何内容。 我缺少明显的东西吗? ...

0  Android 10上的应用切换器在Moto Z4上轻微更新后不断崩溃  ( App switcher on android 10 constantly crashes after minor update on moto z4 ) 
摩托罗拉Motoz4正在运行Android 10,它的工作正常,然后强制更新,QDFS30.130-42-1-2,常数日常提示重启,如果我没有这样做,它会自行重启它自愿: https://www.verizon.com/support/motorola- moto-z4-update / 之后,在激活应用切换...

1  设置 - 可访问性警告:“可下载的可访问性应用程序即可激活” - 我该怎么办?  ( Settings accessibility warning downloaded accessibility application is requi ) 
如果我在Samsung Galaxy S上选择'设置 - accessitiby - accessitibess '选项,则会显示以下文本:'下载的辅助功能应用程序需要激活'。< / p> 我搜索了机器人的"可访问性" ,但我不确定这是安装这个的正确方法(系统?)应用程序。 任何想法从我应该安装的任何想法? t...

7  如何使用设置加密的SD卡上解密文件?  ( How do i decrypt files on my sd card that i encrypted using the settings ) 
我有文件,我用来使用"USB Connection" 弹出窗口下的USB大容量存储选项从SD卡复制到我的PC。我在设置下检查了标志 - &gt;位置&amp; Security-&gt;数据加密 - &gt;存储加密,现在我无法读取这些类型的新文件(例如,.jpg和.txt文件)。我尝试过,取消选中框 - 出现一条消...

4  为音频/配置创建自定义配置文件  ( Create custom profile for audio configuration ) 
我刚刚购买了Android 2.2的三星Galaxy I5510。我没有见过任何地方(所以我假设它是不可能的)一些简介管理。即,"reunion" (可能没有任何警报和呼叫和呼叫和消息),或"睡觉" (没有任何警报的通知和呼叫,声音和振动),等等。 我有一些默认配置文件:声音(in)活动,平面模式和驱动模式("与您说...

46  如何在相机应用程序上禁用“点击”声音?  ( How do i disable the click sound on the camera app ) 
当我拍一张照片时,它会"点击" 声音。由于这是默认行为,我想将其关闭。有没有设置;或者如果我发现+删除声音文件,那么会有反冲吗? **请注意,我正在寻找基本上永久的解决方案,而不是一个我需要用每个应用程序设置/解开的一个。我喜欢根解决方案的想法,或应用解决方案;但是为了享受非根内存的慢速相机 - 应用程序启动的人,...

1  文件类型的默认应用程序  ( Default app for file type ) 
我有一个诺基亚6.1与Android 10(Android一个)。 我试图在revolut应用程序中下载我的帐户语句。它为我提供了选择要下载的PDF或Excel(CSV)格式的选项。但而不是下载它在Android的默认PDF查看器中打开PDF,而CSV它将其附加到Gmail应用程序中的新电子邮件。我假设这发生了因为文...

2  在三星Galaxy S3迷你对讲时总是在切换家庭屏幕时讲话  ( In samsung galaxy s3 mini talkback is always speaking when switching home screen ) 
从一天到下一个,对讲开始告诉我我在哪个主屏幕上。它始终使用Google语音,即使我将其设置为Samsung TTS。 文本: 第2页,共5页(德语发音) der ordner istgeäffnet。 der ordner ist geschlossen。 (我的区域设置是德国人) 对讲是在进行设置之前和当...

12  切换到手动网络模式时GSM和WCDMA之间有什么区别?  ( What is the difference between gsm and wcdma when switching to manual network mo ) 
我正在读这个答案我需要更好地理解: "选择 gsm " 和"选择 wcdma " 之间的技术区别是什么?为了节省电池寿命,我计划从自动切换到手动模式,我想知道如果我坚持GSM或WCDMA会发生什么。 我在HTC HD2上使用Android 2.2 Froyostone。 ...

6  如何让滚动条始终可见?  ( How can i make scroll bars always visible ) 
Android隐藏滚动条,除非窗口正在积极滚动。这使得很难判断是否可以在没有实际尝试的情况下滚动窗口。有没有办法迫使Android在有东西滚动时始终显示滚动条? 我有一个霹雳,运行Android 2.2(Froyo)。 ...

2  有没有办法将设置(移动/ gps /蓝牙/等)组合到配置文件中?  ( Is there a way to combine settings mobile gps bluetooth etc into profiles ) 
我想设置开/关设置的一些组合并创建配置文件。例如,在家时,我想要蓝牙/ WiFi,但是移动关闭。在上班时,我想要移动,其他一切。有没有简单的方法来做这件事? ...

0  SIP设置在我的LG Optimus 4x上转到哪里?  ( Where did the sip settings go to on my lg optimus 4x ) 
大约3个月前我购买了我的 LG Optimus 4x HD (AKA P-880),它配备了Android 4.0.3。我上下搜索了设置,非常惊讶没有可用的SIP设置。我非常确定SIP支持被添加到AOP中的姜饼,所以它必须使用ICS! lg从他们的Android安装中删除它们?有没有办法让他们回来? ...

3  如何延迟屏幕的密码锁定我的平流层?  ( How can i delay the screens password lock on my stratosphere ) 
我需要我的屏幕被锁定密码,但我希望它只能在5-10分钟后开始(如果我锁定我的手机并稍后解锁它,我不是< / em>想要再次进入密码)。 与我的旧机器人专业人士非常容易设置。在平流层上,它看起来不像那种选择,所以我一直在每一次才能解锁我的手机。我错过了什么?我有没有办法这样做? ...

5  减少语言选项列表  ( Reducing the list of language options ) 
我希望看到一个允许可用语言列表减少到我实际需要的可用语言列表的选项。当我使用语音搜索时,在英语和西班牙语之间切换是一个痛苦:方式太多的选择可供选择。我所需要的只是我说话的几种语言,而不是整个列出时间和时间。 当我输入使用键盘输入时,我可以具有不同类型的键盘,例如。美国国际和荷兰人。很容易在这些之间切换,但语音输入不遵...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.