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

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