מצב ההגנה המתקדמת ב-Android (AAPM) הוא תכונה חדשה שמטרתה לשפר את האבטחה של מכשירי Android עבור משתמשים בסיכון. היא פועלת כהגדרה יחידה שמיישמת קבוצה של הגדרות שנקבעו מראש, שמטרתן לחזק את ההגנה על המכשיר. ה-AAPM נותן עדיפות לאבטחה על פני פונקציונליות ושימושיות שעלולות להיפגע, כלומר יכול להיות שחלק מהתכונות יוגבלו כדי לצמצם את שטח הפנים להתקפה.
השפעה
ההשפעה על מפתחים מתוארת בהמשך:
- פונקציונליות: AAPM פועלת כהגדרה יחידה שמפעילה אוסף של הגדרות אבטחה שנועדו לשפר את ההגנה על המכשירים של משתמשים בסיכון. השינויים ישפיעו על ההתנהגות של שירותים מסוימים, ומפתחי אפליקציות יצטרכו לטפל בהם.
- אות לאפליקציות שרשומות כמנויות: כשמשתמש מפעיל את AAPM, אות מועבר לכל האפליקציות שרשומות כמנויות. האות הזה הוא הודעה לאפליקציות האלה, כדי שהן יתאימו את עצמן לשינוי בהתנהגות של התכונות שהופעלו על ידי AAPM.
- שינויים באפליקציות: מפתחים של אפליקציות עם מינוי נדרשים לשנות את האפליקציות שלהם כדי לעמוד בדרישות השינויים בהתנהגות שמופעלים על ידי AAPM.
דוגמאות לשינויים כאלה:
- התאמת הלוגיקה של האפליקציה כדי להתאים להשבתה של חיבורים לרשתות 2G ו-WEP.
- שינוי התנהגות האפליקציה כדי להתאים אותה למניעת התקנה ממקורות לא ידועים.
- התאמה לנוכחות של רישום פורנזי ביומן.
- התאמת הפונקציות שקשורות לטיפול בשיחות בעקבות חסימת שיחות ממספרים לא ידועים.
- שילוב מנגנונים להגנה מפני ספאם לקישורים באפליקציות להעברת הודעות או התאמה שלהם.
- הוספנו אמצעי הגנה נוספים ממפתחי אפליקציות כדי להגן טוב יותר על משתמשים בסיכון.
- קהל היעד: בעיקר, צפוי שהמדיניות החדשה תשפיע על אפליקציות שכוללות תכונות אבטחה שמיועדות למשתמשים עם מודעות גבוהה לאבטחה. האפליקציות האלה יכולות להפיק תועלת מהפעלה אוטומטית כשמשתמש בוחר ב-AAPM.
שילוב עם AAPM
כדי להשתמש בממשקי ה-API הרלוונטיים, צריך להצהיר על ההרשאה הבאה
<uses-permission android:name="android.permission.QUERY_ADVANCED_PROTECTION_MODE" />
ממשקי ה-API הבאים הם משירות המערכת AdvancedProtectionManager
החדש.
public class AdvancedProtectionManager() {
// Check the current status
public boolean isAdvancedProtectionEnabled();
// Be alerted when status changes
public void registerAdvancedProtectionCallback(Executor executor, Callback callback);
public void unregisterAdvancedProtectionCallback(Callback callback);
}
public class Callback() {
// Called when advanced protection state changes
void onAdvancedProtectionChanged(boolean enabled);
}