Android
Compatibility Definition Document (CDD) Updatable Software
के मुताबिक, डिवाइसों को SystemUpdatePolicy
क्लास लागू करनी होगी. SystemUpdatePolicy
की मदद से, डिवाइस के मालिक (डीओ) का ऐप्लिकेशन, सिस्टम अपडेट के इंस्टॉल होने की प्रोसेस को कंट्रोल कर सकता है. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब डिवाइस के मालिक (डीओ) का ऐप्लिकेशन मौजूद हो.
डिवाइस के मालिकों को सूचना देना
ओवर-द-एयर (OTA) क्लाइंट को, सिस्टम एपीआई का इस्तेमाल करके डिवाइस के मालिक वाले ऐप्लिकेशन को, आने वाले OTA अपडेट के बारे में सूचना देनी होगी. ओटीए क्लाइंट को यह भी करना होगा:
ओटीए अपडेट पहली बार उपलब्ध होने पर, टाइमस्टैंप रिकॉर्ड करना होगा. OTA क्लाइंट, डिवाइस के मालिक के ऐप्लिकेशन को सूचना देने के लिए, DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
को कॉल कर सकते हैं. अगर OTA क्लाइंट को यह नहीं पता है कि कोई अपडेट सुरक्षा पैच है, तो OTA क्लाइंट DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
का इस्तेमाल कर सकता है.
अगर फ़िलहाल कोई अपडेट उपलब्ध नहीं है, तो OTA क्लाइंट इसकी सूचना देता है. इसके लिए, वह updateReceivedTime
आर्ग्युमेंट को -1
पर सेट करता है.
हमारा सुझाव है कि जब भी OTA क्लाइंट, OTA सर्वर को पोल करता है या जब किसी OTA को क्लाइंट को पुश किया जाता है, तब सूचनाएं भेजी जाएं. सूचनाएँ ज़्यादा बार भी भेजी जा सकती हैं.
सिस्टम अपडेट करने से जुड़ी नीति
Android 9 में, डिवाइस के मालिकों को अपडेट कंट्रोल करने की सुविधा मिलती है. इससे वे ओटीए अपडेट को 90 दिनों तक के लिए पोस्टपोन कर सकते हैं. यह सुविधा, खास मकसद के लिए कॉन्फ़िगर किए गए डिवाइस (पहले इसे COSU कहा जाता था) के समाधानों पर फ़ोकस करती है. इससे डिवाइस के मालिक, छुट्टियों जैसे अहम समय के दौरान डिवाइसों पर चल रहे ओएस वर्शन को रोक सकते हैं.
सीडीडी का पालन करने के लिए, ओटीए क्लाइंट को व्यवहार से जुड़ी नीतियां लागू करनी होंगी. डीओ इन नीतियों को सेट कर सकता है. डिवाइस के सिस्टम अपडेट के सबसिस्टम को इन नीतियों का पालन करना होगा:
डिवाइस के मालिक, ओएस के वर्शन को फ़्रीज़ करने की अवधि भी सेट कर सकते हैं. यह सुविधा Android 9 या इसके बाद के वर्शन वाले डिवाइसों पर उपलब्ध है. इससे छुट्टियों या अन्य व्यस्त समय के दौरान, ओएस का वर्शन फ़्रीज़ हो जाता है. फ़्रीज़ पीरियड के दौरान, सिस्टम ओटीए अपडेट इंस्टॉल नहीं करता है. हम SystemUpdatePolicy.InstallationOption
का इस्तेमाल करने का सुझाव देते हैं. इसके बारे में अगले सेक्शन में बताया गया है. हालांकि, OTA क्लाइंट यह देखने के लिए भी SystemUpdatePolicy.getFreezePeriods()
को कॉल कर सकता है कि डिवाइस फ़्रीज़ पीरियड में है या नहीं.