Präambel
Es mag spät sein, aber ich möchte der Vollständigkeit halber meine eigene Meinung zu Ihrer Frage hinzufügen. Diese Antwort ist eine todsichere Möglichkeit, den Internetzugriff für eine Anwendung zu blockieren. Die Nachteile? Es blockiert keine Absichten, es ist kompliziert und kann dazu führen, dass die Ziel-App abstürzt. Außerdem sind Root-Berechtigungen erforderlich .
Es wurde getestet und für Android 7.1.2 getestet.
Begründung
Wie von den anderen Befragten erwähnt, muss jede App, die auf das Internet zugreifen möchte, die android.permission.INTERNET
unbestreitbare Erlaubnis innerhalb ihrer erklären AndroidManifest.xml
. Wie merkt sich Android, welche Berechtigungen eine App angefordert hat? Durch Speichern in packages.xml
einer geschützten Datei unter /data/system
.
Es versteht sich von selbst, dass jemand wie wir daran interessiert sein könnte, diese Datei zu bearbeiten, um eine Berechtigung hinzuzufügen oder zu entfernen , sofern er über Root-Rechte verfügt. Auf diese Weise können wir den Internetzugriff auf eine App ohne VPNs oder Firewall-Software negieren.
Die packages.xml
Datei
In der packages.xml
Datei werden alle installierten Apps mit ihren Pfaden und Berechtigungen aufgelistet. Jede App wird zwischen den <package></package>
Tags platziert. Um meiner Antwort willen ziele ich auf Nova Launcher von TeslaCoil. Die Zeilengruppe der App in der Datei lautet wie folgt:
<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>
Der Einzug wird wörtlich aus der Datei gemeldet.
Verfahren
Mit den oben genannten Kenntnissen ausgestattet, können wir nun die Berechtigungen von Nova Launcher überprüfen, die zwischen ihnen liegen <perms></perms>
. Bald genug werden wir das einzige finden, das wir bearbeiten müssen:
<item name="android.permission.INTERNET" granted="true" flags="0" />
Um den Internetzugriff auf die App effektiv zu verweigern, müssen wir lediglich die gesamte Leitung löschen und unser Gerät neu starten. Das Auskommentieren für die zukünftige Verwendung ist nutzlos: Android überprüft diese Datei bei jedem Start und löscht Ihre Kommentare .
Nachteile
Wenn Sie diesen Vorgang ausführen, erhalten Sie eine App, die in keiner Weise mit dem Internet kommunizieren kann. Jedoch schlecht codierte Anwendungen und Software für Eibisch bestimmt und über abstürzen könnte beim Versuch mit dem Internet zu verbinden , wie Nova tut.
Darüber hinaus führt die Aktualisierung einer App, wie von Firelord ausgeführt, dazu, dass die Änderungen rückgängig gemacht werden, wodurch unsere Bemühungen unwirksam werden und die Erlaubnis zum erneuten Löschen erforderlich wird.
Änderung dieses Verfahrens
Um das oben Gesagte rückgängig zu machen, müssen Sie lediglich die von uns gelöschte Berechtigung zu den anderen hinzufügen und das Gerät neu starten.
Haftungsausschluss
Ich bin in keiner Weise mit Nova Launcher oder seinen Entwicklern verbunden.