وضع "الحماية المتقدّمة" على Android (AAPM) هو ميزة جديدة تم إطلاقها في Android 16 بهدف تعزيز أمان أجهزة Android للمستخدمين المُحتمَل تعرّضهم لهجمات خطيرة، مثل الصحافيين والناشطين. يعمل هذا الوضع كإعداد واحد يطبّق مجموعة من الإعدادات المحدّدة مسبقًا والمصمّمة لتعزيز حماية الجهاز. يُعطي وضع "الحماية المتقدّمة" الأولوية للأمان على بعض الوظائف وسهولة الاستخدام التي قد تنخفض، ما يعني أنّه قد يتم تقييد بعض الميزات للحدّ من سطح الهجوم.
التأثير
يغيّر وضع "الحماية المتقدّمة" سلوك بعض خدمات النظام لتعزيز الأمان. إذا كان تطبيقك مخصّصًا للمستخدمين الذين يحرصون على الأمان، عليك التكيّف مع هذه القيود.
- إشارات النظام: عندما يفعِّل المستخدم وضع "الحماية المتقدّمة"، يُرسِل النظام إشعارات إلى التطبيقات المشترِكة لكي تتمكّن من التكيّف مع البيئة المقيّدة.
- التعديلات المطلوبة على التطبيق: عليك تعديل تطبيقك للتعامل مع التغييرات في السلوك التي يفعّلها وضع "الحماية المتقدّمة". على سبيل المثال، يجب أن يأخذ تطبيقك في الاعتبار ما يلي:
- إيقاف اتصالات شبكة الجيل الثاني وشبكة WEP
- حظر التحميل الجانبي للتطبيقات
- تفعيل التسجيل الجنائي
- حظر المكالمات من أرقام غير معروفة
- تفعيل آليات الحماية من الرسائل غير المرغوب فيها للروابط في تطبيقات المراسلة
- إجراءات تخفيف مخصّصة إضافية لحماية المستخدمين المُحتمَل تعرّضهم لهجمات خطيرة
دمج التطبيق مع وضع "الحماية المتقدّمة"
لاستخدام واجهات برمجة التطبيقات ذات الصلة، يجب الإعلان عن الإذن التالي.
الحصول على الإذن
<uses-permission android:name="android.permission.QUERY_ADVANCED_PROTECTION_MODE" />
التحقّق من الحالة
تأكَّد من أنّ المستخدم قد فعَّل وضع "الحماية المتقدّمة" على الجهاز. يتم ذلك باستخدام خدمة تابعة لنظام التشغيل 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
}
الاستماع إلى التغييرات في وقت التشغيل
يمكن للمستخدمين تفعيل وضع "الحماية المتقدّمة" أو إيقافه أثناء تشغيل تطبيقك. سجِّل دالة ردّ لتلقّي آخر المعلومات في الوقت الفعلي.
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)