कैसे "ShareIt", "Xender" आदि "अनजान स्रोत" अनुमति की आवश्यकता के बिना APK स्थापित करने में सक्षम हैं?


9

आम तौर पर, अगर मुझे एक एपीके (एसडी कार्ड से) स्थापित करना है, तो मुझे अपने फोन की सेटिंग में "अज्ञात स्रोत" को सक्षम करने की आवश्यकता है। लेकिन जब मैं "ShareIt" का उपयोग करके किसी अन्य फोन से किसी भी APK को स्थानांतरित और स्थापित करता हूं, तो मेरे फोन द्वारा ऐसी किसी भी अनुमति की आवश्यकता नहीं है।

ShareIt इस अनुमति को कैसे दरकिनार कर सकता है?


क्या ShareIt आपके डिवाइस पर पहले से इंस्टॉल आया था, या आपने इसे खुद इंस्टॉल किया था?
इज़ी

जवाबों:


8

मैंने थोड़ी सी खुदाई की और यह एपीआई 21 से सिस्टम अनुमति के बिना संभव है । इसके बाद https://developer.android.com/reference/android/content/pm/PackageInstaller.html

वास्तव में, Google द्वारा एक कोड नमूना है जो दिखाता है कि यह कैसे करना है। https://github.com/googlesamples/android-testdpc/blob/master/app/src/main/java/com/afwsamples/testdpc/cosu/CosuUtils.java


इसे खोदने के लिए यश, अब यह पता लगाने के लिए कि क्या ऐप ने वास्तव में इसका इस्तेमाल किया है ...
एंडी यान

2
@beeshyams - वास्तव में नहीं। एप्लिकेशन "मूक" इंस्टॉल नहीं कर सकता है। लंबित आशय के माध्यम से, स्थापना के समय उपयोगकर्ता के स्पष्ट "क्लिक" की आवश्यकता होती है।
नियो

1
@ नैनो धिक्कार है, इसलिए जब मैंने अपना उत्तर लिखा तो मैंने एक मूक स्थापित मान लिया ... मेरा बुरा।
एंडी यान

2
अन्य समाचारों में, ShareIt के पैकेज को किसी तरह से बाधित किया गया लगता है, इसलिए भले ही मेरे उपकरण जावा कोड पीढ़ी में सफल हो गए, लेकिन कुछ भी महत्वपूर्ण नहीं दिख रहा है।
एंडी यान

प्रतीक्षा करें - मैंने एक और उपकरण का उपयोग किया, और मुझे लगता है कि मुझे मिल गया होगा। मैंने सत्यापन के बाद इसे आपके उत्तर में संपादित कर दिया है।
एंडी यान

4

यदि ऐप्स चुपचाप इंस्टॉल किए जाते हैं (सामान्य इंस्टॉलेशन डायलॉग को iewithout), तो संभवतः ये ऐप सीधे कॉल करते हैं pm, अर्थात PackageManager, सिस्टम ऐप अनुमति के रूप में है android.permission.INSTALL_PACKAGES

फोन को रूट करना होगा ताकि ऐप pmरूट संदर्भ में कॉल कर सके , अन्यथा आपको "न तो उपयोगकर्ता xxxx और न ही वर्तमान प्रक्रिया में android.permission.INSTALL_PACKAGES" संदेश के साथ बधाई दी जाएगी।

EDIT: जैसा कि @Izzy ने टिप्पणी में बताया है, android.permission.INSTALL_PACKAGESको स्थापित ऐप्स को भी दी गई है /system। अधिक जानकारी के लिए नीचे टिप्पणी और इस SO प्रश्न को देखें ।


ध्यान दें कि मैंने वास्तव में ShareIt की कोशिश नहीं की और यह विश्लेषण करता है कि यह वास्तव में क्या करता है, बस सबसे अधिक संभावना सिद्धांत को आगे रखता है। यदि आप जड़ नहीं हैं और यह अभी भी काम कर रहा है, तो हमारे पास देखने के लिए बहुत अधिक दिलचस्प समस्या हो सकती है।
एंडी यान

1
@beeshyams यहां चीन में, बहुत सारे 3 पार्टी ऐप बाजार मौन या स्वचालित इंस्टॉल करेंगे। पहला तरीका यहां वर्णित है, और वे पहले स्थापित होने पर रूट की अनुमति मांगेंगे; दूसरा आपको एक्सेसिबिलिटी सेवा चालू करने के लिए कहने के लिए है, फिर "इंस्टॉल" बटन पर क्लिक को स्वचालित करें।
एंडी यान

1
मेरा फोन रूट नहीं हुआ है। और इसने रूट परमिशन भी नहीं मांगी। लेकिन भारत में, ShareIt सहकर्मी से सहकर्मी के माध्यम से एप्लिकेशन इंस्टॉल करने का एक बहुत लोकप्रिय तरीका है।
नियो

1
@beeshyams आवश्यक अनुमतियों के उस एप्लिकेशन और उसके भयावह तिल से बचें। इसके बजाय HTTP (F-Droid पर उपलब्ध) के माध्यम से ओपन सोर्स शेयर का उपयोग करने पर विचार करेंमैं किसी भी तरह से ऐप से संबद्ध नहीं हूं।
ग्रिमोइरे

1
@beeshyams यह उसी नेटवर्क से जुड़े किसी भी उपकरण के साथ काम करता है। जहाँ तक मैं बता सकता हूँ, होस्ट एंड्रॉइड होना चाहिए, लेकिन कोई भी डिवाइस फिर उसी नेटवर्क से कनेक्ट हो सकता है और फ़ाइल डाउनलोड करने के लिए ऐप में दिखाए गए HTTP पते पर जा सकता है।
ग्रिमोइरे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.