मैं अपने Android डिवाइस का नाम कैसे बदलूं?


59

मेरा Android उपकरण Nexus One है। लेकिन यह सभी वर्तमान एंड्रॉइड डिवाइसों पर लागू होना चाहिए।

मैं अपने Android डिवाइस का नाम कैसे बदलूं?

जब मैं अपने वायरलेस राउटर के क्लाइंट टेबल से जुड़ता हूं, तो मेरे एंड्रॉइड डिवाइस को उदाहरण के लिए सूचीबद्ध किया जाता है: android_1234567890abedfc। मैं इसे और अधिक पठनीय नाम देना चाहूंगा।


डीएचसीपी सर्वर के माध्यम से होस्टनाम को कॉन्फ़िगर करना भी संभव है। लेकिन अगर एंड्रॉइड इस कॉन्फ़िगरेशन विकल्प का उपयोग करता है तो मैंने जांच नहीं की है। यह वैसे भी सिर्फ एक कॉस्मेटिक विकल्प है।
प्रवाह करें


@Flow (भिन्न लेकिन) Android DHCPCD के पास DHCP से होस्टनाम सेट करने के लिए dhcpcd-run-hook नहीं है। मेरे सैमसंग Froyo डिवाइस पर कम से कम। इसमें ntp हुक भी नहीं है। DHCPCD हालांकि इसका समर्थन करता है।
सीडीई

GNU Linux के लिए: askubuntu.com/questions/9540/how-do-i-change-the-computer-name , निम्न स्तर की कर्नेल विधियाँ काम करेंगी
Ciro Santilli 新疆 ask ask 六四 事件 事件

जवाबों:


22

होस्टनाम (डिवाइस का नाम) बदलने के लिए आपको टर्मिनल (रूट के रूप में) का उपयोग करना होगा:

Eclair (2.1) के लिए: MYNAME> / proc / sys / कर्नेल / होस्टनाम echo करें

Froyo (2.2) के लिए: (अधिकांश 2.3 पर भी काम करता है) setprop net.hostname MYNAME

फिर अपने वाई-फाई को पुनरारंभ करें। परिवर्तन देखने के लिए, uname -a टाइप करें

कुछ उपकरणों को काम के लिए रीबूट की आवश्यकता होती है!


क्या यह जेली बीन पर काम करता है?
jrg

3
यह काम करता है, लेकिन रिबूट पर कायम नहीं है।
पाल्विस ०im

1
uname -aमेरे लिए होस्टनाम नहीं दिखाता, हालांकि यह कहता है localhost। आप इसे दिखाने की क्या उम्मीद करते हैं?
एंडोलिथ

15

सारांश:

  • 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 होस्टनाम विकल्प के साथ कहा जाता है तो यह काम नहीं करेगा।


10

मुझे अपने रूट किए गए Nexus 7 पर 4.2.2 के साथ ऐसा करने का एक तरीका मिला। सेटिंग को लगातार सहेजा जाता है और रीबूट में काम करता है।
स्रोत: http://nileshgr.com/2012/10/13/how-to-change-wifi-host-name-of-your-android-device

  1. ध्यान दें कि डिवाइस को एडीबी का उपयोग करने के लिए रूट किया जाना चाहिए
  2. Daud adb pull /system/build.prop
  3. build.propफ़ाइल संपादित करें और संलग्न करेंnet.hostname=NewHostname
  4. भागो adb push build.prop /sdcard/build.prop(या /mnt/sdcard, यदि यह विफल रहता है)
  5. adb shellनिम्न आदेश चलाएँ और निष्पादित करें:
    $ su
    # mount -o rw,remount /system
    # cp /sdcard/build.prop /system/build.prop(या /mnt/sdcardयदि आपने पहले उपयोग किया था)
    # mount -o ro,remount /system
    # exit
  6. डिवाइस को रिबूट करें

यह एंड्रॉइड के नए संस्करणों में तय किया गया था। यह build.prop से net.hostname की जाँच करता है। पुराने Android संस्करण (मुख्यतः फ्रायो, शायद जिंजरब्रेड) नहीं हैं।
सीडी

ICS 4.2.2 नहीं है, जो कि
HasH_BrowN

ऐसा करने का एक आसान तरीका setpropडिवाइस पर रूट शेल के माध्यम से कमांड का उपयोग करना है: उदाहरण के लिएsetprop net.hostname NewHostName
मार्क

1
@ चिह्न जो रिबूट पर बंद हो जाएगा। यह उत्तर एक स्थायी संस्करण है।
सीडीई

9

यह CyanogenMod और शायद अन्य संशोधित रोम पर काम करता है, लेकिन स्टॉक AOSP रोम नहीं:

पर जाएं सेटिंग्स> डेवलपर विकल्प और के लिए नीचे स्क्रॉल डिवाइस होस्टनाम । जड़ की जरूरत नहीं है।

(विस्तार करने के लिए छवि पर क्लिक करें)

आईएमजी:


2
हाँ, आप Android 4.0.3 पर चलने वाले Acer A100 टैबलेट पर ऐसा नहीं कर सकते। वास्तव में, डेवलपर विकल्प में "डिवाइस होस्टनाम" भी नहीं है।
bgmCoder

7

मैंने लंबे समय से स्टॉक नहीं चलाया है लेकिन एप्लिकेशन सेटिंग> डेवलपमेंट में आपको 'डिवाइस होस्टनाम' विकल्प दिखाई देगा।


Android के किन संस्करणों पर? जब मैं अपने Droid 3 (Android 2.3.4) पर विकास विकल्पों को देखता हूं, तो मेरे पास वह विकल्प नहीं है।
माइकल कोहेन

3
यह CyanogenMOD और शायद अन्य संशोधित ROM पर काम करता है, लेकिन AOSP ROM का स्टॉक नहीं करता है।
कालेब

पूरी तरह से निर्माता और बिल्डर, साथ ही साथ Android संस्करण पर निर्भर करता है।
सीडी

5

Google Play Store पर जाएं। "Hostname" के लिए खोजें, और hostname परिवर्तक ऐप डाउनलोड करें ।

जड़ होना चाहिए।


क्या डिवाइस का नाम बदलना आंतरिक रूप से कुछ भी गड़बड़ करेगा?
bgmCoder

0

Hostname का उपयोग आसानी से नेटवर्क से जुड़े मेजबानों को पहचानने और याद रखने के लिए किया जाता है। यह बूट पर सेट है, जैसे /etc/hostnameलिनक्स आधारित सिस्टम पर। Hostname भी DHCPREQUEST( IETF द्वारा कोड 12 के रूप में मानकीकृत) का एक हिस्सा है जो एक डीएचसीपी क्लाइंट (हमारे मामले में एंड्रॉइड डिवाइस) एक आईपी पता असाइन करने के लिए डीएचसीपी सर्वर (वाईफाई राउटर) बनाता है। डीएचसीपी सर्वर डीएनएस जैसी सेवाओं की पेशकश करने के लिए होस्टनामों को संग्रहीत करता है ।

एंड्रॉइड - लिनक्स कर्नेल की होस्टनाम सेवा का उपयोग करने के बजाय - net.hostnameप्रत्येक डिवाइस के लिए एक अद्वितीय होस्ट नाम सेट करने के लिए संपत्ति का उपयोग किया गया जो एंड्रॉइड आईडी पर आधारित था। इस होस्टनाम संपत्ति का उपयोग डीएचसीपी हैंडशेक के लिए भी किया गया था। हालाँकि, जब से Android 5 - जब मूल निवासी dhcpcdको जावा डीएचसीपी क्लाइंट के पक्ष में छोड़ दिया गया था - होस्टनाम शून्य है DHCPREQUESTnet.hostnameहै न सेट , और न ही DHCP क्लाइंट द्वारा मूल्यांकन। इसलिए नए एंड्रॉइड डिवाइसों के लिए वाईफाई राउटर कोई होस्ट नाम नहीं दिखाता है, न ही हम इसे सेट / अनसेट / बदल सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.