Le mode de protection avancée Android (AAPM) est une nouvelle fonctionnalité lancée dans Android 16 visant à améliorer la sécurité des appareils Android pour les utilisateurs à risque, tels que les journalistes et les militants. Il fonctionne comme un paramètre unique qui implémente un ensemble de configurations prédéterminées conçues pour renforcer la protection des appareils. L'AAPM donne la priorité à la sécurité par rapport à certaines fonctionnalités et utilisations potentiellement réduites, ce qui signifie que certaines fonctionnalités peuvent être limitées pour minimiser la surface d'attaque.
Impact
L'AAPM modifie le comportement de certains services système pour améliorer la sécurité. Si votre application s'adresse à des utilisateurs soucieux de la sécurité, vous devez vous adapter à ces restrictions.
- Signaux système : lorsqu'un utilisateur active l'AAPM, le système envoie une notification aux applications abonnées afin qu'elles puissent s'adapter à l'environnement restreint.
- Modifications requises de l'application : vous devez mettre à jour votre application pour gérer les changements de comportement déclenchés par l'AAPM. Par exemple, votre application doit tenir compte des éléments suivants :
- Connexions réseau 2G et WEP désactivées.
- Installation latérale d'applications bloquée.
- Journalisation légale active.
- Appels bloqués provenant de numéros inconnus.
- Mécanismes de protection antispam activés pour les liens dans les applications de messagerie.
- Mesures d'atténuation personnalisées supplémentaires pour protéger les utilisateurs à risque.
Intégrer l'AAPM
Pour utiliser les API pertinentes, l'autorisation suivante doit être déclarée.
Obtenir l'autorisation
<uses-permission android:name="android.permission.QUERY_ADVANCED_PROTECTION_MODE" />
Vérifier l'état
Vérifiez que l'utilisateur a activé l'AAPM sur l'appareil. Pour ce faire, utilisez le service système AdvancedProtectionManager.
import android.security.advancedprotection.AdvancedProtectionManager
// ... inside your Activity or Service
val aapmManager = getSystemService(AdvancedProtectionManager::class.java)
if (aapmManager?.isAdvancedProtectionEnabled) {
// 🛡️ User is in Advanced Protection Mode.
// Engage shields: Disable risky features, enforce stricter authentication.
// TODO: Add Method which implements extra protections
}
Écouter les modifications d'exécution
Les utilisateurs peuvent activer ou désactiver l'AAPM pendant que votre application est en cours d'exécution. Enregistrez un rappel pour recevoir des informations en temps réel.
import android.security.advancedprotection.AdvancedProtectionManager
import java.util.concurrent.Executor
// Define the callback
val aapmCallback = AdvancedProtectionManager.Callback { isEnabled ->
if (isEnabled) {
// TODO: User just engaged protections. Lock it down!
} else {
// TODO: User disabled protections. You may relax restrictions.
}
}
// Register the callback (for example, in onStart)
// Ensure you use the correct executor (for example, mainExecutor for UI updates)
aapmManager?.registerAdvancedProtectionCallback(mainExecutor, aapmCallback)