Android cihazımın adını nasıl değiştiririm?


59

Android cihazım Nexus One. Ancak bu, mevcut tüm Android cihazlar için geçerli olmalıdır.

Android cihazımın adını nasıl değiştiririm?

Kablosuz yönlendiricimin istemci masalarına bağlandığımda android cihazlarım örneğin şöyle listeleniyor: android_1234567890abedfc. Daha okunaklı bir isim vermek istiyorum.


Ana bilgisayar adını DHCP sunucusu üzerinden yapılandırmak da mümkündür. Ancak android bu yapılandırma seçeneğini kullanıp kullanmadığını kontrol etmedim. Neyse, sadece kozmetik bir seçenek.
Akış


@Flow (Değişir ancak) Android DHCPCD, ana bilgisayar adını DHCP'den ayarlamak için dhcpcd-run-hook'larına sahip değildir. Samsung Froyo cihazımda en azından. Ntp kancaları da yok. DHCPCD olsa da destekliyor.
cde

Yanıtlar:


22

Ana bilgisayar adını (cihaz adı) değiştirmek için terminali (root olarak) kullanmanız gerekir:

Eclair için (2.1): echo MYNAME> / proc / sys / kernel / hostname

Froyo (2.2) için: (ayrıca 2.3'te de çalışır) setprop net.hostname MYNAME

Ardından wi-fi'nizi yeniden başlatın. Değişikliği görmek için uname -a yazın.

bazı cihazların iş için yeniden başlatılması gerekiyor!


Bu, jöleli fasulyede işe yarıyor mu?
jrg

3
Bu çalışır, ancak yeniden başlatmaya devam etmez.
palswim

1
uname -asöylese de benim için ana bilgisayar adını göstermiyor localhost. ne göstermesini bekliyorsun?
Endolith,

15

Özet:

  • getprop net.hostname (Android Sistem Ana Bilgisayar Adı, muhtemelen android_24412414 tür adı)
  • echo $HOSTNAME (kabuk / terminal / env ana bilgisayar adı, büyük olasılıkla ro.product.device build.prop)
  • cat /proc/sys/kernel/hostname(Linux Sistem Ana Bilgisayar Adı, muhtemelen yerel ana bilgisayar )
  • head /etc/hosts(Linux Sistem Ana Bilgisayar Adı, muhtemelen yerel ana bilgisayar )
  • hostname(Komut her zaman yüklenmedi, eğer meşgul kutusu aracılığıyla kurulursa, / proc / sys / kernel / hostname okur )

Hangi Android sürümüne sahip olduğunuza bağlı.

Android 4.0 ve üzeri

Daha yeni sürümler doğru build.propgirişi kullanacaktır . Yani, Android build.propnormal açılış işlemi gibi okuyor . Bağlantı Hizmeti çalıştığında, net.hostname ayarlarının ayarlanmış olup olmadığını kontrol eder, ardından boşsa, "android_" + (kalıcı) android kimliğini kullanır. Yani yapmanız gereken tek şey bu.

Ekle net.hostname=HOSTNAMEHEREiçin /system/build.prop(Root gerekebilir). Dosyanın sonunda boş bir satır bırakın.

Kitkat'in ConnectivityService.java'sı, IF isEmpty ifadesine dikkat edin :

    // 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 ve Altında

Eski versiyonlar, Gingerbread, Froyo, vb. Kontrol etmek zahmet etmiyor. Net.hostname'i android_24412414 olarak ayarlayacaktır ... ne olursa olsun. Bu yüzden, Bağlantı Servisi yüklendikten sonra onu değiştirmeniz gerekecek. Neyse ki, her yeni bağlantıda değil, başlangıçta yalnızca bir kez çalışır. Bu yüzden sadece setprop net.hostname HOSTNAMEHEREyapışması için ondan sonra koşmamız gerekiyor. Ne yazık ki, önyükleme işleminde oldukça geç kalıyor, bu nedenle önyükleme_complete üzerinde değişiklik yapacak bir şeye ihtiyacınız var. Büyük olasılıkla kendi başına çalışan bir Uygulama.

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

Ama sonra başka bir sorun var.

Net.hostname ayarı, tüm sisteme kopyalanmaz! Bir konsol / terminal uygulaması kullanıyorsanız, aynı ana bilgisayar adını alamayabilirsiniz. Telefonumda bir Samsung Sidekick 4G (yarı-Galaxy S tabanlı) çalışan bir init.rc dosyasına sahiptir hostname localhost, bu nedenle komutların altındaki komutların tümü build.prop ana bilgisayar adınızı veya android_id ana bilgisayar adınızı görmez! Yani onu da ayarlaman gerekiyor.

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

Not: Nasıl yaptığınıza bağlı olarak, çalışması için yukarıdaki komutu root olarak çalıştırmanız gerekir. Init.rc tipik olarak salt okunur sistem bölümündedir, bu nedenle onu düzenlemek için root erişimi gereklidir.

Bir dhcp adresi almak için çalıştırılan dhcpcd komutu, sunucu tarafından sağlanan bir ana bilgisayar adına güncelleme yapmaz (Bu, doğru dhcpcd-run-hooks ve dhcpcd.conf eklenerek düzeltilebilir) ve bir ana bilgisayar adı sağlamaz dhcp sunucusunda $(hostname)(hostname komutu) boş veya localhost ise ve dahili olarak net.hostname kullanmaz. libnetutils, -h "net.hostname" ile dhcpcd'yi çağırmak için kullanılır, ancak herhangi bir nedenden dolayı -h, DHCPCD ile çağrılmayacağına karar verirse, SİSTEMİNE HOSTNAME GÖNDERECEĞİNE ÇIKACAK "(hiçbiri) "," localhost "veya boş. Yine de Froyo'da. Samsung, çocuğu benimki gibi cihazlara taktı. Hiçbir ana bilgisayar adı, zorunlu ağ süresi vb.

Gingerbread ve Samsung'un altındaki Çözümlerim, DHCP Client Daemon config ayarını düzenleyin:

Yapabileceğiniz en son şey /etc/dhcpcd/dhcpcd.conf 'dır. hostname YOURHOSTNAMEDosyaya eklerseniz , komut satırında bir ana bilgisayar adı belirtilmedikçe bunu kullanır. Bu android_234etc sorununu çözmeyecek, ancak ana bilgisayar adı localhost ise (Sorunum, çünkü Samsung libnetutils ve localhost'u init.rc ile sıkıştırdı). Kök gerekir, ancak bu yeniden başlatmalar arasında çalışır. Bu, dhcpcd -h Hostname seçeneğiyle çağrılırsa çalışmaz.


10

Bunu köklü Nexus 7'de 4.2.2 ile yapmanın bir yolunu buldum. Ayar kalıcı olarak kaydedilir ve yeniden başlatmalar boyunca çalışır.
Kaynak: http://nileshgr.com/2012/10/13/how-to-change-wifi-host-name- of- your-android-device

  1. Adb kullanabilmek için cihazın köklü olması gerektiğini unutmayın.
  2. Çalıştırmak adb pull /system/build.prop
  3. Edit build.propdosya ve eklernet.hostname=NewHostname
  4. Çalıştır adb push build.prop /sdcard/build.prop(veya /mnt/sdcardbaşarısız olursa)
  5. adb shellAşağıdaki komutları çalıştırın ve yürütün:
    $ su
    # mount -o rw,remount /system
    # cp /sdcard/build.prop /system/build.prop(veya /mnt/sdcarddaha önce kullandıysanız)
    # mount -o ro,remount /system
    # exit
  6. Cihazı yeniden başlat

Bu Android'in yeni sürümlerinde düzeltildi. Net.hostname dosyasını build.prop öğesinden denetler. Daha eski Android sürümleri yok (Temel olarak Froyo, belki Gingerbread).
04

ICS 4.2.2 değil, bu JB olacak
HasH_BrowN

Bunu yapmanın daha kolay bir yolu, setpropkomutu aygıttaki bir kök kabuğuyla kullanmaktır : örneğinsetprop net.hostname NewHostName
Mark

1
@mark, önyüklemede gizlenecek. Bu cevap kalıcı bir versiyonudur.
cde

9

Bu, CyanogenMod ve muhtemelen diğer değiştirilmiş ROM'larda çalışır, ancak AOSP ROM'larını içermez:

Gidin Ayarlar> Geliştirici Seçenekleri ve aşağı kaydırarak Cihaz Hostname . Kök gerekli değildir.

(Büyütmek için resme tıklayınız)

IMG:


2
Evet, bunu Android 4.0.3 çalıştıran bir Acer A100 tabletinde yapamazsınız. Aslında, Geliştirici Seçeneklerinde "Aygıt ana bilgisayar adı" bile bulunmuyor.
bgmCoder

7

Uzun zamandır stoklarda bulunmadım ancak Uygulama Ayarları> Geliştirme bölümünde 'Cihaz ana bilgisayar adı' seçeneğini göreceksiniz.


Android hangi sürümlerinde? Droid 3'teki (Android 2.3.4) geliştirme seçeneklerine baktığımda, bu seçeneğim yok.
Michael Kohne

3
Bu, CyanogenMOD ve muhtemelen diğer değiştirilmiş ROM'larda çalışır, ancak AOSP ROM'larını içermez.
Caleb

Tamamen üretici ve üreticinin yanı sıra android versiyonuna da bağlı.
04

5

Google Play Store'a git. "Hostname" için arama yapın ve hostname değiştirici uygulamasını indirin.

Köklenmiş olmalı.


Cihazın adını değiştirmek dahili olarak herhangi bir şeyi karıştırır mı?
bgmCoder

0

Ana bilgisayar adı, bir ağa bağlı ana bilgisayarları kolayca tanımlamak ve hatırlamak için kullanılır. Önyükleme sırasında ayarlanır, örneğin /etc/hostnameLinux tabanlı sistemlerde. Ana bilgisayar adı ayrıca, bir DHCP istemcisinin (bizim durumumuzdaki Android cihazı) DHCP sunucusuna (WiFi yönlendirici) atanmış bir IP adresi alması için yaptığı bir parçasıdır DHCPREQUEST( IETF tarafından kod olarak standartlaştırılmıştır ). DHCP sunucusu, DNS gibi hizmetler sunmak için ana bilgisayar adlarını saklar .

Android - Linux çekirdeğinin ana bilgisayar adı hizmetini kullanmak yerine - net.hostnameAndroid kimliğini temel alan her cihaz için benzersiz bir ana bilgisayar adı belirlemek için kullanılır . Bu ana bilgisayar adı özelliği DHCP el sıkışması için de kullanıldı. Ancak Android 5 beri - yerli dhcpcdJava DHCP müşterisinin lehine terk edildi - hostname boş yer DHCPREQUEST. net.hostnameolan ne seti , ne de DHCP istemcisi tarafından değerlendirilir. Dolayısıyla, WiFi yönlendiricileri daha yeni Android cihazlar için ana bilgisayar adı göstermez, ne ayarlayacağız / ne ayarlayacağız / ne değiştiremeyiz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.