تتيح ميزة "الملفّ الموقَّع" تضمين إعدادات قيود واجهة غير حزمة تطوير البرامج (SDK) في حِزم APK. يتيح ذلك إزالة واجهات معيّنة غير متوفرة في حزمة SDK من القائمة السوداء، لسماح AndroidX باستخدامها بأمان. يتيح ذلك لفريق AndroidX إضافة دعم للميزات الجديدة في إصدارات Android التي سبق أن تم إصدارها. وهي متوفرة على الإصدار 10 من نظام التشغيل Android والإصدارات الأحدث.
يضمن توفير ميزة "الإعداد الموقَّع" بشكل صحيح أن تعمل مكتبات 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
...