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

تسمح ميزة 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.

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