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

מצב ההגנה המתקדמת ב-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);
}