ADB के माध्यम से सिस्टम ऐप्स को सक्षम और अक्षम करें


49

क्या किसी सिस्टम ऐप को सक्षम / अक्षम करने के लिए कोई adb कमांड है?

धन्यवाद

जवाबों:


67

हाँ। आज्ञा है pm disable <package name>। ऐसा करने के लिए आपको रूट होना चाहिए:

खोल खोलो और जड़ जाओ:

PC> adb shell
shell@hammerhead:/ $ su

सभी सक्षम ऐप्स को सूचीबद्ध करें, "कैलकुलेटर" द्वारा फ़िल्टर करें:

root@hammerhead:/ # pm list packages -e | grep 'calculator'
package:com.android.calculator2

एप्लिकेशन अक्षम करें:

root@hammerhead:/ # pm disable com.android.calculator2
Package com.android.calculator2 new state: disabled

सभी अक्षम ऐप्स को सूचीबद्ध करें:

root@hammerhead:/ # pm list packages -d
package:com.android.calculator2
package:com.google.android.apps.inputmethod.hindi
package:jp.co.omronsoft.iwnnime.ml
package:com.google.android.inputmethod.pinyin
package:com.google.android.inputmethod.korean
package:com.google.earth
root@hammerhead:/ #

ध्यान देने योग्य कुछ अन्य बातें:

  1. मेरे परीक्षण में, इस तरीके से अक्षम किए गए एप्लिकेशन सेटिंग> एप्लिकेशन सूची से पूरी तरह से गायब हो जाते हैं। वे "अक्षम" टैब में भी प्रदर्शित नहीं होते हैं
  2. आप ऐप्स को पुन: सक्षम कर सकते हैं pm enable <package name>। वास्तव में, यह मेरे अनुभव में, उन्हें फिर से सक्षम करने का एकमात्र तरीका प्रतीत होता है ।

क्या इसे अक्षम करते समय चुने गए ऐप को छिपाने से बचना संभव है?
Android डेवलपर

1
@androiddeveloper No. यूआई से पूरी तरह से ऐप को छिपाना , इसके पीछे का पूरा विचार है।
इज़ी

@ मैं देख रहा हूँ। क्या यह संभव है कि विपरीत करने के बिना, मतलब सिर्फ छिपाना संभव है?
Android डेवलपर

सैद्धांतिक रूप से हाँ मुझे लगता है; लेकिन मुझे नहीं पता कि कैसे करना है। दुकानों पर कुछ "ऐप" हैं जो स्थापित होने पर कहीं नहीं दिखाई देते हैं (जैसे कि वे केवल कुछ अन्य ऐप में अतिरिक्त सेटिंग्स प्रदान करते हैं, या कुछ "अदृश्य सेवाओं" की पेशकश करते हैं जैसे "विशिष्ट सेवाओं के लिए खाता प्रबंधक"), जो यह साबित करता है कि यह काम करना चाहिए जैसे तैसे; लेकिन मुझे डर है कि यह ऐप Manifestया उसके जैसे किया जाए (मैं एंड्रॉइड देव नहीं हूं, इसलिए मैं नहीं बता सकता)।
इज़ी

यह playstore पेज द्वारा ऐप को सक्षम करना संभव है।
जानकारी-स्क्रीन

7

@Eldarerathis द्वारा जवाब के आगे, आप एक विशिष्ट उपयोगकर्ता के लिए एक ऐप को अक्षम कर सकते हैं। मैंने इस पद्धति का उपयोग कुछ उपयोगकर्ताओं को प्रतिबंधित उपयोगकर्ता से हटाने के लिए किया था जो उपयोगकर्ता सेटिंग्स स्क्रीन पर सूचीबद्ध नहीं थे। सभी कमांड ए से adb shell। परिवर्तन करने के लिए रूट एक्सेस की आवश्यकता होती है।

सबसे पहले, उपयोगकर्ता की आईडी प्राप्त करें:

$ pm list users
Users:
  UserInfo{0:Alice:13} running
  UserInfo{11:Bob:18} running

फिर

$ pm disable --user 11 com.cyanogenmod.filemanager
Package com.cyanogenmod.filemanager new state: disabled-user

फिर से सक्षम करने के लिए

# pm enable --user 11 com.cyanogenmod.filemanager

इस उदाहरण में, ऐलिस फ़ाइल प्रबंधक का उपयोग कर सकता है लेकिन बॉब नहीं कर सकता।

आप hideइसके बजाय के साथ एक समान काम कर सकते हैं disable। मुझे यकीन नहीं है कि कौन सबसे अच्छा है, लेकिन इस जवाब को देखें । की बातचीत hideहै unhide(एक रिबूट प्रभाव के लिए आवश्यकता हो सकती है unhide)।

आप के साथ संकुल को सूचीबद्ध कर सकते हैं pm list pacakges --user 11-eसक्षम पैकेजों की सूची दें या -dयदि आप विकलांगों को देखना चाहते हैं। छिपे हुए पैकेजों के लिए कोई फ़िल्टर नहीं होगा।

एफडब्ल्यूआईडब्ल्यू, मैंने सीएम 12.1 के साथ लॉलीपॉप पर अमेज़ॅन फायर (KFFOWI) पर कोशिश की।


3

यह परवाह किए बिना काम करना चाहिए कि ऐप एक सिस्टम ऐप है या थर्ड-पार्टी ऐप (उपयोगकर्ता इंस्टॉल)।


संबंधित ऐप के पैकेज का नाम पाने के लिए अपने ऐप के पैकेज का नाम निर्धारित करने के लिए मेरा उत्तर देखें और इन कमांड्स को निष्पादित करने के लिए शेल का उपयोग करें ( रूट एक्सेस की आवश्यकता है ):

अदब का खोल
सु
pm अक्षम पैकेज # एप्लिकेशन अक्षम करता है और इसे सेटिंग -> एप्लिकेशन में छुपाता है 
शाम छिपाना पैकेज # विकल्प; Android लॉलीपॉप और इसके बाद के संस्करण के लिए
cmd पैकेज सस्पेंड पैकेज # विकल्प; पैकेज लॉन्चर और सेटिंग ऐप में दिखाई देता है, लेकिन इसका उपयोग नहीं किया जा सकता है; डिवाइस एडमिनिस्ट्रेशन की एक विशेषता

PACKAGE ऐप के पैकेज नाम को संदर्भित करता है

एप्लिकेशन को पुन: स्थापित करने के लिए, की जगह को निष्क्रिय साथ सक्षम , छिपाने के साथ प्रकट करें , और निलंबित साथ का निलंबन रद्द कहा आदेश में और मूल विशेषाधिकार के साथ निष्पादित।

यदि आपके पास Android किटकैट या उससे ऊपर है और रूट एक्सेस नहीं है, तो इस कमांड को निष्पादित करने के लिए पीसी में का उपयोग करें:

एंड्रॉइड किटकैट के लिए adb shell pm block PACKAGE #
adb शेल दोपहर एंड्रॉइड लॉलीपॉप के लिए पैकेज # छिपाएं
adb शेल pm अक्षम-उपयोगकर्ता पैकेज # विकल्प के लिए `pm Hide`; Android लॉलीपॉप और इसके बाद के संस्करण के लिए; यह सेटिंग एप्लिकेशन के माध्यम से किसी एप्लिकेशन को अक्षम करने की तरह काम करता है

एप्लिकेशन को बहाल करने के लिए:

एंड्रॉइड किटकैट के लिए adb शेल pm अनब्लॉक पैकेजेज #
एंड्रॉइड लॉलीपॉप के लिए adb शेल pm अनहाइड पैकेज # और केवल तभी जब आप `pm hide` का उपयोग पहले करते थे
adb शेल दोपहर Android लॉलीपॉप और इसके बाद के संस्करण के लिए PACKAGE को सक्षम करें

बदलाव तुरंत होता।

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