सारांश:
getprop net.hostname
(Android सिस्टम होस्टनाम, संभावना android_24412414 प्रकार नाम)
echo $HOSTNAME
(शेल / टर्मिनल / एनवी होस्टनाम, संभावना ro.product.device build.prop से)
cat /proc/sys/kernel/hostname
(लिनक्स सिस्टम होस्टनाम, संभावना लोकलहोस्ट )
head /etc/hosts
(लिनक्स सिस्टम होस्टनाम, संभावना लोकलहोस्ट )
hostname
(कमांड हमेशा स्थापित नहीं होती है, अगर व्यस्त बॉक्स के माध्यम से स्थापित की जाती है, तो / sys / कर्नेल / होस्टनाम को पढ़ेगा / खरीदेगा )
आपके पास Android के किस संस्करण पर निर्भर करता है।
Android 4.0 और ऊपर
नए संस्करण सही build.prop
प्रविष्टि का उपयोग करेंगे । ठीक है, यह कहना है कि Android build.prop
सामान्य बूट प्रक्रिया के रूप में पढ़ता है। एक बार कनेक्टिविटी सेवा चलने के बाद, यह देखने के लिए जांचें कि क्या net.hostname सेटिंग में सेट है, तो यदि खाली है, तो वह "android_" + (स्थायी) android ID का उपयोग करता है। इसलिए आपको बस इतना करना है।
जोड़े net.hostname=HOSTNAMEHERE
को /system/build.prop
(रूट की जरूरत हो सकती)। फ़ाइल के अंत में एक रिक्त रेखा छोड़ दें।
किटकैट की कनेक्टिविटीस्वाइस.जावा, आईएफ इस्मिप्ट स्टेटमेंट देखें :
// 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 और उससे नीचे
पुराने संस्करण, जिंजरब्रेड, फ्रायो, आदि, बस इसे क्लोब करें। यह जाँच करने के लिए परेशान नहीं करता है। यह net.hostname को android_24412414 पर सेट करेगा ... चाहे कोई भी हो। तो आपको इसे बदलने की आवश्यकता होगी उसके बाद कनेक्टिविटी सेवा ने लोड करना समाप्त कर दिया है। सौभाग्य से, यह केवल एक बार स्टार्टअप चलाता है, हर नए कनेक्शन पर नहीं। इसलिए हमें बस setprop net.hostname HOSTNAMEHERE
इसके बाद दौड़ने की जरूरत है ताकि हम चिपक सकें। दुर्भाग्य से, यह बूट प्रक्रिया में काफी देर से चलता है, इसलिए आपको कुछ ऐसी चीज की आवश्यकता होती है जो बूट_कॉम पर बदलाव करेगी। सबसे अधिक संभावना है कि एक ऐप जो खुद से चलता है।
फ्रायो की कनेक्टिविटीस्वाइस.जावा :
// 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 सेटिंग, पूरे सिस्टम में कॉपी नहीं की जाती है! यदि आप कंसोल / टर्मिनल एप्लिकेशन का उपयोग करते हैं, तो आपको समान होस्टनाम नहीं मिल सकता है। मेरे फ़ोन, एक सैमसंग साइडकिक 4G (अर्ध-गैलेक्सी एस आधारित) में एक init.rc है, जो चलता है hostname localhost
, इसलिए सभी नीचे दिए गए कमांड आपके build.prop hostname या android_id hostname को नहीं देखेंगे! तो आपको वह भी सेट करना होगा।
hostname HOSTNAMEHERE
या echo HOSTNAMEHERE > /proc/sys/kernel/hostname
नोट: आप इसे कैसे कर रहे हैं, इसके आधार पर, आपको कार्य करने के लिए उपरोक्त कमांड को रूट के रूप में चलाना होगा। Init.rc आम तौर पर केवल सिस्टम विभाजन को पढ़ने पर होती है, इसलिए इसे संपादित करने के लिए रूट एक्सेस की आवश्यकता होती है।
Dhcpcd कमांड, जिसे dhcp एड्रेस प्राप्त करने के लिए चलाया जाता है, सर्वर द्वारा प्रदान किए गए होस्टनाम को अपडेट नहीं करेगा (यह सही dhcpcd- रन-हुक और dhcpcd .conf को जोड़कर तय किया जा सकता है) और यह होस्टनाम प्रदान नहीं करेगा। dhcp सर्वर के लिए यदि $(hostname)
(hostname कमांड) रिक्त या लोकलहोस्ट है, और यह आंतरिक रूप से net.hostname का उपयोग नहीं करता है। libnetutils का उपयोग dhcpcd को -h "net.hostname" के साथ करने के लिए किया जाता है, लेकिन अगर किसी कारण से यह -h के साथ कॉल न करने का निर्णय लेता है, तो DHCPCD मिल जाएगा, सिस्टम होस्टनेम को gethostname () के माध्यम से भेजें, जब तक कि यह नहीं है (कोई नहीं) "," लोकलहोस्ट ", या खाली। वैसे भी स्टॉक फ्रायो पर। सैमसंग ने खदान जैसे कुछ उपकरणों पर पेंच फंसा दिया। कोई होस्टनाम नहीं गुजरता, मजबूर नेटवर्क समय, आदि।
जिंजरब्रेड और सैमसंग के नीचे के लिए मेरा समाधान, डीएचसीपी क्लाइंट डेमन कॉन्फिगर संपादित करें:
आखिरी चीज जो आप कर सकते हैं वह है /etc/dhcpcd/dhcpcd.conf। यदि आप hostname YOURHOSTNAME
फ़ाइल में जोड़ते हैं , तो यह उस का उपयोग करेगा, जब तक कि कमांडलाइन पर होस्टनाम नहीं दिया जाता है। यह android_234etc समस्या को ठीक नहीं करेगा, लेकिन यदि होस्टनाम लोकलहोस्ट (मेरी समस्या है, जब से सैमसंग ने libnetutils और लोकलहोस्ट init.rc को खराब किया है)। आपको रूट की आवश्यकता होगी, लेकिन यह रिबूट में काम करता है। यदि dhcpcd को -h होस्टनाम विकल्प के साथ कहा जाता है तो यह काम नहीं करेगा।