בדף הזה מופיע סיכום של התכונות העיקריות בגרסה Android 10, וקישורים למידע נוסף. סיכומי התכונות האלה מסודרים לפי המיקום של התיעוד של התכונה באתר הזה.
אני רוצה לבנות
java_sdk_library
ב-Android 10 הוצגה java_sdk_library, כלל חדש לבנייה שנועד לפתור בעיות תאימות בספריות Java משותפות. יצרני מכשירים יכולים להשתמש במנגנון הזה בספריות Java המשותפות שלהם כדי לשמור על תאימות לאחור של ממשקי ה-API שלהם.
ארכיטקטורה
רכיבים למערכות מודולריות
Android 10 מחלקת חלק מרכיבי מערכת Android למודולים ומאפשרת לעדכן אותם מחוץ למחזור הרגיל של מהדורות Android. הנה כמה מודולים:
- Android Runtime
- Conscrypt
- DNS Resolver
- DocumentsUI
- ExtServices
- מדיה
- ModuleMetadata
- Networking
- PermissionController
- נתוני אזור זמן
שיטת הפשטת חומרה (HAL)
ב-Android 10 נוספה תמיכה ב-HALs כדי לכבות באופן אוטומטי כשאין להם לקוחות.
ליבה
ABI
Android 10 כולל תמיכה בכלי עזר חדשים למעקב אחר ABI, כדי לעזור בהשוואה, במעקב ובצמצום של שינויים ב-ABI של ליבת המערכת שמשפיעים על התאימות למודולים של ליבת המערכת.
ב-Android 10 מוצג גם כלי לבדיקת השימוש ב-ABI שמבוסס על סמלים. הכלי לבדיקה יכול לזהות קבצים בינאריים מוכנים מראש שהם לא עדכניים בזמן הבנייה, כך שמפתחים של ספריות משותפות יכולים לדעת אילו קבצים בינאריים מוכנים מראש עלולים להיות פגומים בגלל השינוי שלהם, ואילו קבצים בינאריים מוכנים מראש צריך לבנות מחדש.
Android Live-Lock Daemon
Android 10 כולל את Android Live-Lock Daemon (llkd), שנועד לזהות ולמזער את הסיכון לקיפאון של ליבת המערכת.
vDSO32 ב-ARM64
Android 10 תומך בשימוש ב-vDSO32 בקרנלים של 64 ביט, מה שמאפשר שיפור של 0.4% בחיי הסוללה ושיפורים נוספים בביצועים.
רשומות fstab למחיצות שמוטמעות מוקדם
ב-Android מגרסה 10 ומעלה, המכשירים צריכים לציין רשומות fstab עבור מחיצות שמוצמדות מוקדם באמצעות קובץ fstab ב-ramdisk בשלב הראשון.
HIDL
Offload BroadcastQueue
Android מגרסה 10 כולל הפחתת עומס חדשה BroadcastQueue לתורים הקיימים של רקע וחזית. לתור ההעברה יש אותה עדיפות והתנהגות של פסק זמן כמו לתור הרקע. כדי למנוע חסימה של תור הרקע, שבו יכולות להתרחש שידורים מעניינים יותר או שידורים שגלויים למשתמשים, תור הפחתת העומס מטפל בשידור BOOT_COMPLETED, שהרבה אפליקציות מאזינות לו ויכול לקחת הרבה זמן להשלים אותו.
כרגע התור להעברת נתונים מטפל רק בשידור BOOT_COMPLETED, אבל יכול להיות שהוא יוכל לטפל גם בשידורים ארוכים אחרים.
שירות SystemSuspend
ב-Android 10, השרשור ב-libsuspend
שאחראי על הפעלת השהיית המערכת מוחלף בשירות SystemSuspend HIDL. ההטמעה הזו מציעה פונקציונליות שוות ערך לגרסאות קודמות, תוך ניצול היתרונות של תשתית Android HIDL.
safe_union ב-HIDL
ב-Android 10 מוצג safe_union, סוג איחוד עם תיוג מפורש, ב-HIDL.
הגדרות אישיות
ConfigStore HAL
ב-Android 10, ConfigStore HAL הוצא משימוש בגלל צריכת זיכרון גבוהה ושימוש מסובך, והוחלף ב-HAL עם מאפייני מערכת.
Config File Schema API
פלטפורמת Android מכילה מספר רב של קובצי XML לאחסון נתוני תצורה. הרבה מקובצי ה-XML נמצאים במחיצה vendor, אבל הם נקראים במחיצה system. במקרה כזה, הסכימה של קובץ ה-XML משמשת כממשק בין שני החלקים, ולכן צריך לציין את הסכימה באופן מפורש ולפתח אותה בצורה שתהיה תואמת לאחור. לפני Android 10, הפלטפורמה לא סיפקה מנגנונים שדרשו לציין ולהשתמש בסכימת ה-XML, או למנוע שינויים לא תואמים בסכימה. Android 10 מספק את המנגנון הזה, שנקרא Config File Schema API.
מאפייני מערכת כממשקי API
מאפייני מערכת שאליהם יש גישה בכל המחיצות מתוכננים בקובצי תיאור sysprop, וממשקי API לגישה למאפיינים נוצרים כפונקציות קונקרטיות עבור C++ וכמחלקות עבור Java.
אובייקט של ממשק הספק (VINTF)
VINTF
השינויים ב-VINTF ב-Android 10 כוללים:
- הוצאה משימוש של תגי גרסה של AVB
- הוספת פרטי ליבה בחבילות OTA
- יצירת מניפסטים של ODM באופן רשמי
- הוספת מטריצת תאימות מוצרים
- שיוך של רשומה במניפסט למודול HAL במערכת build
תוכנת אתחול
Ramdisk
ב-Android 10, מערכת קבצי הבסיס כבר לא נכללת ב-ramdisk.img, אלא היא ממוזגת עם system.img.
יצירת מחיצות ODM
Android 10 כולל תמיכה בבניית מחיצות odm באמצעות מערכת build של Android. אפשר להשתמש במחיצה נפרדת /odm להתאמות אישיות, וכך להשתמש בתמונה של ספק יחיד לכמה מק"טים של חומרה. כך יצרני עיצוב מקורי (ODM) יכולים להתאים אישית חבילות תמיכה בלוח (BSP) של ספקי מערכת על שבב (SoC) למכשירים הספציפיים שלהם (הלוחות שלהם). הם יכולים להטמיע מודולים של ליבת מערכת הפעלה עבור רכיבים ספציפיים ללוח, דמונים ספציפיים ללוח או תכונות משלהם בשכבות הפשטה של חומרה (HAL). יכול להיות שהם גם יחליפו או יתאימו אישית רכיבי SoC.
ניהול גרסאות של כותרת קובץ האימג' לאתחול
ב-Android 10, הכותרת של קובץ אימג' לאתחול עודכנה לגרסה 2, שכוללת קטע לאחסון קובץ ה-DTB (Device Tree Blob). בדיקות VTS ב-Android 10 מוודאות שכל המכשירים עם Android 10 משתמשים בגרסה 2 של כותרת קובץ אימג' לאתחול וכוללים תמונת DTB תקינה כחלק מקובצי אימג' לאתחול או קובצי אימג' לשחזור מערכת ההפעלה.
קובצי אימג' לשחזור מערכת ההפעלה במכשירים שאינם A/B
ב-Android מגרסה 9 ואילך, קובץ אימג' לשחזור מערכת ההפעלה של המכשיר צריכה לכלול מידע מתמונת שכבת העל. יצרני מכשירים יכולים להשתמש ב-DeviceTree או ב-Advanced Configuration and Power Interface (ACPI) כדי לתאר את כל המכשירים שלא ניתן לגלות. Android מגרסה 10 ואילך כולל תמיכה בארכיטקטורות שמשתמשות ב-ACPI במקום ב-Blob של DeviceTree (DTBO) לשכבת-על.
Stable AIDL
ב-Android 10 נוספה תמיכה בשפה לעיצוב ממשקים ב-Android (AIDL) יציבה, שהיא דרך חדשה לעקוב אחרי ממשק תכנות היישומים (API) וממשק הבינארי של היישומים (ABI) שמסופקים על ידי ממשקי AIDL.
העברת fastboot למרחב המשתמש
Android 10 מוסיף תמיכה במחיצות שניתן לשנות את הגודל שלהן על ידי העברה של הטמעת fastboot מ-bootloader למרחב המשתמש.
תצוגה
הפעלת סרטוני HDR
Android 10 תומך בהפעלה באיכות HDR10, VP9 ו-HDR10+.
סיווג הטקסט
סיווג טקסט מתבסס על טכניקות של למידת מכונה כדי לעזור למפתחים לסווג טקסט. ב-Android 10 הוצגו שתי שיטות ל-TextClassifier API: suggestConversationActions ו-detectLanguage.
השיטה suggestConversationActions יוצרת הצעות לתשובות ולפעולות משיחה נתונה, והשיטה detectLanguage מזהה את שפת הטקסט.
תמיכה בעיבוד של גופן Zawgyi
Zawgyi הוא הגופן הפופולרי ביותר במיאנמר. מערכות Android מגרסה 9 ומטה לא תומכות בעיבוד של Zawgyi כי הוא לא תואם ל-Unicode. ב-Android 10, הבעיה הזו נפתרה באמצעות הכללת גופן Unicode שיכול לרנדר גם ב-Unicode בורמזי וגם ב-Zawgyi. לא נדרשת עבודת הטמעה כדי לתמוך בעיבוד של גופן Zawgyi במכשירים שמופעלים עם Android 10. אם במכשירים שלכם יש הטמעה מותאמת אישית לתמיכה ב-Zawgyi, אתם יכולים:
- צריך לבטל את השינויים האלה ולהשתמש בשיטה שנתמכת בפלטפורמה.
- משאירים את הגופן הנפוץ Zawgyi במערכת ומשתמשים בקוד הלוקאל
my-qaagב-fonts.xml. מידע נוסף זמין בהערות הגרסה של Unicode CLDR בנושא Zawgyi (Qaag).
מגבלות על הסתרת סמלים של אפליקציות
ב-Android 10, האפשרות של אפליקציות להסתיר את הסמלים שלהן במפעיל האפליקציות מוגבלת. אם לא מופעלת פעילות של מרכז האפליקציות באפליקציה, המערכת מציגה פעילות מסונתזת במרכז האפליקציות. הפעילות המסונתזת הזו מייצגת את דף הפרטים של האפליקציה בהגדרות המערכת.
למידע נוסף על הלוגיקה שמשמשת להצגת סמלי אפליקציות, כולל סוגי האפליקציות שסמלי האפליקציות שלהן לא מוצגים, אפשר לעיין במאמרי העזרה של getActivityList() במאמרי העזרה של ה-API.
הגדרות
כדי לשפר את הנגישות, ב-Android 10 יש הגדרות זמן קצוב לתפוגה שניתנות להתאמה אישית על ידי המשתמש. השינויים ב-API ובהגדרות מגיעים עם Android 10. אם אתם משנים את ההגדרות, חשוב לוודא שהתכונה הזו נתמכת. אם יש במכשיר שלכם רכיבי ממשק משתמש שמוגדר להם פסק זמן, אתם יכולים להשתמש ב-API של פסק הזמן כדי להגדיר להם פסק זמן. מידע נוסף זמין בהנחיות הנגישות למפתחי Android.
תאימות
מסמך הגדרת התאימות (CDD) של Android
מסמך ההגדרה של תאימות ל-Android 10 מבוסס על גרסאות קודמות וכולל עדכונים לתכונות חדשות ושינויים בדרישות לפונקציונליות שפורסמה בעבר.
בדיקות
חבילה לבדיקות תאימות (CTS)
ל-Android CTS יש דף נפרד של הערות גרסה שבו מפורטים הרבה שינויים חשובים ב-Android 10.
הורדות של CTS
חבילות CTS שתומכות ב-Android 10 זמינות בדף CTS Downloads. אפשר לסנכרן את קוד המקור של הבדיקות הכלולות עם התג android-cts-10_r1 בעץ קוד פתוח.
CTS shim APEX
ב-Android 10 הוצגה חבילה בשם CtsShimApex, שצריך להתקין מראש במכשיר כדי לכתוב בדיקות CTS לניהול APEX.
מצב 'מסגרת בדיקה'
מצב CTS test harness עוזר למפתחים להפוך את הבדיקות לאוטומטיות במכשיר אחד או בצי של מכשירים.
מצב אפליקציות ללא התקנה
החל מ-Android 10, CTS פועל במצב אפליקציות ללא התקנה, כלומר מתקין את ה-APK של הבדיקה כאפליקציה ללא התקנה ומריץ את הבדיקות.
בנוסף למצב CTS לאפליקציות ללא התקנה, Android 10 כולל את CTS Verifier לאפליקציות ללא התקנה
בדיקת אודיו מקצועי ב-CTS Verifier
ב-Android 10 נוספה בדיקה ב-CTS Verifier לתאימות ל-Pro Audio.
בדיקות MIDI ב-CTS Verifier
ב-Android 10, בדיקת ה-MIDI ב-CTS Verifier בודקת את פונקציונליות ה-MIDI באמצעות ממשקי MIDI של USB, ממשקי MIDI של Bluetooth ונתיב של מכשיר MIDI וירטואלי.
פירוש של בדיקות CTS
ב-Android 10, מנגנון פירוש התוצאות של CTS עודכן.
חבילת בדיקות לספקים (VTS)
בדיקת VTS באמצעות ramdisk לניפוי באגים
ב-Android 10, תמונת המערכת הגנרית (GSI) שמשמשת להפעלת בדיקות התאימות CTS-on-GSI/VTS משתנה מסוג userdebug לסוג user build, כי GSI חתומה על הגרסה. עם זאת, הפקודה adb root שמעניקה למארח הרשאות root במכשיר Android שנבדק לא זמינה ב-user build. זו בעיה כי VTS דורש adb root כדי לפעול.
התכונה debug ramdisk נוספה כדי לאפשר את adb root אם המכשיר לא נעול. כך אפשר לפשט את תהליך הבדיקה על ידי שימוש חוזר באותו בניית משתמש system.img (GSI או system.img של יצרן ה-OEM).
אימות של Hardware Composer
ב-Android 10 נוסף מחלקה חדשה של בדיקות VTS לאימות של HardwareComposer דרך ממשק readback ב-IComposerClient.hal.
אם הספקים לא מטמיעים את readback, הבדיקות עוברות אוטומטית.
ניפוי באגים
טעינה של ספריות משותפות באמצעות טועני מחלקות שונים
ב-Android מגרסה 9 ומטה, האפליקציות טענו את הספריות המשותפות המקושרות שלהן ב-Java בטוען המחלקות של האפליקציה. ב-Android 10, ה-framework משתמש בטוען מחלקות שונה מטוען המחלקות של האפליקציה כדי לטעון ספריות משותפות של Java שמקושרות דרך uses-library או uses-static-library.
באופן כללי, אפליקציות לא צריכות להסתמך על שימוש ברכיב טעינה ספציפי של מחלקות, ולכן השינוי הזה לא אמור לשבש את התנהגות האפליקציה. עם זאת, אם אפליקציה מסתמכת על שימוש בטוען מחלקות יחיד, ההתנהגות הזו לא תקינה. בנוסף, עדיין יש תמיכה בגישה פרטית לחבילה של מחלקות באותה חבילה, אבל אין תמיכה בגישה פרטית לחבילה בספריות משותפות.
יצרני מכשירים עשויים לראות בעיות תאימות לאפליקציות כשהם בודקים את המכשירים שלהם עם Android 10.
תכונות אבטחה
רשימה מלאה יותר של שיפורים שקשורים רק לאבטחה ולפרטיות מופיעה בדף שיפורים באבטחה ובפרטיות ב-Android 10.
אימות פנים
אימות פנים מאפשר למשתמשים לפתוח את הנעילה של המכשיר על ידי מבט בחלק הקדמי של המכשיר. ב-Android 10 נוספה תמיכה במערך חדש של אימות באמצעות זיהוי פנים, שיכול לעבד בצורה מאובטחת פריימים של מצלמה, תוך שמירה על אבטחה ופרטיות במהלך אימות באמצעות זיהוי פנים בחומרה נתמכת. בנוסף, Android 10 מספקת דרך קלה להטמעות שעומדות בדרישות האבטחה, כדי להפעיל שילוב של אפליקציות לעסקאות כמו בנקאות דיגיטלית או שירותים אחרים.
גישה מורחבת
סביבות מהימנות, המנגנון הבסיסי שמשמש מנגנוני אימות משני כמו Smart Lock, יכולות רק לדחות את הנעילה ב-Android 10. סביבות אמינות כבר לא יכולות לבטל את הנעילה של מכשיר נעול, והן יכולות רק למנוע את נעילת המכשיר למשך ארבע שעות לכל היותר.
הצפנה
OEMCrypto
ב-Android 10 נעשה שימוש בגרסה 15 של OEMCrypto API.
בדיקה
BoundsSanitizer
Android 10 פורס BoundsSanitizer (BoundSan) ב-Bluetooth ובקודקים. BoundSan משתמש ב-bounds sanitizer של UBSan. ההקלה הזו מופעלת ברמת כל מודול. הוא עוזר לשמור על האבטחה של רכיבים קריטיים ב-Android, ולכן לא מומלץ להשבית אותו. התכונה BoundSan מופעלת בקודקים הבאים:
libFLAClibavcdeclibavcenclibhevcdeclibmpeg2libopuslibvpxlibspeexresamplerlibvorbisideclibaaclibxaac
ניקוי של גלישת מספר שלם
ב-Android 10 מופעלת סניטציה של גלישת מספרים שלמים (IntSan) ברכיבי codec של תוכנה. מוודאים שביצועי ההפעלה מקובלים עבור כל רכיבי ה-codec שלא נתמכים בחומרה של המכשיר. ההגדרה IntSan מופעלת ב-Codecs הבאים:
libFLAClibavcdeclibavcenclibhevcdeclibmpeg2libopuslibvpxlibspeexresamplerlibvorbisidec
זיכרון להרצה בלבד
כברירת מחדל, קטעי קוד הפעלה של קבצים בינאריים של מערכת AArch64 מסומנים כהפעלה בלבד (לא ניתנים לקריאה) כאמצעי הגנה מפני התקפות של שימוש חוזר בקוד בזמן אמת. קוד שמשלב נתונים וקוד, וקוד שבודק את החלקים האלה בכוונה (בלי למפות מחדש את פלחי הזיכרון כקריאים), כבר לא פועל. אפליקציות עם SDK לטירגוט של Android 10 (רמת API 29 ומעלה) מושפעות אם האפליקציה מנסה לקרוא קטעי קוד של ספריות מערכת בזיכרון שמופעל בהן זיכרון להרצה בלבד (XOM) בזיכרון בלי לסמן קודם את הקטע כקריא.
Scudo
Scudo הוא כלי דינמי להקצאת זיכרון במצב משתמש, שנועד להיות עמיד יותר בפני נקודות חולשה שקשורות ל-heap. הוא מספק את הפרימיטיבים הסטנדרטיים של הקצאה וביטול הקצאה ב-C, וגם את הפרימיטיבים של C++.
ShadowCallStack
ShadowCallStack (SCS) הוא מצב של LLVM instrumentation שמגן מפני החלפות של כתובות החזרה (כמו הצפות של מאגרים במחסנית) על ידי שמירת כתובת החזרה של פונקציה במופע ShadowCallStack שהוקצה בנפרד בפרוֹלוֹג של פונקציות שאינן עלה, וטעינת כתובת החזרה ממופע ShadowCallStack באפילוג של הפונקציה.
אודיו
HAL של אודיו
Android 10 כולל את היכולות החדשות הבאות של audio HAL.
AudioSourceAudioFormatAudioChannelMask
נוספו דרישות נוספות להטמעה של HAL אודיו ומערכת משנה.
אפקטים של עיבוד מקדים
ב-Android יש אפקטים של עיבוד מקדים, כמו ביטול הד אקוסטי, בקרה אוטומטית של עוצמת הקול וביטול רעשים.
Android 10 כולל דרישות חדשות לצילום באמצעות
VOICE_COMMUNICATION.
מנהל מדיניות האודיו
ב-Android 10 בוצע רפקטורינג משמעותי של מנהל מדיניות האודיו כדי לספק גמישות רבה יותר לתמיכה בתרחישי שימוש מורכבים ברכב.
אודיו ברזולוציה גבוהה
Android 10 כוללת את השיפורים הבאים לשמע ברזולוציה גבוהה.
- תמיכה ב-Float
- תמיכה בתדר של 192 KHz
- תמיכה ב-8 ערוצים
- הכללת מידע על תזמון
הקלטה בו-זמנית
Android 10 משפרת את חוויית המשתמש של לכידה בו-זמנית, שדורשת יותר מלכידת אודיו פעילה אחת שמתרחשת בו-זמנית.
AudioPlaybackCapture
Android 10 כולל API חדש בשם AudioPlaybackCapture, שמאפשר לאפליקציות להעתיק את האודיו שמופעל באפליקציות אחרות. התכונה הזו דומה לצילום מסך, אבל היא מיועדת לאודיו.
תרחיש השימוש העיקרי הוא לאפשר לאפליקציות סטרימינג ללכוד את האודיו שמופעל במשחקים.
ממשק ה-API של הלכידה לא משפיע על זמן האחזור של האפליקציה שהאודיו שלה נלכד.
MIDI
ב-Android 10 קל יותר להעביר אפליקציות אודיו מקצועיות באמצעות MIDI לפלטפורמת Android באמצעות AMidi NDK API.
מצלמה
סיכום השינויים ב-API של המצלמה, ב-HAL של המצלמה ובמודול המצלמה שהוצגו ב-Android 10 זמין במאמר עדכוני מצלמה ב-Android 10.
שיפורים בפרטיות של מסגרת המצלמה
ב-Android 10 נוספו שיפורים לפרטיות במסגרת המצלמה. כדי להימנע מחשיפה של מידע סטטי רגיש פוטנציאלי מהמצלמה ב-CameraCharacteristics בלי הסכמת המשתמש, האפליקציות צריכות לקבל את ההרשאה CAMERA לאחזור מטא-נתונים סטטיים עם תג רגיש לפרטיות באמצעות השיטה getCameraCharacteristics.
כדי לקבל רשימה של מפתחות מאפייני המצלמה שנדרשת עבורם ההרשאה CAMERA, צריך להתקשר לשיטה getKeysNeedingPermission.
שאילתה להגדרה מחדש של סשן
ב-Android 10 נוספה תכונה של שאילתת הגדרה מחדש של סשן, שמאפשרת לשפר את הביצועים באמצעות שליטה רבה יותר בלוגיקה של ההגדרה מחדש של פרמטר הסשן הפנימי.
ממשקי API לניהול מאגרים של Camera HAL3
ב-Android 10 הוצגו ממשקי API אופציונליים לניהול מאגרים של Camera HAL3, שמאפשרים להטמיע לוגיקה של ניהול מאגרים כדי להשיג פשרות שונות בין זיכרון לבין זמן אחזור של צילום בהטמעות של Camera HAL.
מתג דינמי של מצלמה פיזית ב-HAL של המצלמה
ב-Android 10 הוצג תג דינמי של מטא נתונים, ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID, שמציין את המצלמה הפיזית הפעילה שמוטמעת במכשיר מצלמה לוגית. מידע נוסף זמין במאמר בנושא תמיכה בריבוי מצלמות.
תמיכה בהסתרה של מצלמות פיזיות
ב-Android 10, HAL המצלמה יכול לצמצם את מספר המצלמות הפיזיות שאפליקציה יכולה לפתוח ישירות. לפרטים נוספים, אפשר לעיין במאמר בנושא תמיכה במספר מצלמות.
Camera2 VNDK API
ב-Android 10, מודולים של ספקים יכולים לגשת למכשירי מצלמה ולשלוט בהם באמצעות שני ממשקי HIDL סטנדרטיים חדשים: android.frameworks.cameraservice.service@2.0 ו-android.frameworks.cameraservice.device@2.0. כדי להפוך את השימוש בממשקי HIDL לנוח יותר, ב-Android 10 נוספה גם ספרייה שזמינה לספקים, libcamera2_vendor. הספרייה הזו דומה לספריית Camera NDK, עם כמה שינויים קלים.
הגדרות של מקורות נתונים
ב-Android 10 נוספו תכונות שמאפשרות לספקי מצלמות לפרסם זרמי מצלמה מומלצים ללקוחות מצלמה, ולתמוך בAPI לשאילתת שילובים של זרמים.
הדרישות לשילוב של סטרימינג מהמצלמה
מכשירים עם Android מגרסה 10 ואילך כבר לא צריכים לתמוך בשילובים של זרמים עם זרמי משנה פיזיים של מצלמות. עם זאת, מכשירים עם Android 10 וגרסה 3.5 של מכשיר HAL של המצלמה חייבים לתמוך ב-isStreamCombinationSupported() כדי לאפשר לאפליקציות לבדוק אם נתמכת שילוב של סטרימינג שכולל סטרימינג פיזי.
מידע נוסף זמין במאמר בנושא תמיכה בריבוי מצלמות.
תמונת HEIF
Android 10 מספק תמיכה מובנית במצלמה בפורמט קובץ תמונה יעיל (HEIF), שמאפשר איכות תמונה משופרת וגודל קובץ קטן יותר בהשוואה לתמונות JPEG. כדי לתמוך בתמונות בפורמט HEIF, במכשירים צריך להיות מקודד HEIC או HEVC.
מצלמות מונוכרום
Android 10 מספק תמיכה נוספת בפורמט Y8 stream, במערך מסנני צבעים מונוכרומטיים ואינפרה-אדום קרוב (NIR) במטא-נתונים סטטיים ובפונקציות DngCreator עבור מצלמות מונוכרומטיות.
קישוריות
שיחות והודעות
מספרי חירום ושיחות חירום
ב-Android 10 יש תמיכה משופרת בשיחות חירום. במקרה חירום, מכשירים שתומכים ב-IRadio HAL v1.4 יכולים ליזום שיחת חירום באמצעות מספרי חירום שאוחזרו ממקור כמו כרטיס SIM, אות הרשת או מסד הנתונים של Android. אפשר לחלק את המספרים לקטגוריות לפי שירותי חירום, כמו משטרה, כיבוי אש ואמבולנס.
Group call APIs
ממשקי ה-API לשיחות קבוצתיות הם הרחבה של ממשקי ה-API של eMBMS שנוספו ב-Android 9. ממשקי ה-API החדשים מגדירים תקן לאפליקציות להצטרפות לשיחות קבוצתיות בשידור סלולרי ולשידור בהן באמצעות אינטראקציה עם חבילות תוכנה של eMBMS. כדי ששיחות קבוצתיות יפעלו כמו שצריך, נדרשת תמיכה מספק ערכת השבבים, מספק תוכנת הביניים ומספק הסלולר. מסמכי התיעוד למפתחים נמצאים בכתובת developer.google.com.
יכולות של SIM מרחוק
ב-Android 10 נוספו יכולות SIM מרוחקות שמאפשרות לאפליקציות הודעות במכשיר מארח של Android לשלוח הודעות SMS דרך טלפונים באמצעות מנגנונים כמו Bluetooth. מידע נוסף מופיע במסמכי התיעוד של השיטה getSubscriptionType והקבוע SUBSCRIPTION_TYPE_REMOTE_SIM.
מספר כרטיסי eSIM
ב-Android 10, המחלקה EuiccManager תומכת במכשירים עם מספר כרטיסי SIM מוטמעים (eSIM) או כרטיסי eUICC.
עדכונים לגבי eSim
במכשירים עם Android 10 שתומכים ב-eSIM, צריך להגדיר מערך של מזהי חריצי eUICC שאי אפשר להסיר. המכשירים צריכים לתמוך גם ב-IRadio HAL v1.4 וב-IRadioConfig HAL v1.2. מידע נוסף זמין במאמרים בנושא הטמעה של eSIM ודרישות HAL.
5G לא עצמאי (NSA)
ב-Android 10 נוספה תמיכה ב-5G non-standalone (NSA). 5G NSA הוא פתרון לרשתות 5G שנתמכות על ידי תשתית 4G קיימת. ב-Android 10, מכשירים יכולים להציג סמל 5G בשורת הסטטוס כשהמכשיר מתחבר לרשת 5G.
הצעה לחשבון טלפון
ב-Android 10 הושק שירות הצעות לחשבונות טלפון, שמאפשר להציג למשתמשים הצעות לחשבונות טלפון כשהם מבצעים שיחה.
ספק
העברת הגדרות של רשת סלולרית
ב-Android 10, בוצעה ארכיטקטורה מחדש של קוד ממשק המשתמש של הגדרות הרשת הסלולרית, והוא הועבר ממערך הטלפוניה למערך ההגדרות. כדי לתמוך בקוד שהועבר, צריך לשנות את ערכי ההגדרות הבאים של הרשת הסלולרית ממקורות של Android למקורות של CarrierConfig:
config_world_mode ->
CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL
config_support_tdscdma ->
CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL
config_support_tdscdma_roaming_on_networks ->
CarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY
config_enabled_lte ->
CarrierConfigManager#KEY_LTE_ENABLED_BOOL
מזהי המכשיר
מזהי מכשירים קבועים (IMEI/MEID, IMSI והמספר הסידורי של ה-Build) מוגנים על ידי הרשאה עם הרשאות מיוחדות, וגישה ניתנת גם לאפליקציות של בעלי המכשיר והפרופיל. מכיוון שמספר ה-IMSI והמספר הסידורי של כרטיס ה-SIM מסופקים על ידי הספק, הגישה למזהים האלה ניתנת לחבילות עם הרשאות ספק.
Wi-Fi
בחירת רשת
מערכת Android מעריכה באופן רציף את האיכות של הרשת המחוברת ואת האיכות של הרשתות הזמינות. ב-Android 10 עודכנו האלגוריתמים והנהלים לבחירה של רשתות Wi-Fi ומעבר ביניהן.
סריקה של העברה אל רשת מועדפת ב-Wi-Fi
ב-Android 10 הוצגה שיטת API אופציונלית בשם setDeviceMobilityState() ב-WifiManager, שמגדילה את המרווח בין סריקות של העברה אל רשת מועדפת (PNO) כשהמכשיר נייח, כדי לצמצם את צריכת החשמל.
Wi-Fi של ספק
ב-Android 10, מכשירים עם התכונה 'Wi-Fi של ספק' מתחברים אוטומטית לרשתות Wi-Fi של ספק שהוגדרו (רשתות עם אישורים של מפתחות ציבוריים).
חיבור קל ל-Wi-Fi
ב-Android 10, מכשירים יכולים להשתמש ב-Wi-Fi Easy Connect, שמתבסס על פרוטוקול הקצאת ההרשאות למכשירים (DPP) שהוצג על ידי Wi-Fi Alliance (WFA), כדי להקצות הרשאות למכשירי Wi-Fi ולהגדיר אותם.
מצב זמן טעינה קצר ב-Wi-Fi
ב-Android 10 הוצג מצב Wi-Fi עם זמן טעינה קצר, שבו שבב ה-Wi-Fi מוגדר להפחתת זמן הטעינה.
שרת DHCP מעודכן
כחלק מהקמת שירות 'שרת IP' כולל, המערכת מוחקת את dnsmasq. ב-Android 10, השימוש הפונקציונלי בשרת DHCPv4 מוחלף ברכיב נפרד, שנכתב בעיקר ב-Java כדי להשתלב טוב יותר עם מישור הבקרה של מסגרת Java. כך משפרים את האבטחה ואת היכולת לעדכן את שרת ה-DHCP. פרטים נוספים זמינים במאמר packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java.
לא נדרשת פעולה כדי להטמיע את השינוי הזה: כל המכשירים שיוצאים לשוק ושמשודרגים ל-Android 10 משתמשים ב-DhcpServer כברירת מחדל.
אם ביצעתם התאמות אישיות בשרת ה-DHCP, תוכלו לחזור להתנהגות של Android 9 על ידי הגדרת ההגדרה הגלובלית tether_enable_legacy_dhcp_server=1.
הפונקציה החדשה DhcpServer כלולה במודול של רכיבי הרשת, ולכן כל התאמה אישית של הפונקציונליות של שרת DHCP צריכה להיות מועברת למעלה.
WPA3 ו-Wi-Fi Enhanced Open
ב-Android 10 נוספה תמיכה בתקני האבטחה Wi-Fi Protected Access 3 (WPA3) ו-Wi-Fi Enhanced Open כדי לספק פרטיות טובה יותר ועמידות גבוהה יותר מפני מתקפות מוכרות.
Wi-Fi ישיר
Wi-Fi Direct, שנקרא גם Wi-Fi P2P, מאפשר למכשירים תומכים לגלות מכשירים אחרים ולהתחבר אליהם ישירות באמצעות פרוטוקול Wi-Fi Direct, ללא גישה לאינטרנט או לרשת סלולרית.
שיפורים ברנדומיזציה של כתובות MAC
מגרסה Android 10 ואילך, רנדומיזציה של כתובות MAC מופעלת כברירת מחדל במצב לקוח, ב-SoftAp וב-Wi-Fi ישיר. המכשירים צריכים לספק אפשרות להפעיל או להשבית רנדומיזציה של כתובות MAC לכל SSID בממשק המשתמש של המערכת.
Passpoint R2
ב-Android 10 נוספה תמיכה בתכונות של Passpoint R2. ב-Passpoint R2 מיושמת הרשמה אונליין (OSU), שיטה סטנדרטית להקצאת פרופילי Passpoint חדשים. Android 10 תומך בהקצאת פרופילים של EAP-TTLS באמצעות SOAP-XML.
NFC
אבטחת NFC
תקשורת NFC מאובטחת מאפשרת להפעיל הדמיה של כרטיס NFC מחוץ למארח רק כשהמסך של המכשיר לא נעול. הטמעת התכונה הזו מאפשרת למשתמשים להפעיל תקשורת NFC מאובטחת כדי לשפר את האבטחה.
Android Beam הוצא משימוש
ב-Android 10, כבר לא נדרש Android Beam, והממשקים והשיטות הבאים הוצאו משימוש.
ממשקים:
NfcAdapter.CreateBeamUrisCallbackNfcAdapter.CreateNdefMessageCallbackNfcAdapter.OnNdefPushCompleteCallback
שיטות:
createBeamUrisinvokeBeamisNdefPushEnabledsetBeamPushUrissetBeamPushUrisCallbacksetNdefPushMessagesetNdefPushMessageCallbacksetOnNdefPushCompleteCallbackcreateNdefMessageCallbackonNdefPushCompleteCallback
כדי להשתמש ב-Android Beam, צריך לדווח על הקבוע של התכונה android.sofware.nfc.beam.
גרפיקה
ASurfaceControl
ב-Android 10 נוספה ASurfaceControl, דרך חדשה ל-SurfaceFlinger לקבל מאגרי נתונים זמניים.
הטמעה של גרפיקה
שכבות OpenGL ES
ב-Android 10 נוספה מערכת שכבות ל-GLES.
EGL 1.5
Android 10 מטמיעה את ממשק EGL 1.5. מידע על תכונות חדשות ב-EGL 1.5 זמין במאמר Khronos Releases EGL 1.5 Specification.
Vulkan
Android 10 כולל תמיכה בגרפיקה של Vulkan 1.1.
הפלטפורמה תומכת גם ב-VK_KHR_swapchain v70, כך שאפליקציית Vulkan יכולה ליצור VkImage שמגובה בזיכרון של swapchain.
קצב הרענון של הביצועים
ב-Android 10 נוספה תמיכה בקצב רענון לשיפור הביצועים. התכונה הזו מושבתת כברירת מחדל.
אינטראקציה
כלי רכב
אודיו לרכב
ב-Android 10, מיפוי ההקשר של Audio HAL מתבצע ל-AudioAttributes.usage כדי לזהות צלילים. ב-Android יש תמיכה במופע AUDIO_DEVICE_OUT_BUS אחד לכל הקשר. IAudioControl HAL מספק תוספים ספציפיים לרכב ל-Audio HAL.
ניווט באמצעות תנועות
ב-Android 10 נוספה אפשרות לניווט במערכת באמצעות מחוות בלבד. מידע על הכנת אפליקציות לשימוש בתכונה הזו זמין בדף ניווט באמצעות מחוות באתר Android Developer.
רשתות נוירונים
ב-Android 10 נוספו עדכונים ל-Neural Networks API ול-Neural Networks HAL. סיכום השינויים מופיע במאמר בנושא רשתות עצביות.
מסמכים חדשים ומעודכנים בנושא רשתות נוירונים ל-Android 10:
- סקירה כללית
- AHardwareBuffer
- ביצועים מהירים של תורים להודעות
- שמירה במטמון של קומפילציה
- גילוי מכשירים והקצאתם
- תוספים של ספקים
חיישנים
Sensors HAL 2.0
Sensors HAL 2.0 תומך בשימוש בתורים מהירים של הודעות (FMQ) כדי לשלוח אירועים של חיישנים מ-HAL אל Android Sensors Framework.
החיישנים כבויים
Android 10 כולל הגדרת פיתוח שמאפשרת להשבית את כל החיישנים במכשיר. התכונה הזו עוזרת למפתחים לבדוק את הפונקציונליות של האפליקציה שלהם במצבים שבהם החיישנים האלה לא זמינים, והיא גם מאפשרת למשתמשים לשלוט בחיישנים במכשיר שלהם.
אם המכשירים שלכם משתמשים בהטמעה שמוגדרת כברירת מחדל של SensorService,
CameraService ושל AudioPolicyService, לא נדרשת התאמה אישית נוספת של עיצוב הייחוס. אם יש לכם חיישנים אחרים, תוכלו לקרוא פרטים נוספים על תמיכה בתכונה הזו במאמר בנושא התאמה אישית.
מדיה
רכיבי מדיה שאפשר לעדכן
Android 10 מספק רכיבי מדיה שניתנים לעדכון, שמאפשרים לעדכן רכיבי מערכת מודולריים שקשורים למדיה דרך התשתית של חנות Google Play או דרך מנגנון OTA (עדכון אוטומטי) שסופק על ידי שותף.
Media DRM
Android 10 משפר את התועלת והשימושיות של ממשקי ה-API של Java ו-NDK MediaDrm.
פענוח
Android 10 תומך בפענוח AV1 SW.
הרשאות
Android 10 מספק הגדרות הרשאה נוספות לשקיפות ולפרטיות המשתמשים.
ספק אנשי הקשר ומידע על קשרים
מגרסה Android 10 ואילך, הגישה לנתונים שקשורים לזיקה לאנשי קשר, שמנוהלים על ידי רכיב ספק אנשי הקשר, שונה מהגישה בגרסה Android 9 ומטה. השינויים האלה בנוגע לגישה לנתונים משפרים את פרטיות המשתמשים בכל המכשירים עם Android 10 שמשתמשים ברכיב Contacts Provider. מסד הנתונים הבסיסי כבר לא מכיל נתוני קרבה לאנשי קשר. לכן, אפליקציות לא יכולות לכתוב לתיקייה הזו או לקרוא ממנה.
לשינויים ב-Android 10 צפויה השפעה גדולה על ממשקי ה-API. אם האפליקציות שלכם מסתמכות על התכונות שהוצאו משימוש ומפורטות במאמרים בנושא ניהול אנשי הקשר ומידע על קשרים, כדאי לעדכן את האפליקציות כדי לפצות על השינויים. בנוסף, אם אתם משתמשים בגרסה מסועפת של ניהול אנשי הקשר, אתם צריכים לעדכן את ניהול אנשי הקשר.
הרשאות מיקום עם שלושה מצבים
הרשאות מיקום עם שלושה מצבים ב-Android 10 מאפשרות למשתמשים לשלוט יותר בגישה של אפליקציות למיקומי המכשיר שלהם.
תזכורת לגבי גישה למיקום ברקע
ב-Android 10 יש תזכורת לגבי גישה למיקום ברקע, שמשפרת את השקיפות לגבי רמת הגישה של האפליקציות למיקום המכשיר ועוזרת למשתמשים לשמור על שליטה בגישה הזו.
הגבלת מיקומים אופציונליים
כשאפליקציה מבקשת את מיקום המכשיר, היא יכולה לחכות לתשובה לבקשה או להשתמש במאזיני מיקום פעילים כדי לקבל עדכון מיקום אופורטוניסטי. החל מ-Android 10, כדי לקבל עדכוני מיקום אופציונליים, מפתחים צריכים לציין שהם צריכים עדכוני מיקום פסיביים מהמחלקה FusedLocationProviderClient.
הפעלת אפליקציות ברקע
ב-Android 10, אפליקציות ללא הרשאות מיוחדות וללא חלון גלוי לא יכולות להפעיל את עצמן באופן אוטומטי בחזית. השינוי הזה מונע חלונות קופצים של מודעות והשתלטות זדונית. לא נדרשת כל פעולה כדי להפעיל את התכונה הזו.
ארגז חול לאפליקציות
ב-Android 10, לאפליקציות יש תצוגה מוגבלת של מערכת הקבצים, ללא גישה ישירה לנתיבים כמו /sdcard/DCIM. עם זאת, לאפליקציות יש גישה מלאה לנתיבים ספציפיים לחבילה שלהן, כפי שמוחזר על ידי שיטות רלוונטיות כמו Context.getExternalFilesDir().
לאפליקציות עדיין יש גישה מלאה לנתיבים ספציפיים לחבילה שלהן.
כדי לספק רמת פירוט מתאימה לשיתוף נתונים, צריך להשתמש בהנחיות לשיתוף קבצים בארגז החול של האפליקציה.
הגבלת הגישה של אפליקציות ללוח
ב-Android 10, הגישה ללוח השתנתה כך שלא ניתן לצפות בתוכן של הלוח על ידי קריאה ל-ClipboardManager.getPrimaryClip או על ידי הוספת מאזין onPrimaryClipChangedListener להתראה כשהלוח משתנה. כך משפרים את הפרטיות של המשתמשים ומונעים מאפליקציות שמפיצות תוכנות זדוניות לשנות את הלוח.
ב-Android 10, גישת קריאה מותרת רק לאפליקציה הנוכחית עם מיקוד קלט או למקלדת הנוכחית. הקריאה ל-listener
ClipboardManager.onPrimaryClipChanged()
מופעלת עכשיו רק באפליקציות שעומדות בהגבלות האלה.
הפונקציות ClipboardManager.getPrimaryClip ו-ClipboardManager.getPrimaryClipDescription מחזירות null אם האפליקציה ששולחת את הבקשה היא לא עורך שיטת הקלט (IME) שמוגדר כברירת מחדל, או אם אין לה פוקוס קלט.
הרשאות בתחילת ההפעלה כוללות זיהוי פעילות
עכשיו, כשלאפליקציה יש גישה למיקום המכשיר ברקע, מוצגת למשתמשים תיבת דו-שיח לזיהוי פעילות. הרשאות בתחילת ההפעלה עם הגבלה חמורה צריכות להיות ברשימת ההיתרים ב-Android 10.
ההרשאה MANAGE_DEVICE_ADMINS
ב-Android 10, ההרשאה MANAGE_DEVICE_ADMINS משתנה מחתימה או הרשאה מיוחדת לחתימה בלבד. כלומר, רק אפליקציות שחתומות על הפלטפורמה יכולות להגדיר אפליקציות אחרות כאדמין של המכשיר.
שיפורים ב-Sharing API
Android 10 מספק מספר תכונות חדשות של Android Platform API שקשורות לשיתוף. אם שיניתם את הקוד של גיליון השיתוף בהטמעה שלכם, אתם צריכים לוודא שההטמעה תומכת בתכונות החדשות האלה. אם לא שיניתם את הקוד של גיליון השיתוף בהטמעה שלכם, אתם לא צריכים לעשות שום דבר כדי לתמוך בתכונות החדשות האלה.
סביבת זמן ריצה ל-Android (ART)
הגדרות חתומות
התכונה Signed Config מאפשרת להטמיע הגדרה של הגבלות על ממשקים שאינם SDK בחבילות APK. כך אפשר להסיר ממשקים ספציפיים שאינם ב-SDK מהרשימה השחורה, כדי ש-AndroidX יוכל להשתמש בהם בצורה בטוחה. השינוי הזה מאפשר ל-AndroidX להוסיף תמיכה בתכונות חדשות בגרסאות ישנות יותר של Android.
ביצועים
שכבת הפשטה של cgroup
Android 10 כולל שכבת הפשטה של cgroup ופרופילי משימות, שמפתחים יכולים להשתמש בהם כדי לתאר קבוצה של הגבלות שחלות על שרשור או על תהליך.
דימון להפסקת תהליכים בגלל זיכרון נמוך (lmkd)
Android 10 תומך במצב lmkd חדש שמשתמש במוניטורים של מידע על לחץ ליבה (PSI) כדי לזהות לחץ על הזיכרון.
הספק
ניהול צריכת החשמל של הפלטפורמה
ב-Android 10, אפשר להפעיל את מצב Doze במכשירים שתמיד פועלים וגם במכשירים שמופעלים באמצעות סוללה.
חיסכון בסוללה לפי תרחיש
ב-Android 10 יש אפשרות חדשה להגדרת לוח זמנים לחיסכון בסוללה שנקראת בהתאם לתרחיש. חיסכון בסוללה לפי שגרה מאפשר לאפליקציה שנבחרה על ידי יצרן הציוד המקורי לספק אותות למערכת כדי לתזמן את החיסכון בסוללה בצורה חכמה יותר. האפשרות הזו דורשת הגדרה, והיא לא חובה.
Power stats HAL
ב-Android מגרסה 10,
IPowerStats.hal
ממשקי ה-API לאיסוף נתונים סטטיסטיים על צריכת החשמל מחליפים את ממשקי ה-API ב-IPower.hal.
ממשקי ה-API עדיין נתמכים ב-HAL של ניהול צריכת החשמל, אבל בעתיד הם יועברו באופן בלעדי ל-HAL של נתוני צריכת החשמל.
ה-HAL של נתוני צריכת החשמל כולל ממשקי API חדשים לתמיכה באיסוף נתונים ממדידת צריכת החשמל במכשיר, במכשירים נתמכים. בנוסף, עדכנו את ממשקי ה-API הקיימים לאיסוף נתוני צריכת חשמל כדי לשפר את הגמישות. ממשקי ה-API של Power Hinting נשארים ב-Power HAL ולא משתנים.
הפחתת חום
המסגרת התרמית ב-Android 10 מבצעת הפשטה של ממשקי המכשיר עבור חיישן הטמפרטורה של מערכת המשנה התרמית, כולל CPU, GPU, סוללה, עור ומכשיר קירור. המסגרת כוללת ממשק תשאול כדי לשאול על הסטטוס התרמי ולהתחיל בהגבלת רוחב פס, וממשק קריאה חוזרת כדי לשלוח הודעה למשתמש כשעוברים את הסף.
Android 10 מספק את סוגי הנתונים החדשים דרך ממשק IThermalService באמצעות שלוש השיטות החדשות האלה:
-
getCurrentThermalStatus()מחזירה את הסטטוס התרמי הנוכחי של המכשיר כמספר שלם, אלא אם המכשיר עובר ויסות. -
addThermalStatusListener()מוסיף מאזין. -
removeThermalStatusListener()מסיר מאזין שנוסף קודם.
אפליקציות מוסיפות ומסירות פונקציות listener וניגשות למצב הטמפרטורה במחלקה PowerManager. רק שירות מערכת מהימן, כמו Android API או API של יצרן המכשיר, יכול לגשת למידע על אירועים סיבתיים קשורים. יצרני מכשירים או יצרני SoC צריכים להטמיע את thermal HAL 2.0 כדי להפעיל את הפונקציונליות המלאה של מסגרת התרמית החדשה.
דוגמה להטמעה של אמצעים להפחתת חום מופיעה בהטמעה לדוגמה.
עדכונים
פורמט קובץ APEX
Android Pony EXpress (APEX) הוא פורמט חדש של קובץ מארח שמשמש בתהליך ההתקנה של רכיבי מערכת מודולריים.
מחיצות דינמיות
מחיצות דינמיות מציגות מערכת חלוקה למחיצות במרחב המשתמש ב-Android, שמאפשרת ליצור, לשנות את הגודל או למחוק מחיצות במהלך עדכוני OTA. יצרני המכשירים לא צריכים לדאוג לגבי הגדלים של המחיצות, כמו system, vendor ו-product. במקום זאת, מוקצית מחיצת super גדולה אחת, ואפשר לשנות את הגודל של מחיצות המשנה באופן דינמי בתוכה.
עדכוני מערכת דינמיים
עדכוני מערכת דינמיים (DSU) מאפשרים ליצור קובץ אימג' של המערכת של Android שהמשתמשים יכולים להוריד מהאינטרנט ולנסות בלי לסכן את קובץ האימג' של המערכת הנוכחי.
גיבוי ושחזור של כמה משתמשים
ב-Android 10 יש תמיכה בפונקציונליות של גיבוי ושחזור לכל המשתמשים במכשיר. בעבר, הגיבוי והשחזור היו זמינים רק למשתמש המערכת. גיבוי ושחזור למשתמשים שאינם משתמשי מערכת מושבתים כברירת מחדל, כי הם מכסים רק חלק מההגדרות, הטפטים ורכיבי המערכת.
Overlayfs
משתמשים שעובדים עם גרסאות build של userdebug או eng מצפים לאפשרות להרכיב מחדש את מחיצת המערכת כקריאה-כתיבה, ואז להוסיף או לשנות כל מספר של קבצים בלי להפעיל מחדש את קובץ אימג' של המערכת. אפשר להשתמש ב-Overlayfs, שמגדיר באופן אוטומטי אחסון גיבוי למערכת קבצים שניתנת לכתיבה כהפניה עליונה, וטוען אותה מעל ההפניה התחתונה. הפעולות האלה מתבצעות בבקשות adb disable-verity ו-adb remount. פרטים נוספים זמינים בקטע Overlayfs README ב-AOSP.
תמיכה בספרייה משותפת במצב שחזור
ב-Android 10, ספריות משותפות זמינות במחיצת השחזור, ולכן אין צורך שכל קובצי ההפעלה של מצב השחזור יהיו סטטיים. הספריות המשותפות נמצאות בספרייה /system/lib (או /system/lib64 במכשירים עם 64 ביט) במחיצה.
כדי להוסיף ספרייה משותפת חדשה למחיצת השחזור, מוסיפים את recovery_available: true או recovery: true אל Android.bp של הספרייה המשותפת. האפשרות הראשונה מתקינה את הספרייה גם במחיצות המערכת והשחזור, והאפשרות השנייה מתקינה אותה רק במחיצת השחזור.
אי אפשר ליצור תמיכה בספרייה משותפת באמצעות מערכת ה-build מבוססת ה-make של Android.
כדי להמיר קובץ הפעלה סטטי קיים למצב שחזור לקובץ הפעלה דינמי, צריך להסיר את LOCAL_FORCE_STATIC_EXECUTABLE := true ב-Android.mk או את static_executable: true (ב-Android.bp).
נקודת ביקורת של נתוני משתמשים (UDC)
ב-Android 10 הוצגה התכונה User Data Checkpoint (UDC), שמאפשרת למערכת Android לחזור למצב הקודם שלה אם עדכון Android over-the-air (OTA) נכשל.