حالت حفاظت پیشرفته اندروید (AAPM) ویژگی جدیدی است که در اندروید ۱۶ با هدف افزایش امنیت دستگاههای اندروید برای کاربران در معرض خطر، مانند روزنامهنگاران و فعالان، راهاندازی شده است. این حالت به عنوان یک تنظیم واحد عمل میکند که مجموعهای از پیکربندیهای از پیش تعیینشده را برای تقویت حفاظت از دستگاه پیادهسازی میکند. 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 را فعال یا غیرفعال کنند. برای دریافت بهروزرسانیهای بلادرنگ، یک Callback ثبت کنید.
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)