সাইনড কনফিগ ফিচারটি এপিকে-তে নন-এসডিকে ইন্টারফেস সীমাবদ্ধতার কনফিগারেশন এম্বেড করার সুযোগ দেয়। এর মাধ্যমে ব্ল্যাকলিস্ট থেকে নির্দিষ্ট নন-এসডিকে ইন্টারফেসগুলো সরিয়ে ফেলা যায়, যাতে AndroidX নিরাপদে সেগুলো ব্যবহার করতে পারে। এটি AndroidX টিমকে ইতিমধ্যে প্রকাশিত অ্যান্ড্রয়েড সংস্করণগুলিতে নতুন ফিচারের জন্য সাপোর্ট যোগ করার সুযোগ দেয়। এটি অ্যান্ড্রয়েড ১০ এবং এর পরবর্তী সংস্করণগুলিতে সমর্থিত।
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 ইন্টারফেসগুলোকে ব্ল্যাকলিস্ট থেকে সরানোর প্রয়োজন হয়, তখন এই কীগুলোর মান অ্যান্ড্রয়েড টিম দ্বারা এবং/অথবা AndroidX-এর অংশ হিসেবে প্রকাশ করা হবে।
APK মেটাডেটা কী android.settings.global এবং android.settings.global.signature উভয়টিতেই বেস-৬৪ এনকোডেড ডেটা থাকে। android.settings.global কী-এর ভ্যালুটি হলো JSON-এনকোডেড কনফিগারেশন ভ্যালু, যা SettingsProvider এর গ্লোবাল সেটিংসে প্রয়োগ করা হয়। 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
...