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