Tryb ochrony zaawansowanej Androida (AAPM) to nowa funkcja wprowadzona w Androidzie 16, która ma na celu zwiększenie bezpieczeństwa urządzeń z Androidem w przypadku użytkowników narażonych na ataki, takich jak dziennikarze i aktywiści. Działa ona jako pojedyncze ustawienie, które implementuje zestaw predefiniowanych konfiguracji mających na celu wzmocnienie ochrony urządzenia. AAPM priorytetowo traktuje bezpieczeństwo, a nie niektóre potencjalnie ograniczone funkcje i użyteczność, co oznacza, że niektóre funkcje mogą być ograniczone, aby zminimalizować powierzchnię ataku.
Wpływ
AAPM zmienia zachowanie niektórych usług systemowych, aby zwiększyć bezpieczeństwo. Jeśli Twoja aplikacja jest przeznaczona dla użytkowników dbających o bezpieczeństwo, musisz dostosować się do tych ograniczeń.
- Sygnały systemowe: gdy użytkownik włączy AAPM, system powiadomi subskrybowane aplikacje, aby mogły się dostosować do ograniczonego środowiska.
- Wymagane modyfikacje aplikacji: musisz zaktualizować aplikację, aby obsługiwała zmiany zachowania wywołane przez AAPM. Aplikacja musi na przykład uwzględniać:
- wyłączone połączenia z sieciami 2G i WEP;
- zablokowane instalowanie aplikacji z nieznanych źródeł;
- aktywne logowanie kryminalistyczne;
- zablokowane połączenia z nieznanych numerów;
- włączone mechanizmy ochrony przed spamem w przypadku linków w aplikacjach do przesyłania wiadomości;
- dodatkowe niestandardowe środki zaradcze chroniące użytkowników narażonych na ataki.
Integracja z AAPM
Aby korzystać z odpowiednich interfejsów API, musisz zadeklarować to uprawnienie.
Uzyskaj uprawnienie
<uses-permission android:name="android.permission.QUERY_ADVANCED_PROTECTION_MODE" />
Sprawdź stan
Sprawdź, czy użytkownik włączył AAPM na urządzeniu. Odbywa się to za pomocą usługi systemowej 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
}
Nasłuchiwanie zmian w czasie działania
Użytkownicy mogą włączać i wyłączać AAPM podczas działania aplikacji. Zarejestruj wywołanie zwrotne aby otrzymywać aktualizacje w czasie rzeczywistym.
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)