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, הפלטפורמה יכולה לספק הצעות ללא טקסט (כמו תמונות) באמצעות המילוי האוטומטי המורחב
framework (מידע נוסף זמין במאמר בנושא שירותי מילוי אוטומטי). כדי שאפליקציה תוכל לטפל בהצעות האלה,
בדרך כלל הוא צריך להטמיע את ה-API של OnReceiveContentListener .
כדי שאופן השימוש ב-API הזה יהיה חלק יותר באפליקציות שבהן הוטמעו בעבר
InputConnection.commitContent(InputContentInfo, int, Bundle)
ב-API, אנחנו משתמשים שוב ב-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 כשהם נמצאים במצב 'נדחתה'
במצב הרשאה ומנסה לשלוח הודעה ל-nanoapp.
|
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) ).
באפליקציות יתרחשו Choreographer.postFrameCallback(Choreographer.FrameCallback)
קריאות חזרה (callbacks) וזרימת נתונים חוזרת (backpressure) בקצב הפריימים המותאם. אפליקציות משתמשות ב-Display.getRefreshRate() וב-Display.Mode.getRefreshRate() כדי לדעת מהו קצב הרענון של המסך. כדי לאפשר לאפליקציות לבצע תזמון פריימים בצורה נכונה, הערך של Display.getRefreshRate() תמיד יהיה קצב הפריימים של האפליקציה ולא קצב הרענון הפיזי של המסך. הפונקציה Display.Mode.getRefreshRate() תחזיר את קצב הפריימים של האפליקציה אם היא תעבור הידור לגרסה קודמת, והחל מ-Android 12 (רמת API 31) היא תחזיר את קצב הרענון של המסך הפיזי.
|
DOWNSCALED
מזהה השינוי: 168419799
מצב ברירת המחדל: מושבת בכל האפליקציות.
השינוי הזה הוא שומר הסף של כל השינויים בהחלשת המאגר לכל אפליקציה. הפעלת השינוי הזה מאפשרת לגורמי ההתאמה הבאים
יחול:
כשהשינוי הזה מופעל בחבילת אפליקציות, האפליקציה מחויבת באילוץ
שגודלו השתנה לגורם קנה המידה הגבוה ביותר שמופעל. לדוגמה, 80% הוא
משמש אם גם 80% וגם 70%
(DOWNSCALE_80 וגם
DOWNSCALE_70 )
מופעל.
|
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 לא צפויות לקבל Windows ברזולוציה גבוהה יותר מ-1080p, ולכן Windows שלהן מצומצם ל-1080p במקרה הצורך.
|
DROP_CLOSE_SYSTEM_DIALOGS
מזהה שינוי: 174664120
מצב ברירת מחדל: מופעל בכל האפליקציות.
כדי לשפר את השליטה של המשתמשים באינטראקציה עם האפליקציות והמערכת, פעולת הכוונה ACTION_CLOSE_SYSTEM_DIALOGS הווצאה משימוש החל מגרסה 12 של Android.
מידע נוסף על השינוי הזה זמין במאמר אפליקציות לא יכולות לסגור תיבות דו-שיח של המערכת.
|
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) ואילך צריכות להצהיר על יחסי תלות לספריות המותאמות הציבוריות המשותפות
מוגדרים על ידי יצרן המכשיר באמצעות התג uses-native-library ב-AndroidManifest.xml שלו. אם יחסי התלות
שאינו מרוצה - לדוגמה, אחד מיחסי התלות לא קיים - מנהל החבילות לא יתקין את האפליקציה. התלות יכולה להיות
מוגדר כאופציונלי באמצעות המאפיין android:required בתג. במקרה כזה, התלות לא תעמוד על
תהליך ההתקנה.
לאחר ההתקנה, האפליקציה מספקת רק את הספריות המקוריות המשותפות, שצוינו במניפסט של האפליקציה. קריאה ל-dlopen בספרייה משותפת ילידית שלא מופיעה במניפסט של האפליקציה תיכשל, גם אם היא קיימת בפועל במכשיר.
|
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
מצב ברירת מחדל: מושבת לכל האפליקציות.
כשהתכונה מופעלת, יצירת פעולות של מאגר מפתחות עשויה להיכשל בהתאם לאסטרטגיית החיתוך החדשה. מאגר המפתחות שימש לפעול בהנחה
שיצירה של פעולות קריפטוגרפיות תמיד מצליחה.
עם זאת, לקצה העורפי של KeyMint יש רק מספר מוגבל של משבצות פעולה.
כדי לשמור על המראה של "אינסוף", משבצות פעולה,
הדימון (daemon) של Keystore יסיר את הפעולות שנעשה בהן הכי פחות שימוש,
לא הייתה משבצת פעולה פנויה. כתוצאה מכך, תפעול טוב
עלולה להסתיים מוקדם מדי. כתוצאה מכך, AndroidKeystore נחשף להתקפת מניעת שירות (DoS) ולנעילה לא מכוונת (livelock). לדוגמה, אם מספר אפליקציות התעוררו באותו זמן בגלל אופטימיזציות של ניהול צריכת החשמל וניסו לבצע פעולות קריפטוגרפיות, הן יתחילו לסיים את הפעולות של זו לזו בלי להתקדם.
כדי לפרוץ מנעילת השידורים החיים וכדי למנוע ניסיונות של מניעת שירות (DoS),
שינתה את אסטרטגיית הקיצוץ כך שהיא תעדיף לקוחות
להשתמש בכמה משבצות פעולה לזמן קצר. כתוצאה מכך, פעולות בודדות
לא יהיו פעילים במשך יותר מ-5 שניות, כמעט תמיד
לסיים את העבודה ללא פגיעה באסטרטגיית הקיצוץ. עדיין יש פעולות שקשורות להצפנת מערכת הקבצים שיכולות לגרום לקצירה של הפעולות האלה, אבל המקרים האלה נדירים מאוד. כתוצאה משיטת החיתוך החדשה, יכול להיות שהיצירה תיכשל אם ללקוח יש יכולת חיתוך נמוכה יותר מכל הפעולות הקיימות.
שיטת גיזום: כדי למצוא מועמד מתאים, אנחנו מחשבים את הפחתת הביצועים של מבצע הקריאה החוזרת ושל כל פעולה קיימת.
Malus הוא הערך ההופכי של כוח החיתוך (מבצע הקריאה) או החיתוך
התנגדות (פעולה קיימת). כדי שהמבצע יכול לבצע גיזום של פעולה, הוא צריך למצוא פעולה עם ניקוד ניקוד נמוך יותר ממנו. פרטים נוספים על אסטרטגיית החיתוך זמינים בהטמעה של operation.rs .
ב-Android 11 (רמת API 30) ומטה, KeyStore2 יבדוק את
דימון (daemon) של מאגר מפתחות למשבצת פעולה בחינם. באפליקציות שמטרגטות ל-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.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) ואילך, הקצאות ערימה מותאמות בתהליך AppZygote וצאצאים שלו
משתמשים בתג שאינו אפס בבייט המשמעותי ביותר.
אפשר לקרוא מידע נוסף על השינוי הזה במאמר בנושא מצביעים מתויגים.
|
NATIVE_HEAP_ZERO_INIT
מזהה השינוי: 178038272
מצב ברירת המחדל: מושבת בכל האפליקציות.
הפעלת אתחול אוטומטי של הקצאות זיכרון מקומיות של ערימה (heap).
|
NATIVE_MEMTAG_ASYNC
מזהה שינוי: 135772972
מצב ברירת מחדל: מושבת לכל האפליקציות.
מפעילים בדיקה אסינכרונית (ASYNC) של תגי הזיכרון בתהליך הזה. הדגל הזה משפיע רק על חומרה שתומכת בתוסף תיוג הזיכרון (MTE) של ARM.
|
NATIVE_MEMTAG_SYNC
מזהה השינוי: 177438394
מצב ברירת המחדל: מושבת בכל האפליקציות.
הפעלת בדיקה של תג זיכרון סינכרוני (SYNC) בתהליך הזה. הסימון הזה משפיע רק על חומרה שתומכת ב-ARM
תוסף לתיוג זיכרון (MTE). אם גם NATIVE_MEMTAG_ASYNC וגם האפשרות הזו מופעלות, האפשרות הזו לוקחת
קדימות ו-MTE מופעלים במצב SYNC.
|
NEVER_SANDBOX_DISPLAY_APIS
מזהה שינוי: 184838306
מצב ברירת מחדל: מושבת לכל האפליקציות.
כשהאפשרות הזו מופעלת, היא מונעת את החלת ארגז החול של Display API על פעילות של תיבת דואר או SCM. ממשקי ה-API לרשת המדיה ימשיכו לספק
גבולות אזור התצוגה.
מידע נוסף על השינוי הזה זמין בקטע ב-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) ואילך.
רלוונטי ל-methods הבאות:
|
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
לאובייקט שהאפליקציה יוצרת. הדרישה הנוספת הזו משפרת את אבטחת האפליקציה.
מידע נוסף על השינוי הזה זמין בקטע אובייקטים של 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 בכל מסנן כוונה הייתה מתיימרת באופן משתמע שכל מסנני הכוונה הוגדרו ל-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 עדיין לא הוטמע ב-
את התצוגה המקדימה של הפלטפורמה הנוכחית. בשלב הזה, אפשר לראות תצוגה מקדימה של השינויים החדשים בהעדפות המשתמשים על ידי הפעלת 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 כשאפליקציות מפעילה שירות שפועל בחזית.
|