স্বাক্ষরিত কনফিগারেশন ফিচারটি APK-তে নন-SDK ইন্টারফেস বিধিনিষেধের কনফিগারেশন এম্বেড করার অনুমতি দেয়। এর ফলে, AndroidX-কে নিরাপদে ব্যবহার করার অনুমতি দিতে, ব্ল্যাকলিস্ট থেকে নির্দিষ্ট SDK নয় এমন ইন্টারফেস সরিয়ে দেওয়া যায়। এর ফলে AndroidX টিম আগে রিলিজ করা Android ভার্সনে নতুন ফিচারের জন্য সহায়তা যোগ করতে পারে। এটি Android 10 ও তার পরবর্তী যেকোনও ভার্সনে কাজ করে।
সঠিকভাবে সাইন করা কনফিগারেশন ব্যবহার করলে, ভবিষ্যতে ডিভাইসে 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 দুটিতেই base-64 এনকোড করা ডেটা থাকে। android.settings.global কী-এর ভ্যালু
হল SettingsProvider-এর গ্লোবাল সেটিংসে
প্রয়োগ করার জন্য JSON-এনকোড করা কনফিগারেশন ভ্যালু। android.settings.global.signature-এর
ভ্যালু হল JSON ডেটার ECDSA-p256 স্বাক্ষর।
কনফিগারেশন ডেটার উৎস যাচাই করতে স্বাক্ষর ব্যবহার করা হয়।
এই ফিচার ব্যবহারকারীরা দেখতে পাবেন না।
কাস্টমাইজেশন
এই ফিচার কাস্টমাইজেশনের জন্য নয়। OEM-দেরকে কী পরিবর্তন করা সহ ফিচার পরিবর্তন করতে নিরুৎসাহিত করা হয়। এতে কোনও পরিবর্তন করা হলে, ভবিষ্যতে প্রভাবিত ডিভাইসগুলিতে AndroidX সঠিকভাবে কাজ নাও করতে পারে।
যাচাইকরণ
CTS টেস্ট CtsSignedConfigHostTestCases ফিচার প্রয়োগ যাচাই করে।
এছাড়াও, উপযুক্ত APK ইনস্টল করে এবং
adb logcat আউটপুট পরীক্ষা করে আপনি ম্যানুয়ালি ফিচারটি পরীক্ষা করতে পারবেন:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...