התכונה Signed Config מאפשרת הטמעת תצורה של הגבלות ממשק שאינן SDK ב-APKs. זה מאפשר הסרת ממשקים ספציפיים שאינם SDK מהרשימה השחורה, כדי לאפשר ל-AndroidX להשתמש בהם בבטחה. זה מאפשר לצוות AndroidX להוסיף תמיכה בתכונות חדשות בגרסאות אנדרואיד שכבר שוחררו. זה נתמך באנדרואיד 10 ואילך.
תמיכה נכונה של Signed Config מבטיחה שספריות AndroidX יפעלו כהלכה במכשירים בעתיד.
לא ניתן לבצע התאמה אישית של תכונה זו. זה נתמך באופן מלא ב-AOSP ולא דורש מאמץ OEM כדי לתמוך בו.
דוגמאות ומקור
הטמעת התכונה היא בשרת המערכת ב- 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
. אם או כאשר ספריות AndroidX ידרשו בעתיד להסיר ממשקים שאינם SDK מהרשימה השחורה, ערכים עבור מפתחות אלו יפורסמו על ידי צוות Android ו/או כחלק מ-AndroidX.
מפתחות המטא נתונים של APK android.settings.global
ו- android.settings.global.signature
מכילים שניהם נתונים מקודדים בבסיס 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
...