התכונה Signed Config מאפשרת להטמיע הגדרה של הגבלות על ממשק שאינו SDK ב-APK. כך אפשר להסיר ממשקים ספציפיים שאינם ב-SDK מהרשימה השחורה, כדי לאפשר ל-AndroidX להשתמש בהם בצורה בטוחה. כך צוות AndroidX יכול להוסיף תמיכה בתכונות חדשות בגרסאות Android שכבר הושקו. היא נתמכת ב-Android מגרסה 10 ואילך.
תמיכה נכונה ב-Signed Config מבטיחה שספריות AndroidX יפעלו בצורה תקינה במכשירים בעתיד.
אי אפשר להתאים אישית את התכונה הזו. יש תמיכה מלאה ב-AOSP, ולא נדרש מאמץ מצד יצרן הציוד המקורי כדי לתמוך בו.
דוגמאות ומקור
ההטמעה של התכונה נמצאת בשרת המערכת בכתובת frameworks/base/services/core/java/com/android/server/signedconfig
. בבדיקת CTS CtsSignedConfigHostTestCases
יש דוגמה לשימוש ודוגמה להגדרה ב-cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml
.
הטמעה
לא נדרש מאמץ כדי לתמוך בתכונה, ואין דרישות חומרה ספציפיות.
התכונה משתמשת בשני מפתחות של מטא-נתונים של אפליקציות כדי להטמיע הגדרה וחתימה בתוך קובצי APK. המפתחות האלה הם android.settings.global
ו-android.settings.global.signature
. אם בעתיד יהיה צורך להסיר ממשק שאינו SDK מהרשימה השחורה של ספריות AndroidX, הצוות של Android יפרסם את הערכים של המפתחות האלה, או שהם יפורסמו כחלק מ-AndroidX.
מפתחות המטא-נתונים של ה-APK android.settings.global
ו-android.settings.global.signature
מכילים נתונים בקידוד base-64. הערך של המפתח android.settings.global
הוא ערכי הגדרה מקודדים ב-JSON שיוחלו על ההגדרות הגלובליות ב-SettingsProvider
. הערך של
android.settings.global.signature
הוא חתימת ECDSA-p256 של נתוני ה-JSON.
החתימה משמשת לאימות המקור של נתוני ההגדרה.
התכונה לא גלויה למשתמשים.
התאמה אישית
התכונה הזו לא מיועדת להתאמה אישית. יצרני ציוד מקורי (OEM) לא מומלץ לשנות את התכונה, כולל החלפת המקשים. כל שינוי בו עלול לגרום ל-AndroidX לא לפעול כראוי במכשירים מושפעים בעתיד.
אימות
בדיקת ה-CTS CtsSignedConfigHostTestCases
מאמתת את ההטמעה של התכונה.
אפשר גם לבדוק את התכונה באופן ידני על ידי התקנת קובץ APK מתאים ובדיקת הפלט של adb logcat
:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...