ADB के माध्यम से डिवाइस प्रशासक को सक्रिय करें


9

क्या टैपिंग के बजाय एडीबी कमांड के माध्यम से डिवाइस प्रशासक को सक्रिय करना संभव है

"सेटिंग -> सुरक्षा -> डिवाइस प्रशासक -> ऐप चुनें -> सक्रिय करें"

हाथ पर?

यदि यह संभव है, तो कैसे?


जैसा कि यह पूरी तरह से काम करता है आप को єaᴎᴅᴏƞ вєн answer के जवाब को स्वीकार करने पर विचार करना चाहिए !!
क्लिफ बर्टन

जवाबों:


6

यह मुमकिन नहीं है। इसे रोकने के लिए सेटिंग कोड विशेष रूप से लिखा गया है। निकटतम आप आ सकते हैं सेटिंग ऐप में डिवाइस प्रशासन सेटिंग्स पृष्ठ को लाने के लिए । आप इसके साथ कर सकते हैं:

adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"

धन्यवाद Dan, थोड़ा सुधार: यह adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity" एकल उद्धरण के बिना होना चाहिए
marengga

अधिकांश शेल में, वह कमांड सिर्फ सेटिंग्स शुरू करेगा , डिवाइस एडमिनिस्ट्रेशन सेटिंग्स पेज नहीं। यहाँ Izzy क्यों की व्याख्या है
डेन हुल्मे

अक्षम करने के बारे में क्या? क्या यह संभव है?
Android डेवलपर

5

परीक्षण और जड़ के बिना एंड्रॉइड 7.0 पर काम करना:

adb shell
dpm set-active-admin --user current com.company.foo.bar.package/.the.Admin.Reciever

स्थापित पैकेज के व्यवस्थापक रिसीवर को खोजने के लिए, adb शेल कमांड के लिए निम्नलिखित का उपयोग करें और आउटपुट की समीक्षा करें:

adb shell
pm dump com.company.foo.bar.package | grep ' filter' | cut -d ' ' -f 12 | sort | uniq

एक वास्तविक दुनिया का उदाहरण देने के लिए, यहां एक उपकरण व्यवस्थापक के रूप में IBM के Maas360 एंड्रॉइड क्लाइंट को सक्रिय करने के लिए कमांड का उपयोग किया गया है:

adb shell
pm dump com.fiberlink.maas360.android.control | grep ' filter' | cut -d ' ' -f 12 | sort | uniq

Output:
…
com.fiberlink.maas360.android.control/.receivers.GoogleCampaignReceiver
com.fiberlink.maas360.android.control/.receivers.LocalEventReceiver
com.fiberlink.maas360.android.control/.receivers.Maas360DeviceAdminReceiver  <-- This is the one I want
com.fiberlink.maas360.android.control/.receivers.Maas360SecondaryDeviceAdminReceiver
…


Set Device Admin:    
dpm set-active-admin --user current com.fiberlink.maas360.android.control/.receivers.Maas360DeviceAdminReceiver

यह काम करता हैं! यह स्वीकृत उत्तर होना चाहिए! मेरा एक प्रश्न है, क्या उस कमांड में एक अतिरिक्त जोड़ना संभव है? मुझे प्रशासक सक्रियता के बाद सैमसंग नॉक्स लाइसेंस सक्रियण का अनुरोध करने की आवश्यकता है और मैं लाइसेंस की कुंजी को एक अतिरिक्त के रूप में पारित करना चाहता हूं (इसलिए मुझे इसे अपने कोड में या अपने डिवाइस पर संग्रहीत करने की आवश्यकता नहीं है)
क्लिफ बर्टन

1

हां, बशर्ते कि आपने रूट एक्सेस किया हो। आपको फ़ाइल में ऐप का रिसीवर और पॉलिसी फ़्लैग जोड़ना होगा /data/system/device_policies.xml। उदाहरण के लिए, सक्षम करने के लिए Tasker उपकरण व्यवस्थापक कहा फ़ाइल में निम्न पंक्तियाँ जोड़ें के रूप में,

एंड्रॉइड 5.x के लिए:</policies> यदि सिस्टम में पहले से ही डिवाइस प्रशासक सक्षम है, तो अंतिम पंक्ति को हटा दें । बस स्ट्रिंग के साथ लाइन के बाद फ़ाइल में लाइनें जोड़ें <policies setup-complete="true">

<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>

Android 4.2.1 के लिए:</policies> यदि सिस्टम में पहले से ही डिवाइस प्रशासक सक्षम है, तो अंतिम पंक्ति को हटा दें । बस स्ट्रिंग के साथ लाइन के बाद फ़ाइल में लाइनें जोड़ें <policies>

<admin name="net.dinglisch.android.taskerm/net.dinglisch.android.taskerm.MyDeviceAdminReceiver">
<policies flags="8" />
</admin>
</policies>

परिवर्तनों को प्रभावी करने के लिए डिवाइस को रिबूट करें।

( बिजीबॉक्स ) की आवश्यकता आप उपयोग कर सकते हैं sedया echoया किसी आदेश है कि आप आराम से उन पंक्तियों के साथ फ़ाइल में लिखने का साथ कर रहे हैं। किसी भी मदद के लिए, यहां मेरा जवाब देखें: टास्कर का उपयोग करके विशिष्ट एप्लिकेशन के लिए डिवाइस व्यवस्थापक कैसे सक्षम करें?


0

यह है संभव। आप डिवाइस व्यवस्थापक के लिए "सक्रिय करें" मारने सहित सिस्टम पर किसी भी दृश्य या बटन के साथ क्लिक करने और बातचीत करने के लिए एंड्रॉइड के नए टूल यूआई-ऑटोमेटर का उपयोग कर सकते हैं। ऐसे:

  1. जाओ यूआई-स्वचालक चल रहा है। ("अपने विकास के वातावरण को कॉन्फ़िगर करें" पर जाएं और एक नया जावा प्रोजेक्ट सेट करें)।
  2. अपनी वरीयताओं की सूची के साथ बातचीत करने के लिए कुछ कोड लिखें और "सक्रिय करें" पर क्लिक करें। उदाहरण:

    UiScrollable settingsItem = new UiScrollable (नया UiSelector ()); className ("android.widget.ListView")); UiObject listButton = settingsItem.getChildByText (नया UiSeoror (); className ("android.widget.LinearLayout"), "डिवाइस व्यवस्थापक सक्षम करें"); listButton.click (); (new UiObject (नया UiSelector ()। text ("Activate")))। clickAndWaitForNewWindow (); me.celebrateWith (नई बीयर ());

  3. इसे संकलित करें: ant build

  4. जार फ़ाइल को पुश करें: adb -d push bin/LookoutTest.jar /data/local/tmp/
  5. अपनी सेटिंग गतिविधि लॉन्च करें: adb shell am start -S "'com.android.settings/.Settings\$DeviceAdminSettingsActivity'"
  6. स्वचालन चलाएँ: adb -d shell uiautomator runtest LookoutTest.jar -c DALaunch
  7. पार्टी।

अगर डिवाइस का वर्तमान स्थान अंग्रेजी नहीं है तो भी क्या यह काम करेगा?
Android डेवलपर

0

आप डिवाइस को Android Studio से स्वामी के रूप में सेट कर सकते हैं। सबसे पहले adb लोकेशन पर जाएँ जो Android Sdk में Platform-Tools में है और फिर adb शेल कमांड को रन करें। मेरे पास पूरा रास्ता है और आप अदब पथ और पैकेज नाम बदलने पर अपनी आवश्यकता के अनुसार समायोजित कर सकते हैं

C:\Users\Owner\AppData\Local\Android\Sdk\platform-tools>adb shell dpm set-device-owner package-name/.MyDeviceAdminReceiver

MyDeviceAdminReceiver इंटरफ़ेस है।

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