Ö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.prop
girişi kullanacaktır . Yani, Android build.prop
normal 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=HOSTNAMEHERE
iç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 HOSTNAMEHERE
yapış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 YOURHOSTNAME
Dosyaya 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.