Sous Android 6, comment refuser à une application l'autorisation d'accéder au réseau?

30

Dans Android 6, l'utilisateur a (enfin!) La possibilité d'approuver ou de refuser des autorisations spécifiques à une application.

Cependant, je n'ai pas trouvé de moyen d'approuver ou de refuser l'accès au réseau, que ce soit via Wi-Fi ou via une connexion de données cellulaires. L'autorisation correspondante apparaît dans «Autres fonctionnalités de l'application» et elle est uniquement informative - apparemment, il n'y a aucun moyen de la modifier.

Voici un exemple avec l'application Chess Free:

capture d'écran

dr01
la source
4
Tu ne peux pas. Permettez-moi de trouver une source crédible, mais vous ne pouvez pas le faire en mode natif car cela nuirait beaucoup aux intérêts de Google (les publicités, c'est-à-dire). Edit: Vous trouverez cet article intéressant: androidpolice.com/2015/06/06/…
Firelord

Réponses:

27

Vous ne pourrez pas réussir grâce au mécanisme natif d'Android.

Cody Toombs chez Android Police l'a très bien souligné dans l'article: Android M ne demandera jamais aux utilisateurs la permission d'utiliser Internet, et c'est probablement correct .

Dans la section Autorisations normales et dangereuses du document Présentation des autorisations , Google a noté:

Les autorisations sont divisées en plusieurs niveaux de protection.

Il existe deux niveaux de protection qui affectent les applications tierces: les autorisations normales et dangereuses.

  • Les autorisations normales couvrent les zones où votre application a besoin d'accéder à des données ou des ressources en dehors du bac à sable de l'application, mais où il y a très peu de risques pour la confidentialité de l'utilisateur ou le fonctionnement d'autres applications . Par exemple, l'autorisation de définir le fuseau horaire est une autorisation normale.

    Si une application déclare dans son manifeste qu'elle a besoin d'une autorisation normale, le système accorde automatiquement cette autorisation à l'application au moment de l'installation. Le système n'invite pas l'utilisateur à accorder des autorisations normales et les utilisateurs ne peuvent pas révoquer ces autorisations.

  • Les autorisations dangereuses couvrent les zones où l'application souhaite des données ou des ressources qui impliquent les informations privées de l'utilisateur, ou qui pourraient potentiellement affecter les données stockées de l'utilisateur ou le fonctionnement d'autres applications. Par exemple, la possibilité de lire les contacts de l'utilisateur est une autorisation dangereuse. Si une application déclare qu'elle a besoin d'une autorisation dangereuse, l'utilisateur doit accorder explicitement l'autorisation à l'application.

(Souligné par moi)

Étonnant ou non, les autorisations suivantes figurent dans la liste des autorisations normales :

  • CHANGE_NETWORK_STATE - permet aux applications de changer l'état de la connectivité réseau - c'est-à-dire les données mobiles;
  • CHANGE_WIFI_STATE - permet aux applications de changer l'état de la connectivité Wi-Fi;
  • INTERNET - permet aux applications d'ouvrir des sockets réseau.

Si cela ne suffit pas, consultez les autorisations gérées par AppOps ici . Si vous ne trouvez pas votre autorisation ici, vous ne pourrez rien faire avec dans l'interface graphique.

Étant donné que les méthodes alternatives sont déjà largement couvertes sur ce site, reportez-vous à:

Firelord
la source
12
Merci pour votre réponse. C'est décevant quand les fonctionnalités sont paralysées non pas à cause d'impossibilités techniques mais pour des raisons de marché.
dr01
25

Vous pouvez utiliser NetGuard (voir ma liste de pare-feu Internet pour d'autres alternatives), qui fonctionne sans root et vous permet de bloquer l'accès à Internet pour les applications de manière sélective (WiFi ou données mobiles, et même toujours ou seulement si l'écran est éteint). Cela vient du développement de XPrivacy, donc ça doit être bon;)

Netguard Netguard Netguard
NetGuard (source: Google Play ; cliquez sur les images pour des variantes plus grandes)

NetGuard est open source, vous pouvez donc également le trouver sur F-Droid .

Mise à jour: notez que les versions récentes de Netguard incluent Google Ads ainsi que Firebase Analytics - deux choses dont IMHO n'a rien à faire dans un pare-feu (ou toute autre sécurité) - ce qui est très probablement la raison pour laquelle il n'est plus mis à jour sur F-Droid. dépôt officiel (toujours disponible dans le mien avec les avertissements appropriés).

Izzy
la source
1
La variante F-Droid de NetGuard a en fait ajouté des fonctionnalités au-delà de celles autorisées dans le Play Store.
andDevW
Peut-il bloquer les publicités intégrées à l'application?
Immortal Player
1
@ImmortalPlayer si une application se voit refuser l'accès au réseau, elle ne peut pas non plus charger d'annonces. La réponse serait donc "oui".
Izzy
3

L'accès Internet ne peut pas être refusé nativement pour les applications individuelles sur Android. Les publicités sont les principales sources de revenus de Google.

Cependant, si vous utilisez Opera Max, vous pouvez restreindre l'accès Internet à des applications individuelles. Vous pouvez même enregistrer des données, grâce à la technologie de compression d'Opera.

Installez Opera Max à partir de Play Store. C'est totalement gratuit et facile à utiliser. Aucune racine requise.

NVZ
la source
Mise à jour : n'est plus un fan d'Opera Max après avoir commencé à diffuser trop d'annonces.
NVZ
3

À la lumière de certains événements récents , j'aimerais améliorer cette question en présentant Triangle by Google. Téléchargez-le sur APKMirror ou APKPure et installez-le avec ADB .

Voici quelques-unes des fonctionnalités clés.

Données mobiles utilisées Demander d'autoriser les données pour les applications bloquées Désactiver en Wi-Fi Bloquer tout par défaut

Ce n'est pas un VPN, il bloque localement l'accès de vos applications à Internet. Considérez-le comme une nouvelle autorisation, tout comme l'utilisation de la caméra ou l'accès à votre position.

NatoBoram
la source
1
Est-ce que cela utilise un VPN / proxy comme des applications similaires? Bloque-t-il l'accès à partir des bibliothèques natives?
hackel
1
@hackel Je l'ai installé (j'ai dû le charger car il était dit non disponible dans mon pays). Il m'a demandé d'activer un VPN. Ne semble pas non plus bloquer le WIFI.
Bort
3

Préambule

Il est peut-être tard, mais je souhaite ajouter ma propre interprétation de votre question, par souci d'exhaustivité. Cette réponse est un moyen infaillible de bloquer l'accès Internet à une application. Les inconvénients? Il ne bloque pas les intentions, il est alambiqué et peut faire planter l'application cible, et il nécessite des privilèges root .

Il a été testé et confirmé pour fonctionner jusqu'à Android 7.1.2.


Raisonnement

Comme mentionné par les autres répondeurs, toute application qui souhaite accéder à Internet, doit déclarer la android.permission.INTERNETpermission indéniable au sein de son AndroidManifest.xml. Comment Android se souvient-il des autorisations demandées par une application? En les enregistrant à l'intérieur packages.xml, un fichier protégé situé à /data/system.

Il va sans dire que quelqu'un comme nous pourrait être intéressé par la modification dudit fichier, dans le but d'ajouter ou de supprimer une autorisation, à condition qu'il dispose de privilèges root. C'est notre façon de refuser l'accès à Internet à une application sans VPN ni logiciel de pare-feu.


Le packages.xmldossier

Le packages.xmlfichier répertorie toutes les applications installées, ainsi que leurs chemins d'accès et autorisations. Chaque application est placée entre les <package></package>balises; pour le bien de ma réponse, je vais cibler Nova Launcher par TeslaCoil. La strophe de l'application dans le fichier est la suivante:

    <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>

L'indentation est rapportée mot pour mot à partir du fichier.


Procédure

Armé de la connaissance ci-dessus, nous pouvons maintenant procéder à l'examen des autorisations de Nova Launcher, enveloppé entre <perms></perms>. Bientôt, nous trouverons le seul que nous devons modifier:

            <item name="android.permission.INTERNET" granted="true" flags="0" />

Pour refuser efficacement l'accès Internet à l'application, il nous suffit de supprimer toute la ligne et de redémarrer notre appareil. Le commenter pour une utilisation future est inutile: Android examine ce fichier à chaque démarrage et purge vos commentaires .


Désavantages

En suivant cette procédure, vous obtiendrez une application qui ne peut en aucun cas communiquer avec Internet. Cependant, comme Nova le fait , des applications et des logiciels mal codés destinés à Marshmallow et au-dessus peuvent se bloquer lors d'une tentative de connexion à Internet .

De plus, comme l'a souligné Firelord, la mise à jour d'une application entraîne l'annulation des modifications, annulant efficacement nos efforts et nécessitant la suppression de l'autorisation.


Modifier cette procédure

Pour inverser ce que nous avons fait ci-dessus, il suffit d'ajouter parmi les autres les autorisations que nous avons supprimées et de redémarrer l'appareil.


Avertissement

Je ne suis en aucun cas affilié à Nova Launcher ou à ses développeurs.

Vendeur de masques de la mort
la source