تنفيذ التكوين الموقع

تسمح ميزة Signed Config بتضمين تكوين قيود واجهة بخلاف SDK في ملفات APK. يسمح هذا بإزالة واجهات محددة غير SDK من القائمة السوداء ، للسماح لـ AndroidX باستخدامها بأمان. يتيح ذلك لفريق AndroidX إضافة دعم للميزات الجديدة على إصدارات Android التي تم إصدارها بالفعل. إنه مدعوم في Android 10 والإصدارات الأحدث.

يضمن دعم Signed Config بشكل صحيح أن مكتبات AndroidX ستعمل بشكل صحيح على الأجهزة في المستقبل.

لا يمكن تخصيص هذه الميزة. إنه مدعوم بالكامل في AOSP ولا يتطلب أي جهد من OEM لدعمه.

الأمثلة والمصدر

يتم تنفيذ الميزة في خادم النظام في 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.

تحتوي مفاتيح البيانات الوصفية android.settings.global APK android.settings.global و android.settings.global.signature كلاهما على بيانات مشفرة بالأساس 64. قيمة المفتاح android.settings.global هي قيم التكوين المشفرة 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
...