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