हस्ताक्षरित कॉन्फ़िगरेशन लागू करें

हस्ताक्षरित कॉन्फ़िग सुविधा एपीके में गैर-एसडीके इंटरफ़ेस प्रतिबंधों के कॉन्फ़िगरेशन को एम्बेड करने की अनुमति देती है। यह विशिष्ट गैर-एसडीके इंटरफेस को ब्लैकलिस्ट से हटाने की अनुमति देता है, ताकि AndroidX उन्हें सुरक्षित रूप से उपयोग कर सके। यह AndroidX टीम को पहले से जारी किए गए Android संस्करणों पर नई सुविधाओं के लिए समर्थन जोड़ने की अनुमति देता है। यह एंड्रॉइड 10 और उसके बाद के संस्करण में समर्थित है।

साइन्ड कॉन्फिग का उचित समर्थन यह सुनिश्चित करता है कि एंड्रॉइडएक्स लाइब्रेरी भविष्य में उपकरणों पर सही ढंग से काम करेगी।

इस सुविधा का कोई अनुकूलन संभव नहीं है. यह AOSP में पूरी तरह से समर्थित है और इसे समर्थन देने के लिए किसी OEM प्रयास की आवश्यकता नहीं है।

उदाहरण और स्रोत

फीचर कार्यान्वयन सिस्टम सर्वर में frameworks/base/services/core/java/com/android/server/signedconfig पर है। CTS परीक्षण CtsSignedConfigHostTestCases में उदाहरण उपयोग और cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml में एक उदाहरण कॉन्फ़िगरेशन शामिल है।

कार्यान्वयन

सुविधा का समर्थन करने के लिए किसी प्रयास की आवश्यकता नहीं है, और कोई विशिष्ट हार्डवेयर आवश्यकताएँ नहीं हैं।

यह सुविधा एपीके के अंदर कॉन्फ़िगरेशन और एक हस्ताक्षर को एम्बेड करने के लिए दो एप्लिकेशन मेटाडेटा कुंजियों का उपयोग करती है। वे कुंजियाँ android.settings.global और android.settings.global.signature हैं। यदि भविष्य में AndroidX लाइब्रेरीज़ को गैर-SDK इंटरफ़ेस को ब्लैकलिस्ट से हटाने की आवश्यकता होती है, तो इन कुंजियों के मान Android टीम और/या AndroidX के भाग के रूप में प्रकाशित किए जाएंगे।

एपीके मेटाडेटा कुंजी android.settings.global और android.settings.global.signature दोनों में बेस-64 एन्कोडेड डेटा होता है। कुंजी android.settings.global का मान JSON-एन्कोडेड कॉन्फ़िगरेशन मान है जिसे SettingsProvider में वैश्विक सेटिंग्स पर लागू किया जाना है। android.settings.global.signature का मान JSON डेटा का ECDSA-p256 हस्ताक्षर है। हस्ताक्षर का उपयोग कॉन्फ़िगरेशन डेटा की उत्पत्ति को सत्यापित करने के लिए किया जाता है।

यह सुविधा उपयोगकर्ता को दिखाई नहीं दे रही है.

अनुकूलन

यह सुविधा अनुकूलन के लिए अभिप्रेत नहीं है. ओईएम को चाबियाँ बदलने सहित सुविधा को संशोधित करने से हतोत्साहित किया जाता है। इसमें किसी भी बदलाव के कारण भविष्य में AndroidX प्रभावित उपकरणों पर ठीक से काम नहीं कर पाएगा।

मान्यकरण

CTS परीक्षण CtsSignedConfigHostTestCases सुविधा कार्यान्वयन की पुष्टि करता है।

आप उपयुक्त एपीके इंस्टॉल करके और adb logcat आउटपुट का निरीक्षण करके सुविधा का मैन्युअल रूप से परीक्षण भी कर सकते हैं:

$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...