יישם תצורה חתומה

התכונה 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
...