最近時間稍微空閑,整理下云屏整機設備的OTA流程及方案,適用設備內置的升級場景。之前開發時有過定義/設計,這里稍微整理總結下
整機軟件有很多模塊,系統及外設固件、Windows服務、Windows應用,比如系統點屏9969、攝像頭固件、觸摸框固件、顯卡驅動、Windows一些自研服務(用于通信以及系統修復等)、全家桶應用(白板、分屏、傳屏等)
整機,因為硬件設計不同也區分不同整機類型比如8K、4K,紅外屏、電容屏,新的點屏方案EDP等,需要根據整機迭代搭配相應的配套整機軟件。
整機也有定制項目,會議市場就是2B行業,客戶在軟件上有一些定制需求很正常,配套軟件需要與公版軟件區分、單獨管理。
整機設備與單純的應用軟件升級不同,它是對設備系統軟件的迭代,跟隨設備走。所以不同機型、不同定制項目都需要有一套獨立的OTA升級路徑。
整機軟件,通過Windows應用軟件即全家桶為入口來完成配套軟件的升級。下面詳細介紹下升級流程
OTA升級策略
在OTA管理前端,上傳整機軟件升級文件如H3C_Full.ota文件。不同的整機迭代以及定制項目,都有一個單獨的整機ID作為標識
用戶升級
用戶升級,即用戶能感知、有用戶交互的升級方式。目前集成在全家桶內Setting應用升級模塊中,用戶可以操作。在前端選擇升級策略-用戶升級,然后用戶在客戶端Setting進行升級。
用戶升級分倆塊:主動點擊下載安裝升級,以及自動升級。
管理員升級
是用于解決用戶升級流程可能中斷的升級方式,一般由廠商自己操作、推送緊急或者致命版本
在管理后臺選擇升級策略-強制升級、靜默升級,然后大屏會啟動OTA.exe,會幫用戶進行默默升級,下次重啟大屏完成版本的切換。
設計這倆個升級策略是開發來主導的,我的考慮是用戶升級和管理員升級要獨立開來,倆套應用。
1.防止用戶升級搞壞了,還有管理員升級備用方案。升級功能很重要,應該把健壯性考慮進去
2.或者推送出去的版本,有致命問題。可以通過強制升級來讓用戶端快速升級新版本。
3.用戶端很久未主動升級至新版本,版本過于老舊,也可以通過靜默升級切換新版本
另外,在線升級補充幾點
過渡版本功能,標記某個中間版本。比如用戶安裝版本是1.0,標記中間過渡版本2.0,即使線上有3.0、4.0,請求升級時優先返回2.0,完成中間版本過渡,解決前后版本數據兼容問題,讓后續版本輕裝上陣
灰度配置功能,標記某些某些版本小范圍升級,在版本正式上線之前或者臨時修復指定用戶問題很有用
用戶Setting升級界面有個離線安裝模塊,在Setting關于界面選擇本地OTA文件,進行本地升級。
離線升級,支持所有的OTA文件,即可以是整機軟件升級(H3C_Full.ota),也可以模塊升級(全家桶、9969、固件)、單獨升級某個模塊。升級整機軟件,會修改整機軟件版本號,升級模塊則只會變更模塊版本號。
OTA文件
這里講下OTA文件概率、結構以及文件種類的定義
OTA文件,只有一個來源Jenkins在線構建。可以用于在線升級,也可以給用戶進行離線

以某個整機軟件為例,
這里的.ota文件,先有模塊.ota文件如攝像頭:
- 攝像頭.ota
- 麥克風.ota
- 觸摸框.ota
- 白板.ota
然后組裝成組合升級文件:
- 全家桶.ota -- 包含白板、批注、傳屏等,只升級windows應用
- H3C_Full.ota -- 整機全套軟件,升級后會變更整機版本號
每個模塊升級文件其實是個文件夾,文件目錄內有個zip文件,例如MagicFlueNote_0.2.1.3.zip名稱直觀顯示當前應用和版本信息。目錄內再添個H3C_AppInfos項,用于存放OTA文件的信息,如詳細版本、加密等。
上面我們講了,不同機型不同定制項目都有相應的版本配套,整機軟件OTA包是對多個軟件模塊的集合。但單個模塊而言,攝像頭可能是相同的,攝像頭升級文件在不同整機軟件OTA內可能一樣,這取決于整機軟件整體的硬件選型。
可以升級單個模塊OTA文件(臨時調試模塊問題、給客戶快速替換固件等),也可以升級組件OTA文件,比如整機軟件OTA。
OTA文件支持所有升級策略,可以用于在線升級或者本地升級。具體策略,由FAE或者市場去操作
在線升級OTA管理頁面,根據上傳相應的ota文件,解析出文件里面的模塊。分別解析到對應模塊后,填寫版本升級描述信息,完成OTA上傳、推送。
整機項目升級
開頭說了整機機型以及定制項目,這些都需要獨立的配套軟件版本進行管理,以避免功能不匹配或者需求混亂。
之前有個8K機,因海外和國內的需求相差太大,功能裁剪比較多。海外單獨出了一個整機軟件配套,它的整機項目ID是H3C_Full_Oversea,對應的OTA升級軟件H3C_Full_Oversea.ota
整機軟件需要不同的配套來滿足不同軟硬件的整合
而單獨的模塊比如全家桶白板應用,它對不同的整機類型就可以適配,只需要一個倉庫以及輸出版本就行了。
整機類型比如一代機、二代機,在相應的功能入口以機型進行區分。
所以整機配套軟件,對機型我們是內部兼容,對項目需求是獨立管理代碼分支以及版本。
值得一提的是,因為庫存或者設備挪用,會從整機基線項目轉到客戶定制項目,軟件需求不同。這時候就需要軟件項目遷移了,可以在H3C_Full.ota添加舊整機項目ID以及新整機項目ID,完成遷移至指定整機項目版本的遷移,遷移后就走后續新ID的在線升級流程了。
傳統的硬件設備軟件升級,適合用這個云屏整機軟件升級方案