Sécurité/permission d'accès aux ressources Android

 

L'utilisateur qui télécharge une application ne connait pas forcement toutes les ressources qui peuvent être utilisées par cette application. Or certaines peuvent être payantes (Ex. les SMS), d'autres être un peu trop curieuses (Ex. lecture des contactes, position actuelle via GPS)...

AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...) se base donc sur ce système de permission afin d'informer l'utilisateur des ressources qui peuvent être utilisées par l'application avant de lancer l'installation de celle-ci. A l'utilisateur ensuite, en connaissance de cause, d'installer ou non l'application.

Ce n'est pas encore l'idéale, car rien n'empêche une application d'abuser de ces privilèges. Mais c'est déjà un début...

Pour que votre application puisse accéder à certaines ressources de votre appareil, il faut lui donner des permsissions.

Ces permissions seront à définir dans une balise uses-permission du fichier AndroidManifest.xml en précisant dans l'attribut androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name le nom de la permission de androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...).permission.

Les permissions seront positionnées entre les balises <manifest ...> </manifest>

Voici une liste non exaustive de permissions:

Accès aux données personnelles

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.READ_CONTACTS" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.WRITE_CONTACTS" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.READ_CALENDAR" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.WRITE_CALENDAR" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.READ_HISTORY_BOOKMARKS" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.WRITE_HISTORY_BOOKMARKS" />

Audio

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.RECORD_AUDIO" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.MODIFY_AUDIO_SETTINGS" />

Batterie

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.BATTERY_STATS" />

Bluetooth

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.BLUETOOTH" />

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.BLUETOOTH_ADMIN" />

Camera

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.CAMERA" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.FLASHLIGHT" />

Géolocalisation (GPS)

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.ACCESS_MOCK_LOCATION" />

Modification de paramètres

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.SET_ORIENTATION" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.SET_TIME_ZONE" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.SET_WALLPAPER" />

Envoi et réception de SMS/MMS

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.READ_SMS" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.RECEIVE_MMS" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.RECEIVE_SMS" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.RECEIVE_WAP_PUSH" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.SEND_SMS" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.WRITE_SMS" />

Microphone

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.RECORD_AUDIO" />

Réseau

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.INTERNET" />

Téléphonie

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.CALL_PHONE" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.CALL_PRIVILEGED" />
<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.MODIFY_PHONE_STATE" />

Vibreur

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.VIBRATE" />

Wallpaper

androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):permission="android.permission.BIND_WALLPAPER"

Boot

<uses-permission androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):name="android.permission.RECEIVE_BOOT_COMPLETED" />