Tryb ochrony zaawansowanej

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)