בדף הזה מופיע סיכום של התכונות העיקריות בגרסה Android 10, וקישורים למידע נוסף. סיכומי התכונות האלה מסודרים לפי המיקום של התיעוד של התכונה באתר הזה.
פיתוח פתרונות
java_sdk_library
ב-Android מגרסה 10 נוסף java_sdk_library, כלל build חדש לתיקון בעיות תאימות בספריות 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
שאחראי על הפעלת השהיית המערכת מוחלף בשירות ה-HIDL של SystemSuspend. ההטמעה הזו מציעה פונקציונליות שוות ערך לגרסאות קודמות, תוך ניצול היתרונות של תשתית Android HIDL.
safe_union ב-HIDL
ב-Android 10 מוצג safe_union, סוג איחוד עם תיוג מפורש, ב-HIDL.
הגדרות אישיות
ConfigStore HAL
ב-Android 10, ConfigStore HAL הוצא משימוש בגלל צריכת זיכרון גבוהה ושימוש מסובך, והוחלף ב-system properties.
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 במערכת הבנייה
תוכנת אתחול
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 לאימות של Hardware
Composer דרך הממשק 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 באפילוג של הפונקציה.
אודיו
Audio 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, צריך להתקשר ל-method 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, במטא-נתונים סטטיים של מערך מסנני צבעים חד-גווניים ואינפרה-אדום קרוב (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 Non-Standalone (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 Direct. המכשירים צריכים לספק אפשרות להפעיל או להשבית את האקראיות של כתובות ה-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. אם האפליקציות שלכם מסתמכות על התכונות שהוצאו משימוש ומפורטות במאמרים ניהול אנשי הקשר ו-Affinities Information (מידע על העדפות), כדאי לעדכן את האפליקציות כדי לפצות על השינויים. בנוסף, אם אתם משתמשים בגרסה מסועפת של ניהול אנשי הקשר, אתם צריכים לעדכן את ניהול אנשי הקשר.
הרשאות מיקום עם שלושה מצבים
הרשאות מיקום עם שלושה מצבים ב-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 של רמזים לגבי צריכת חשמל נשארים ב-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. פרטים נוספים זמינים בקובץ README של Overlayfs ב-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) נכשל.