android ota更新app,企业 OTA 更新 | Android 开源项目 | Android Open Source Project
Android 兼容性定義文檔 (CDD) 可更新軟件要求設(shè)備實(shí)現(xiàn) SystemUpdatePolicy 類(lèi)。SystemUpdatePolicy 可讓設(shè)備所有者 (DO) 應(yīng)用(如果存在)控制系統(tǒng)更新的安裝。
通知設(shè)備所有者
無(wú)線下載 (OTA) 客戶端必須使用系統(tǒng) API 將傳入的 OTA 更新通知給設(shè)備所有者應(yīng)用。OTA 客戶端還必須包含時(shí)間戳,記錄 OTA 更新何時(shí)開(kāi)始可用。OTA 客戶端可以調(diào)用 DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch) 來(lái)通知設(shè)備所有者應(yīng)用。如果 OTA 客戶端不知道更新是否為安全補(bǔ)丁程序,則可回退至使用 DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)。
如果當(dāng)前沒(méi)有可用的更新,OTA 客戶端可通過(guò)將 updateReceivedTime 參數(shù)設(shè)置為 -1 來(lái)報(bào)告此情況。我們建議每當(dāng) OTA 客戶端對(duì) OTA 服務(wù)器進(jìn)行輪詢(xún)或有 OTA 推送到客戶端時(shí)都發(fā)送通知。您還可以更頻繁地發(fā)送通知。
系統(tǒng)更新政策
Android 9 允許設(shè)備所有者將 OTA 更新推遲長(zhǎng)達(dá) 90 天,增強(qiáng)了設(shè)備所有者控制更新的能力。此功能主要適用于專(zhuān)用設(shè)備(之前稱(chēng)為 COSU)解決方案,可讓所有者在重要時(shí)段(如節(jié)假日)暫停在設(shè)備上運(yùn)行的操作系統(tǒng)版本更新。
為遵守 CDD 的要求,OTA 客戶端必須實(shí)施行為政策。設(shè)備所有者可以設(shè)置下列政策,設(shè)備系統(tǒng)更新子系統(tǒng)必須遵守這些政策:
設(shè)備所有者還可以通過(guò)設(shè)置凍結(jié)時(shí)段(在 Android 9 或更高版本中),在重要時(shí)段(如節(jié)假日或其他繁忙時(shí)段)凍結(jié)操作系統(tǒng)版本。系統(tǒng)在凍結(jié)時(shí)段不會(huì)安裝 OTA 更新。我們建議使用 SystemUpdatePolicy.InstallationOption(請(qǐng)參見(jiàn)下一部分);不過(guò),OTA 客戶端還可以調(diào)用 SystemUpdatePolicy.getFreezePeriods() 來(lái)檢查設(shè)備是否處于凍結(jié)時(shí)段。
實(shí)現(xiàn)安裝選項(xiàng)
Android 9 引入了專(zhuān)為系統(tǒng)更新客戶端設(shè)計(jì)的 @SystemApi SystemUpdatePolicy.InstallationOption。SystemUpdatePolicy.InstallationOption 充當(dāng)政策和凍結(jié)時(shí)段的封裝容器類(lèi)。根據(jù)當(dāng)前系統(tǒng)更新政策或任何可能設(shè)定的凍結(jié)時(shí)段,安裝選項(xiàng)會(huì)告知客戶端如何針對(duì)傳入的系統(tǒng)更新執(zhí)行操作,以及相應(yīng)操作的有效時(shí)長(zhǎng)。安裝選項(xiàng)可以是下列項(xiàng)之一:
TYPE_INSTALL_AUTOMATIC - 傳入的系統(tǒng)更新在可用后會(huì)立即安裝,且無(wú)需用戶干預(yù)。相應(yīng)設(shè)備會(huì)自動(dòng)重啟。
TYPE_POSTPONE - 傳入的系統(tǒng)更新最多可延遲 30 天。用戶無(wú)法手動(dòng)安裝更新。設(shè)備制造商可以選擇是否屏蔽安全補(bǔ)丁程序。
TYPE_PAUSE - 傳入的系統(tǒng)更新可無(wú)限期延遲,除非另行通知。用戶無(wú)法手動(dòng)安裝更新。TYPE_PAUSE 會(huì)延遲所有更新,包括安全補(bǔ)丁程序。
系統(tǒng)更新客戶端可以使用 SystemUpdatePolicy.getInstallationOptionAt(long when) 查詢(xún) SystemUpdatePolicy.InstallationOption,其中 when 表示查詢(xún)安裝選項(xiàng)的時(shí)間(從紀(jì)元開(kāi)始計(jì)算的毫秒數(shù))。通過(guò)使用 SystemUpdatePolicy.getInstallationOptionAt(long when) 方法,系統(tǒng)更新客戶端可以在有效時(shí)間結(jié)束前,根據(jù)返回的選項(xiàng)執(zhí)行操作。在返回的選項(xiàng)失效后,客戶端可以使用新的時(shí)間戳再執(zhí)行一次查詢(xún),以獲取最新的選項(xiàng)。
系統(tǒng)更新客戶端必須監(jiān)聽(tīng) DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED 廣播,以防整個(gè)政策發(fā)生更新。
驗(yàn)證 TYPE_PAUSE 政策
您可以手動(dòng)驗(yàn)證 TYPE_PAUSE 選項(xiàng)是否能在 OTA 系統(tǒng)上正常工作。
TYPE_PAUSE 政策有效
如需驗(yàn)證 TYPE_PAUSE 政策是否發(fā)揮作用,請(qǐng)執(zhí)行以下操作:
設(shè)置自動(dòng)政策并指定 TYPE_PAUSE。
當(dāng)系統(tǒng)時(shí)鐘處于暫停期時(shí),推送 OTA 更新。
確認(rèn)設(shè)備未進(jìn)行 OTA 更新,且用戶無(wú)法手動(dòng)安裝更新。
如果設(shè)備為 A/B 設(shè)備,請(qǐng)重新啟動(dòng)設(shè)備,并確認(rèn)重啟操作不會(huì)觸發(fā)自動(dòng)安裝更新。
TYPE_PAUSE 政策過(guò)期
如需驗(yàn)證過(guò)期的 TYPE_PAUSE 政策是否還能發(fā)揮作用,請(qǐng)執(zhí)行以下操作:
設(shè)置自動(dòng)政策并指定 TYPE_PAUSE。
當(dāng)系統(tǒng)時(shí)鐘處于暫停期時(shí),推送 OTA 更新。
等待暫停期結(jié)束。
確認(rèn)設(shè)備會(huì)自動(dòng)重新啟動(dòng),并且在重啟后進(jìn)行 OTA 更新。
總結(jié)
以上是生活随笔為你收集整理的android ota更新app,企业 OTA 更新 | Android 开源项目 | Android Open Source Project的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java 自动化测试工具Selenium
- 下一篇: android layer-list,A