מצב הגנה מתקדם

מצב ההגנה המתקדמת של Android‏ (AAPM) הוא תכונה חדשה שמטרתה לשפר את האבטחה של מכשירי Android למשתמשים בסיכון. הוא פועל כקבוצה של הגדרות מוגדרות מראש שנועדו לשפר את ההגנה על המכשיר. ב-AAPM, האבטחה מקבלת עדיפות על פני פונקציונליות ושימושיות, כך שיכול להיות שחלק מהתכונות יוגבלו כדי למזער את שטח ההתקפה.

השפעה

ההשפעה על המפתחים מתוארת בהמשך:

  • פונקציונליות: AAPM פועלת כהגדרה אחת שמפעילה אוסף של הגדרות אבטחה שנועדו לשפר את ההגנה על המכשירים של משתמשים בסיכון. במסגרת העדכון יבוצעו שינויים בהתנהגות של שירותים מסוימים, שאותם מפתחי האפליקציות יצטרכו לטפל בהם.
  • שליחת אות לאפליקציות שנרשמו: כשמשתמש מפעיל את AAPM, אות מועבר לכל האפליקציות שנרשמו. האות הזה הוא הודעה לאפליקציות האלה להתאים את עצמן להתנהגות השונה של התכונות שמופעלות על ידי AAPM.
  • שינויים באפליקציות: מפתחים של אפליקציות שנרשמו למינוי נדרשים לשנות את האפליקציות שלהם כך שיתואמו לשינויים התנהגותיים שמתרחשים בעקבות AAPM. דוגמאות לשינויים כאלה:
    • שינוי הלוגיקה של האפליקציה כדי להתאים להשבתת חיבורים לרשתות 2G ו-WEP.
    • שינוי התנהגות האפליקציה בהתאם למניעת התקנה צדדית.
    • התאמה לנוכחות של רישום נתונים פורנזיים ביומן.
    • שינוי הפונקציות שקשורות לטיפול בשיחות עקב החסימה של שיחות ממספרים לא מזוהים.
    • שילוב עם מנגנוני הגנה מפני ספאם לקישורים באפליקציות של הודעות או התאמה שלהם.
    • כולל אמצעי מיטיגציה נוספים ממפתחי האפליקציות כדי להגן עוד יותר על משתמשים בסיכון.
  • קהל היעד: ההשפעה העיקרית של AAPM צפויה להיות על אפליקציות שמשלבות תכונות אבטחה שמותאמות למשתמשים עם מודעוּת גבוהה לאבטחה. האפליקציות האלה יכולות להפיק תועלת מהפעלה אוטומטית כשמשתמש בוחר ב-AAPM.

שילוב עם AAPM

כדי להשתמש בממשקי ה-API הרלוונטיים, צריך להצהיר על ההרשאה הבאה:

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

ממשקי ה-API הבאים הם משירות המערכת החדש AdvanceProtectionManager.

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);
}