התכונה 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. אם בעתיד יהיה צורך להסיר ממשחורת הרשימה ממשקי non-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
...