স্বাক্ষরিত কনফিগার বৈশিষ্ট্যটি APK-এ নন-SDK ইন্টারফেস সীমাবদ্ধতার কনফিগারেশন এম্বেড করার অনুমতি দেয়। এটি ব্ল্যাকলিস্ট থেকে নির্দিষ্ট নন-SDK ইন্টারফেসগুলিকে সরিয়ে দেওয়ার অনুমতি দেয়, যাতে AndroidX নিরাপদে সেগুলি ব্যবহার করতে পারে৷ এটি 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
উভয়েই বেস-64 এনকোড করা ডেটা থাকে। 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
...