प्रस्तावना
यह देर हो सकती है, लेकिन मैं आपके प्रश्न पर अपनी खुद की टेक जोड़ना चाहता हूं, पूर्णता के लिए। यह उत्तर किसी एप्लिकेशन पर इंटरनेट एक्सेस को ब्लॉक करने का एक निश्चित तरीका है। चढ़ाव? यह इंटेंट्स को ब्लॉक नहीं करता है, यह कन्वेक्टेड है और टारगेट ऐप को क्रैश कर सकता है, और इसके लिए रूट विशेषाधिकारों की आवश्यकता होती है ।
यह एंड्रॉइड 7.1.2 पर काम करने के लिए परीक्षण और पुष्टि की गई है।
दलील
जैसा कि अन्य उत्तरदाताओं द्वारा उल्लेख किया गया है, कोई भी ऐप जो इंटरनेट का उपयोग करना चाहता है, उसे android.permission.INTERNET
अपने भीतर निर्विवाद अनुमति की घोषणा करनी चाहिए AndroidManifest.xml
। एंड्रॉइड कैसे याद करता है कि एक ऐप ने किन अनुमतियों का अनुरोध किया है, हालांकि? उन्हें अंदर सहेज कर packages.xml
, एक संरक्षित फ़ाइल जिस पर स्थित है /data/system
।
यह बिना कहे चला जाता है कि हमारे जैसा कोई व्यक्ति किसी अनुमति को जोड़ने या निकालने के उद्देश्य से, उक्त फाइल के संपादन में दिलचस्पी ले सकता है , बशर्ते कि उनके पास रूट विशेषाधिकार हों। यह वीपीएन या फ़ायरवॉल सॉफ़्टवेयर के बिना किसी ऐप तक इंटरनेट की पहुंच को नकारने का हमारा तरीका है।
packages.xml
फ़ाइल
packages.xml
फ़ाइल सूचियों इंस्टॉल किए गए एप्लिकेशन के सभी, एक साथ उनके रास्ते और अनुमति के साथ। प्रत्येक ऐप को <package></package>
टैग के बीच रखा जाता है ; मेरे जवाब के लिए, मैं TeslaCoil द्वारा नोवा लॉन्चर को लक्षित करूँगा। फ़ाइल में ऐप का श्लोक इस प्रकार है:
<package name="com.teslacoilsw.launcher" codePath="/data/app/com.teslacoilsw.launcher-1" nativeLibraryPath="/data/app/com.teslacoilsw.launcher-1/lib" publicFlags="944258628" privateFlags="0" ft="16075caace8" it="16075cac965" ut="16075cac965" version="53000" userId="10083" installer="com.android.packageinstaller">
<sigs count="1">
<cert index="7" key="3082034d30820235a0030201020204638fbad3300d06092a864886f70d01010b05003057315530530603550403134c726f636b7a35353535204f553d44726f69642046726565646f6d20556e6974204f3d44726f69642046726565646f6d20496e63204c3d556e6b6e6f776e20533d556e6b6e6f776e20433d4c4b301e170d3134313230353030343535375a170d3434313132373030343535375a3057315530530603550403134c726f636b7a35353535204f553d44726f69642046726565646f6d20556e6974204f3d44726f69642046726565646f6d20496e63204c3d556e6b6e6f776e20533d556e6b6e6f776e20433d4c4b30820122300d06092a864886f70d01010105000382010f003082010a0282010100818b312365be3e55f48989d43468880067464eca65aa3ba73305178311fc2a053c143182f6d2ea635b57dc327adf8a5a9b763c03f0a48c38530114e6979358d6bfca37d161ca6fe8bb0d80f061d7b67bc1456cdfc38e0cda2ebd05c48113f701140950f0fe4315de6b95c7504129abb2c1a61f1e4f1229fb83f474dbcd7dc957b84a1b8a2aa0157b223609d77980a3f579c93fbb24a6f9fbb5a8e207cccdf1add616c95c732d5c114c0168fdbd9c00ddf211c2b8886b9498a34f389025802e334f404b7e4eb75f6308f086e5bdac64db10053c7ff8d21a350b941d5394ffbe2bd037139134eb065c2317625e65d3f628aecf7965a0d70b02e68aa8371efd1fe50203010001a321301f301d0603551d0e04160414a4e66b693ecdf3241883e3eed668354e1531ba11300d06092a864886f70d01010b050003820101003992f3f461a290db767911a4a519f035fe0c34e597e2fba2e31371e260bd2fc8f9a93c35e6f06553d02588d2f8453ee784d2ba09a696e66304e3e01f7c6bdf5b2747fc73f79d00379cc94eefa542c8eb308318364df2fa1a9c6a7ef0669d08f7b1f8635d0d4331e2817d5aeb0854760116c29801cf915ef67d5c0e04861cad4fa7b96fe8f9a0baf0cda649cd35a7122142ba38b2d16d9d319a8604a41fe0025d89be87f84ce8fc080ab54c76a96f3d9b70b1a5f5e18e48768e3684bca8a950665e16a6d50cf0045949baebca876d55eeba52ea421f33009872d9d654f8f8caa1bb465d754694d4bf6cb92f3299fbec3781849b37e6ba23ffe3d6c20ecb9bc65d" />
</sigs>
<perms>
<item name="com.android.launcher3.permission.READ_SETTINGS" granted="true" flags="0" />
<item name="com.google.android.c2dm.permission.RECEIVE" granted="true" flags="0" />
<item name="com.teslacoilsw.launcher.permission.C2D_MESSAGE" granted="true" flags="0" />
<item name="android.permission.EXPAND_STATUS_BAR" granted="true" flags="0" />
<item name="android.permission.WRITE_MEDIA_STORAGE" granted="true" flags="0" />
<item name="android.permission.INTERNET" granted="true" flags="0" />
<item name="android.permission.ACCESS_NETWORK_STATE" granted="true" flags="0" />
<item name="android.permission.SET_WALLPAPER" granted="true" flags="0" />
<item name="android.permission.SET_WALLPAPER_HINTS" granted="true" flags="0" />
<item name="android.permission.VIBRATE" granted="true" flags="0" />
<item name="android.permission.ACCESS_WIFI_STATE" granted="true" flags="0" />
<item name="android.permission.WAKE_LOCK" granted="true" flags="0" />
</perms>
<proper-signing-keyset identifier="10" />
</package>
फ़ाइल से इंडेंटेशन को शब्दशः सूचित किया जाता है।
प्रक्रिया
उपरोक्त ज्ञान के साथ, हम अब नोवा लॉन्चर की अनुमतियों की जांच करने के लिए आगे बढ़ सकते हैं, जिनके बीच लिपटा हुआ है <perms></perms>
। जल्द ही, हमें केवल वही मिलेगा जिसे हमें संपादित करना है:
<item name="android.permission.INTERNET" granted="true" flags="0" />
एप्लिकेशन तक इंटरनेट पहुंच को प्रभावी ढंग से नकारने के लिए, हमें केवल पूरी लाइन को हटाने और हमारे डिवाइस को रिबूट करने की आवश्यकता है। भविष्य के उपयोग के लिए इसे टिप्पणी करना बेकार है: एंड्रॉइड हर बूट पर इस फ़ाइल की जांच करता है, और आपकी टिप्पणियों को शुद्ध करेगा ।
कमियां
इस प्रक्रिया का पालन करने से आपको एक ऐसा ऐप मिल जाएगा, जो किसी भी तरह से इंटरनेट से संवाद नहीं कर सकता है। हालांकि, खराब कोडेड एप्लिकेशन और सॉफ्टवेयर मार्शमैलो और इसके बाद के संस्करण का इरादा नोवा के रूप में इंटरनेट से कनेक्ट करने की कोशिश करने पर क्रैश हो सकता है।
इसके अलावा, जैसा कि फायरलॉर्ड द्वारा कहा गया है, एक ऐप को अपडेट करने से परिवर्तन वापस हो जाते हैं, हमारे प्रयासों को प्रभावी ढंग से शून्य कर देते हैं और नए सिरे से हटाने की अनुमति की आवश्यकता होती है।
इस प्रक्रिया में संशोधन
हमने जो ऊपर किया था, उसे उलटने के लिए, हमें उन सभी चीज़ों को हटाने की अनुमति देनी होगी जो हमने अन्य लोगों के बीच वापस की हैं और डिवाइस को रिबूट किया है।
अस्वीकरण
मैं नोवा लॉन्चर या इसके डेवलपर्स से संबद्ध नहीं हूं।