साइन किए गए कॉन्फ़िगरेशन की सुविधा, बिना SDK टूल वाले इंटरफ़ेस की पाबंदियों के कॉन्फ़िगरेशन को एम्बेड करने की अनुमति देती है APK में उपलब्ध है. इससे, ब्लैकलिस्ट से ऐसे खास इंटरफ़ेस हटाए जा सकते हैं जो SDK टूल में उपलब्ध नहीं हैं. इससे AndroidX को उनका सुरक्षित तरीके से इस्तेमाल करने की अनुमति मिलती है. इससे AndroidX टीम, पहले से रिलीज़ हो चुके Android वर्शन में नई सुविधाओं के लिए सहायता जोड़ सकती है. यह सुविधा, Android 10 और इसके बाद के वर्शन पर काम करती है.
साइन किए गए कॉन्फ़िगरेशन के सही तरीके से काम करने से यह पक्का होता है कि AndroidX लाइब्रेरी ये काम करने के लिए बनाए गए हैं.
इस सुविधा को पसंद के मुताबिक नहीं बनाया जा सकता. यह AOSP में पूरी तरह से काम करता है और इसे काम करने के लिए, OEM को कोई भी काम नहीं करना पड़ता.
उदाहरण और सोर्स
यह सुविधा, frameworks/base/services/core/java/com/android/server/signedconfig
पर सिस्टम सर्वर में लागू की गई है. सीटीएस जांच 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
के लिए, JSON-एन्कोडेड कॉन्फ़िगरेशन वैल्यू पर लागू की जानी है
SettingsProvider
में ग्लोबल सेटिंग. इसके लिए मान
android.settings.global.signature
, JSON डेटा का ECDSA-p256 हस्ताक्षर है.
सिग्नेचर का इस्तेमाल, कॉन्फ़िगरेशन डेटा के सोर्स की पुष्टि करने के लिए किया जाता है.
यह सुविधा, उपयोगकर्ता को नहीं दिखती.
पसंद के मुताबिक बनाएं
इस सुविधा को पसंद के मुताबिक बनाने के लिए नहीं बनाया गया है. OEM को इससे मना किया जाता है सुविधा में बदलाव करने के साथ-साथ, कुंजियों को बदलना. इसमें हुए किसी भी बदलाव को इस समस्या की वजह से AndroidX उन डिवाइसों पर ठीक से काम नहीं करेगा जिन पर असर पड़ा है आने वाले समय में इस्तेमाल करें.
पुष्टि करें
सीटीएस टेस्ट CtsSignedConfigHostTestCases
, सुविधा के लागू होने की पुष्टि करता है.
इस सुविधा की जांच मैन्युअल तरीके से भी की जा सकती है. इसके लिए, सही APK इंस्टॉल करें और adb logcat
आउटपुट की जांच करें:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...