OTA公升級Google官方文件翻譯 概覽

2021-07-22 03:48:30 字數 1817 閱讀 6622

原文**:

本節介紹這些軟體包的結構,並提供用於構建軟體包的工具。它適用於希望將 ota 更新系統用於新的 android 裝置以及正在構建更新軟體包以用於已發布裝置的開發人員。ota 更新旨在公升級基礎作業系統和系統分割槽上安裝的唯讀應用;這些更新不會影響使用者從 google play 安裝的應用。

本節介紹 android 5.x 版本中的 ota 系統。有關從舊版本移植 ota 相關**的幫助資訊,請參閱從以往版本中遷移。

android 裝置上的快閃儲存器空間通常包含以下分割槽。

引導

包含 linux 核心和最小的根檔案系統(載入到 ram 磁碟)。它裝載了系統和其它分割槽,並啟動位於系統分割槽上的執行時。

系統包含在 android 開源專案 (aosp) 上提供源**的系統應用和庫。在正常操作期間,此分割槽被裝載為唯讀分割槽;其內容僅在 ota 更新期間更改。

**商包含在 android 開源專案 (aosp) 上未提供源**的系統應用和庫。

在正常操作期間,此分割槽被裝載為唯讀分割槽;其內容僅在 ota 更新期間更改。

使用者資料

儲存由使用者安裝的應用所儲存的資料等。ota 更新過程通常不會觸及該分割槽。

快取恢復

包含第二個完整的 linux 系統,其中包括乙個核心和特殊的恢復二進位制檔案(該檔案可讀取乙個軟體包並使用其內容來更新其他分割槽。)

其他執行恢復操作時使用的微小分割槽,可在應用 ota 更新包並重新啟動裝置時,隱藏某些程序的資訊。

典型 ota 更新包含以下步驟:

裝置會與 ota 伺服器進行定期確認,並被告知是否有更新可用,包括更新軟體包的 url 和向使用者顯示的描述字串。

裝置重新啟動進入恢復模式,引導恢復分割槽中的核心和系統啟動,而非引導分割槽中的核心。

恢復操作會根據/res/keys(包含在恢復分割槽中的 ram 磁碟的一部分)中的公鑰來驗證軟體包的加密簽名。

從軟體包中提取資料,並根據需要使用該資料更新引導、系統和/或**商分割槽。系統分割槽上其中乙個新檔案包含新恢復分割槽內容。

裝置正常重啟。

載入最新更新的引導分割槽,在最新更新的系統分割槽中裝載並開始執行二進位制檔案。

作為正常啟動的一部分,系統會根據所需內容(預先儲存為/system中的乙個檔案)檢查恢復分割槽的內容。二者內容不同,所以恢復分割槽會被所需內容重新刷寫。(在後續引導中,恢復分割槽已經包含新內容,因此無需重新刷寫。)

系統更新完成!

當從 android 2.3/3.0/4.0 版本進行遷移時,主要變化是將裝置專屬的功能從一組具有預定義名稱的 c 函式轉換為 c++ 物件。下表列出了用途大致相同的舊函式和新方法:

c ++ 方法

device_recovery_start()

device::recoverystart()

device_toggle_display()

device_reboot_now()

recoveryui::checkkey()

(also recoveryui::iskeypressed())

device_handle_key()

device::handlemenukey()

device_perform_action()

device::invokemenuitem()

device_wipe_data()

device::wipedata()

device_ui_init()

screenrecoveryui::init()

將舊函式轉化為新方法應盡量簡單直觀。不要忘記新增新的make_device()函式來建立並返回新裝置子類的例項。

Android系統OTA公升級

recoverysystem.installpackage this,new file data update.zip 注意事項 a 介面並沒有校驗zip包,所以應用方面需要先校驗zip包是存在並且ok的 否則會在recovery介面報錯 b 需要新增的許可權 android name androi...

OTA公升級flash分割槽

一般帶有ota系統的分割槽規劃如圖1所示。本系統的分割槽不包括公升級失敗的備份還原分割槽,本文只考慮公升級成功的情況,公升級失敗還原只需再增加冗餘分割槽與啟動方案即可。figure 1帶有ota公升級功能的嵌入式系統flash儲存器分割槽規劃 uboot可以用其它型別的boot代替,常規應用系統和公...

android 標準OTA公升級流程

標準的ota公升級流程包括一下幾個步驟 3.裝置會重啟進入recovery模式,同時啟動recovery分割槽下執行環境,不再啟動boot分割槽下的執行環境。4.recovery執行環境初始化時會啟動recovery二進位制程式並根據 cache recovery command中的命令對更新包進行...