تتيح ميزة "الإعداد الموقَّع" إمكانية تضمين قيود واجهة غير متوفرة في حزمة 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
يحتويان على بيانات بترميز base-64. القيمة
للمفتاح android.settings.global
هي قيم الضبط بترميز JSON التي سيتم تطبيقها على
الإعدادات العامة في SettingsProvider
. قيمة
android.settings.global.signature
هي توقيع ECDSA-p256 لبيانات JSON.
ويُستخدَم التوقيع للتحقّق من مصدر بيانات الضبط.
لا تظهر الميزة للمستخدم.
التخصيص
هذه الميزة غير مخصَّصة للتخصيص. لا يُنصح المصنّعين الأصليين للأجهزة بتعديل الميزة، بما في ذلك استبدال المفاتيح. ومن المحتمل أن تؤدي أي تغييرات تطرأ عليه إلى عدم عمل AndroidX بشكل صحيح على الأجهزة المتأثرة في المستقبل.
التحقُّق
يُجري اختبار CTS CtsSignedConfigHostTestCases
عملية التحقّق من تنفيذ الميزة.
يمكنك أيضًا اختبار الميزة يدويًا من خلال تثبيت حزمة APK مناسبة وexaminedفحص adb logcat
الناتج:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...