Wie kann in Android 6 einer App der Zugriff auf das Netzwerk verweigert werden?

30

In Android 6 hat der Benutzer (endlich!) Die Möglichkeit, bestimmte Berechtigungen für eine App zu genehmigen oder zu verweigern.

Ich konnte jedoch keinen Weg finden, den Netzwerkzugriff zu genehmigen oder zu verweigern, weder über Wi-Fi noch über eine Mobilfunk-Datenverbindung. Die entsprechende Berechtigung wird unter "Andere App-Funktionen" angezeigt und ist nur informativ - anscheinend gibt es keine Möglichkeit, sie zu ändern.

Hier ist ein Beispiel mit der Chess Free App:

Bildschirmfoto

dr01
quelle
4
Das kannst du nicht. Lassen Sie mich eine glaubwürdige Quelle finden, aber Sie können dies nicht von Haus aus tun, da dies den Interessen von Google sehr schaden würde (Anzeigen also). Bearbeiten: Diesen Artikel finden Sie interessant: androidpolice.com/2015/06/06/…
Firelord

Antworten:

27

Mit dem nativen Mechanismus von Android werden Sie keinen Erfolg erzielen können.

Cody Toombs von Android Police hat in dem Artikel sehr gut darauf hingewiesen: Android M wird Benutzer niemals um Erlaubnis bitten, das Internet zu benutzen, und das ist wahrscheinlich in Ordnung .

Im Abschnitt Normalen und gefährliche Berechtigungen des Dokuments Berechtigungen Übersicht hat Google festgestellt:

Berechtigungen sind in mehrere Schutzstufen unterteilt.

Es gibt zwei Schutzstufen, die sich auf Apps von Drittanbietern auswirken: normale und gefährliche Berechtigungen.

  • Normale Berechtigungen decken Bereiche ab, in denen Ihre App auf Daten oder Ressourcen außerhalb der App-Sandbox zugreifen muss, bei denen jedoch das Risiko für die Privatsphäre des Benutzers oder den Betrieb anderer Apps sehr gering ist . Die Berechtigung zum Festlegen der Zeitzone ist beispielsweise eine normale Berechtigung.

    Wenn eine App in ihrem Manifest deklariert, dass sie eine normale Berechtigung benötigt, erteilt das System der App diese Berechtigung automatisch zum Zeitpunkt der Installation. Das System fordert den Benutzer nicht auf, normale Berechtigungen zu erteilen, und Benutzer können diese Berechtigungen nicht widerrufen.

  • Gefährliche Berechtigungen umfassen Bereiche, in denen die App Daten oder Ressourcen benötigt, die die privaten Informationen des Benutzers enthalten, oder die möglicherweise die gespeicherten Daten des Benutzers oder den Betrieb anderer Apps beeinträchtigen können. Das Lesen der Kontakte des Benutzers ist beispielsweise eine gefährliche Berechtigung. Wenn eine App angibt, dass sie eine gefährliche Berechtigung benötigt, muss der Benutzer der App die Berechtigung explizit erteilen.

(Betonung meiner)

Überraschend oder nicht, die folgenden Berechtigungen befinden sich in der Liste der normalen Berechtigungen :

  • CHANGE_NETWORK_STATE - Ermöglicht es Anwendungen, den Netzwerkverbindungsstatus zu ändern - z. B. mobile Daten.
  • CHANGE_WIFI_STATE - Ermöglicht Anwendungen, den Wi-Fi-Verbindungsstatus zu ändern.
  • INTERNET - Ermöglicht Anwendungen, Netzwerk-Sockets zu öffnen.

Wenn dies nicht ausreicht, überprüfen Sie die von AppOps verwalteten Berechtigungen hier . Wenn Sie Ihre Berechtigung dort nicht finden, können Sie in der GUI nichts damit anfangen.

Da alternative Methoden auf dieser Site bereits ausführlich behandelt werden, lesen Sie:

Feuerlord
quelle
12
Danke für deine Antwort. Es ist enttäuschend, wenn Funktionen nicht aus technischen Gründen, sondern aus Marktgründen beeinträchtigt werden.
dr01
25

Sie können NetGuard verwenden ( andere Alternativen finden Sie in meiner Liste der Internet-Firewalls ), der ohne root funktioniert und es Ihnen ermöglicht, den Internetzugriff für Apps selektiv zu sperren (WLAN oder mobile Daten und sogar immer oder nur, wenn der Bildschirm ausgeschaltet ist). Es ist vom Entwickler von XPrivacy, also muss es gut sein;)

Netguard Netguard Netguard
NetGuard (Quelle: Google Play ; Bilder anklicken für größere Varianten)

NetGuard ist Open Source, Sie können es also auch bei F-Droid finden .

Update: Beachten Sie, dass die neuesten Versionen von Netguard neben Google Ads auch Firebase Analytics enthalten - zwei Dinge, mit denen IMHO in einer Firewall-Anwendung (oder einer anderen Sicherheitsanwendung) nichts zu tun hat -, was höchstwahrscheinlich der Grund dafür ist, dass sie bei F-Droid nicht mehr aktualisiert wird offizielles Repo (noch in meinem mit den entsprechenden Warnungen).

Izzy
quelle
1
Die F-Droid-Variante von NetGuard bietet zusätzliche Funktionen, die über die im Play Store zulässigen hinausgehen.
undDevW
Kann es In-App-Anzeigen blockieren?
Unsterblicher Spieler
1
@ImmortalPlayer Wenn einer App der Netzwerkzugriff verweigert wird, kann sie auch keine Anzeigen laden. Die Antwort darauf wäre also "Ja".
Izzy
4

Wenn Sie Root- Zugriff haben, können Sie auch Folgendes verwenden:

Ich habe mein Gerät auf Android 6.0.1 aktualisiert und bis jetzt scheinen beide zu funktionieren.

chris
quelle
3

Der Internetzugang kann für einzelne Apps auf Android nativ nicht verweigert werden. Anzeigen sind die wichtigsten Einnahmequellen von Google.

Wenn Sie jedoch Opera Max verwenden, können Sie den Internetzugang auf einzelne Apps beschränken. Dank der Komprimierungstechnologie von Opera können Sie sogar Daten speichern.

Installieren Sie Opera Max aus dem Play Store. Es ist völlig kostenlos und einfach zu bedienen. Keine Wurzel erforderlich.

NVZ
quelle
Update : Kein Fan von Opera Max mehr, nachdem zu viele Anzeigen geschaltet wurden.
NVZ
3

Angesichts einiger jüngster Ereignisse möchte ich diese Frage durch die Einführung von Triangle von Google verbessern . Holen Sie es sich auf APKMirror oder APKPure und installieren Sie es mit ADB .

Hier sind einige der wichtigsten Funktionen.

Mobile Daten verwendet Bitten Sie darum, Daten für blockierte Apps zuzulassen Deaktivieren Sie diese Option, wenn Sie WLAN verwenden Blockiere alles standardmäßig

Es ist kein VPN, es blockiert lokal den Zugang Ihrer Apps zum Internet. Stellen Sie sich das als eine neue Berechtigung vor, genauso wie die Verwendung der Kamera oder den Zugriff auf Ihren Standort.

NatoBoram
quelle
1
Verwendet dies ein VPN / Proxy wie ähnliche Apps? Blockiert es den Zugriff von nativen Bibliotheken?
Hackel
1
@hackel Ich habe es installiert (musste seitlich laden, da es in meinem Land nicht verfügbar war). Ich wurde aufgefordert, ein VPN zu aktivieren. Scheint auch nicht, WIFI zu blockieren.
Bort
3

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.INTERNETunbestreitbare Erlaubnis innerhalb ihrer erklären AndroidManifest.xml. Wie merkt sich Android, welche Berechtigungen eine App angefordert hat? Durch Speichern in packages.xmleiner 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.xmlDatei

In der packages.xmlDatei 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.

Totenmaske Verkäufer
quelle