בדף הזה מופיע סיכום של התכונות העיקריות בגרסת 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, הוחלף ה-thread ב-libsuspend
שאחראי על הפעלת השהיית המערכת בשירות ה-HIDL של SystemSuspend. ההטמעה הזו מציעה פונקציונליות שוות ערך לגרסאות קודמות, תוך ניצול היתרונות של תשתית 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 במערכת הבנייה
תוכנת אתחול
Ramdisk
ב-Android 10, מערכת קבצי הבסיס כבר לא נכללת ב-ramdisk.img
, אלא מוזגה לתוך system.img
.
בניית מחיצות ODM
Android 10 כולל תמיכה בבניית מחיצות odm
באמצעות מערכת הבנייה של 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. אפשר לסנכרן את קוד המקור של הבדיקות הכלולות עם התג 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 עם ממשקי USB MIDI, ממשקי Bluetooth MIDI ונתיב של מכשיר MIDI וירטואלי.
פירוש של בדיקת CTS
ב-Android 10, מנגנון פירוש התוצאות של CTS עודכן.
חבילת בדיקות לספקים (VTS)
בדיקת VTS באמצעות ramdisk לניפוי באגים
ב-Android 10, תמונת המערכת הגנרית (GSI) שמשמשת להפעלת בדיקות התאימות CTS-on-GSI/VTS משתנה מסוג userdebug לסוג user build, כי GSI חתומה על גרסת ה-release. עם זאת, הפקודה adb root
שמעניקה למארח הרשאות root למכשיר Android שנבדק לא זמינה ב-user build. זו בעיה כי VTS דורש adb root
כדי לפעול.
התכונה debug ramdisk נוספה כדי לאפשר את adb root
אם המכשיר לא נעול. כך אפשר לפשט את תהליך הבדיקה על ידי שימוש חוזר באותו מבנה משתמש system.img
(GSI או system.img
של יצרן ציוד מקורי).
אימות של 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 מופעלת בקודקים הבאים:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
libaac
libxaac
ניקוי של גלישת מספר שלם
ב-Android 10 מופעלת סניטציה של הצפת מספרים שלמים (IntSan) בקוֹדֶקים של תוכנה. מוודאים שביצועי ההפעלה מקובלים עבור כל רכיבי ה-codec שלא נתמכים בחומרה של המכשיר. התכונה IntSan מופעלת ב-Codecs הבאים:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
זיכרון להרצה בלבד
כברירת מחדל, קטעי קוד הפעלה של קבצים בינאריים של מערכת 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.
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
, קוראים ל-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 וגרסת המכשיר של Camera 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. אפשר לחלק את המספרים לקטגוריות לפי שירותי חירום, כמו משטרה, מכבי אש ואמבולנס.
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.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 זמין במפרט EGL 1.5 של Khronos.
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 Developer.
רשתות נוירונים
ב-Android 10 מוצגים עדכונים ל-Neural Networks API ול-Neural Networks HAL. סיכום השינויים זמין במאמר בנושא רשתות עצביות.
מסמכים חדשים ומעודכנים בנושא רשתות נוירונים ל-Android 10:
- סקירה כללית
- AHardwareBuffer
- ביצועים מהירים של תורים להודעות
- שמירה במטמון של קומפילציה
- גילוי מכשירים והקצאתם
- Vendor Extensions
חיישנים
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 ופרופילים של משימות, שמפתחים יכולים להשתמש בהם כדי לתאר קבוצה של הגבלות שיוחלו על שרשור או על תהליך.
Low Memory Killer Daemon (lmkd)
Android 10 תומך במצב lmkd
חדש שמשתמש בנתוני PSI (לחץ על הזיכרון) של ליבת המערכת כדי לזהות לחץ על הזיכרון.
כוח
ניהול צריכת החשמל של הפלטפורמה
ב-Android 10, אפשר להפעיל את מצב Doze במכשירים שתמיד פועלים וגם במכשירים שמופעלים באמצעות סוללה.
חיסכון בסוללה לפי תרחישים
ב-Android 10 הוספנו אפשרות חדשה ללוח הזמנים של מצב חיסכון בסוללה שנקראת על סמך תרחיש. חיסכון בסוללה לפי שגרה מאפשר לאפליקציה שנבחרה על ידי יצרן הציוד המקורי לספק אותות למערכת כדי לתזמן את החיסכון בסוללה בצורה חכמה יותר. האפשרות הזו דורשת הגדרה, והיא אופציונלית.
שכבת הפשטת חומרה (HAL) של נתוני צריכת חשמל
ב-Android מגרסה 10,
IPowerStats.hal
הוחלפו ממשקי ה-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
. פרטים נוספים זמינים בקטע 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) נכשל.