בדף הזה נסכם את התכונות העיקריות בגרסה של Android 10, ונציג קישורים למידע נוסף. סיכומי התכונות האלה מאורגנים לפי מיקום המסמכים בנושא התכונה באתר הזה.
Build
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 שמבוסס על סמלים. הבודק יכול לזהות קבצים בינאריים מוכנים מראש שאינם מעודכנים בזמן ה-build, כדי שמפתחי הספרייה המשותפת יוכלו לדעת אילו קבצים בינאריים מוכנים מראש עלולים להיפגע מהשינוי שלהם ואילו קבצים בינאריים מוכנים מראש צריך ליצור מחדש.
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
העברה של BroadcastQueue
ב-Android 10 יש העברה חדשה של BroadcastQueue
לתור הרקע ולתור החזית הקיימים. לתור ההעברה יש אותה עדיפות ואותה התנהגות של זמן קצוב לתפוגה כמו לתור הרקע. כדי למנוע חסימה של התור ברקע, שבו יכולים להתרחש שידורים מעניינים יותר או שידורים שגלויים למשתמשים, התור להעברה לענן מטפל בשידור BOOT_COMPLETED
, שאותו האפליקציות רבות מקשיבים לו ויכול להיות שיחלוף זמן רב עד להשלמת השידור.
כרגע, התור להעברה מתייחס רק לשידור BOOT_COMPLETED
, אבל הוא יכול לטפל גם בשידורים ארוכים אחרים.
השירות SystemSuspend
ב-Android 10, השרשור ב-libsuspend
שאחראי להפעלת השהיה של המערכת מוחלף בשירות SystemSuspend HIDL. ההטמעה הזו מציעה פונקציונליות זהה לזו של הגרסאות הקודמות, תוך ניצול היתרונות של התשתית של Android HIDL.
safe_union ב-HIDL
ב-Android 10 נוסף ל-HIDL הסוג safe_union
, שהוא סוג איחוד (union) מתויג באופן מפורש.
הגדרות אישיות
ConfigStore HAL
ב-Android 10 הוצא משימוש את ConfigStore 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
תוכנת אתחול
דיסק RAM
ב-Android 10, מערכת הקבצים ברמה הבסיסית כבר לא נכללת ב-ramdisk.img
, אלא מוזגת עם system.img
.
יצירת מחיצות ODM
ב-Android 10 יש תמיכה ביצירת מחיצות odm
באמצעות מערכת ה-build של Android. אפשר להשתמש במחיצה נפרדת של /odm
להתאמות אישיות, וכך להשתמש בתמונת ספק אחת לכמה מק"טים של חומרה. כך יצרני ציוד מקורי (ODM) יכולים להתאים אישית חבילות תמיכה ללוחות של ספקי מערכת על שבב (SoC) למכשירים הספציפיים שלהם (הלוחות שלהם). הם יכולים להטמיע מודולים של ליבה לרכיבים ספציפיים ללוח, לדיימונים ספציפיים ללוח או לתכונות משלהם בשכבות הפשטה של החומרה (HAL). הם יכולים גם להחליף או להתאים אישית רכיבי SoC.
ניהול גרסאות של כותרות של קובצי אימג' לאתחול
ב-Android 10 מתבצע עדכון של כותרת קובץ האימג' של האתחול לגרסה 2, שכוללת קטע לאחסון קובץ האימג' של עץ המכשיר (DTB). בדיקות VTS של Android 10 מאמתות שכל המכשירים שמריצים Android 10 משתמשים בכותרת של קובץ האימג' של האתחול בגרסה 2, וכוללים קובץ אימג' DTB תקין כחלק מקובצי האימג' של האתחול או השחזור.
קובצי אימג' לשחזור למכשירים שאינם A/B
ב-Android מגרסה 9 ואילך, קובץ האימג' לשחזור של המכשיר חייב להכיל מידע מתמונת שכבת-העל. יצרני מכשירים יכולים להשתמש ב-DeviceTree או ב-Advanced Configuration and Power Interface (ACPI) כדי לתאר את כל המכשירים שלא ניתן לגלות. ב-Android מגרסה 10 ואילך יש תמיכה בארכיטקטורות שמשתמשות ב-ACPI במקום ב-DeviceTree blob ל-overlay (DTBO).
Stable AIDL
ב-Android 10 נוספה תמיכה ב-Android Interface Definition Language (AIDL), שפת הגדרה יציבה לבניית ממשק Android. זוהי דרך חדשה לעקוב אחרי ממשק תכנות האפליקציה (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. כדי לטפל בבעיה הזו, בגרסה 10 של Android נוסף גופן Unicode שיכול להציג גם את Unicode Burmese וגם את Zawgyi. לא נדרשת עבודה להטמעה כדי לתמוך ברינדור של גופן Zawgyi במכשירים שיושקו עם Android 10. אם במכשירים שלכם יש הטמעה מותאמת אישית לתמיכה ב-Zawgyi, תוכלו:
- צריך לבטל את השינויים האלה ולהשתמש בשיטה הנתמכת בפלטפורמה.
- שומרים את הגופן הנפוץ Zawgyi במערכת ומשתמשים בקוד הלוקאל
my-qaag
ב-fonts.xml
. מידע נוסף זמין בהערות הגרסה של Unicode CLDR בנושא Zawgyi (Qaag).
מגבלות על הסתרת סמלי אפליקציות
ב-Android 10 יש הגבלה על היכולת של אפליקציות להסתיר את הסמלים שלהן במרכז האפליקציות. אם לאפליקציה מסוימת לא מופעלת פעילות במרכז האפליקציות, המערכת מציגה פעילות מורכבת במרכז האפליקציות. הפעילות המורכבת הזו מייצגת את דף הפרטים של האפליקציה בהגדרות המערכת.
למידע נוסף על הלוגיקה שמיושמת כדי להציג את סמלי האפליקציות, כולל סוגי האפליקציות שאין להן סמלים, אפשר לעיין במסמכי העזרה של getActivityList()
במסמכי העזרה של ה-API.
הגדרות
כדי לשפר את הנגישות, מערכת Android 10 כוללת הגדרות זמן קצוב לתפוגה שאפשר להתאים אישית. השינויים ב-API ובהגדרות מגיעים עם Android 10. אם אתם מתאימים אישית את ההגדרות, חשוב לוודא שהתכונה הזו נתמכת. אם יש לכם אלמנטים בממשק המשתמש שהתוקף שלהם פג במכשיר, תוכלו להשתמש ב-timeouts API. מידע נוסף זמין בהנחיות למפתחים בנושא נגישות ב-Android.
תאימות
מסמך הגדרת תאימות ל-Android (CDD)
מסמך הגדרת התאימות של 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 עוזר למפתחים לבצע אוטומציה של בדיקות במכשיר או בצי של מכשירים.
מצב אפליקציות ללא התקנה
החל מ-Android 10, ה-CTS פועל במצב אפליקציות ללא התקנה. כלומר, מתקינים את קובץ ה-APK לבדיקה כאפליקציה ללא התקנה ומפעילים את הבדיקות.
בנוסף למצב CTS לאפליקציות ללא התקנה, Android 10 כולל את CTS Verifier לאפליקציות ללא התקנה.
בדיקת אודיו של CTS Verifier Pro
ב-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 באמצעות דיסק RAM לניפוי באגים
ב-Android 10, קובץ האימג' המערכת הגנרי (GSI) שמשמש להרצת בדיקות תאימות של CTS-on-GSI/VTS משתנה מסוג userdebug לסוג build של משתמש, כי GSI חתום על ידי המפיץ. עם זאת, הפקודה adb root
שמעניקה למארח הרשאות root למכשיר Android שנבדק לא זמינה ב-build של משתמש. זו בעיה כי כדי להריץ את VTS צריך את adb root
.
debug ramdisk נכנס לתמונה כדי לאפשר את adb root
, אם המכשיר לא נעול. כך אפשר להשתמש שוב באותו build של המשתמש system.img
(GSI או system.img
של יצרן הציוד המקורי) כדי לפשט את תהליך הבדיקה.
אימות של Hardware Composer
ב-Android 10 נוספה סיווג בדיקה חדש של VTS לאימות של Hardware Composer דרך הממשק readback
ב-IComposerClient.hal
.
אם הספקים לא מטמיעים את readback
, הבדיקות עוברות באופן אוטומטי.
ניפוי באגים
טעינת ספריות משותפות באמצעות מערכי טעינה שונים של כיתות
ב-Android 9 ובגרסאות ישנות יותר, האפליקציות הטעינו את הספריות המשותפות המקושרות של Java במטען הכיתות של האפליקציה. ב-Android 10, ה-framework משתמש ב-class loader שונה מזה של ה-class loader של האפליקציה כדי לטעון ספריות Java משותפות שמקושרות דרך uses-library
או uses-static-library
.
באופן כללי, אפליקציות לא צריכות להסתמך על שימוש במטען מחלקות ספציפי, כך שהשינוי הזה לא אמור לשבש את התנהגות האפליקציה. עם זאת, אם אפליקציה מסתמכת על שימוש במטען כיתה יחיד, ההתנהגות הזו לא תקינה. בנוסף, עדיין יש תמיכה בחשיפה ברמת החבילה של כיתות באותה חבילה, אבל אין תמיכה בספריות משותפות.
יצרני מכשירים עשויים לזהות בעיות בתאימות לאפליקציות במהלך בדיקת המכשירים שלהם עם Android 10.
תכונות אבטחה
רשימה מלאה יותר של שיפורים שקשורים רק לאבטחה ולפרטיות מופיעה בדף שיפורים באבטחה ובפרטיות ב-Android 10.
אימות פנים
אימות פנים מאפשר למשתמשים לפתוח את המכשיר פשוט על ידי התבוננות בחלק הקדמי שלו. ב-Android 10 נוספה תמיכה בסטאק חדש של אימות פנים, שיכול לעבד באופן מאובטח את התמונות מהמצלמה, לשמור על האבטחה והפרטיות במהלך אימות הפנים בחומרה נתמכת. ב-Android 10 יש גם דרך קלה להטמיע את האבטחה כך שאפשר יהיה לשלב אפליקציות לעסקאות כמו בנקאות אונליין או שירותים אחרים.
גישה מורחבת
סביבות מהימנות, המנגנון הבסיסי שבו משתמשים מנגנוני אימות שלישיים כמו Smart Lock, יכולות לדחות את הנעילה רק ב-Android 10. סביבות אמינות כבר לא יכולות לבטל את הנעילה של מכשיר נעול, והן יכולות להשאיר מכשיר פתוח רק למשך ארבע שעות לכל היותר.
הצפנה
OEMCrypto
ב-Android 10 נעשה שימוש ב-OEMCrypto API בגרסה 15.
בדיקה
BoundsSanitizer
ב-Android 10 מופעל BoundsSanitizer (BoundSan) ב-Bluetooth ובקודקים. BoundSan משתמש ב-bounds sanitizer של UBSan. אפשר להפעיל את הפעולה הזו ברמת המודול. הוא עוזר לשמור על האבטחה של רכיבים קריטיים ב-Android, ואין להשבית אותו. BoundSan מופעל בקודקים הבאים:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
libaac
libxaac
ניטרול של גלישה במספר שלם
ב-Android 10 מופעל Integer Overflow Sanitization (IntSan) בקודקים של תוכנה. מוודאים שביצועי ההפעלה סבירים בכל הקודקים שלא נתמכים בחומרה של המכשיר. בדיקת IntSan מופעלת בקודקים הבאים:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
זיכרון להפעלה בלבד
כברירת מחדל, קטעי קוד הפעלה של קבצים בינאריים של מערכת AArch64 מסומנים כ'הפעלה בלבד' (לא ניתנים לקריאה) כהגנה מפני התקפות של שימוש חוזר בקוד בזמן אמת. קוד שמשלב נתונים וקוד יחד וקוד שבודק בכוונה את החלקים האלה (בלי למפות מחדש קודם את פלחי הזיכרון כקריא) לא פועל יותר. אפליקציות עם SDK ל-Android 10 (רמת API 29 ואילך) מושפעות מהשינוי אם האפליקציה מנסה לקרוא קטעי קוד בספריות מערכת שפועלות בזיכרון לצורכי ביצוע בלבד (XOM) בזיכרון, בלי לסמן קודם את הקטע כקריא.
Scudo
Scudo הוא מנהל זיכרון דינמי במצב משתמש, שנועד להיות עמיד יותר נגד נקודות חולשה שקשורות לערימה. הוא מספק את הפרימיטיבים הרגילים של הקצאה וביטול הקצאה ב-C, וגם את הפרימיטיבים של C++.
ShadowCallStack
ShadowCallStack
(SCS) הוא מצב של הוספת קוד ל-LLVM שמגן מפני כתיבה מחדש של כתובת ההחזרה (כמו זליגה של מאגר האחסון של ה-stack). לשם כך, הפונקציה שומרת את כתובת ההחזרה שלה במכונה ShadowCallStack
שמוקצית בנפרד בתחילת הפונקציה (prolog) של פונקציות שאינן פונקציות עלים, ומטעינה את כתובת ההחזרה מהמכונה ShadowCallStack
בסוף הפונקציה (epilog).
אודיו
Audio HAL
מערכת Android 10 כוללת את היכולות החדשות הבאות ל-HAL אודיו.
AudioSource
AudioFormat
AudioChannelMask
יש דרישות נוספות להטמעת 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 לניהול מאגרי נתונים של מצלמה HAL3
ב-Android 10 נוספו ממשקי API לניהול מאגרים של HAL3 למצלמה, שמאפשרים להטמיע לוגיקה לניהול מאגרים כדי להשיג פשרות שונות בין זיכרון לבין זמן אחזור הצילום בהטמעות של 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
שזמינה לספקים. הספרייה הזו דומה לספריית NDK של Camera, עם כמה שינויים קלים.
הגדרות של מקורות נתונים
ב-Android 10 נוספו תכונות שמאפשרות לספקי מצלמות לפרסם שידורים מומלצים של מצלמות ללקוחות המצלמה, ולתמוך בAPI לשאילתות על שילובי שידורים.
הדרישות לשילוב של שידור מהמצלמה
מכשירים עם Android מגרסה 10 לא נדרשים יותר לתמוך בשילובי סטרימינג עם סטרימינג פיזי של מצלמות משנה. עם זאת, במכשירים עם Android 10 וגרסת HAL של המצלמה 3.5 חייבת להיות תמיכה ב-isStreamCombinationSupported()
כדי לאפשר לאפליקציות לשלוח שאילתות לגבי תמיכה בשילוב של שידורים פיזיים.
מידע נוסף זמין במאמר תמיכה במספר מצלמות.
תמונת HEIF
ב-Android 10 יש תמיכה מובנית במצלמה לתמונות בפורמט HEIF (קובץ תמונה באיכות גבוהה), שמציעות איכות תמונה משופרת וגודל קובץ קטן יותר בהשוואה לתמונות בפורמט JPEG. כדי לתמוך בתמונות HEIF, המכשירים צריכים לכלול מקודד HEIC או HEVC.
מצלמות מונוכרום
ב-Android 10 יש תמיכה נוספת בפורמט הסטרימינג Y8, במטא-נתונים סטטיים של מערך מסנני צבע מונוכרומטיים ואינפרה-אדום קרוב (NIR), ובפונקציות DngCreator
למצלמות מונוכרום.
קישוריות
שיחות והודעות
מספרי חירום ושיחות חירום
ב-Android 10 יש תמיכה משופרת בשיחות חירום. במקרה חירום, במכשירים עם תמיכה ב-IRadio HAL v1.4 אפשר להתחיל שיחת חירום באמצעות מספרי חירום שאוחזרו ממקור כלשהו, כמו כרטיס SIM, אות הרשת או מסד הנתונים של Android. אפשר לסווג מספרים לפי קטגוריות של שירותי חירום, כמו משטרה, כיבוי אש ואמבולנס.
ממשקי API לשיחות קבוצתיות
ממשקי ה-API לשיחות קבוצתיות הם תוסף לממשקי ה-API של eMBMS שנוספו ב-Android 9. ממשקי ה-API החדשים מגדירים תקן לאפליקציות להצטרפות לשיחות קבוצתיות בשידור סלולרי ולהעברת שידור, באמצעות אינטראקציה עם חבילות של תוכנת ביניים מסוג eMBMS. כדי שתהיה אפשרות לבצע שיחות קבוצתיות, צריך תמיכה מספקי הצ'יפים, מספקי התוכנה לתווך (middleware) ומהספק הסלולרי. מסמכי התיעוד למפתחים נמצאים בכתובת 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 לא עצמאי (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 Easy Connect
ב-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 צריכה להישלח ל-upstream.
WPA3 ורשת Wi-Fi עם אבטחת OWE
ב-Android 10 נוספה תמיכה בתקני האבטחה Wi-Fi Protected Access 3 (WPA3) ו-Wi-Fi Enhanced Open, כדי לספק פרטיות משופרת ועמידות טובה יותר מפני התקפות ידועות.
Wi-Fi ישיר
Wi-Fi ישיר, שנקרא גם Wi-Fi P2P, מאפשר למכשירים שתומכים בטכנולוגיה הזו לגלות אחד את השני ולהתחבר ישירות ביניהם באמצעות פרוטוקול Wi-Fi Direct, בלי גישה לאינטרנט או לרשת סלולרית.
שיפורים ברנדומיזציה של כתובות MAC
החל מגרסה 10 של Android, רנדומיזציה של כתובות 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
Secure NFC מאפשר להפעיל את הדמיית כרטיס ה-NFC מחוץ למארח רק כשמסך המכשיר לא נעול. הטמעת התכונה הזו מאפשרת למשתמשים להפעיל תקשורת NFC מאובטחת לשיפור האבטחה.
Android Beam הוצא משימוש
ב-Android 10, כבר לא נדרש Android Beam והממשקים והשיטות הבאים הוצאו משימוש.
ממשקים:
NfcAdapter.CreateBeamUrisCallback
NfcAdapter.CreateNdefMessageCallback
NfcAdapter.OnNdefPushCompleteCallback
שיטות:
createBeamUris
invokeBeam
isNdefPushEnabled
setBeamPushUris
setBeamPushUrisCallback
setNdefPushMessage
setNdefPushMessageCallback
setOnNdefPushCompleteCallback
createNdefMessageCallback
onNdefPushCompleteCallback
כדי להשתמש ב-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 נוספה תמיכה בקצב רענון של ביצועים. התכונה הזו מושבתת כברירת מחדל.
אינטראקציה
Automotive
אודיו לרכב
ב-Android 10, ההקשר של Audio HAL ממופה ל-AudioAttributes.usage
כדי לזהות צלילים. ב-Android יש תמיכה במכונה אחת של AUDIO_DEVICE_OUT_BUS
לכל הקשר. IAudioControl
HAL מספק תוספים ספציפיים לרכב ל-Audio HAL.
ניווט באמצעות תנועות
ב-Android 10 יש אפשרות לניווט במערכת באמצעות מחוות בלבד. מידע נוסף על הכנת אפליקציות לשימוש בתכונה הזו זמין בדף ניווט באמצעות תנועות באתר למפתחי Android.
רשתות נוירונים
ב-Android 10 יש עדכונים ל-Neural Networks API ול-Neural Networks HAL. סיכום של השינויים זמין במאמר רשתות נוירונליות.
מסמכים חדשים ומעודכנים בנושא רשתות נוירונים ל-Android 10:
- סקירה כללית
- AHardwareBuffer
- ביצועים רצופיים ואשכולות של הודעות מהירות
- שמירה במטמון של הידור
- גילוי והקצאה של מכשירים
- תוספי ספקים
חיישנים
Sensors HAL 2.0
Sensors HAL 2.0 תומך בשימוש בתורנויות הודעות מהירות (FMQ) כדי לשלוח אירועי חיישנים מה-HAL למסגרת החיישנים של Android.
החיישנים כבויים
ב-Android 10 יש הגדרה למפתחים שמאפשרת להשבית את כל החיישנים במכשיר. התכונה הזו עוזרת למפתחים לבדוק את הפונקציונליות של האפליקציה שלהם במצבים שבהם החיישנים האלה לא זמינים, ומאפשרת למשתמשים לשלוט בחיישנים במכשיר שלהם.
אם במכשירים שלכם מופעלת הטמעת ברירת המחדל של SensorService
, CameraService
ו-AudioPolicyService
, לא נדרשת התאמה אישית נוספת של העיצוב לדוגמה. אם יש לכם חיישנים אחרים, תוכלו לקרוא את המאמר התאמה אישית כדי לקבל פרטים נוספים על תמיכה בתכונה הזו.
מדיה
רכיבי מדיה שניתן לעדכן
ב-Android 10 יש רכיבי מדיה שניתן לעדכן שמאפשרים לעדכן רכיבי מערכת מודולריים שקשורים למדיה דרך התשתית של חנות Google Play או דרך מנגנון OTA (Over-the-Air) שמסופק על ידי שותף.
Media DRM
ב-Android 10 יש שיפורים בתועלת ובנוחות השימוש של ממשקי ה-API של MediaDrm
Java ו-NDK.
פענוח
ב-Android 10 יש תמיכה בפענוח SW של AV1.
הרשאות
ב-Android 10 יש הגדרות נוספות של הרשאות לשקיפות ולפרטיות המשתמשים.
פרטי הספק של אנשי הקשר והשיוך שלהם
החל מגרסה 10 של Android, הגישה לנתונים שקשורים לקשרים בין אנשי קשר, שמנוהלים על ידי רכיב ספק אנשי הקשר, שונה מזו שבגרסה 9 ומטה. השינויים האלה לגבי נגישות הנתונים משפרים את פרטיות המשתמשים בכל מכשירי Android 10 שמשתמשים ברכיב של ספק אנשי הקשר. מסד הנתונים הבסיסי כבר לא מכיל נתונים של קשרי אנשי קשר. לכן, אפליקציות לא יכולות לכתוב או לקרוא ממנו.
השינויים ב-Android 10 צפויים להשפיע במידה רבה על ממשקי ה-API. אם האפליקציות שלכם מסתמכות על התכונות שהוצאו משימוש שמפורטות בקטע 'ספק אנשי הקשר ומידע על תחומי העניין', מומלץ לעדכן את האפליקציות כדי לפצות על השינויים. בנוסף, אם אתם משתמשים בגרסה מורחבת של ספק אנשי הקשר, עליכם לעדכן את ספק אנשי הקשר.
הרשאות מיקום בשלוש רמות
הרשאות מיקום בשלוש רמות ב-Android 10 מעניקות למשתמשים יותר שליטה על האופן שבו אפליקציות ניגשות למיקום המכשיר שלהם.
תזכורת לגבי גישה למיקום ברקע
ב-Android 10 יש תזכורת לגבי גישה למיקום ברקע, שמגבירה את השקיפות לגבי רמת הגישה של אפליקציות למיקום של המכשיר ומאפשרת למשתמשים לשמור על שליטה בגישה הזו.
הגבלת מיקומים זמניים
כשאפליקציה מבקשת את המיקום של המכשיר, היא יכולה להמתין לתשובה לבקשה או לקבל עדכון מיקום באופן אופורטוניסטי באמצעות מאזינים פעילים למיקום. החל מ-Android 10, כדי לקבל עדכוני מיקום אופורטוניסטיים, המפתחים צריכים לציין שהם זקוקים לעדכוני מיקום פסיביים מהקלאס FusedLocationProviderClient
.
הפעלת אפליקציות ברקע
ב-Android 10, אפליקציות ללא הרשאות ללא חלון גלוי לא יכולות להפעיל את עצמן באופן אוטומטי לחזית. השינוי הזה גורם לדיכוי של מודעות קופצות ושל השתלטויות זדוניות על מודעות. לא נדרשת כל פעולה כדי להפעיל את התכונה הזו.
הרצה בארגז חול של אפליקציות
ב-Android 10, לאפליקציות יש תצוגה גולמית מוגבלת של מערכת הקבצים, ללא גישה ישירה לנתיבים כמו /sdcard/DCIM
. עם זאת, לאפליקציות נשארת גישה מלאה לנתיב הגולמי של החבילה, כפי שהוא מוחזר על ידי כל השיטות הרלוונטיות, כמו Context.getExternalFilesDir()
.
לאפליקציות עדיין יש גישה מלאה לנתיב הגולמי שלהן, שספציפי לחבילה.
מומלץ להשתמש בהנחיות לשיתוף קבצים בסביבת החול של האפליקציה כדי לספק רמת פירוט מתאימה לשיתוף הנתונים.
הגבלת הגישה של אפליקציות ללוח
בגרסה 10 של Android, הגישה ללוח העריכה השתנתה כך שלא ניתן לצפות בתוכן הלוח על ידי קריאה ל-ClipboardManager.getPrimaryClip
או על ידי הוספת מאזין onPrimaryClipChangedListener
לקבלת התראה כשהלוח משתנה. כך אפשר לשפר את הפרטיות של המשתמשים ולמנוע מאפליקציות שמבצעות שיווק זדוני לשנות את הלוח.
ב-Android 10, הרשאת הקריאה מותרת רק לאפליקציה הנוכחית שבה ממוקד הקלט, או למקלדת הנוכחית. קריאת המאזין 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 ופרופילים של משימות, שבהם מפתחים יכולים להשתמש כדי לתאר קבוצה של הגבלות שחלות על חוט או על תהליך.
Low Memory Killer Daemon (lmkd)
ב-Android 10 יש תמיכה במצב lmkd
חדש שמשתמש במעקב אחרי נתוני PSI (Kernel Pressure Stall Information) לזיהוי לחץ בזיכרון.
כוח
ניהול צריכת החשמל בפלטפורמה
ב-Android 10 אפשר להפעיל את מצב Doze במכשירים שפועלים כל הזמן, וגם במכשירים שמופעל בהם סוללה.
חיסכון בסוללה לפי תרחיש
ב-Android 10 נוספה אפשרות חדשה ללוח הזמנים של מצב החיסכון בסוללה שנקראת על סמך תרחיש. תרחיש חיסכון בסוללה מאפשר לאפליקציה שנבחרה על ידי יצרן הציוד המקורי לספק אותות למערכת כדי לתזמן חיסכון בסוללה בצורה חכמה יותר. האפשרות הזו דורשת הגדרה, והיא אופציונלית להטמעה.
HAL של נתוני צריכת החשמל
ב-Android 10, IPowerStats.hal
מחליף את ממשקי ה-API לאיסוף נתוני הסטטיסטיקה של צריכת החשמל ב-IPower.hal
.
ממשקי ה-API עדיין נתמכים ב-HAL של צריכת החשמל, אבל בעתיד הם יועברו באופן בלעדי ל-HAL של נתוני צריכת החשמל.
ה-HAL של נתוני צריכת החשמל כולל ממשקי API חדשים שתומכים באיסוף נתונים ממדידת צריכת החשמל במכשיר, במכשירים נתמכים. גם ממשקי ה-API הקיימים לאיסוף נתוני צריכת החשמל עודכנו כדי לשפר את הגמישות. ממשקי ה-API של הטיפים לחיסכון בחשמל נשארים ב-HAL של החשמל ולא משתנים.
מיטיגציה תרמית
המסגרת התרמית ב-Android 10 יוצרת הפשטה של ממשקי המכשיר לחיישן הטמפרטורה של מערכת המשנה התרמית, כולל מעבד, מעבד גרפי, סוללה, עור ומכשיר קירור. במסגרת הזו מוצג ממשק סקירה כדי לשלוח שאילתה לגבי הסטטוס התרמי כדי להתחיל בוויסות, וממשק קריאה חוזרת כדי לשלוח הודעה למשתמש כשחורגים מסף.
ב-Android 10 אפשר להשתמש בסוגי הנתונים החדשים דרך הממשק IThermalService
באמצעות שלוש השיטות החדשות הבאות:
getCurrentThermalStatus()
מחזירה את הסטטוס התרמי הנוכחי של המכשיר כמספר שלם, אלא אם המכשיר עובר צמצום עוצמה.addThermalStatusListener()
הוספת מאזין.removeThermalStatusListener()
מסירה מאזין שנוסף בעבר.
אפליקציות מוסיפות ומסירות מאזינים ומקבלות גישה למצב הטמפרטורה בכיתה PowerManager
. רק שירות מערכת מהימן, כמו Android API או API של יצרן המכשיר, יכול לגשת למידע על אירועים סיבתיים משויכים. יצרני המכשירים או יצרני המעבדים המשולבים חייבים להטמיע את thermal HAL 2.0
כדי להפעיל את הפונקציונליות המלאה של המסגרת התרמית החדשה.
דוגמה להטמעה של הפחתת חום מופיעה במאמר הטמעת הפניה.
עדכונים
פורמט קובץ APEX
Android Pony EXpress (APEX) הוא פורמט חדש של מאגר תגים שמשמשים בתהליך ההתקנה של רכיבי מערכת מודולריים.
מחיצות דינמיות
מחיצות דינמיות מאפשרות ליצור מחיצות, לשנות את הגודל שלהן או למחוק אותן במהלך עדכונים OTA ב-Android. יצרני המכשירים לא צריכים לדאוג לגבי הגדלים הנפרדים של המחיצות, כמו 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 של Android שמבוססת על make.
כדי להמיר קובץ הפעלה סטטי קיים של מצב שחזור לקובץ הפעלה דינמי, מסירים את LOCAL_FORCE_STATIC_EXECUTABLE := true
בקובץ Android.mk
או את static_executable: true
(בקובץ Android.bp
).
נקודת ביקורת של נתוני משתמשים (UDC)
ב-Android 10 נוספה התכונה User Data Checkpoint (UDC), שמאפשרת ל-Android לחזור למצב הקודם אם עדכון Android אופליין (OTA) נכשל.