התכונה 'הגדרת תצורה חתומה' מאפשרת הטמעה של תצורת הטמעה של הגבלות ממשק ללא SDK ב-APKs. כך ניתן להסיר ממשקים ספציפיים שאינם של SDK מהרשימה השחורה, לאפשר ל-AndroidX להשתמש בהם בבטחה. כך צוות AndroidX יכול להוסיף תמיכה עבור תכונות חדשות בגרסאות Android שכבר הופצו. זה כן נתמכים ב-Android 10 ואילך.
תמיכה מתאימה ב-Signature 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
. אם וכאשר ספריות AndroidX מחייבות
ממשקים שאינם SDK שיוסרו בעתיד מהרשימה השחורה, ערכים של
המפתחות האלה יפורסמו על ידי צוות Android ו/או כחלק מ-AndroidX.
מפתחות המטא-נתונים של ה-APK android.settings.global
ו-
שתיהן android.settings.global.signature
מכילות נתונים בקידוד Base-64. הערך
למפתח android.settings.global
יש ערכי config בקידוד JSON שעליהם יוחלו
את ההגדרות הגלובליות בSettingsProvider
. הערך של
android.settings.global.signature
היא חתימת ECDSA-p256 של נתוני ה-JSON.
החתימה משמשת לאימות המקור של נתוני ההגדרות האישיות.
התכונה לא גלויה למשתמש.
התאמה אישית
התכונה לא מיועדת להתאמה אישית. יצרני ציוד מקורי נמנעים מלהציג שינוי התכונה, כולל החלפת המפתחות. כל שינוי שמבצעים בו לגרום ל-AndroidX לא לפעול כראוי במכשירים המושפעים העתידי.
אימות
בדיקת ה-CTS CtsSignedConfigHostTestCases
מאמתת את הטמעת התכונה.
ניתן גם לבדוק את התכונה באופן ידני על ידי התקנת APK מתאים
בדיקה של הפלט adb logcat
:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...