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