הטמעת הגדרה חתומה

התכונה 'הגדרת תצורה חתומה' מאפשרת הטמעה של תצורת הטמעה של הגבלות ממשק ללא 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
...