Android कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी) के अपडेट किए जा सकने वाले सॉफ़्टवेयर के लिए, डिवाइसों में SystemUpdatePolicy
क्लास को लागू करना ज़रूरी है. SystemUpdatePolicy
, डिवाइस के मालिक (डीओ) ऐप्लिकेशन को सिस्टम अपडेट के इंस्टॉलेशन को कंट्रोल करने की अनुमति देता है. हालांकि, इसके लिए ज़रूरी है कि डिवाइस पर डीओ ऐप्लिकेशन मौजूद हो.
डिवाइस के मालिकों को सूचना दें
ओवर-द-एयर (ओटीए) क्लाइंट को डिवाइस के मालिक के ऐप्लिकेशन को इसके बारे में सूचित करना होगा
सिस्टम एपीआई का इस्तेमाल करके, आने वाले ओटीए अपडेट. ओटीए क्लाइंट में, ओटीए अपडेट के पहली बार उपलब्ध होने का टाइमस्टैंप भी शामिल होना चाहिए. OTA क्लाइंट कॉल कर सकते हैं
DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
डिवाइस मालिक के ऐप्लिकेशन को सूचित करने के लिए. अगर ओटीए क्लाइंट को यह नहीं पता कि कोई अपडेट
सुरक्षा पैच है या नहीं, तो ओटीए क्लाइंट DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
का इस्तेमाल कर सकता है.
अगर कोई अपडेट फ़िलहाल उपलब्ध नहीं है, तो ओटीए क्लाइंट इसकी रिपोर्ट इस तरह देता है:
updateReceivedTime
आर्ग्युमेंट को -1
पर सेट करना.
हमारा सुझाव है कि जब भी ओटीए क्लाइंट, ओटीए सर्वर से अनुरोध करता है या जब क्लाइंट को ओटीए भेजा जाता है, तब सूचनाएं भेजें. इन्हें भी भेजा जा सकता है
अक्सर सूचनाएं पाना बंद करते हैं.
सिस्टम अपडेट करने से जुड़ी नीति
Android 9, डिवाइस की क्षमता को बेहतर बनाता है को मालिक के तौर पर कंट्रोल अपडेट पाने के लिए, डिवाइस के मालिकों को इतने समय तक ओटीए अपडेट को आगे बढ़ाने की अनुमति दें 90 दिन. खास तौर पर बनाए गए डिवाइस पर फ़ोकस करना (पहले इसे COSU कहा जाता था) समाधान, इस सुविधा की मदद से मालिक छुट्टियों जैसे अहम समय में अपने डिवाइसों को चालू करें.
सीडीडी का पालन करने के लिए, ओटीए क्लाइंट को उपयोगकर्ता के व्यवहार के आधार पर बनी नीतियों को लागू करना होगा. डीओ ये नीतियां सेट कर सकता है. डिवाइस के सिस्टम अपडेट सबसिस्टम को इनका पालन करना होगा:
डिवाइस के मालिक, Android 9 या उसके बाद के वर्शन में, फ़्रीज़ करने की अवधि सेट भी कर सकते हैं. इससे, छुट्टियों या व्यस्त समय जैसी अहम अवधियों के दौरान, डिवाइस के OS वर्शन को फ़्रीज़ किया जा सकता है. सिस्टम
फ़्रीज़ पीरियड के दौरान, ओटीए अपडेट इंस्टॉल नहीं करता. हमारा सुझाव है कि आप
SystemUpdatePolicy.InstallationOption
(नीचे दिया गया सेक्शन देखें) का इस्तेमाल करें. हालांकि, डिवाइस फ़्रीज़ है या नहीं, यह पता करने के लिए OTA क्लाइंट,
SystemUpdatePolicy.getFreezePeriods()
को भी कॉल कर सकता है.
इंस्टॉल करने के विकल्प लागू करना
Android 9 में एक @SystemApi उपलब्ध है,
SystemUpdatePolicy.InstallationOption
को डिज़ाइन किया गया
पर ईमेल किया जा सकता है.
SystemUpdatePolicy.InstallationOption
का इस्तेमाल रैपर के तौर पर किया जा रहा है
क्लास का डेटा इस्तेमाल करें. इंस्टॉलेशन के विकल्प से क्लाइंट को यह पता चलता है कि आने वाले सिस्टम अपडेट पर क्या कार्रवाई करनी है और वह कार्रवाई कितने समय तक मान्य रहेगी. यह जानकारी, सिस्टम अपडेट की मौजूदा नीति या सेट की गई फ़्रीज़ अवधि के हिसाब से दी जाती है. इंस्टॉल करने का विकल्प इनमें से एक हो सकता है:
फ़ॉलो किया जा रहा है:
-
TYPE_INSTALL_AUTOMATIC
- सिस्टम के अपडेट उपलब्ध होते ही, उपयोगकर्ता के बिना किसी रुकावट के तुरंत इंस्टॉल हो जाते हैं. डिवाइस अपने-आप रीबूट हो जाता है. -
TYPE_POSTPONE
- आने वाले सिस्टम अपडेट को ज़्यादा से ज़्यादा 30 दिनों तक विलंब किया जा सकता है. लोग, अपडेट को मैन्युअल तरीके से इंस्टॉल नहीं कर सकते. डिवाइस बनाने वाली कंपनियां यह चुन सकती हैं कि सुरक्षा को ब्लॉक करना है या नहीं पैच. -
TYPE_PAUSE
- आने वाले सिस्टम अपडेट में देरी हो सकती है अगली सूचना मिलने तक अनिश्चित समय तक नहीं दिखाएंगे. उपयोगकर्ता किसी अपडेट को इंस्टॉल नहीं कर सकते मैन्युअल रूप से.TYPE_PAUSE
, सभी अपडेट में देरी करता है. इनमें, सुरक्षा पैच भी शामिल हैं.
सिस्टम अपडेट के क्लाइंट क्वेरी कर सकते हैं
SystemUpdatePolicy.InstallationOption
का इस्तेमाल किया जा रहा है
SystemUpdatePolicy.getInstallationOptionAt(long when)
,
जहां when इंस्टॉलेशन का विकल्प बताता है
Epoch के बाद से मिलीसेकंड में क्वेरी की जाती है. इसका उपयोग करके
SystemUpdatePolicy.getInstallationOptionAt(long when)
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
तरीके का इस्तेमाल करते हैं, तो सिस्टम अपडेट क्लाइंट लौटाए गए विकल्प पर तब तक कार्रवाई कर सकता है, जब तक
को लागू करने में मदद मिलती है. दिखाए गए विकल्प की समयसीमा खत्म होने के बाद, क्लाइंट सबसे नए विकल्प के लिए, नए टाइमस्टैंप का इस्तेमाल करके, फिर से क्वेरी कर सकता है.
सिस्टम अपडेट क्लाइंट को इसे सुनना चाहिए
DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
पूरी नीति अपडेट किए जाने पर ब्रॉडकास्ट करता है.
TYPE_PAUSE नीति की पुष्टि करें
TYPE_PAUSE
विकल्प के काम करने की पुष्टि, मैन्युअल तरीके से की जा सकती है
का इस्तेमाल किया जा सकता है.
नीति TYPE_PAUSE लागू है
यह पुष्टि करने के लिए कि TYPE_PAUSE
नीति काम कर रही है या नहीं:
-
अपने-आप लागू होने वाली नीति सेट करें और
TYPE_PAUSE
तय करें. - सिस्टम क्लॉक के रुकने के दौरान, ओटीए अपडेट को पुश करें.
- पुष्टि करें कि डिवाइस पर ओटीए अपडेट नहीं हो रहा है और उपयोगकर्ता मैन्युअल तरीके से अपडेट इंस्टॉल नहीं कर सकता.
- अगर डिवाइस A/B डिवाइस है, तो डिवाइस को रीबूट करें और पुष्टि करें कि रीबूट करने पर, अपडेट अपने-आप इंस्टॉल न हुआ हो.
नीति TYPE_PAUSE की समयसीमा खत्म हो गई है
यह पुष्टि करने के लिए कि समयसीमा खत्म हो चुकी TYPE_PAUSE
नीति काम कर रही है:
-
अपने-आप लागू होने वाली नीति सेट करें और
TYPE_PAUSE
की जानकारी दें. - सिस्टम क्लॉक के रुकने के दौरान, ओटीए अपडेट को पुश करें.
- रोकने की अवधि खत्म होने का इंतज़ार करें.
- पुष्टि करें कि डिवाइस अपने-आप रीबूट हो रहा है और रीबूट होने के बाद, ओटीए अपडेट किया जा रहा है.