내 Android 기기는 Nexus One입니다. 그러나 이것은 모든 현재 Android 기기에 적용됩니다.
내 Android 기기의 이름을 어떻게 변경합니까?
무선 라우터의 클라이언트 테이블에 연결하면 내 Android 장치가 예를 들어 android_1234567890abedfc로 표시됩니다. 더 읽기 쉬운 이름을 지정하고 싶습니다.
내 Android 기기는 Nexus One입니다. 그러나 이것은 모든 현재 Android 기기에 적용됩니다.
내 Android 기기의 이름을 어떻게 변경합니까?
무선 라우터의 클라이언트 테이블에 연결하면 내 Android 장치가 예를 들어 android_1234567890abedfc로 표시됩니다. 더 읽기 쉬운 이름을 지정하고 싶습니다.
답변:
호스트 이름 (장치 이름)을 변경하려면 터미널을 루트로 사용해야합니다.
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
. 무엇을 보여줄 것으로 기대하십니까?
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 버전에 따라 다릅니다.
최신 버전은 올바른 build.prop
항목 을 사용합니다 . 즉, 안드로이드는 build.prop
정상적인 부팅 과정을 읽습니다 . 연결 서비스가 실행되면 설정에서 net.hostname이 설정되어 있는지 확인한 다음 비어 있으면 "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);
예전 버전, 진저 브레드, 프로 요 등은 간단히 말하면됩니다. 확인 귀찮게하지 않습니다. net.hostname을 android_24412414로 설정합니다. 따라서 연결 서비스가로드를 완료 한 후에 변경해야합니다. 운 좋게도 모든 새 연결이 아닌 시작을 한 번만 실행합니다. 그래서 우리 setprop net.hostname HOSTNAMEHERE
는 그것을 고수하기 위해 그 후에 달려야 합니다. 불행히도 부팅 과정에서 상당히 늦게 실행되므로 boot_complete를 변경할 항목이 필요합니다. 대부분 자체적으로 실행되는 앱입니다.
프로 요의 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
참고 : 수행 방법에 따라 위 명령을 루트로 실행해야 작동합니다. Init.rc는 일반적으로 읽기 전용 시스템 파티션에 있으므로이를 편집하려면 루트 액세스가 필요합니다.
dhcp 주소를 얻기 위해 실행되는 dhcpcd 명령은 서버에서 제공 한 호스트 이름으로 업데이트되지 않으며 (올바른 dhcpcd-run-hooks 및 dhcpcd.conf를 추가하여 수정할 수 있음) 호스트 이름을 제공하지 않습니다. $(hostname)
(hostname 명령)이 비어 있거나 로컬 호스트이고 내부적으로 net.hostname을 사용하지 않는 경우 dhcp 서버로 . libnetutils는 -h "net.hostname"을 사용하여 dhcpcd를 호출하는 데 사용되지만 어떤 이유로 든 -h를 사용하여 호출하지 않기로 결정한 경우 DHCPCD는 "(없음)이 아닌 한 gethostname ()을 통해 시스템 호스트 이름을 전송합니다. ","localhost "또는 비어 있습니다. 어쨌든 Froyo에. 삼성은 내 장치와 같은 일부 장치에서 바보를 망쳤다. 호스트 이름 통과, 강제 네트워크 시간 등이 없습니다.
마지막으로 할 수있는 일은 /etc/dhcpcd/dhcpcd.conf입니다. hostname YOURHOSTNAME
파일에 추가 하면 명령 행에 호스트 이름이 지정되지 않은 한 파일을 사용합니다. 이것은 android_234etc 문제를 해결하지 않지만 호스트 이름이 localhost 인 경우 (Samsung은 libnetutils와 localhost를 init.rc에 망 쳤기 때문에 내 문제) 루트가 필요하지만 재부팅 할 때마다 작동합니다. dhcpcd가 -h Hostname 옵션과 함께 호출되면 작동하지 않습니다.
루팅 된 Nexus 7에서 4.2.2로이 작업을 수행 할 수있는 방법을 찾았습니다. 설정은 지속적으로 저장되며 재부팅하는 동안 작동합니다.
출처 : 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
- 장치를 재부팅
setprop
은 장치의 루트 쉘을 통해 명령 을 사용하는 것 입니다. 예를 들어setprop net.hostname NewHostName
오랫동안 주식을 운영하지는 않았지만 애플리케이션 설정> 개발에서 '장치 호스트 이름'옵션이 표시됩니다.
호스트 이름은 네트워크에 연결된 호스트를 쉽게 식별하고 기억하는 데 사용됩니다. 부팅시 (예 : /etc/hostname
Linux 기반 시스템 에서) 설정됩니다 . 호스트 이름은 DHCP 클라이언트 (이 경우 Android 장치)가 DHCP 서버 (WiFi 라우터)에 IP 주소를 할당하기 위해 만드는 일부 DHCPREQUEST
( IETF에서 코드 12 로 표준화) 의 일부입니다 . DHCP 서버는 DNS 와 같은 서비스를 제공하기 위해 호스트 이름을 저장합니다 .
Android는 Linux 커널의 호스트 이름 서비스 를 사용하는 대신 속성 net.hostname
을 사용 하여 Android ID를 기반으로하는 모든 장치에 대해 고유 한 호스트 이름을 설정했습니다. 이 호스트 이름 속성은 DHCP 핸드 셰이크에도 사용되었습니다. 그러나 Android 5 dhcpcd
가 Java DHCP 클라이언트를 위해 네이티브 를 포기한 이후 호스트 이름은 null 입니다 DHCPREQUEST
. net.hostname
이다 도 세트 않으며, DHCP 클라이언트에 의해 평가 하였다. 그래서 와이파이 라우터는 새로운 안드로이드 장치에 대한 더 호스트 이름을 표시하지, 어느 쪽도 우리는 그것을 변경 / 해제 / 설정할 수 있습니다.