本發(fā)明涉及軟件領(lǐng)域,具體涉及一種終端設(shè)備系統(tǒng)升級方法。
背景技術(shù):
隨著科技的發(fā)展,OTA(空中下載技術(shù)Over the Air Technology)被廣泛應(yīng)用于各類終端設(shè)備產(chǎn)品中,提高了終端設(shè)備的便捷性。OTA是通過移動通信的空中接口對SIM卡數(shù)據(jù)及應(yīng)用進行遠程管理的技術(shù),其中,空中接口可以采用WAP、GPRS、CDMA1X、短消息等技術(shù)。
目前終端設(shè)備的升級主要采用如下方法,
在終端設(shè)備產(chǎn)品的非易失性存儲空間劃分出部分物理空間,存儲恢復(fù)系統(tǒng)。系統(tǒng)升級時,終端設(shè)備產(chǎn)品通過OTA技術(shù)下載升級文件并升級,若系統(tǒng)升級失敗,可以通過存儲的恢復(fù)系統(tǒng)對系統(tǒng)進行恢復(fù)。
然而,該升級方法需要占用較大的存儲空間,不僅增加了產(chǎn)品的成本,而且不能夠充分利用存儲空間。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述缺陷,提供一種充分利用存儲空間、穩(wěn)定性較高的系統(tǒng)升級方法。
一種終端設(shè)備的系統(tǒng)升級方法,所述終端設(shè)備的系統(tǒng)包括運行系統(tǒng)和拓展系統(tǒng),所述終端設(shè)備的非易失性存儲空間具有系統(tǒng)分區(qū)與拓展分區(qū),所述系統(tǒng)分區(qū)用于存儲所述運行系統(tǒng),所述拓展分區(qū)用于存儲所述拓展系統(tǒng),所述終端設(shè)備系統(tǒng)的升級方法包括:
獲取恢復(fù)系統(tǒng)的文件,并將所述恢復(fù)系統(tǒng)燒錄至所述拓展分區(qū);
獲取所述運行系統(tǒng)的升級文件,并燒錄至所述系統(tǒng)分區(qū),以升級所述運行系統(tǒng);
若所述運行系統(tǒng)升級失敗,則通過所述拓展分區(qū)燒錄的所述恢復(fù)系統(tǒng)啟動系統(tǒng),重新獲取所述運行系統(tǒng)的升級文件,并燒錄至所述系統(tǒng)分區(qū);
若所述運行系統(tǒng)升級成功,則下載所述拓展系統(tǒng)的升級文件,并燒錄至所述拓展分區(qū)。
其中一個實施例中,將所述恢復(fù)系統(tǒng)的文件、所述運行系統(tǒng)的升級文件、所述拓展系統(tǒng)的升級文件至少其一下載至所述終端設(shè)備的內(nèi)存中,之后燒錄到相應(yīng)的分區(qū)內(nèi)。
其中一個實施例中,還包括:
在升級過程中,為所述終端設(shè)備的所述系統(tǒng)升級狀態(tài)設(shè)置標(biāo)記;
升級失敗后查詢所述標(biāo)記;
根據(jù)查詢到的所述標(biāo)記繼續(xù)升級。
其中一個實施例中,所述為所述終端設(shè)備的所述系統(tǒng)升級狀態(tài)設(shè)置標(biāo)記包括:
在燒錄所述恢復(fù)系統(tǒng)至所述拓展分區(qū)后,設(shè)置第一標(biāo)記,所述運行系統(tǒng)升級成功后,設(shè)置第二標(biāo)記,所述拓展系統(tǒng)升級成功后,設(shè)置第三標(biāo)記,其中查詢的優(yōu)先級為所述第三標(biāo)記、所述第二標(biāo)記、所述第一標(biāo)記。
其中一個實施例中,根據(jù)查詢到的所述標(biāo)記繼續(xù)升級包括:
若查詢到所述第三標(biāo)記,則升級成功,重啟所述終端設(shè)備;
若查詢到所述第二標(biāo)記,則重新下載所述拓展系統(tǒng)升級文件,并升級所述拓展系統(tǒng);
若查詢到所述第一標(biāo)記,則重新獲取所述運行系統(tǒng)升級文件,并升級所述運行系統(tǒng)。
其中一個實施例中,
所述為所述終端設(shè)備的所述系統(tǒng)升級狀態(tài)設(shè)置標(biāo)記、根據(jù)查詢到的所述標(biāo)記繼續(xù)升級還包括:
在獲取所述恢復(fù)系統(tǒng)的文件后,設(shè)置預(yù)先標(biāo)記,其中所述預(yù)先標(biāo)記的查詢優(yōu)先級低于所述第一標(biāo)記;
當(dāng)查詢到所述預(yù)先標(biāo)記時,重新獲取所述恢復(fù)系統(tǒng)的文件,并燒錄至所述拓展分區(qū)內(nèi)。
其中一個實施例中,獲取所述恢復(fù)系統(tǒng)的文件前,所述終端設(shè)備的系統(tǒng)升級方法還包括如下步驟:
判斷待升級系統(tǒng),
若所述待升級系統(tǒng)為所述拓展系統(tǒng),下載所述拓展系統(tǒng)的升級文件,并燒錄至所述拓展分區(qū),以升級所述拓展分區(qū)。
其中一個實施例中,還包括:
若所述拓展系統(tǒng)升級失敗,則通過所述運行系統(tǒng)重新下載所述拓展系統(tǒng)的升級文件,并燒錄至所述拓展分區(qū)。
其中一個實施例中,所述為所述終端設(shè)備的所述系統(tǒng)升級狀態(tài)設(shè)置標(biāo)記還包括:
若所述待升級系統(tǒng)為所述拓展系統(tǒng),下載所述拓展分區(qū)升級文件后,設(shè)置所述第二標(biāo)記。
上述終端設(shè)備的系統(tǒng)升級方法,若運行系統(tǒng)升級失敗,可通過恢復(fù)系統(tǒng)重新升級運行系統(tǒng),保證了終端設(shè)備系統(tǒng)升級的穩(wěn)定性。并且,上述升級方法充分利用了終端設(shè)備的非易失性存儲空間,令非易失性存儲空間較小的終端設(shè)備同樣能夠穩(wěn)定升級,節(jié)約了不必要的存儲空間,降低產(chǎn)品成本。
附圖說明
下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中:
圖1為本發(fā)明一實施例的終端設(shè)備系統(tǒng)升級方法的流程圖;
圖2為本發(fā)明一實施例的終端設(shè)備的系統(tǒng)升級方法的流程圖;
圖3為本發(fā)明一實施例的終端設(shè)備的系統(tǒng)升級方法步驟S101的流程圖;
圖4為圖3所示終端設(shè)備的系統(tǒng)升級方法部分步驟的流程圖;
圖5為圖3所示終端設(shè)備的系統(tǒng)升級方法步驟S104b的流程圖;
圖6為圖3所示終端設(shè)備的系統(tǒng)升級方法僅升級拓展系統(tǒng)時的流程圖。
具體實施方式
為了便于理解本發(fā)明,下面將參照相關(guān)附圖對本發(fā)明進行更全面的描述。附圖中給出了本發(fā)明的較佳實施方式。但是,本發(fā)明可以以許多不同的形式來實現(xiàn),并不限于本文所描述的實施方式。相反地,提供這些實施方式的目的是使對本發(fā)明的公開內(nèi)容理解的更加透徹全面。
終端設(shè)備的系統(tǒng)包括運行系統(tǒng)和拓展系統(tǒng),終端設(shè)備包括非易失性存儲空間及內(nèi)存,非易失性存儲空間可包括FLASH存儲介質(zhì),例如,NOR存儲介質(zhì)、NAND存儲介質(zhì)、EMMC存儲介質(zhì)等。其中,非易失性存儲空間具有系統(tǒng)分區(qū)與拓展分區(qū),系統(tǒng)分區(qū)用于存儲運行系統(tǒng),拓展分區(qū)用于存儲拓展系統(tǒng)。
具體的,運行系統(tǒng)包括基礎(chǔ)系統(tǒng)、網(wǎng)絡(luò)支持模塊及OTA模塊。其中,基礎(chǔ)系統(tǒng)包括運行系統(tǒng)所需的最小系統(tǒng),以保證終端設(shè)備系統(tǒng)能夠啟動,例如,基礎(chǔ)系統(tǒng)包括系統(tǒng)內(nèi)核、根文件系統(tǒng)。網(wǎng)絡(luò)支持模塊使得終端設(shè)備系統(tǒng)能夠連接到互聯(lián)網(wǎng),以使OTA模塊能夠下載網(wǎng)絡(luò)文件。拓展系統(tǒng)包括存儲的應(yīng)用場景業(yè)務(wù)程序等。
進一步的,終端設(shè)備還包括應(yīng)用分區(qū),終端設(shè)備啟動引導(dǎo)程序設(shè)置于應(yīng)用分區(qū)內(nèi),用于引導(dǎo)運行系統(tǒng)、恢復(fù)系統(tǒng)開機、升級。此外,一些不涉及OTA升級的文件也可以放入應(yīng)用分區(qū)內(nèi),例如,終端設(shè)備的串號(SN號)。應(yīng)用分區(qū)可通過有線連接進行升級,例如,通過USB連接升級。
需要說明的是,根據(jù)實際情況,也可以省略應(yīng)用分區(qū),此時啟動引導(dǎo)程序位于恢復(fù)系統(tǒng)或者運行系統(tǒng)內(nèi)。當(dāng)運行系統(tǒng)升級失敗時,可應(yīng)用恢復(fù)系統(tǒng)內(nèi)的啟動引導(dǎo)程序,當(dāng)恢復(fù)系統(tǒng)燒錄失敗時,可應(yīng)用運行系統(tǒng)的啟動引導(dǎo)程序。
如圖1所示,其為本發(fā)明一實施例的終端設(shè)備系統(tǒng)的升級方法10的流程圖。
本實施例中,終端設(shè)備系統(tǒng)為Linux系統(tǒng)。其他實施例中,終端設(shè)備也可為其他系統(tǒng),例如Openwrt系統(tǒng)、安卓系統(tǒng)等。
終端設(shè)備系統(tǒng)的升級方法,包括:
步驟S101、獲取恢復(fù)系統(tǒng)的文件,并將恢復(fù)系統(tǒng)燒錄至拓展分區(qū)。
本實施例中,運行系統(tǒng)通過OTA模塊從網(wǎng)絡(luò)中下載恢復(fù)系統(tǒng)的文件,恢復(fù)系統(tǒng)的文件包括待升級運行系統(tǒng)的新版本的基礎(chǔ)系統(tǒng)文件、網(wǎng)絡(luò)支持模塊文件及OTA模塊文件。這樣,能夠簡化升級文件開發(fā),減少開發(fā)時間。
在其他實施例中,恢復(fù)系統(tǒng)的文件包括當(dāng)前運行系統(tǒng)的基礎(chǔ)系統(tǒng)文件、網(wǎng)絡(luò)支持模塊文件及OTA模塊文件。此時,恢復(fù)系統(tǒng)的文件既可以以當(dāng)前版本運行系統(tǒng)為基礎(chǔ)生成,直接從運行系統(tǒng)中拷貝,即當(dāng)恢復(fù)系統(tǒng)的文件與當(dāng)前運行系統(tǒng)的文件相同,無需通過網(wǎng)絡(luò)下載恢復(fù)系統(tǒng)的文件;也可以通過OTA模塊從網(wǎng)絡(luò)下載。這樣,由于恢復(fù)系統(tǒng)與當(dāng)前運行系統(tǒng)相同,能夠保證恢復(fù)系統(tǒng)的穩(wěn)定性。
需要說明的是,運行系統(tǒng)也可以包括其他模塊,例如,語音模塊、安全算法模塊等。當(dāng)運行系統(tǒng)包括其他模塊時,恢復(fù)系統(tǒng)的文件既可以包括運行系統(tǒng)中的全部文件,也可以僅包括能夠運行終端設(shè)備系統(tǒng)所需的必要文件,例如,包括基礎(chǔ)系統(tǒng)、網(wǎng)絡(luò)支持模塊及OTA模塊。
本實施例中,將恢復(fù)系統(tǒng)的文件燒錄至拓展分區(qū)后,拓展分區(qū)原始文件被覆蓋清除。這樣,能夠充分利用終端設(shè)備的存儲空間,無需為恢復(fù)系統(tǒng)提供單獨的存儲空間。
其他實施例中,若拓展分區(qū)空間足夠,恢復(fù)系統(tǒng)的文件也可以無需覆蓋拓展分區(qū)的原始數(shù)據(jù),直接燒錄到拓展分區(qū)未寫入數(shù)據(jù)的存儲空間內(nèi)。
步驟S102、獲取運行系統(tǒng)的升級文件,并燒錄至系統(tǒng)分區(qū),以升級運行系統(tǒng)。
具體的,通過當(dāng)前運行系統(tǒng)的OTA模塊從網(wǎng)絡(luò)中下載運行系統(tǒng)的升級文件,并升級運行系統(tǒng)。
其他實施例中,當(dāng)恢復(fù)系統(tǒng)的文件與運行系統(tǒng)的升級文件相同時,也可以直接獲取恢復(fù)系統(tǒng)的文件,并將其燒錄至系統(tǒng)分區(qū),此時,無需從網(wǎng)絡(luò)下載運行系統(tǒng)的升級文件。
步驟S103、判斷運行系統(tǒng)的升級狀態(tài)。
步驟S104a、若運行系統(tǒng)升級失敗,則通過拓展分區(qū)燒錄的恢復(fù)系統(tǒng)啟動系統(tǒng),重新獲取運行系統(tǒng)的升級文件,并燒錄至系統(tǒng)分區(qū)。
獲取升級文件失敗、燒錄運行系統(tǒng)失敗均可造成運行系統(tǒng)升級失敗,此時通恢復(fù)系統(tǒng)啟動系統(tǒng)重新獲取運行系統(tǒng)的升級文件。具體的,通過恢復(fù)系統(tǒng)的OTA模塊,即新版本的OTA模塊,下載運行系統(tǒng)的升級文件,并升級運行系統(tǒng)。
步驟S104a結(jié)束后,進入步驟S103重新判斷運行系統(tǒng)的升級狀態(tài)。
步驟S104b、若運行系統(tǒng)升級成功,則下載拓展系統(tǒng)的升級文件,并燒錄至拓展分區(qū)。
具體的,通過升級后運行系統(tǒng)的OTA模塊下載拓展系統(tǒng)的升級文件,并升級拓展分區(qū)。本實施例中,燒錄至拓展分區(qū)的拓展系統(tǒng)升級文件覆蓋并清除在步驟S101中燒錄的恢復(fù)系統(tǒng)的相關(guān)數(shù)據(jù),即拓展分區(qū)升級后,之前的數(shù)據(jù)被清空。
上述終端設(shè)備的系統(tǒng)升級方法,若運行系統(tǒng)升級失敗,可通過恢復(fù)系統(tǒng)重新升級運行系統(tǒng),保證了終端設(shè)備系統(tǒng)升級的穩(wěn)定性。并且,上述升級方法充分利用了終端設(shè)備的非易失性存儲空間,令非易失性存儲空間較小的終端設(shè)備同樣能夠穩(wěn)定升級,節(jié)約了不必要的存儲空間,降低產(chǎn)品成本。
此外,上述升級方法同樣能夠應(yīng)用在存儲空間較大的終端設(shè)備上,此時能夠充分利用終端設(shè)備的非易失性存儲空間。
進一步的,系統(tǒng)在升級過程中,恢復(fù)系統(tǒng)的文件、運行系統(tǒng)的升級文件、拓展系統(tǒng)的升級文件中至少其一下載至終端設(shè)備的內(nèi)存中,之后燒錄到相應(yīng)的分區(qū)內(nèi)。本實施例中,各文件均下載至內(nèi)存中。其他實施例中,也可以僅將恢復(fù)系統(tǒng)的文件、運行系統(tǒng)的升級文件下載至內(nèi)存中,拓展系統(tǒng)的升級文件下載至終端設(shè)備的非易失性存儲空間內(nèi)。
具體的,例如,在當(dāng)前系統(tǒng)中構(gòu)建Ramdisk系統(tǒng),恢復(fù)系統(tǒng)及運行系統(tǒng)的基礎(chǔ)系統(tǒng)部分通過initramfs技術(shù)生成Ramdisk鏡像,即恢復(fù)系統(tǒng)的系統(tǒng)內(nèi)核和根文件系統(tǒng)部分被壓縮成鏡像,以使系統(tǒng)在啟動過程中,系統(tǒng)內(nèi)核加載后,自動加載根文件系統(tǒng)至內(nèi)存中,從而在Ramdisk系統(tǒng)中升級系統(tǒng)。
將恢復(fù)系統(tǒng)的文件、運行系統(tǒng)的升級文件、拓展系統(tǒng)的升級文件下載至內(nèi)存中,進一步提高了終端設(shè)備的對存儲空間的利用率,進而節(jié)約成本。
請一并參閱圖2,其為本發(fā)明一實施例的終端設(shè)備的系統(tǒng)升級方法的流程圖20。
判斷待升級系統(tǒng)。具體的,通過當(dāng)前運行系統(tǒng)的OTA模塊獲取升級命令,并判斷升級分區(qū)。
若待升級系統(tǒng)為拓展系統(tǒng),下載拓展系統(tǒng)的升級文件,并燒錄至拓展分區(qū)。具體的,通過當(dāng)前運行系統(tǒng)的OTA模塊下載拓展系統(tǒng)的升級文件,并升級拓展分區(qū)。
若待升級系統(tǒng)為終端設(shè)備的系統(tǒng),順序執(zhí)行終端設(shè)備的系統(tǒng)升級方法10的各步驟,即步驟101~步驟104b。
這樣,令系統(tǒng)升級更加靈活,當(dāng)僅需升級拓展系統(tǒng)分區(qū)時,簡化了升級文件的制作及升級過程,無需升級整個系統(tǒng),簡化了升級過程。
需要說明的是,終端設(shè)備還可以在系統(tǒng)升級的各階段均具有恢復(fù)機制。
具體的,若步驟S101出現(xiàn)異常,例如,由于終端設(shè)備電力不足導(dǎo)致獲取恢復(fù)系統(tǒng)的文件失敗,或者燒錄恢復(fù)系統(tǒng)失敗,則重復(fù)步驟S101,直至步驟S101成功,進入步驟S102。
若步驟S102出現(xiàn)異常,即運行系統(tǒng)升級失敗,則通過步驟S104a重新升級運行系統(tǒng),直至運行系統(tǒng)升級成功,進入步驟S104b。
若步驟S104b出現(xiàn)異常,即拓展系統(tǒng)升級失敗,則通過升級后的運行系統(tǒng)重新下載拓展系統(tǒng)的升級文件,并燒錄至拓展分區(qū),直至拓展分區(qū)升級成功。
若僅需升級拓展系統(tǒng)時,拓展系統(tǒng)升級失敗,則通過當(dāng)前的運行系統(tǒng)重新下載拓展系統(tǒng)的升級文件,并升級拓展分區(qū),直至升級成功。
上述終端設(shè)備系統(tǒng)的升級方法,在升級的各階段均具有恢復(fù)機制,令系統(tǒng)在升級任意階段出現(xiàn)異常后均能夠重新升級,進一步保證了系統(tǒng)升級的穩(wěn)定性。
進一步的,終端設(shè)備的系統(tǒng)升級方法,還可以包括:
在升級過程中,為終端設(shè)備的系統(tǒng)升級狀態(tài)設(shè)置標(biāo)記。
在升級失敗后查詢設(shè)置的標(biāo)記。
根據(jù)查詢到的標(biāo)記繼續(xù)升級。
其中,標(biāo)記存儲于應(yīng)用分區(qū)內(nèi),并通過啟動引導(dǎo)程序查詢標(biāo)記。根據(jù)需要,當(dāng)終端設(shè)備的系統(tǒng)升級結(jié)束后,清除標(biāo)記,例如在重啟終端設(shè)備時清除標(biāo)記。
請一并參閱圖3至圖6,其分別為本發(fā)明一實施例的終端設(shè)備的系統(tǒng)升級方法的各步驟的流程圖。
如圖3所示,在獲取恢復(fù)系統(tǒng)的文件后,設(shè)置預(yù)先標(biāo)記;在燒錄恢復(fù)系統(tǒng)至拓展分區(qū)后,設(shè)置第一標(biāo)記;如圖4所示,運行系統(tǒng)升級成功后,即燒錄運行系統(tǒng)至系統(tǒng)分區(qū)成功后,設(shè)置第二標(biāo)記;如圖5所示,拓展系統(tǒng)升級成功后,即燒錄拓展系統(tǒng)至拓展分區(qū)成功后,設(shè)置第三標(biāo)記。如圖6所示,僅升級拓展分區(qū)時,下載拓展分區(qū)升級文件后,設(shè)置第二標(biāo)記。其中,查詢的優(yōu)先級為第三標(biāo)記、第二標(biāo)記、第一標(biāo)記、預(yù)先標(biāo)記。
若查詢到第三標(biāo)記,則升級成功,無需繼續(xù)升級,重啟終端設(shè)備,若查詢到第二標(biāo)記、第一標(biāo)記、預(yù)先標(biāo)記則根據(jù)查詢到的標(biāo)記繼續(xù)升級。
具體的,若查詢到第二標(biāo)記,則拓展系統(tǒng)升級失敗,其可為步驟S104b異常,或者僅升級拓展系統(tǒng)時,升級失敗,此時,重新下載拓展系統(tǒng)升級文件,并升級拓展系統(tǒng)。
若查詢到第一標(biāo)記,則運行系統(tǒng)升級失敗,即步驟S102異常,此時,重新獲取運行系統(tǒng)升級文件,并升級運行系統(tǒng)。
若查詢到預(yù)先標(biāo)記,則步驟S101異常,此時,重新獲取恢復(fù)系統(tǒng)的文件,并燒錄至拓展分區(qū)內(nèi)。
升級運行系統(tǒng)時設(shè)置預(yù)先標(biāo)記,僅升級拓展分區(qū)時設(shè)置第二標(biāo)記,令終端設(shè)備在繼續(xù)升級的過程中,無需重新判斷待升級系統(tǒng),便可直接下載需要的文件。
需要說明的是,根據(jù)實際情況,也可以在升級運行系統(tǒng)時,省略預(yù)先標(biāo)記,此時,若未查詢到標(biāo)記,則重新下載恢復(fù)系統(tǒng)的文件,并燒錄至拓展分區(qū)內(nèi)。
以上實施例的各技術(shù)特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認為是本說明書記載的范圍。
以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。