Режим расширенной защиты

Расширенный режим защиты Android (AAPM) — это новая функция, появившаяся в Android 16 и направленная на повышение безопасности устройств Android для пользователей, подверженных риску, таких как журналисты и активисты. Он функционирует как единый параметр, реализующий набор предопределенных конфигураций, предназначенных для усиления защиты устройства. В AAPM приоритет отдается безопасности, а не потенциальному снижению функциональности и удобства использования, что означает, что некоторые функции могут быть ограничены для минимизации поверхности атаки.

Влияние

AAPM изменяет поведение некоторых системных служб для повышения безопасности. Если ваше приложение ориентировано на пользователей, заботящихся о безопасности, вам необходимо адаптироваться к этим ограничениям.

  • Системные сигналы: Когда пользователь включает AAPM, система уведомляет подписанные приложения, чтобы они могли адаптироваться к ограниченной среде.
  • Необходимые изменения в приложении: Вам необходимо обновить приложение, чтобы оно обрабатывало изменения в поведении, вызванные AAPM. Например, ваше приложение должно учитывать:
    • Отключены сетевые соединения 2G и WEP.
    • Заблокирована установка приложений из сторонних источников.
    • Активная криминалистическая регистрация событий.
    • Заблокированы звонки с неизвестных номеров.
    • Включены механизмы защиты от спама для ссылок в мессенджерах.
    • Дополнительные пользовательские меры защиты для обеспечения безопасности пользователей, подверженных риску.

Интеграция с AAPM

Для использования соответствующих API необходимо указать следующие права доступа.

Получите разрешение

<uses-permission android:name="android.permission.QUERY_ADVANCED_PROTECTION_MODE" />

Проверить статус

Убедитесь, что на устройстве пользователя включена функция AAPM. Это делается с помощью системной службы 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
}

Отслеживайте изменения во время выполнения.

Пользователи могут включать или выключать AAPM во время работы вашего приложения. Зарегистрируйте функцию обратного вызова для получения обновлений в режиме реального времени.

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)