הטמעת Signed Config

התכונה Signed Config מאפשרת להטמיע הגדרות של הגבלות על ממשקים שאינם SDK בחבילות APK. כך אפשר להסיר ממשקים ספציפיים שאינם ב-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 הוא ערכי תצורה בקידוד 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
...