ALWAYS_SANDBOX_DISPLAY_APIS
מזהה השינוי: 185004937
מצב ברירת המחדל: מושבת בכל האפליקציות.
כשההגדרה מופעלת, מתבצעת הפעלה של ארגז חול (sandbox) של 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) ומעלה, אי אפשר להשתמש בממשקי API של מערכת LocationRequest עם בקשות מיקום של 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 כשהן במצב הרשאה שנדחתה ומנסות לשלוח הודעה לאפליקציית Nano.
|
CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION
מזהה השינוי: 136069189
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות את Android 12 (רמת API 31) ומעלה.
באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה, נזרקת שגיאת SecurityException אם אין להן הרשאת HIGH_SAMPLING_RATE_SENSORS, הן פועלות במצב ניפוי באגים ומבקשות תדירויות דגימה מהירות יותר מ-200Hz.
|
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)).
האפליקציות יחוו קריאות חוזרות (callbacks) של Choreographer.postFrameCallback(Choreographer.FrameCallback)
ולחץ נגדי בקצב הפריימים המופחת. אפליקציות משתמשות ב-Display.getRefreshRate() וב-Display.Mode.getRefreshRate() כדי לדעת מהו קצב הרענון של המסך.
Display.getRefreshRate() תמיד יחזיר את קצב הפריימים של האפליקציה ולא את קצב הרענון של המסך הפיזי, כדי לאפשר
לאפליקציות לבצע קצב פריימים בצורה נכונה. Display.Mode.getRefreshRate() תחזיר את קצב הפריימים של האפליקציה אם היא קומפלה לגרסה קודמת, והחל מ-Android 12 (רמת API 31) היא תחזיר את קצב הרענון של התצוגה הפיזית.
|
DOWNSCALED
מזהה השינוי: 168419799
מצב ברירת המחדל: מושבת בכל האפליקציות.
השינוי הזה הוא שער הכניסה לכל השינויים בהקטנת מאגר הנתונים (buffer) לכל אפליקציה. הפעלת השינוי הזה מאפשרת להחיל את גורמי קביעת קנה המידה הבאים:
כשהשינוי הזה מופעל בחבילת APK, הגודל של האפליקציה משתנה באופן מאולץ
לגורם הגבוה ביותר לקביעת קנה מידה שמופעל. לדוגמה, אם מפעילים גם את 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 בספריית Native משותפת שלא מופיעה במניפסט של האפליקציה תיכשל, גם אם היא קיימת בפועל במכשיר.
|
ENFORCE_STRICT_QUERY_BUILDER
מזהה השינוי: 143231523
מצב ברירת המחדל: מושבת בכל האפליקציות.
כשהמדיניות מופעלת, 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 יש רק מספר מוגבל של משבצות לפעולות.
כדי לשמור על מראה של משבצות פעולה "אינסופיות", ה-daemon של Keystore יסיר את הפעולות שהיו בשימוש הכי פחות לאחרונה אם לא הייתה משבצת פעולה זמינה. כתוצאה מכך, פעולות תקינות עלולות להסתיים לפני הזמן. הדבר חשף את AndroidKeystore להתקפת מניעת שירות (DoS) ולמצב של livelock לא מכוון. לדוגמה, אם כמה אפליקציות התעוררו בו-זמנית בגלל אופטימיזציות של ניהול צריכת החשמל וניסו לבצע פעולות קריפטו, הן מתחילות להפסיק את הפעולות אחת של השנייה בלי להתקדם.
כדי לצאת ממצבי livelock ולמנוע ניסיונות DoS, שינינו את אסטרטגיית הגיזום כך שהיא תעדיף לקוחות שמשתמשים במעט משבצות פעולה לזמן קצר. כתוצאה מכך, פעולות בודדות שלא נשארות לא פעילות במשך יותר מ-5 שניות, כמעט תמיד יסתיימו בלי הפרעה של אסטרטגיית הגיזום. יש עדיין כמה פעולות שקשורות להצפנה של מערכת הקבצים שיכולות להסיר גם את הפעולות האלה, אבל המקרים האלה נדירים מאוד. כתוצאה מהפעולה של אסטרטגיית הגיזום החדשה, היצירה יכולה להיכשל אם ללקוח יש כוח גיזום נמוך יותר מכל הפעולות הקיימות.
אסטרטגיית גיזום: כדי למצוא מועמד מתאים, אנחנו מחשבים את ה-malus של המתקשר ושל כל פעולה קיימת. הערך
השלילי הוא ההפך מעוצמת הגיזום (המתקשר) או מההתנגדות
לגיזום (הפעולה הקיימת). כדי שהמבצע יוכל לגזום פעולה, הוא צריך למצוא פעולה עם ערך malus גבוה יותר משלו. לפרטים נוספים על אסטרטגיית הגיזום, אפשר לעיין בהטמעה של operation.rs.
ב-Android 11 (רמת API 30) ובגרסאות קודמות, KeyStore2 ידגום את ה-daemon של 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 allocation) מקוריות בתהליך AppZygote ובצאצאים שלו משתמשות בתג שאינו אפס בבייט המשמעותי ביותר.
מידע נוסף על השינוי הזה זמין במאמר מצביעים מתויגים.
|
NATIVE_HEAP_ZERO_INIT
מזהה השינוי: 178038272
מצב ברירת המחדל: מושבת בכל האפליקציות.
הפעלה של אתחול אוטומטי לאפס של הקצאות זיכרון מקומיות בערימה.
|
NATIVE_MEMTAG_ASYNC
מזהה השינוי: 135772972
מצב ברירת המחדל: מושבת בכל האפליקציות.
הפעלת בדיקה אסינכרונית (ASYNC) של תגי זיכרון בתהליך הזה. הדגל הזה משפיע רק על חומרה שתומכת ב-Memory Tagging Extension (MTE) של ARM.
|
NATIVE_MEMTAG_SYNC
מזהה השינוי: 177438394
מצב ברירת המחדל: מושבת בכל האפליקציות.
ההגדרה הזו מפעילה בדיקה סינכרונית (SYNC) של תגי זיכרון בתהליך הזה. הדגל הזה משפיע רק על חומרה שתומכת ב-Memory Tagging Extension (MTE) של ARM. אם גם NATIVE_MEMTAG_ASYNC וגם האפשרות הזו מופעלות, האפשרות הזו מקבלת עדיפות ו-MTE מופעל במצב SYNC.
|
NEVER_SANDBOX_DISPLAY_APIS
מזהה השינוי: 184838306
מצב ברירת המחדל: מושבת בכל האפליקציות.
כשהמדיניות מופעלת, היא מונעת את ההחלה של ארגז החול של Display API על פעילות של Letterbox או SCM. ממשקי ה-API של Display ימשיכו לספק את הגבולות של DisplayArea.
מידע נוסף על השינוי הזה זמין בקטע
Display methods that were deprecated בדף השינויים בהתנהגות של Android 12.
|
NOTIFICATION_CANCELLATION_REASONS
מזהה השינוי: 175319604
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
מאפשר למאזינים להתראות להבין סיבות חדשות וספציפיות יותר לביטול.
|
NOTIFICATION_TRAMPOLINE_BLOCK
מזהה השינוי: 167676448
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
כדי לשפר את ביצועי האפליקציה ואת חוויית המשתמש, אפליקציות שמטרגטות ל-Android 12 לא יכולות להשתמש בשירותים או במקלטי שידורים
כטרמפולינות של התראות.
מידע נוסף על השינוי הזה זמין במאמר לא ניתן ליצור טרמפולינות של התראות משירותים או ממקלטי שידור.
|
NULL_TELEPHONY_THROW_NO_CB
מזהה השינוי: 182185642
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
משמש לבדיקה אם גרסת ה-SDK המטורגטת לתהליך הנוכחי היא Android 12 (רמת API 31) ומעלה.
רלוונטי לשיטות הבאות:
|
OVERRIDE_MIN_ASPECT_RATIO
מזהה השינוי: 174042980
מצב ברירת המחדל: מושבת בכל האפליקציות.
השינוי הזה הוא שומר הסף של כל השינויים שמאלצים יחס גובה-רוחב מינימלי נתון. השינוי הזה מאפשר להחיל את יחסי הגובה-רוחב המינימליים הבאים:
כשהשינוי הזה מופעל בחבילת APK, יחס הגובה-רוחב המינימלי שצוין במניפסט של האפליקציה מוחלף ביחס הגובה-רוחב הגדול ביותר שמופעל, אלא אם הערך במניפסט של האפליקציה גבוה יותר.
|
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 שהאפליקציה יוצרת. הדרישה הנוספת הזו משפרת את האבטחה של האפליקציה.
מידע נוסף על השינוי הזה זמין במאמר חובה להצהיר על יכולת השינוי של Intent בהמתנה.
|
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) ולא זמין לאפליקציות אחרות.
|
RESTRICT_DOMAINS
מזהה השינוי: 175408749
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 12 (רמת API 31) ומעלה.
באפליקציות שמטרגטות את Android 12 (רמת API 31) ומעלה, נדרשת הגרסה המעודכנת של ה-API לאימות קישורי עומק לאפליקציה. הדרישה הזו אומרת שהאפליקציה חייבת להצהיר על דומיינים בתוך מסנן Intent שכולל את כל הפרטים הבאים:
android:autoVerify="true"
Intent.ACTION_VIEW
Intent.CATEGORY_BROWSABLE
Intet.CATEGORY_DEFAULT
- רק
IntentFilter.SCHEME_HTTP ו/או IntentFilter.SCHEME_HTTPS, בלי סכימות אחרות
בגרסאות קודמות של Android, לא הייתה דרישה ל-Intent.CATEGORY_BROWSABLE, הותרו סכימות אחרות, והגדרה של autoVerify ל-true בכל מסנן Intent הייתה
גורמת לכך שכל מסנני ה-Intent יוגדרו באופן משתמע ל-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)
מוגדרים במניפסט של החבילה שצוינה כפרמטר של ה-methods.
כדי להפעיל את השינוי הזה, צריך להפעיל אותו גם בחבילה שקוראת ל-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 במסנני Intent ב-AndroidManifest.xml עדיין לא מוטמע בגרסת טרום-ההשקה (Preview) הנוכחית של הפלטפורמה. בינתיים, אפשר לראות תצוגה מקדימה של השינויים החדשים בהעדפות המשתמש על ידי הפעלת 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 כשאפליקציות מפעילות שירות שפועל בחזית.
|