सर्विस बंडल को APEX पैकेज के तौर पर अपडेट किया जा सकता है. इसके लिए, पूरे सिस्टम को अपडेट करने की ज़रूरत नहीं होती. एसडीवी में, अपडेट करने की इस प्रोसेस को एसडीवी अपडेट मैनेजर मैनेज करता है. अपडेट को लागू करने के लिए, आपको डिवाइस रीबूट करना होगा.
सर्विस बंडल के अपडेट के लिए, दो तरह के APEX इस्तेमाल किए जा सकते हैं:
पहले से इंस्टॉल किया गया APEX: APEX पैकेज का कोई पुराना वर्शन, सिर्फ़ पढ़ने के लिए बने किसी पार्टीशन (
/system,/system_ext,/product,/vendor, और/odm) पर पहले से मौजूद है.नया APEX: सिर्फ़ पढ़ने के लिए बने किसी भी पार्टीशन पर, `apex_manifest.json` में बताए गए नाम वाला कोई APEX पैकेज मौजूद नहीं है.
apex_manifest.json
पहले से इंस्टॉल किया गया APEX
सर्विस बंडल को अपडेट करने के लिए, यह सबसे आम और सुझाई गई प्रोसेस है. इस अपडेट को मान्य बनाने के लिए, नए APEX पैकेज को इन ज़रूरी शर्तों को पूरा करना होगा:
apex_manifest.jsonमें, पहले से इंस्टॉल किए गए APEX के जैसा ही पैकेज नाम होना चाहिए.apex_manifest.jsonमें, पहले से इंस्टॉल किए गए APEX से ज़्यादा वर्शन कोड होना चाहिए.APEX पर, पहले से इंस्टॉल किए गए APEX के जैसे ही पासकोड पेयर से साइन किया जाना चाहिए.
नया APEX
पहले से इंस्टॉल किए गए APEX का इस्तेमाल करना, सुरक्षा के लिहाज़ से सबसे सही तरीका है. हालांकि, नए APEX का इस्तेमाल भी किया जा सकता है. इस तरीके का इस्तेमाल करने पर, पार्टनर को सुरक्षा से जुड़े सभी प्रोटोकॉल बनाए रखने की ज़िम्मेदारी लेनी होगी. इन ज़िम्मेदारियों में ये शामिल हैं:
इन APEX के लिए इस्तेमाल किए जाने वाले साइनिंग पासकोड को सुरक्षित तरीके से मैनेज करना.
नुकसान पहुंचाने वाले पैकेज की पहचान करने और उन्हें ब्लॉक करने के लिए, मज़बूत प्रोसेस बनाना.
जब भी मुमकिन हो, सिस्टम के बाद के अपडेट में नए APEX को पहले से इंस्टॉल किए गए APEX में बदलना.
किसी नए APEX को इंस्टॉल या अपडेट करने के लिए, ये कॉन्फ़िगरेशन ज़रूरी हैं.
भरोसेमंद सार्वजनिक पासकोड पहले से इंस्टॉल करना
किसी नए APEX को इंस्टॉल करने के लिए, उसके सार्वजनिक साइनिंग पासकोड को टारगेट पार्टीशन पर पहले से इंस्टॉल करना होगा. सार्वजनिक पासकोड को /partition/etc/brand_new_apex/ में रखें,
जहां /partition/ उस पार्टीशन को दिखाता है जहां Treble के नियमों के तहत, APEX को जोड़ा गया है. उदाहरण के लिए, अगर किसी APEX के सिग्नेचर की पुष्टि, /vendor/etc/brand_new_apex/ में मौजूद किसी सार्वजनिक पासकोड के ज़रिए की जाती है, तो यह वेंडर APEX की तरह काम करेगा.
सिस्टम, किसी भी ऐसे नए APEX को अस्वीकार कर देगा जिस पर, पहले से इंस्टॉल किए गए सार्वजनिक पासकोड से जुड़े पासकोड से साइन नहीं किया गया है.
नुकसान पहुंचाने वाले नए APEX को ब्लॉक करना
अगर इंस्टॉल करने के बाद, किसी नए APEX को नुकसान पहुंचाने वाला पाया जाता है, तो उसे सिस्टम अपडेट का इस्तेमाल करके ब्लॉक करना होगा. ऐसा करने के लिए, APEX पैकेज के नाम को /partition/etc/brand_new_apex/blocklist.json में मौजूद ब्लॉकलिस्ट फ़ाइल में जोड़ें. इस ब्लॉकलिस्ट को, APEX के टारगेट पार्टीशन पर रखना होगा. यह वही पार्टीशन है जहां उसका सार्वजनिक पासकोड पहले से इंस्टॉल किया गया था. हर पार्टीशन की अपनी अलग ब्लॉकलिस्ट फ़ाइल होती है.