如何更改我的Android设备的名称?
当我连接到无线路由器的客户端表时,我的android设备例如列出为:android_1234567890abedfc。我想给它一个更易读的名称。
#1 楼
要更改主机名(设备名称),您必须使用终端(以root用户身份):对于Eclair(2.1):
回显MYNAME> / proc / sys / kernel / hostname
对于Froyo(2.2):(在大多数2.3上也可以使用)
要查看更改,请键入uname -a
某些设备需要重新启动才能工作!
评论
对果冻豆有用吗?
– jrg
2012年9月1日下午3:43
此方法有效,但在重新启动后不会持续存在。
–palswim
13年8月8日在18:16
uname -a不会显示我的主机名,尽管它确实显示了localhost。您希望它显示什么?
– Endolith
16年2月28日在0:11
#2 楼
摘要:getprop net.hostname
(Android系统主机名,可能是android_24412414类型名称)echo $HOSTNAME
(shell /终端机/环境主机名,可能是ro.product .device from build.prop)cat /proc/sys/kernel/hostname
(Linux系统主机名,可能是本地主机)head /etc/hosts
(Linux系统主机名,可能是本地主机)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,请注意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 ...无论如何。因此,在连接服务完成加载后,您将需要对其进行更改。幸运的是,它只运行一次启动,而不是在每个新连接上运行。因此,我们只需要在其后运行
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),具有运行
hostname localhost
的init.rc,因此所有下面的命令都看不到您的build.prop主机名或android_id主机名!因此,您也需要进行设置。hostname HOSTNAMEHERE
或echo HOSTNAMEHERE > /proc/sys/kernel/hostname
注意:根据您的操作方式,您需要以超级用户身份运行以上命令以使其正常运行。 Init.rc通常位于只读系统分区上,因此需要root用户访问权限才能对其进行编辑。
运行dhcpcd命令以获取dhcp地址,该命令不会更新为由提供的主机名。服务器(可以通过添加正确的dhcpcd-run-hooks和dhcpcd.conf来解决),并且如果
$(hostname)
(hostname命令)为空白或本地主机,则它将不会为dhcp服务器提供主机名,并且内部也不是使用net.hostname。 libnetutils用于以-h“ net.hostname”调用dhcpcd,但是如果由于某种原因它决定不以-h调用,DHCPCD仍会通过gethostname()发送系统主机名,只要它不是“(none)”即可。 ”,“ localhost”或为空。仍然在股票Froyo。三星把狗狗固定在像我这样的设备上。没有主机名传递,网络时间过长等。我的Gingerbread及以下三星解决方案,编辑DHCP客户端守护程序配置:
最后要做的是编辑/etc/dhcpcd/dhcpcd.conf。如果将
hostname YOURHOSTNAME
添加到文件,它将使用该文件,除非在命令行上指定了主机名。这不能解决android_234etc问题,但是如果主机名是localhost(我的问题,因为三星在init.rc中将libnetutils和localhost搞砸了)就可以了。您将需要Root,但这可以在重新启动后起作用。如果使用-h Hostname选项调用dhcpcd,则此方法将无效。评论
谁使用Android 2.3?此版本在2020年是否仍然有效? 2008年的链接仍然有效,这是落后的。
–user3123159
11月12日20:21
#3 楼
我找到了一种在4.6.2上扎根的Nexus 7上执行此操作的方法。该设置将永久保存并在整个重新启动过程中起作用。来源:http://nileshgr.com/2012/10/13/how-to-change-wifi-host-name-of-your-android-device
请注意,该设备必须已扎根才能使用adb
运行
adb pull /system/build.prop
编辑
build.prop
文件并附加net.hostname=NewHostname
运行
adb push build.prop /sdcard/build.prop
(或/mnt/sdcard
(如果失败)运行
adb shell
并执行以下命令:$ su
# mount -o rw,remount /system
# cp /sdcard/build.prop /system/build.prop
(如果以前使用过,则为/mnt/sdcard
)# mount -o ro,remount /system
# exit
重新启动设备
评论
这已在较新版本的Android中修复。它从build.prop检查net.hostname。较旧的Android版本则没有(主要是Froyo,也许是Gingerbread)。
–cde
2014年1月4日,12:22
ICS不是4.2.2,那就是JB
–HasH_BrowN
2014年9月27日20:17在
一种更简单的方法是通过设备上的root shell使用setprop命令:例如setprop net.hostname NewHostName
–马克
2014年10月16日0:00
@mark重启后会崩溃。该答案是永久性版本。
–cde
16年8月7日在6:26
#4 楼
这适用于CyanogenMod和其他可能修改过的ROM,但不适用于现有的AOSP ROM:转到“设置”>“开发人员选项”,然后向下滚动到“设备主机名”。不需要根。
(单击图片放大)
评论
是的,您不能在运行Android 4.0.3的Acer A100平板电脑上执行此操作。实际上,在开发人员选项中甚至没有“设备主机名”。
– bgmCoder
2015年11月4日在4:14
#5 楼
我已经很久没有库存了,但是在“应用程序设置”>“开发”中,您会看到“设备主机名”选项。评论
在什么版本的Android上?当我在Droid 3(Android 2.3.4)上查看开发选项时,我没有该选项。
–迈克尔·科恩(Michael Kohne)
2012年3月19日15:24
这适用于CyanogenMOD以及可能的其他经过修改的ROM,但不适用于普通的AOSP ROM。
–卡莱布
13-10-18在15:50
完全取决于制造商和制造商,以及android版本。
–cde
2014年1月4日,12:21
#6 楼
前往Google Play商店。搜索“主机名”,并下载主机名更改器应用程序。必须植根。
评论
重命名设备会在内部造成任何混乱吗?
– bgmCoder
2015年11月4日在4:13
#7 楼
主机名用于轻松识别和记住连接到网络的主机。它是在启动时设置的,例如在基于Linux的系统上来自/etc/hostname
。主机名也是DHCPREQUEST
(由IETF标准化为代码12)的一部分,DHCP客户端(在本例中为Android设备)通过net.hostname
向DHCP服务器(WiFi路由器)分配IP地址。 DHCP服务器存储主机名以提供DNS之类的服务。请参阅如何通过主机名ping本地网络主机中的详细信息?。Android-代替使用Linux内核的主机名服务-使用属性
android_id
(自Android 2.2起)为每个设备设置唯一的主机名基于net.hostname
。此主机名属性用于DHCP握手(已在Android 2.2和4.0中添加)。在Android 6中,当放弃本机dhcpcd
并在Android 7中删除了更高版本的服务时,在新的Java DHCP客户端中继续使用(1、2、3、4)android_id
。由于Android 8-当net.hostname
对应用程序来说唯一时-null
否设置了更多,因此在DHCPREQUEST
中发送了net.hostname
。请参阅Android 8隐私更改和安全性增强功能:net.hostname
现在为空,并且dhcp客户端不再发送主机名因此,WiFi路由器不显示Android 8+的主机名,我们也无法设置/取消设置/更改它。在每次启动时。或使用第三方客户端(例如
setprop
)将所需的主机名和其他选项发送到路由器。请参阅通过ADB Shell连接到WiFi。
评论
也可以通过DHCP服务器配置主机名。但是我还没有检查android是否使用此配置选项。无论如何,这只是一个装饰选择。blog.burrowsapps.com/2011/09/android-change-hostname.html。
@Flow(有所不同,但)Android DHCPCD没有用于从DHCP设置主机名的dhcpcd-run-hooks。我的Samsung Froyo设备上的Atleast。它也没有ntp挂钩。 DHCPCD确实支持它。
适用于GNU Linux:askubuntu.com/questions/9540/how-do-i-change-the-computer-name,低级内核方法将起作用