一種能兼容不同分區類型的OTA升級方法與流程
2023-05-09 16:32:52 1

本發明涉及一種能兼容不同分區類型的ota升級方法,屬於版本在線升級技術領域。
背景技術:
當今時代,網際網路應用日新月異,覆蓋了人們生活的方方面面,在三網融合的背景下,貴州廣電網絡用開放的心態,充分結合網際網路,開發iptv機頂盒,為貴州省幾十萬用戶提供豐富的視聽體驗,在提供傳統數位電視資源的同時,也能通過網際網路獲取豐富網絡資源。
android作業系統由於其開放性,我們的iptv也選擇android作為作業系統。而ota升級作為android系統提供的標準升級方式,能方便實現在線軟體版本的升級。在我們為投入使用的iptv盒子進行軟體版本升級的時候,也採用標準的ota升級方式。但在實際使用的過程中,發現當版本之前存在分區差異,即由於功能需要新增或者減少了分區,此時進行ota升級就會出現異常,根據差異分區存在的位置,影響程度不一致。
針對以上所述被升級盒子分區與新的升級分區存在差異的問題,如果能忽略版本之間的差異,實現一種能兼容不同分區類型的ota升級方法成為我們思考的問題。
技術實現要素:
本發明要解決的技術問題是提供一種能兼容不同分區類型的ota升級方法,能忽略版本之間的差異,以一種能兼容不同分區類型的ota升級方法解決ota升級出現異常的問題,可以克服現有技術的不足。
本發明的技術方案是一種能兼容不同分區類型的ota升級方法,它包括機頂盒,機頂盒內設有iptv盒子,iptv盒子通過網際網路向版本管理平臺發起升級包請求,其特徵在於:該方法包括以下步驟,
一,版本管理平臺通過升級請求制定對應的ota升級腳本。
二,根據ota升級腳本,製作含有全量分區調整模塊的ota升級包,並讓iptv盒子完成ota升級包的下載;
三,升級,在升級前先根據全量分區調整模塊進行分區調整再進行升級,在全量分區調整模塊中設有擦除操作,在擦除操作時,若發現當前系統中最末端的分區與升級請求想要擦除的分區名稱不一致時,設有跳過繼續對比下個分區指令。
上述的擦除操作中,擦除方法為讀取當前系統中最末端的分區名稱,並讀入升級描述腳本中要擦除的分區名稱,若兩名稱對應,即當前升級過程想要擦除的分區為最末端的分區,則繼續進行接下來的分區擦除工作;相反,若發現當前想要擦除的分區名稱與系統最末端的分區不一致,不能繼續執行刪除操作。
上述的在ota升級包中設有自帶升級描述文件,文件中會記錄,分區擦除和添加升級操作,升級的時候則讀取升級描述文件中的操作命令,進行升級操作;
上述的分區擦除和添加升級操作,在擦除時從物理存儲空間上最後端的分區開始擦除,擦到分區內容開始變更的分區,在添加分區時,則按照相反的順序來進行;
上述的在完成ota升級包的下載後,在升級前先進行信息校驗,只有當升級包的大小和使用的籤名校驗通過後,才會開始根據ota升級包中的升級執行腳本進行升級。
上述的版本管理平臺設有升級需求與對應ota升級包歷史記錄持久化保存模塊。
前述的ota升級包還包括視頻資源、音樂文件、網路遊戲、第三方應用軟體。
現有技術比較,本發明能兼容不同分區類型的ota升級方法,該方法包括以下步驟:一,版本管理平臺通過升級請求制定對應的ota升級腳本;二,根據ota升級腳本,製作含有全量分區調整模塊的ota升級包,並讓iptv盒子完成ota升級包的下載;三,升級,在升級前先根據全量分區調整模塊進行分區調整再進行升級,在全量分區調整模塊中設有擦除操作,在擦除操作時,若發現當前系統中最末端的分區與升級請求想要擦除的分區名稱不一致時,設有跳過繼續對比下個分區指令,通過以上的升級步驟,保證原有不需要的分區可以被正確擦除掉,而若存在當前不能擦除的分區,則選擇跳過該分區,繼續進行接下來的分區比對擦除,這樣能忽略版本之間的差異,達到兼容不同分區類型的ota升級效果,使得升級版本與被升級版本之間存在分區差異時,能通過ota升級的方式正常執行升級操作;
在擦除操作中,擦除方法為讀取當前系統中最末端的分區名稱,並讀入升級描述腳本中要擦除的分區名稱,若兩名稱對應,即當前升級過程想要擦除的分區為最末端的分區,則繼續進行接下來的分區擦除工作;相反,若發現當前想要擦除的分區名稱與系統最末端的分區不一致,不能繼續執行刪除操作,這樣就不會出現升級異常的情況;
在ota升級包中設有自帶升級描述文件,文件中會記錄,分區擦除和添加升級操作,升級的時候則讀取升級描述文件中的操作命令,進行升級操作;這樣有操作指令為指導,有利於升級過程,如當升級包下載完成後,將進入recovery的指令記錄下來,等到用戶再次重啟時,才進入到升級流程進行升級,這樣可以避免用戶在觀看電視或者進行其他操作時被突然而來的強制升級中斷。
在完成ota升級包的下載後,在升級前先進行信息校驗,只有當升級包的大小和使用的籤名校驗通過後,才會開始根據ota升級包中的升級執行腳本進行升級,這樣能避免沒有下載完整,或者該升級包的籤名與現有系統的籤名不一致的情況,保證升級包的合法性及完整性;
版本管理平臺設有升級需求與對應ota升級包歷史記錄持久化保存模塊,這樣能收集更多版本的升級請求,有利於充實資料庫,方便以後直接升級使用;
ota升級包還包括視頻資源、音樂文件、網路遊戲、第三方應用軟體,這樣能方便用戶下載所需求的軟體。
附圖說明
圖1是本發明的連接結構示意圖。
圖2是註冊分區擦除及分區添加時需函數註冊代碼。
圖3是跳過分區腳本的代碼。
圖4是原有分區信息。
圖5是新的分區信息。
圖6是ota升級腳本中的分區正常分區擦除順序。
具體實施方式
實施例1.如圖1所示,一種能兼容不同分區類型的ota升級方法,它包括機頂盒,機頂盒內設有iptv盒子,iptv盒子通過網際網路向版本管理平臺發起升級包請求,該方法包括以下步驟:一,版本管理平臺通過升級請求制定對應的ota升級腳本,版本管理平臺設有升級需求與對應ota升級包歷史記錄持久化保存模塊;二,根據ota升級腳本,製作含有全量分區調整模塊的ota升級包,並讓iptv盒子完成ota升級包的下載;在完成ota升級包的下載後,在升級前先進行信息校驗,只有當升級包的大小和使用的籤名校驗通過後,才會開始根據ota升級包中的升級執行腳本進行升級;ota升級包還包括視頻資源、音樂文件、網路遊戲、第三方應用軟體;在ota升級包中設有自帶升級描述文件,文件中會記錄,分區擦除和添加升級操作,升級的時候則讀取升級描述文件中的操作命令,進行升級操作;分區擦除和添加升級操作,在擦除時從物理存儲空間上最後端的分區開始擦除,擦到分區內容開始變更的分區,在添加分區時,則按照相反的順序來進行;三,升級,在升級前先根據全量分區調整模塊進行分區調整再進行升級,在全量分區調整模塊中設有擦除操作,在擦除操作時,若發現當前系統中最末端的分區與升級請求想要擦除的分區名稱不一致時,設有跳過繼續對比下個分區指令;所述的擦除操作中,擦除方法為讀取當前系統中最末端的分區名稱,並讀入升級描述腳本中要擦除的分區名稱,若兩名稱對應,即當前升級過程想要擦除的分區為最末端的分區,則繼續進行接下來的分區擦除工作;相反,若發現當前想要擦除的分區名稱與系統最末端的分區不一致,不能繼續執行刪除操作。
1)註冊分區擦除及分區添加時需函數註冊代碼,如圖2所示:
圖2中,remove_emmc_partition為ota升級描述腳本中定義的分區擦除命令;removeemmcpartitionfn為分區擦除命令對應的實現方法;add_emmc_partition為ota升級描述腳本中定義的分區添加命令;addemmcpartitionfn為分區添加命令對應的實現方法。
2)在對分區進行擦除時,若檢測到升級描述腳本中想要擦除的分區與當前系統中可擦除的分區不對應,則跳過分區腳本中該條分區擦除指令的執行,跳過的代碼如圖3,繼續執行升級描述腳本中接下來的分區擦除命令;
3)在ota升級腳本中按照分區的順序進行編寫擦除及添加分區命令。具體操作如下:
填寫順序正確,分區完整的分區擦除及添加命令,原有分區信息如圖4,新的分區信息如圖5,則可推斷出ota升級腳本中的分區正常分區擦除順序為圖6:
4)製作新的ota升級包,即可針對分區存在差異的系統進行ota升級。