| מזהה שינוי: 185004937ALWAYS_SANDBOX_DISPLAY_APIS
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 כשהמדיניות מופעלת, היא מחילה ארגז חול של Display API על חבילה
           ללא קשר למצב החלונות. ממשקי ה-API של התצוגה תמיד יספקו את גבולות האפליקציה. מידע נוסף על השינוי הזה זמין בקטע 
           שיטות תצוגה שהוצאו משימוש בדף השינויים בהתנהגות ב-Android 12. | 
      
        | מזהה שינוי: 163400105AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 32) ומעלה.
 
 החל מ-Android 12, הפלטפורמה יכולה לספק הצעות שאינן טקסטואליות (כמו תמונות) באמצעות מסגרת המילוי האוטומטי המשופרת (ראו שירותי מילוי אוטומטי). כדי שאפליקציה תוכל לטפל בהצעות האלה, בדרך כלל צריך להטמיע בה את OnReceiveContentListenerAPI. כדי להקל על המעבר ל-API הזה באפליקציות שכבר הטמיעו את ה-API InputConnection.commitContent(InputContentInfo, int, Bundle), אנחנו משתמשים מחדש ב-API הזה כחלופה אם האפליקציה עדיין לא הטמיעה אתOnReceiveContentListener. החלופה הזו מופעלת רק ב-Android 12 (רמת API 31). מזהה השינוי הזה משבית את חלופת ברירת המחדל, כך שאפליקציות שמטרגטות ל-Android 12 (רמת API 32) ומעלה חייבות להטמיע את ה-APIOnReceiveContentListenerכדי לקבל הצעות שאינן טקסטואליות. | 
      
        | מזהה השינוי: 157929241BLOCK_FLAG_SLIPPERY
מצב ברירת המחדל: מופעל לכל האפליקציות.
 
 באפליקציות שפועלות ב-Android 12 (רמת API 31), המערכת בודקת אם נעשה שימוש ב-FLAG_SLIPPERYעם חלונות כלשהם באפליקציה. אנחנו מעריכים שהדגל הזה משמש רק את רכיבי המערכת, כי הוא שדה לא נתמך. אם כן, הסרטון יוגבל. | 
      
        | מזהה שינוי: 144027538BLOCK_GPS_STATUS_USAGE
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, צריך להחליף את כל השימוש ב-API GpsStatusב-APIGnssStatus. | 
      
        | מזהה שינוי: 171317480BLOCK_IMMUTABLE_PENDING_INTENTS
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android מגרסה 12 ואילך (רמת API 31).
 
 באפליקציות שמטרגטות ל-Android מגרסה 12 (רמת API 31) ומעלה, אובייקטים PendingIntentבלתי ניתנים לשינוי שמועברים לממשקי API של מיקום ייצרוIllegalArgumentException. | 
      
        | מזהה שינוי: 169887240BLOCK_PENDING_INTENT_SYSTEM_API_USAGE
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, אי אפשר להשתמש בממשקי API של המערכת עם LocationRequestבקשות למיקום.PendingIntent | 
      
        | מזהה שינוי: 158002302BLOCK_UNTRUSTED_TOUCHES
מצב ברירת מחדל: מופעל לכל האפליקציות.
 
 כדי לשמור על אבטחת המערכת ועל חוויית משתמש טובה, ב-Android 12 אפליקציות לא יכולות לצרוך אירועי מגע אם שכבת-על חוסמת את האפליקציה בצורה לא בטוחה. מידע נוסף על השינוי הזה זמין במאמר אירועי מגע לא מהימנים נחסמים. | 
      
        | מספר השינוי: 78294732CALL_ACTIVITY_RESULT_BEFORE_RESUME
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 32) ומעלה.
 
 באפליקציות שמטרגטות Android 12 (רמת API 32) ומעלה, התיקון של מחזור החיים של תוצאת הפעילות מבטיח שפעילות תקבל את תוצאת הפעילות ממש לפני ההפעלה מחדש. | 
      
        | מזהה שינוי: 162547999CAMERA_MIC_INDICATORS_NOT_PRESENT
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 מציין שהמכשיר הזה תומך בסימנים למצלמה ולמיקרופון. הערך יהיה falseאם
           הוא קיים, כי השיטהCompatChanges#isChangeEnabledמחזירהtrueאם מזהה השינוי לא קיים. | 
      
        | מזהה שינוי: 146211400CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 32) ומעלה.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 32) ומעלה, מנהל החבילות לא יתקין חבילה אם יש בה קבוצות הרשאות פגומות.
             אפשר לשתף קבוצות הרשאות רק בין אפליקציות שמשתפות אישור. אם הרשאה שייכת לקבוצה, צריך להגדיר גם את הקבוצה. | 
      
        | מספר השינוי: 181350407CHANGE_ID_AUTH_STATE_DENIED
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות לקוח שמטרגטות ל-Android 12 (רמת API 31) ומעלה, מוצג SecurityExceptionכשהן במצב הרשאה denied (נדחתה) ומנסות לשלוח הודעה לאפליקציה קטנה. | 
      
        | מספר השינוי: 136069189CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, מוצגת שגיאת SecurityExceptionאם לא ניתנה להן הרשאתHIGH_SAMPLING_RATE_SENSORS, הן פועלות במצב ניפוי באגים והן מבקשות תדירויות דגימה מהירות יותר מ-200 הרץ. | 
      
        | Change ID: 73144566DELIVER_HISTORICAL_LOCATIONS
Default State: Enabled for apps that target Android 12 (API level 31) or higher.
 
 באפליקציות שמיועדות ל-Android 12 (רמת API 31) ואילך, לקוחות מיקום עשויים לקבל מיקומים היסטוריים (מזמן שלפני הזמן הנוכחי) בנסיבות מסוימות. | 
      
        | מזהה שינוי: 181658987DISPLAY_INFO_NR_ADVANCED_SUPPORTED
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות אל Android מגרסה 12 ואילך (רמת API 31).
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, מספקת תאימות לאחור לשינויים ב-TelephonyDisplayInfo. | 
      
        | מזהה שינוי: 170503758DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ואילך.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, יכול להיות שהפלטפורמה תגביל את קצב הפריימים של האפליקציה למחלק של קצב הרענון אם זה עדיף יותר (לדוגמה, אם האפליקציה קראה ל-Surface.setFrameRate(float, int)). האפליקציות יחוו קריאות חוזרות (callback) שלChoreographer.postFrameCallback(Choreographer.FrameCallback)ולחץ חוזר (backpressure) בקצב הפריימים המוגבל. האפליקציות משתמשות ב-Display.getRefreshRate()וב-Display.Mode.getRefreshRate()כדי לדעת מה קצב הרענון של התצוגה. הפונקציהDisplay.getRefreshRate()תמיד תחזיר את קצב הפריימים של האפליקציה ולא את קצב הרענון הפיזי של התצוגה, כדי לאפשר לאפליקציות לבצע את קצב הפריימים בצורה נכונה. Display.Mode.getRefreshRate()תחזיר את קצב הפריימים של האפליקציה אם היא קומפלה לגרסה קודמת, ומ-Android 12 (רמת API 31) היא תחזיר את קצב הרענון של התצוגה הפיזית. | 
      
        | מזהה השינוי: 168419799DOWNSCALED
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 השינוי הזה הוא שומר הסף של כל השינויים בהקטנת מאגר הנתונים הזמני לכל אפליקציה. הפעלת השינוי הזה מאפשרת להחיל את גורמי ההתאמה הבאים: כשהשינוי הזה מופעל לחבילת אפליקציות, גודל האפליקציה משתנה בכוח לגורם קנה המידה הגבוה ביותר שמופעל. לדוגמה, אם מפעילים גם את 80% וגם את 70% (DOWNSCALE_80ו-DOWNSCALE_70), המערכת תשתמש ב-80%. | 
      
        | מזהה שינוי: 189970040DOWNSCALE_30
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה בחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 30% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה השינוי: 189969749DOWNSCALE_35
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה בחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 35% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה שינוי: 189970038DOWNSCALE_40
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה לחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 40% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה שינוי: 189969782DOWNSCALE_45
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה לחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 45% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה השינוי: 176926741DOWNSCALE_50
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה בחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 50% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה שינוי: 189970036DOWNSCALE_55
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה בחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 55% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה השינוי: 176926771DOWNSCALE_60
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה בחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 60% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה שינוי: 189969744DOWNSCALE_65
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה לחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 65% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה השינוי: 176926829DOWNSCALE_70
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה לחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 70% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה השינוי: 189969779DOWNSCALE_75
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה בחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 75% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה השינוי: 176926753DOWNSCALE_80
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה לחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 80% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה השינוי: 189969734DOWNSCALE_85
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה לחבילה מאלצת את האפליקציה להניח שהיא פועלת במסך עם 85% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מזהה שינוי: 182811243DOWNSCALE_90
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 אם גם DOWNSCALEDמופעל, הפעלת השינוי הזה בחבילה גורמת לאפליקציה להניח שהיא פועלת במסך עם 90% מהרזולוציה האנכית והאופקית של המסך האמיתי. | 
      
        | מספר השינוי: 157629738DO_NOT_DOWNSCALE_TO_1080P_ON_TV
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
 
 אפליקציות ל-Android TV שמטרגטות ל-Android 12 (רמת API 31) ואילך צריכות לטפל בכל גודל חלון, כולל גדלים שגדולים מ-1080p.
             אפליקציות שמיועדות לגרסאות קודמות של Android לא מצפות לקבל חלונות גדולים יותר מ-1080p, ולכן החלונות שלהן עוברים הקטנה ל-1080p כשצריך. | 
      
        | מזהה שינוי: 174664120DROP_CLOSE_SYSTEM_DIALOGS
מצב ברירת מחדל: מופעל לכל האפליקציות.
 
 כדי לשפר את השליטה של המשתמשים באינטראקציה עם אפליקציות ועם המערכת, הוצאנו משימוש את פעולת הכוונה ACTION_CLOSE_SYSTEM_DIALOGSהחל מ-Android 12. מידע נוסף על השינוי הזה זמין במאמר אי אפשר לסגור תיבות דו-שיח של המערכת באפליקציות. | 
      
        | מזהה שינוי: 172100307ENABLE_CHECKS_FOR_PRIVATE_FILES
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android מגרסה 12 ואילך (רמת API 31).
 
 אפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה לא יכולות להוסיף או לעדכן קבצים פרטיים באמצעות ספק המדיה. | 
      
        | מספר השינוי: 180326732ENABLE_DEFERRED_SCAN
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android מגרסה 12 (רמת API 31) ואילך.
 
 מפעילים את האפשרות הזו כדי לדחות את הסריקה שמופעלת כחלק מ-MediaProvider#update(). | 
      
        | מזהה שינוי: 157233955ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
 
 באפליקציות שמטרגטות את Android 12 (רמת API 31) ומעלה, ההגדרה הזו מפעילה הגנה על ממשקי API שמבצעים שאילתות לגבי מצב השיחה ושולחים התראות לגביו, כמו READ_PHONE_STATE,TelephonyManager.getCallStateForSubscription()ו-TelephonyCallback.CallStateListener.TelecomManager#getCallState | 
      
        | מזהה השינוי: 183407956ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, מופעלת הגנה מסוג READ_PHONE_NUMBERSאוREAD_PRIVILEGED_PHONE_STATEעלgetPhoneAccount(PhoneAccountHandle). | 
      
        | מספר השינוי: 182734110ENABLE_INCLUDE_ALL_VOLUMES
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android מגרסה 12 (רמת API 31) ומעלה.
 
 מפעילים את האפשרות הזו כדי לכלול ב-MediaProvider#queryשורות של קבצים ממחיצה שבוטלה לאחרונה. | 
      
        | מספר השינוי: 178209446ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 מפעילים את האפשרות הזו כדי לאפשר לאפליקציות עם ההרשאה Manifest.permission.MANAGE_EXTERNAL_STORAGEלשלוח בקשה לגישה לאחסון חיצוני לא מעובד. | 
      
        | מזהה שינוי: 185199076ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות ל-Android מגרסה 12 (רמת API 31) ואילך, לכל ההתראות הלא מדויקות צריך להיות גודל חלון מינימלי, שצפוי להיות בסדר גודל של כמה דקות. בפועל, כל ההתראות שדורשות חלונות קטנים יותר הן כמו התראות מדויקות, וצריך להשתמש בממשקי ה-API המתאימים שזמינים, כמו setExact(int, long, PendingIntent). אם מציינים חלונות קצרים יותר עבור אזעקה לא מדויקת, המערכת תאריך את החלונות. | 
      
        | מספר השינוי: 142191088ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות את Android 12 (רמת API 31) ומעלה, צריך להצהיר על תלויות בספריות משותפות מקומיות ציבוריות שמוגדרות על ידי יצרן המכשיר באמצעות התג uses-native-libraryבקובץAndroidManifest.xml. אם לא ניתן לספק את אחת מהתלויות – למשל, אם אחת מהתלויות לא קיימת – מנהל החבילות לא יתקין את האפליקציה. אפשר לציין את התלות כאופציונלית באמצעות המאפייןandroid:requiredבתג, ובמקרה כזה, אם לא ניתן לספק את התלות, ההתקנה לא תיפסק. אחרי ההתקנה, האפליקציה מקבלת רק את ספריות ה-Native המשותפות שצוינו בקובץ המניפסט של האפליקציה. קריאה ל-dlopenבספרייה מקומית משותפת שלא מופיעה במניפסט האפליקציה תיכשל גם אם היא קיימת בפועל במכשיר. | 
      
        | מזהה שינוי: 143231523ENFORCE_STRICT_QUERY_BUILDER
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 כשהתכונה מופעלת, SQLiteQueryBuilderבודקת את כל הבחירות בשאילתותCalendarProvider2מול ארגומנטים זדוניים. | 
      
        | מספר שינוי: 170668199FGS_BG_START_RESTRICTION_CHANGE_ID
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android מגרסה 12 (רמת API 31) ואילך.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ואילך, ההרשאה הזו מגבילה את המקרים שבהם אפליקציות יכולות להפעיל שירותים שפועלים בחזית בזמן שהן פועלות ברקע. | 
      
        | מספר השינוי: 174041399FGS_START_EXCEPTION_CHANGE_ID
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, ההגדרה הזו מאפשרת למערכת להפעיל את החריגה IllegalStateExceptionאם אפליקציה מנסה להפעיל שירות שפועל בחזית בזמן שהיא פועלת ברקע. | 
      
        | מזהה שינוי: 156215187 מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, צריך לסיים את InputConnectionכשהמכשיר הופך ל-non-interactive. אם ההגדרה מופעלת על ידי input methodהנוכחי, חיבור הקלט הנוכחי יהיהfinishedבכל פעם שהמכשיר לא יהיה אינטראקטיבי. אם האפשרות לא מופעלת, החיבור הנוכחי של אמצעי הקלט יושבת בשקט כשהמכשיר הופך ללא אינטראקטיבי, וצמד של onFinishInput()ו-onStartInput()יישלח כשהמכשיר יהפוך שוב לאינטראקטיבי. | 
      
        | מזהה שינוי: 174227820FORCE_DISABLE_HEVC_SUPPORT
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 השבתה בכוח של התמיכה של אפליקציה ביכולת המדיה HEVC.
           אפליקציות צריכות להצהיר על יכולות המדיה הנתמכות שלהן במניפסט, אבל אפשר להשתמש בדגל הזה כדי לאלץ אפליקציה לא לתמוך ב-HEVC, וכך לאלץ המרה בזמן גישה למדיה שמקודדת ב-HEVC. הגדרת הדגל הזה מבטלת את ברירות המחדל ברמת מערכת ההפעלה עבור אפליקציות. היא מושבתת כברירת מחדל, כלומר ברירות המחדל של מערכת ההפעלה מקבלות עדיפות. אם גם הדגל הזה וגם הדגל FORCE_ENABLE_HEVC_SUPPORTמופעלים, מערכת ההפעלה מתעלמת משני הדגלים. | 
      
        | מזהה שינוי: 174228127FORCE_ENABLE_HEVC_SUPPORT
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 הפעלה מאולצת של תמיכה ביכולת המדיה HEVC באפליקציות. אפליקציות צריכות להצהיר על יכולות המדיה הנתמכות שלהן במניפסט, אבל אפשר להשתמש בדגל הזה כדי לאלץ אפליקציה לתמוך ב-HEVC, וכך להימנע מקידוד מחדש בזמן גישה למדיה שמקודדת ב-HEVC. הגדרת הדגל הזה מבטלת את ברירות המחדל ברמת מערכת ההפעלה עבור אפליקציות. היא מושבתת כברירת מחדל, כלומר ברירות המחדל של מערכת ההפעלה מקבלות עדיפות. אם גם הדגל הזה וגם הדגל FORCE_DISABLE_HEVC_SUPPORTמופעלים,
           מערכת ההפעלה מתעלמת משני הדגלים. | 
      
        | מזהה שינוי: 181136395FORCE_NON_RESIZE_APP
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 הגדרת מדיניות שמחייבת את החבילות שהיא חלה עליהן להיות ללא אפשרות שינוי גודל. | 
      
        | מזהה השינוי: 174042936FORCE_RESIZE_APP
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 כך מאלצים את החבילות שהתכונה חלה עליהן להיות בעלות יכולת שינוי גודל. אנחנו מאפשרים שינוי גודל רק במצב חלון במסך מלא, אבל לא מאלצים את האפליקציה לעבור למצב ריבוי חלונות שניתן לשינוי גודל. | 
      
        | מספר שינוי: 171979766HIDE_PROP_ICUBINARY_DATA_PATH
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android מגרסה 12 ואילך (רמת API 31).
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, הגישה לנכס android.icu.impl.ICUBinary.dataPathמוסרת. | 
      
        | מספר השינוי: 183147249IGNORE_ALLOW_BACKUP_IN_D2D
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות את Android 12 (רמת API 31) ואילך, המערכת מתעלמת מהתג android:allowBackupבאפליקציות במהלך העברות ממכשיר למכשיר (D2D). | 
      
        | מספר השינוי: 180523564IGNORE_FULL_BACKUP_CONTENT_IN_D2D
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות Android 12 (רמת API 31) ומעלה, המערכת מתעלמת מכללי הכללה והחרגה שצוינו באמצעות android:fullBackupContentבמהלך העברות ממכשיר למכשיר (D2D). | 
      
        | מספר השינוי: 169273070IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android מגרסה 12 ואילך (רמת API 31).
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, getSupportedLocales()מחזירה עכשיו רשימה ריקה של שפות ואזורים אם היא לא מוגדרת, במקום השפה והאזור שמוגדרים כברירת מחדל במערכת. | 
      
        | מזהה שינוי: 158482162IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמיועדות ל-Android 12 (רמת API 31) ומעלה, ההרשאה BACKUPשנדרשת ל-isBackupServiceActive()נאכפת בצד השרת ולא בצד הלקוח ב-BackupManager. | 
      
        | מזהה שינוי: 169897160KEYSTORE_OPERATION_CREATION_MAY_FAIL
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 אם מפעילים את האפשרות הזו, יכול להיות שיצירת פעולות במאגר המפתחות תיכשל בהתאם לאסטרטגיית הגיזום החדשה. בעבר, Keystore פעל מתוך הנחה שיצירת פעולות קריפטוגרפיות תמיד מצליחה.
           עם זאת, ל-KeyMint backend יש רק מספר מוגבל של משבצות פעולה. כדי לשמור על המראה של משבצות פעולה 'אינסופיות',
           הדמון של מאגר המפתחות יסיר פעולות שהשימוש בהן היה הכי מזמן אם
           לא הייתה משבצת פעולה זמינה. כתוצאה מכך, יכול להיות שפעולות תקינות יופסקו לפני הזמן. הדבר הזה פתח את AndroidKeystore להתקפות מניעת שירות (DoS) ולמצב של livelock לא מכוון. לדוגמה, אם כמה אפליקציות מתעוררות בו-זמנית בגלל אופטימיזציות של ניהול צריכת החשמל ומנסות לבצע פעולות הצפנה, הן מתחילות להפסיק את הפעולות של האפליקציות האחרות בלי להתקדם. כדי לצאת ממצב של נעילה הדדית ולמנוע ניסיונות של מתקפת מניעת שירות (DoS), שינינו את אסטרטגיית הגיזום כך שהיא מעדיפה לקוחות שמשתמשים בכמות קטנה של משבצות פעולה לזמן קצר. כתוצאה מכך, פעולות בודדות שלא נשארות לא פעילות יותר מ-5 שניות כמעט תמיד יסתיימו בלי הפרעה מצד אסטרטגיית הגיזום. עדיין יש כמה פעולות שקשורות להצפנת מערכת הקבצים שיכולות להסיר גם את הפעולות האלה, אבל המקרים האלה נדירים מאוד. כתוצאה מהפעולה של אסטרטגיית הגיזום החדשה, יכול להיות שהיצירה תיכשל אם עוצמת הגיזום של הלקוח נמוכה יותר מכל הפעולות הקיימות. אסטרטגיית גיזום: כדי למצוא מועמד מתאים, אנחנו מחשבים את הניקוד השלילי של המתקשר ושל כל פעולה קיימת. ה-malus הוא ההופכי של עוצמת הגיזום (המתקשר) או של עמידות הגיזום (הפעולה הקיימת). כדי שהמתקשר יוכל לקצץ פעולה, הוא צריך למצוא פעולה עם קנס גבוה יותר משלו. פרטים נוספים על אסטרטגיית הגיזום זמינים בקטע על ההטמעה של operation.rs.
          ב-Android 11 (רמת API 30) ובגרסאות קודמות, KeyStore2 יבצע דגימה של
          הדמון של KeyStore כדי למצוא משבצת פעולה פנויה. באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ולגרסאות מוקדמות יותר, עדיין ייראה כאילו האתחול של אובייקט ההצפנה והחתימה תמיד מצליח – אבל יכול להיות שיידרש יותר זמן כדי לקבל פעולה. בכל גרסאות Android יש יתרון של תזמון הוגן יותר של משבצות זמן להפעלה וסיכוי טוב יותר להשלמת פעולה בהצלחה. | 
      
        | מספר השינוי: 174664365LOCK_DOWN_CLOSE_SYSTEM_DIALOGS
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, אי אפשר לשלוח את Intent.ACTION_CLOSE_SYSTEM_DIALOGSאלא אם לאפליקציה יש גם את ההרשאהandroid.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS. שימו לב שזו הגרסה המגבילה יותר של#DROP_CLOSE_SYSTEM_DIALOGSשמצפה שהאפליקציה תפסיק לשלוח את כוונתIntent.ACTION_CLOSE_SYSTEM_DIALOGSברגע שהאפליקציה תתחיל לטרגט את Android 12 (רמת API 31) או גרסה מתקדמת יותר. | 
      
        | מספר השינוי: 173031413LOCK_DOWN_COLLAPSE_STATUS_BAR
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, נדרשת ההרשאה Manifest.permission.STATUS_BARכדי לכווץ את החלוניות של סרגל המצב מטעמי אבטחה. תוכנות זדוניות ניצלו את זה כדי למנוע מהמשתמשים גישה להתראות חשובות. | 
      
        | מספר השינוי: 168936375LOW_POWER_EXCEPTIONS
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android מגרסה 12 (רמת API 31) ואילך.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, כל האובייקטים של LocationRequestשמסומנים כצריכת הספק נמוכה יגרמו לחריגות אם למתקשר אין הרשאתLOCATION_HARDWARE, במקום להשליך בשקט את החלק של צריכת הספק הנמוכה בבקשה. | 
      
        | מזהה שינוי: 150232615MISSING_EXPORTED_FLAG
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, צריך לציין ערך מפורש למאפיין android:exportedבכל פעם שמגדירים מסנן Intent. למידע נוסף על השינוי הזה, אפשר לעיין במאמר בנושא ייצוא בטוח יותר של רכיבים. | 
      
        | מספר שינוי: 207557677NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות Android 12 (רמת API 32) ומעלה.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 32) ומעלה, הקצאות של זיכרון Heap מקורי בתהליך AppZygoteובצאצאים שלו
             משתמשות בתג שאינו אפס בבייט המשמעותי ביותר. מידע נוסף על השינוי הזה זמין במאמר Tagged Pointers. | 
      
        | מזהה שינוי: 178038272NATIVE_HEAP_ZERO_INIT
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 הפעלה של אתחול אוטומטי לאפס של הקצאות זיכרון בערימות (heap allocation) מקומיות. | 
      
        | מספר השינוי: 135772972NATIVE_MEMTAG_ASYNC
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 הפעלת בדיקה אסינכרונית (ASYNC) של תג זיכרון בתהליך הזה. הדגל הזה משפיע רק על חומרה שתומכת בתוסף תיוג זיכרון (MTE) של ARM. | 
      
        | מזהה השינוי: 177438394NATIVE_MEMTAG_SYNC
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 הפרמטר מאפשר בדיקה סינכרונית (SYNC) של תג הזיכרון בתהליך הזה. הדגל הזה משפיע רק על חומרה שתומכת בתוסף תיוג זיכרון (MTE) של ARM. אם גם NATIVE_MEMTAG_ASYNCוגם האפשרות הזו מופעלות, האפשרות הזו מקבלת עדיפות ו-MTE מופעל במצב SYNC. | 
      
        | מזהה השינוי: 184838306NEVER_SANDBOX_DISPLAY_APIS
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 אם ההגדרה הזו מופעלת, היא מונעת את החלת ארגז החול של Display API על פעילות של תיבת מכתבים או SCM. ממשקי ה-API של Display ימשיכו לספק גבולות של DisplayArea. מידע נוסף על השינוי הזה זמין בקטע 
           שיטות הצגה שהוצאו משימוש בדף השינויים בהתנהגות ב-Android 12. | 
      
        | מזהה שינוי: 175319604NOTIFICATION_CANCELLATION_REASONS
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 מאפשר למאזיני התראות להבין סיבות חדשות לביטול שהן ספציפיות יותר. | 
      
        | מזהה שינוי: 167676448NOTIFICATION_TRAMPOLINE_BLOCK
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android מגרסה 12 ואילך (רמת API 31).
 
 כדי לשפר את הביצועים של האפליקציה ואת חוויית המשתמש, אפליקציות שמטרגטות ל-Android 12 לא יכולות להשתמש בשירותים או במקלטי שידורים
             כמעברים להתראות. למידע נוסף על השינוי הזה, אפשר לעיין במאמר בנושא אי אפשר ליצור מעברי התראות משירותים או מ-broadcast receivers. | 
      
        | מספר השינוי: 182185642NULL_TELEPHONY_THROW_NO_CB
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 המאפיין הזה משמש לבדיקה אם גרסת ה-SDK שמטרגטת את התהליך הנוכחי היא Android 12 (רמת API 31) או גרסה מתקדמת יותר. ההגדרה הזו חלה על השיטות הבאות:
              | 
      
        | מספר השינוי: 174042980OVERRIDE_MIN_ASPECT_RATIO
מצב ברירת המחדל: מושבת לכל האפליקציות.
 
 השינוי הזה הוא שומר הסף של כל השינויים שמכתיבים יחס גובה-רוחב מינימלי מסוים. הפעלת השינוי הזה מאפשרת להחיל את יחסי הגובה-רוחב המינימליים הבאים: כשהשינוי הזה מופעל לחבילת אפליקציות, יחס הגובה-רוחב המינימלי שמופיע במניפסט של האפליקציה מוחלף ביחס הגובה-רוחב המקסימלי המופעל, אלא אם הערך במניפסט של האפליקציה גבוה יותר. | 
      
        | מזהה שינוי: 180326787OVERRIDE_MIN_ASPECT_RATIO_LARGE
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 אם האפשרות OVERRIDE_MIN_ASPECT_RATIOמופעלת גם היא, הפעלת השינוי הזה לחבילה מגדירה את יחס הגובה-רוחב המינימלי של הפעילות לערך גדול כפי שמוגדר על ידיOVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE. | 
      
        | מזהה שינוי: 180326845OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
מצב ברירת מחדל: מושבת לכל האפליקציות.
 
 אם גם האפשרות OVERRIDE_MIN_ASPECT_RATIOמופעלת, הפעלת השינוי הזה לחבילה מגדירה את יחס הגובה-רוחב המינימלי של הפעילות לערך בינוני, כפי שמוגדר על ידיOVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE. | 
      
        | מספר השינוי: 160794467PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ואילך, צריך לציין את יכולת ההשתנות של כל אובייקט PendingIntentשהאפליקציה יוצרת. הדרישה הנוספת הזו משפרת את האבטחה של האפליקציה. מידע נוסף על השינוי הזה זמין במאמר Pending intents must declare mutability. | 
      
        | מזהה שינוי: 165573442PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android מגרסה 12 ואילך (רמת API 31).
 
 אפליקציות אדמין שמטרגטות ל-Android 12 (רמת API 31) ומעלה לא יכולות להשתמש ב-DevicePolicyManager.setPasswordQuality(ComponentName, int)כדי להגדיר את איכות הסיסמה במופעDevicePolicyManagerשהתקבל על ידי קריאה ל-DevicePolicyManager.getParentProfileInstance(ComponentName).
             במקום זאת, הם צריכים להשתמש ב-DevicePolicyManager.setRequiredPasswordComplexity(int)כדי להגדיר דרישות סיסמה גסות לכל המכשיר. | 
      
        | מספר השינוי: 174840628RATE_LIMIT_TOASTS
מצב ברירת המחדל: אי אפשר להפעיל או להשבית את השינוי הזה. הוא נרשם רק על ידי מסגרת התאימות.
 
 ההגדרה הזו מאפשרת להגביל את קצב יצירת הבקשות של Toast.show()כדי למנוע עומס יתר על המשתמש עם יותר מדי הודעות קצרות בזמן מוגבל. כל ניסיון להציג יותר הודעות קצרות מהמותר בפרק זמן מסוים גורם להודעה להימחק. | 
      
        | מזהה השינוי: 171306433REQUIRE_EXACT_ALARM_PERMISSION
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ואילך, האפליקציות צריכות לקבל את ההרשאה Manifest.permission.SCHEDULE_EXACT_ALARMכדי להשתמש בממשקי API להגדרת התראות מדויקות, כמוsetExactAndAllowWhileIdle(int, long, PendingIntent)ו-setAlarmClock(AlarmClockInfo, PendingIntent). | 
      
        | מספר השינוי: 182478738REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID
מצב ברירת המחדל: מופעל באפליקציות שמיועדות ל-Android מגרסה 12 ואילך (רמת API 31).
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ואילך, האפליקציות צריכות לקבל את ההרשאה Manifest.permission.READ_PHONE_STATEכדי להתקשר אלTelephonyCallback.ActiveDataSubscriptionIdListener. | 
      
        | מזהה שינוי: 184323934REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ואילך, האפליקציות צריכות לקבל את ההרשאה Manifest.permission.READ_PHONE_STATEכדי להתקשר אלTelephonyCallback.CellInfoListener. | 
      
        | מזהה השינוי: 183164979REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android מגרסה 12 ואילך (רמת API 31).
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ואילך, האפליקציות צריכות לקבל את ההרשאה Manifest.permission.READ_PHONE_STATEכדי להתקשר אלTelephonyCallback.DisplayInfoListener. | 
      
        | מספר השינוי: 171032338RESTRICT_ADB_BACKUP
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
 
 באפליקציות שמטרגטות את Android 12 (רמת API 31) ומעלה, ההגדרה adb backupמופעלת אוטומטית באפליקציות שפועלות כמצב שניתן לניפוי באגים (android:debuggableמוגדר כ-true) ולא זמינה לאפליקציות אחרות. | 
      
        | מספר השינוי: 175408749RESTRICT_DOMAINS
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) או לגרסה מתקדמת יותר.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, נדרש השימוש בטופס המעודכן של ה-API לאימות קישורי עומק לאפליקציה. הדרישה הזו אומרת שאפליקציה צריכה להצהיר על דומיינים בתוך מסנן כוונות שכולל את כל הפרטים הבאים:  
             android:autoVerify="true"Intent.ACTION_VIEWIntent.CATEGORY_BROWSABLEIntet.CATEGORY_DEFAULTרק IntentFilter.SCHEME_HTTPו/אוIntentFilter.SCHEME_HTTPS, ללא תוכניות אחרות בגרסאות קודמות של Android, לא הייתה דרישה להשתמש ב-Intent.CATEGORY_BROWSABLE, אפשר היה להשתמש בסכימות אחרות, והגדרתautoVerifyל-trueבכל מסנן כוונות הייתה גורמת לכך שכל מסנני הכוונות היו מוגדרים ל-autoVerify="true". | 
      
        | מספר השינוי: 151105954SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android מגרסה 12 (רמת API 31) ואילך.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ואילך, המערכת מוודאת שכל האובייקטים של attributionTagsשנשלחים אלnoteOp(String, int, String),noteProxyOp(String, String),
             ו-startOp(String, int, String)מוגדרים במניפסט של החבילה שצוינה כפרמטר של השיטות. כדי להפעיל את השינוי הזה, צריך להפעיל אותו גם בחבילה שקוראת ל-noteOp(String, int, String)וגם בחבילה שצוינה כפרמטר של השיטה. | 
      
        | מזהה השינוי: 143539591SELINUX_LATEST_CHANGES
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ואילך, מופעלת הסכמה לשינויים האחרונים ב-SELinux. השבתת השינוי הזה באפליקציה שמטרגטת את Android 12 (רמת API 31) ומעלה לא תעשה כלום. אין לה השפעה על אפליקציות שמשתמשות במזהה משתמש משותף. | 
      
        | מזהה שינוי: 178111421SETTINGS_API_V2
מצב ברירת המחדל: מופעל לכל האפליקציות.
 
 ממשק ה-API החדש להעדפות משתמשים לאימות דומיינים שמסומנים ב-autoVerify=trueבמסנני הכוונות של AndroidManifest.xml עדיין לא הוטמע בתצוגה המקדימה הנוכחית של הפלטפורמה. בשלב הזה, אפשר לראות תצוגה מקדימה של השינויים בהעדפות המשתמשים על ידי הפעלת ChangeId והשימוש בפקודהadb shell pm set-app-links-user-selectionובפקודות דומות. | 
      
        | מספר שינוי: 183972877USE_SHORT_FGS_USAGE_INTERACTION_TIME
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
 
 באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, ההגדרה הזו קובעת אם להשתמש בפסק זמן קצר יותר לפני העלאת הדלי של מצב ההמתנה ל-ACTIVEכשאפליקציות מפעילות שירות שפועל בחזית. |