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

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