1️⃣ Infos système & appareil — Toutes accessibles sans autorisation ; sûres pour l’analyse/télémétrie. |
Modèle de l'appareil | "device_model": "Pixel 7" | Build.MODEL | Identifie le modèle (ex. : « Pixel 7 »). |
Fabricant | "manufacturer": "Google" | Build.MANUFACTURER | Fabricant de l’appareil (ex. : « Google »). |
Version Android | "android_version": "14" | Build.VERSION.RELEASE | Version de l’OS (ex. : « 14 »). |
Version SDK | "sdk_int": 34 | Build.VERSION.SDK_INT | Niveau API (ex. : 34 pour Android 14). |
Nom de l’appareil | "device_name": "walleye" | Build.DEVICE | Nom de code interne (ex. : « walleye »). |
Marque | "brand": "Samsung" | Build.BRAND | Marque de l’appareil (ex. : « Samsung »). |
Matériel | "hardware": "exynos9820" | Build.HARDWARE | Identifiant matériel (ex. : « exynos9820 »). |
Architecture CPU | "cpu_abi": ["arm64-v8a"] | Build.SUPPORTED_ABIS | Tableau des ABIs supportés. |
Langue du système | "locale": "fr-FR" | Locale.getDefault().toString() | Langue et région (ex. : « fr-FR »). |
Fuseau horaire | "timezone": "Europe/Paris" | TimeZone.getDefault().getID() | Fuseau de l’appareil. |
2️⃣ Infos réseau (basiques) — Données réseau limitées sans ACCESS_NETWORK_STATE. |
Type de connexion (WebView) | "network_type": "4g" | navigator.connection.type (JS WebView) | Via WebView ; ex. : « 4g », « wifi ». |
IP publique | "ip_address": "logged_server_side" | Journal côté serveur | Le client ne peut pas l’obtenir de façon fiable. |
Proxy | "proxy": "none" | System.getProperty("http.proxyHost") | Souvent inutile ; renvoie l’hôte proxy ou « none ». |
3️⃣ Infos sur l’app — Toujours accessibles. |
Version de l’app | "app_version": "1.0.0" | PackageManager.getPackageInfo().versionName | Depuis build.gradle. |
Code version | "version_code": 1 | PackageManager.getPackageInfo().versionCode | Depuis build.gradle. |
Nom du package | "package_name": "com.example.myapp" | context.packageName | Identifiant unique. |
Premier lancement | "first_launch": true | SharedPreferences | Flag conservé en SharedPreferences. |
UUID local | "device_uuid": "generated-uuid" | UUID.randomUUID() + SharedPreferences | Généré & sauvegardé localement. |
4️⃣ Données d’usage (analytics basique) — Sans autorisation. |
Date/heure actuelle | "timestamp": "2025-07-05T23:03:00Z" | System.currentTimeMillis() + SimpleDateFormat | Format UTC ISO 8601. |
Durée de session | "session_duration": 145 | Logique de l’app | Temps en ms ou s. |
Pages/écrans vus | "screen_view": "Accueil" | Logique de l’app | Nom de l’écran ou de l’Activity. |
Clics/taps | "event": "button_clicked" | Logique de l’app | Interactions utilisateur. |
Erreurs JS | "js_error": "TypeError at script.js:10" | window.onerror (JS WebView) | Capturer erreurs JS ; `window.onerror` requis. |
5️⃣ Stockage local (WebView) — Sécurisé, sans autorisation. |
LocalStorage | "local_storage": {"key": "value"} | localStorage (JS WebView) | Clés/valeurs internes. |
Cookies | "cookies": {"session_id": "abc123"} | document.cookie (JS WebView) | Cookies du domaine WebView. |
6️⃣ Capacités de l’appareil — Sans autorisation. |
Orientation | "orientation": "portrait" | context.resources.configuration.orientation | « portrait » ou « landscape ». |
Largeur écran | "screen_width": 1080 | context.resources.displayMetrics.widthPixels | En pixels. |
Hauteur écran | "screen_height": 1920 | context.resources.displayMetrics.heightPixels | En pixels. |
Densité écran | "density": 3.0 | context.resources.displayMetrics.density | Ex. : 3.0 pour xxxhdpi. |
Mode sombre | "dark_mode": true | UI_MODE_NIGHT_MASK | Vrai si activé. |
Niveau batterie | "battery_level": 87 | BatteryManager.getIntProperty() | % batterie (API 21+). |
❌ Données restreintes — Autorisation explicite requise ; jamais contourner. |
Contacts | N/A | READ_CONTACTS | Permission « dangereuse ». |
SMS | N/A | READ_SMS | Permission « dangereuse ». |
Numéro/IMEI | N/A | READ_PHONE_STATE | Restreint. |
Historique appels | N/A | READ_CALL_LOG | Permission « dangereuse ». |
Localisation GPS | N/A | ACCESS_FINE_LOCATION | Permission « dangereuse ». |
Numéro série unique | N/A | API 26+ | Inaccessible sans autorisation. |