הטמעת Signed Config

התכונה 'הגדרת תצורה חתומה' מאפשרת הטמעה של תצורת הטמעה של הגבלות ממשק ללא SDK ב-APKs. כך ניתן להסיר ממשקים ספציפיים שאינם של 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. אם וכאשר ספריות AndroidX מחייבות ממשקים שאינם SDK שיוסרו בעתיד מהרשימה השחורה, ערכים של המפתחות האלה יפורסמו על ידי צוות Android ו/או כחלק מ-AndroidX.

מפתחות המטא-נתונים של קובץ ה-APK, android.settings.global ו-android.settings.global.signature, מכילים נתונים בקידוד base64. הערך למפתח 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
...