專利名稱:終端設(shè)備中系統(tǒng)軟件升級(jí)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)技術(shù),尤其涉及一種終端設(shè)備中系統(tǒng)軟件升級(jí)方法和裝置。
背景技術(shù):
目前,嵌入式系統(tǒng)軟件被廣泛應(yīng)用于通訊領(lǐng)域、工業(yè)控制領(lǐng)域、家庭智能設(shè)備、國(guó)防、醫(yī)療等領(lǐng)域。例如,手機(jī)、智能電視、機(jī)頂盒終端設(shè)備、掌上電腦等均采用嵌入式系統(tǒng),以提供智能化的、具有較好人機(jī)交互性能的功能。目前,基于OTA (Over-the-Air Technology,空間下載技術(shù))的系統(tǒng)軟件升級(jí)方法因?yàn)槠渖?jí)的便利性在各種終端設(shè)備中得到廣泛應(yīng)用;例如,用戶可以方便地通過OTA升級(jí)方式,通過網(wǎng)絡(luò),比如WIF1、3G等,自動(dòng)下載OTA升級(jí)包、自動(dòng)對(duì)手機(jī)、或機(jī)頂盒終端設(shè)備等進(jìn)行系統(tǒng)軟件的升級(jí)。目前,終端設(shè)備OTA升級(jí)主要有兩種方法;第一種是最小系統(tǒng)方法即生成一個(gè)稱之為L(zhǎng)oader (加載器)的最小系統(tǒng),實(shí)現(xiàn)基本的OTA升級(jí)功能;然而該升級(jí)方法,需要終端設(shè)備在系統(tǒng)軟件檢測(cè)到系統(tǒng)軟件升級(jí)指令后,重新啟動(dòng)后加載運(yùn)行Loader,以實(shí)現(xiàn)基本的OTA升級(jí)功能。由于升級(jí)過程中,需要終端設(shè)備進(jìn)行重啟,不符合升級(jí)的規(guī)范流程,應(yīng)用局限性大;第二種方法是把OTA升級(jí)程序包含在系統(tǒng)應(yīng)用程序之中,由系統(tǒng)應(yīng)用程序完成。第二種升級(jí)方法的升級(jí)過程符合規(guī)范,但如果升級(jí)失敗,則終端設(shè)備將無法正常啟動(dòng),無法繼續(xù)使用,需要重新燒寫軟件。綜上所述,現(xiàn)有技術(shù)的OTA升級(jí)方法不能同時(shí)滿足升級(jí)過程符合規(guī)范流程,以及在升級(jí)失敗的情況下仍然保證終端設(shè)備的正常啟動(dòng)。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種終端設(shè)備中系統(tǒng)軟件升級(jí)方法和裝置,使得系統(tǒng)軟件升級(jí)過程既符合規(guī)范流程,又可以在升級(jí)失敗的情況下仍然保證終端設(shè)備可以正常啟動(dòng)。根據(jù)本發(fā)明的一個(gè)方面,提供了一種終端設(shè)備中系統(tǒng)軟件升級(jí)方法,包括:所述終端設(shè)備上電后讀取系統(tǒng)配置文件中的軟件分區(qū)信息;根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件;啟動(dòng)的系統(tǒng)軟件在運(yùn)行過程中,若接收到系統(tǒng)軟件升級(jí)指令,則根據(jù)下載的新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí);在升級(jí)成功后,將所述軟件分區(qū)信息所指示的主軟件分區(qū)由第一軟件分區(qū)修改為第二軟件分區(qū)。較佳地,所述終端設(shè)備上電后讀取系統(tǒng)配置文件中的軟件分區(qū)信息;根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件,具體為:所述終端設(shè)備上電后,啟動(dòng)引導(dǎo)程序;
所述引導(dǎo)程序讀取系統(tǒng)配置文件中的軟件分區(qū)信息,根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件。較佳地,所述根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件具體包括:所述引導(dǎo)程序在確定所述軟件分區(qū)信息指示出第一軟件分區(qū)為主軟件分區(qū)后,啟動(dòng)第一軟件分區(qū)中的內(nèi)核Kernel程序、加載第一軟件分區(qū)中的根文件系統(tǒng)rootfs ;根據(jù)加載的rootfs中的啟動(dòng)系統(tǒng)應(yīng)用App程序的腳本進(jìn)行運(yùn)行的過程中,根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)App程序。較佳地,在所述引導(dǎo)程序在確定所述軟件分區(qū)信息指示出第一軟件分區(qū)為主軟件分區(qū)后,以及所述啟動(dòng)第一軟件分區(qū)中的內(nèi)核Kernel程序之前,還包括:所述引導(dǎo)程序根據(jù)第一軟件分區(qū)中的徽標(biāo)Logo顯示區(qū)域中的內(nèi)容進(jìn)行Logo顯
/Jn ο較佳地,所述軟件分區(qū)信息具體包括=Logo顯示區(qū)域信息、Kernel程序啟動(dòng)區(qū)域信息、rootfs加載區(qū)域信息、系統(tǒng)App程序啟動(dòng)區(qū)域信息;以及指示出第一軟件分區(qū)為主軟件分區(qū)的軟件分區(qū)信息具體包括:指示出Logo顯示區(qū)域位于第一軟件分區(qū)的Logo顯示區(qū)域信息、指示出Kernel程序啟動(dòng)區(qū)域位于第一軟件分區(qū)的Kernel程序啟動(dòng)區(qū)域信息、指示出rootfs加載區(qū)域位于第一軟件分區(qū)的rootfs加載區(qū)域信息、指示出系統(tǒng)App程序啟動(dòng)區(qū)域位于第一軟件分區(qū)的系統(tǒng)App程序啟動(dòng)區(qū)域信息;以及指示出第二軟件分區(qū)為主軟件分區(qū)的軟件分區(qū)信息具體包括:指示出Logo顯示區(qū)域位于第二軟件分區(qū)的Logo顯示區(qū)域信息、指示出Kernel程序啟動(dòng)區(qū)域位于第二軟件分區(qū)的Kernel程序啟動(dòng)區(qū)域信息、指示出rootfs加載區(qū)域位于第二軟件分區(qū)的rootfs加載區(qū)域信息、指示出系統(tǒng)App程序啟動(dòng)區(qū)域位于第二軟件分區(qū)的系統(tǒng)App程序啟動(dòng)區(qū)域信息。較佳地,在所述將所述軟件分區(qū)信息所指示的主軟件分區(qū)由第一軟件分區(qū)修改為第二軟件分區(qū)后,還包括:若所述終端設(shè)備重啟或再次上電后,所述終端設(shè)備讀取系統(tǒng)配置文件中的軟件分區(qū)信息;并根據(jù)所述軟件分區(qū)信息所指示的第二軟件分區(qū)為主軟件分區(qū),啟動(dòng)第二軟件分區(qū)中的系統(tǒng)軟件。較佳地,在所述根據(jù)下載的新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí)后,還包括:若升級(jí)失敗,則所述終端設(shè)備重啟或再次上電后,所述終端設(shè)備讀取系統(tǒng)配置文件中的軟件分區(qū)信息;并根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件。較佳地,所述若接收到系統(tǒng)軟件升級(jí)指令,則根據(jù)下載的新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí),具體包括:啟動(dòng)的系統(tǒng)軟件在運(yùn)行過程中,若接收到系統(tǒng)軟件升級(jí)指令,則判斷下載的新版本的系統(tǒng)軟件是否符合升級(jí)條件;若符合升級(jí)條件,則根據(jù)所述新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí);其中,所述升級(jí)條件包括以下任一條件,或以下任意條件的組合:所述終端設(shè)備的終端型號(hào)與所述下載的新版本的系統(tǒng)軟件中的終端型號(hào)匹配、所述終端設(shè)備的用戶標(biāo)識(shí)與所述下載的新版本的系統(tǒng)軟件中的用戶標(biāo)識(shí)匹配、所述終端設(shè)備的硬件版本號(hào)與所述下載的新版本的系統(tǒng)軟件中的硬件版本號(hào)匹配、所述新版本大于所述終端設(shè)備中的當(dāng)前版本、所述終端設(shè)備的MAC地址在所述新版本的系統(tǒng)軟件所指定的MAC地址范圍內(nèi)、所述終端設(shè)備的序列號(hào)在所述新版本的系統(tǒng)軟件所指定的序列號(hào)范圍內(nèi)。根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種終端設(shè)備中系統(tǒng)軟件升級(jí)裝置,包括:系統(tǒng)軟件啟動(dòng)模塊,用于在所述終端設(shè)備上電后,讀取系統(tǒng)配置文件中的軟件分區(qū)信息;若所述軟件分區(qū)信息指示出第一軟件分區(qū)/第二軟件分區(qū)為主軟件分區(qū),則啟動(dòng)第一軟件分區(qū)/第二軟件分區(qū)中的系統(tǒng)軟件;系統(tǒng)軟件升級(jí)模塊,用于接收到系統(tǒng)軟件升級(jí)指令后,若判斷所述軟件分區(qū)信息指示出第一軟件分區(qū)/第二軟件分區(qū)為主軟件分區(qū),則根據(jù)下載的新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)/第一軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí);在升級(jí)成功后,將所述軟件分區(qū)信息所指示的主軟件分區(qū)由第一軟件分區(qū)/第二軟件分區(qū)修改為第二軟件分區(qū)/第一軟件分區(qū)。較佳地,所述系統(tǒng)軟件啟動(dòng)模塊包含于所述終端設(shè)備中的引導(dǎo)程序中;以及所述系統(tǒng)軟件升級(jí)模塊包含于所述終端設(shè)備中正在運(yùn)行的系統(tǒng)軟件中。本發(fā)明實(shí)施例的技術(shù)方案,由于在終端設(shè)備中設(shè)置兩個(gè)軟件分區(qū):第一軟件分區(qū)、第二軟件分區(qū);輪流作為主軟件分區(qū)和備份軟件分區(qū);在主軟件分區(qū)(例如第一軟件分區(qū))中的系統(tǒng)軟件運(yùn)行時(shí),則對(duì)備份軟件分區(qū)(例如第二軟件分區(qū))中的系統(tǒng)軟件進(jìn)行升級(jí);這樣,即使對(duì)備份軟件分區(qū)的升級(jí)失敗,仍然不會(huì)影響主軟件分區(qū)中的系統(tǒng)軟件的正常運(yùn)行,保證了終端設(shè)備在升級(jí)失敗的情況下仍然可以正常啟動(dòng)、運(yùn)行;而且,在升級(jí)過程中不用對(duì)終端設(shè)備進(jìn)行重啟,系統(tǒng)軟件升級(jí)過程符合規(guī)范流程。
圖1、3為本發(fā)明實(shí)施例的終端設(shè)備中系統(tǒng)軟件升級(jí)方法流程圖;圖2為本發(fā)明實(shí)施例的啟動(dòng)系統(tǒng)軟件的方法流程圖;圖4為本發(fā)明實(shí)施例的終端設(shè)備中系統(tǒng)軟件升級(jí)裝置的內(nèi)部結(jié)構(gòu)框圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉出優(yōu)選實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。然而,需要說明的是,說明書中列出的許多細(xì)節(jié)僅僅是為了使讀者對(duì)本發(fā)明的一個(gè)或多個(gè)方面有一個(gè)透徹的理解,即便沒有這些特定的細(xì)節(jié)也可以實(shí)現(xiàn)本發(fā)明的這些方面。本申請(qǐng)使用的“模塊”、“系統(tǒng)”等術(shù)語旨在包括與計(jì)算機(jī)相關(guān)的實(shí)體,例如但不限于硬件、固件、軟硬件組合、軟件或者執(zhí)行中的軟件。例如,模塊可以是,但并不僅限于:處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計(jì)算機(jī)。舉例來說,計(jì)算設(shè)備上運(yùn)行的應(yīng)用程序和此計(jì)算設(shè)備都可以是模塊。一個(gè)或多個(gè)模塊可以位于執(zhí)行中的一個(gè)進(jìn)程和/或線程內(nèi)。本發(fā)明的主要思路為,在終端設(shè)備中設(shè)置兩個(gè)軟件分區(qū);其中一個(gè)作為主軟件分區(qū),一個(gè)作為備份軟件分區(qū);在通過系統(tǒng)軟件進(jìn)行OTA升級(jí)時(shí),由主軟件分區(qū)的系統(tǒng)軟件執(zhí)行升級(jí)功能:根據(jù)下載的新版系統(tǒng)軟件對(duì)備份軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí);這樣,如果升級(jí)失敗,則由于主軟件分區(qū)的系統(tǒng)軟件沒有被更改,終端設(shè)備在上電、重啟后,仍然可以根據(jù)主軟件分區(qū)中的系統(tǒng)軟件正常啟動(dòng)。主軟件分區(qū)的系統(tǒng)軟件在升級(jí)成功后,將當(dāng)前的備份軟件分區(qū)轉(zhuǎn)換為主軟件分區(qū);相應(yīng)地,當(dāng)前的主軟件分區(qū)則轉(zhuǎn)換為備份軟件分區(qū)。這樣,終端設(shè)備在上電、重啟后,將根據(jù)轉(zhuǎn)換后的主軟件分區(qū)中的新版系統(tǒng)軟件進(jìn)行啟動(dòng),從而達(dá)到系統(tǒng)軟件升級(jí)的目的;且升級(jí)過程中不需要進(jìn)行終端設(shè)備的重啟。下面結(jié)合附圖詳細(xì)說明本發(fā)明實(shí)施例的技術(shù)方案。本發(fā)明實(shí)施例提供的終端設(shè)備中,設(shè)置了兩個(gè)軟件分區(qū),分別為:第一軟件分區(qū)和第二軟件分區(qū)。以第一軟件分區(qū)為當(dāng)前的主軟件分區(qū)、第二軟件分區(qū)為當(dāng)前的備份軟件分區(qū)為例,講述本發(fā)明實(shí)施例的系統(tǒng)軟件升級(jí)方法,具體流程如圖1所示,包括如下步驟:SlOl:終 而設(shè)備上電后,啟動(dòng)引導(dǎo)Boot程序。S102:終端設(shè)備讀取系統(tǒng)配置文件中的軟件分區(qū)信息。具體地,終端設(shè)備上電后,啟動(dòng)的Boot程序讀取系統(tǒng)配置文件中的軟件分區(qū)信息。由于在本例中,第一軟件分區(qū)為當(dāng)前的主軟件分區(qū),因此,軟件分區(qū)信息是設(shè)置為指示第一軟件分區(qū)為主軟件分區(qū)的;那么,該指示第一軟件分區(qū)為主軟件分區(qū)的軟件分區(qū)信息同時(shí)也表明第二軟件分區(qū)為備份軟件分區(qū)。事實(shí)上,軟件分區(qū)信息的不同取值用以表示不同的信息;一種信息為指示第一軟件分區(qū)為主軟件分區(qū),另一種信息為指示第二軟件分區(qū)為主軟件分區(qū)。例如,當(dāng)軟件分區(qū)信息的值為I時(shí),其指示第一軟件分區(qū)為主軟件分區(qū);當(dāng)軟件分區(qū)信息的值為O時(shí),其指示第二軟件分區(qū)為主軟件分區(qū)。S103:終端設(shè)備根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件。啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件的具體過程將在后續(xù)進(jìn)行詳細(xì)介紹。S104:第一軟件分區(qū)中的系統(tǒng)軟件啟動(dòng)后,若接收到系統(tǒng)軟件升級(jí)指令,則根據(jù)下載的新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí)。具體地,第一軟件分區(qū)中的系統(tǒng)軟件啟動(dòng)后,若終端設(shè)備中啟動(dòng)的系統(tǒng)軟件在運(yùn)行過程中,接收到系統(tǒng)軟件升級(jí)指令后,若確認(rèn)軟件分區(qū)信息指示第一軟件分區(qū)為主軟件分區(qū),則表明該軟件分區(qū)信息同時(shí)相應(yīng)指示出了第二軟件分區(qū)為備份軟件分區(qū);第一軟件分區(qū)中的系統(tǒng)軟件根據(jù)下載的新版本的系統(tǒng)軟件對(duì)作為備份軟件分區(qū)的第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí)。相應(yīng)地,若正在運(yùn)行的系統(tǒng)軟件確認(rèn)軟件分區(qū)信息指示第二軟件分區(qū)為主軟件分區(qū),則表明該軟件分區(qū)信息同時(shí)相應(yīng)指示出了第一軟件分區(qū)為備份軟件分區(qū),因此,根據(jù)下載的新版本的系統(tǒng)軟件對(duì)作為備份軟件分區(qū)的第一軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí)。
較佳地,啟動(dòng)的系統(tǒng)軟件接收到系統(tǒng)軟件升級(jí)指令后,先判斷下載的新版本的系統(tǒng)軟件是否符合升級(jí)條件;若符合升級(jí)條件,則根據(jù)所述新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí);否則,將不執(zhí)行升級(jí)操作。通常,升級(jí)條件可以包括以下任一條件,或以下任意條件的組合:所述終端設(shè)備的終端型號(hào)與所述下載的新版本的系統(tǒng)軟件中的終端型號(hào)匹配、所述終端設(shè)備的用戶標(biāo)識(shí)與所述下載的新版本的系統(tǒng)軟件中的用戶標(biāo)識(shí)匹配、所述終端設(shè)備的硬件版本號(hào)與所述下載的新版本的系統(tǒng)軟件中的硬件版本號(hào)匹配、所述新版本大于所述終端設(shè)備中的當(dāng)前版本、所述終端設(shè)備的MAC地址在所述新版本的系統(tǒng)軟件所指定的MAC地址范圍內(nèi)、所述終端設(shè)備的序列號(hào)在所述新版本的系統(tǒng)軟件所指定的序列號(hào)范圍內(nèi)。第一軟件分區(qū)中的系統(tǒng)軟件啟動(dòng)后,接收到系統(tǒng)軟件升級(jí)指令,根據(jù)下載的新版本的系統(tǒng)軟件進(jìn)行升級(jí)可以有兩種具體方式:一種方式是通過U盤進(jìn)行升級(jí):通過系統(tǒng)軟件提供的本地配置頁(yè)面,將U盤升級(jí)路徑配置到系統(tǒng)軟件中,并顯示升級(jí)按鈕;在用戶點(diǎn)擊升級(jí)按鈕后,終端設(shè)備中的系統(tǒng)軟件確認(rèn)接收到系統(tǒng)軟件升級(jí)指令,并根據(jù)配置的U盤升級(jí)路徑下載新版本的系統(tǒng)軟件,根據(jù)下載的新版本的系統(tǒng)軟件進(jìn)行升級(jí)。另一種方式是通過HTTP (Hyper Text Transport Protocol,超文本傳輸協(xié)議)網(wǎng)絡(luò)升級(jí):終端設(shè)備中的系統(tǒng)軟件的瀏覽器在接收到服務(wù)器下發(fā)的升級(jí)地址,并識(shí)別到升級(jí)地址接口后觸發(fā)系統(tǒng)軟件進(jìn)行升級(jí)并向系統(tǒng)軟件傳遞升級(jí)地址參數(shù);觸發(fā)系統(tǒng)軟件升級(jí)時(shí),正在運(yùn)行的系統(tǒng)軟件確認(rèn)接收到系統(tǒng)軟件升級(jí)指令,依據(jù)升級(jí)地址參數(shù)通過HTTP協(xié)議下載新版本的系統(tǒng)軟件,根據(jù)下載的新版本的系統(tǒng)軟件對(duì)備份軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí)。系統(tǒng)軟件中通常可以包括:徽標(biāo)Logo、內(nèi)核Kernel程序、根文件系統(tǒng)rootfs、系統(tǒng)應(yīng)用App程序。在進(jìn)行系統(tǒng)軟件升級(jí)過程中,可以采用閃存寫入(nandwrite)方式對(duì)徽標(biāo)Logo、內(nèi)核Kernel程序在第二軟件分區(qū)進(jìn)行升級(jí);可以采用UBI (Unsorted Block Image,無排序區(qū)塊圖像)分卷方式對(duì)根文件系統(tǒng)rootfs、系統(tǒng)應(yīng)用App程序在第二軟件分區(qū)進(jìn)行升級(jí)。在升級(jí)過程中,如果因?yàn)槟承┮馔獾囊蛩貙?dǎo)致升級(jí)失敗,由于是在第二軟件分區(qū)進(jìn)行升級(jí),并不涉及對(duì)第一軟件分區(qū)的內(nèi)容的更改;因此,第一軟件分區(qū)的系統(tǒng)軟件仍然可以正常運(yùn)行;并在終端設(shè)備重啟后,Boot程序仍然根據(jù)指示第一軟件分區(qū)為主軟件分區(qū)的軟件分區(qū)信息,啟動(dòng)第一軟件分區(qū)的系統(tǒng)軟件運(yùn)行,從而保證終端設(shè)備仍然可以正常運(yùn)行。S105:第一軟件分區(qū)中的系統(tǒng)軟件在對(duì)第二軟件分區(qū)中的系統(tǒng)軟件升級(jí)成功后,修改軟件分區(qū)信息指示第二軟件分區(qū)為主軟件分區(qū)。具體地,第一軟件分區(qū)中的系統(tǒng)軟件在對(duì)第二軟件分區(qū)中的系統(tǒng)軟件升級(jí)成功后,將所述軟件分區(qū)信息所指示的主軟件分區(qū)由第一軟件分區(qū)修改為第二軟件分區(qū)。在第一軟件分區(qū)中的系統(tǒng)軟件將軟件分區(qū)信息修改為指示第二軟件分區(qū)為主軟件分區(qū)的信息后,雖然第二軟件分區(qū)中的系統(tǒng)軟件已經(jīng)升級(jí)完畢,但是第一軟件分區(qū)中的系統(tǒng)軟件仍然處于運(yùn)行狀態(tài)。在終端設(shè)備關(guān)機(jī)、第一軟件分區(qū)中的系統(tǒng)軟件退出后,終端設(shè)備再次重啟時(shí),終端設(shè)備中的Boot程序?qū)⒏鶕?jù)所述軟件分區(qū)信息所指示的第二軟件分區(qū)為主軟件分區(qū),啟動(dòng)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行運(yùn)行;此時(shí),終端設(shè)備中運(yùn)行的是升級(jí)后的新版本的系統(tǒng)軟件。事實(shí)上,系統(tǒng)軟件中通常可以包括:徽標(biāo)Logo、內(nèi)核Kernel程序、根文件系統(tǒng)rootfs、系統(tǒng)應(yīng)用App程序。相應(yīng)地,軟件分區(qū)信息具體可以包括:Logo顯示區(qū)域信息、Kernel程序啟動(dòng)區(qū)域信息、rootfs加載區(qū)域信息、系統(tǒng)App程序啟動(dòng)區(qū)域信息。軟件分區(qū)信息可使用一個(gè)字節(jié)的數(shù)值表示,Logo顯示區(qū)域信息、Kernel程序啟動(dòng)區(qū)域信息、rootfs加載區(qū)域信息、系統(tǒng)App程序啟動(dòng)區(qū)域信息可以分別以該字節(jié)中的一個(gè)比特的值進(jìn)行表示,如下表I所示:表I
權(quán)利要求
1.一種終端設(shè)備中系統(tǒng)軟件升級(jí)方法,其特征在于,包括: 所述終端設(shè)備上電后讀取系統(tǒng)配置文件中的軟件分區(qū)信息;根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件; 啟動(dòng)的系統(tǒng)軟件在運(yùn)行過程中,若接收到系統(tǒng)軟件升級(jí)指令,則根據(jù)下載的新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí);在升級(jí)成功后,將所述軟件分區(qū)信息所指示的主軟件分區(qū)由第一軟件分區(qū)修改為第二軟件分區(qū)。
2.如權(quán)利要求1所述的方法,其特征在于,所述終端設(shè)備上電后讀取系統(tǒng)配置文件中的軟件分區(qū)信息;根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件,具體為: 所述終端設(shè)備上電后,啟動(dòng)引導(dǎo)程序; 所述引導(dǎo)程序讀取系統(tǒng)配置文件中的軟件分區(qū)信息,根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件。
3.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件具體包括: 所述引導(dǎo)程序在確定所述軟件分區(qū)信息指示出第一軟件分區(qū)為主軟件分區(qū)后,啟動(dòng)第一軟件分區(qū)中的內(nèi)核Kernel程序、加載第一軟件分區(qū)中的根文件系統(tǒng)rootfs ; 根據(jù)加載的rootfs中的啟動(dòng)系統(tǒng)應(yīng)用App程序的腳本進(jìn)行運(yùn)行的過程中,根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)App程序。
4.如權(quán)利要求3所述的方法,其特征在于,在所述引導(dǎo)程序在確定所述軟件分區(qū)信息指示出第一軟件 分區(qū)為主軟件分區(qū)后,以及所述啟動(dòng)第一軟件分區(qū)中的內(nèi)核Kernel程序之前,還包括: 所述引導(dǎo)程序根據(jù)第一軟件分區(qū)中的徽標(biāo)Logo顯示區(qū)域中的內(nèi)容進(jìn)行Logo顯示。
5.如權(quán)利要求4所述的方法,其特征在于,所述軟件分區(qū)信息具體包括=Logo顯示區(qū)域信息、Kernel程序啟動(dòng)區(qū)域信息、rootfs加載區(qū)域信息、系統(tǒng)App程序啟動(dòng)區(qū)域信息;以及 指示出第一軟件分區(qū)為主軟件分區(qū)的軟件分區(qū)信息具體包括: 指示出Logo顯示區(qū)域位于第一軟件分區(qū)的Logo顯示區(qū)域信息、指示出Kernel程序啟動(dòng)區(qū)域位于第一軟件分區(qū)的Kernel程序啟動(dòng)區(qū)域信息、指示出rootfs加載區(qū)域位于第一軟件分區(qū)的rootfs加載區(qū)域信息、指示出系統(tǒng)App程序啟動(dòng)區(qū)域位于第一軟件分區(qū)的系統(tǒng)App程序啟動(dòng)區(qū)域信息;以及 指示出第二軟件分區(qū)為主軟件分區(qū)的軟件分區(qū)信息具體包括: 指示出Logo顯示區(qū)域位于第二軟件分區(qū)的Logo顯示區(qū)域信息、指示出Kernel程序啟動(dòng)區(qū)域位于第二軟件分區(qū)的Kernel程序啟動(dòng)區(qū)域信息、指示出rootfs加載區(qū)域位于第二軟件分區(qū)的rootfs加載區(qū)域信息、指示出系統(tǒng)App程序啟動(dòng)區(qū)域位于第二軟件分區(qū)的系統(tǒng)App程序啟動(dòng)區(qū)域信息。
6.如權(quán)利要求1-5任一所述的方法,其特征在于,在所述將所述軟件分區(qū)信息所指示的主軟件分區(qū)由第一軟件分區(qū)修改為第二軟件分區(qū)后,還包括: 若所述終端設(shè)備重啟或再次上電后,所述終端設(shè)備讀取系統(tǒng)配置文件中的軟件分區(qū)信息;并 根據(jù)所述軟件分區(qū)信息所指示的第二軟件分區(qū)為主軟件分區(qū),啟動(dòng)第二軟件分區(qū)中的系統(tǒng)軟件。
7.如權(quán)利要求6所述的方法,其特征在于,在所述根據(jù)下載的新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí)后,還包括: 若升級(jí)失敗,則所述終端設(shè)備重啟或再次上電后,所述終端設(shè)備讀取系統(tǒng)配置文件中的軟件分區(qū)信息;并根據(jù)所述軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件。
8.如權(quán)利要求7所述的方法,其特征在于,所述若接收到系統(tǒng)軟件升級(jí)指令,則根據(jù)下載的新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí),具體包括: 啟動(dòng)的系統(tǒng)軟件在運(yùn)行過程中,若接收到系統(tǒng)軟件升級(jí)指令,則判斷下載的新版本的系統(tǒng)軟件是否符合升級(jí)條件; 若符合升級(jí)條件,則根據(jù)所述新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí); 其中,所述升級(jí)條件包括以下任一條件,或以下任意條件的組合:所述終端設(shè)備的終端型號(hào)與所述下載的新版本的系統(tǒng)軟件中的終端型號(hào)匹配、所述終端設(shè)備的用戶標(biāo)識(shí)與所述下載的新版本的系統(tǒng)軟件中的用戶標(biāo)識(shí)匹配、所述終端設(shè)備的硬件版本號(hào)與所述下載的新版本的系統(tǒng)軟件中的硬件版本號(hào)匹配、所述新版本大于所述終端設(shè)備中的當(dāng)前版本、所述終端設(shè)備的MAC地址在所述新版本的系統(tǒng)軟件所指定的MAC地址范圍內(nèi)、所述終端設(shè)備的序列號(hào)在所述新版本的系統(tǒng)軟件所指定的序列號(hào)范圍內(nèi)。
9.一種終端設(shè)備中系統(tǒng)軟件升級(jí)裝置,其特征在于,包括: 系統(tǒng)軟件啟動(dòng)模塊,用于在所述終端設(shè)備上電后,讀取系統(tǒng)配置文件中的軟件分區(qū)信息;若所述軟件分區(qū)信息指示出第一軟件分區(qū)/第二軟件分區(qū)為主軟件分區(qū),則啟動(dòng)第一軟件分區(qū)/第二軟件分區(qū)中的系統(tǒng)軟`件; 系統(tǒng)軟件升級(jí)模塊,用于接收到系統(tǒng)軟件升級(jí)指令后,若判斷所述軟件分區(qū)信息指示出第一軟件分區(qū)/第二軟件分區(qū)為主軟件分區(qū),則根據(jù)下載的新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)/第一軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí);在升級(jí)成功后,將所述軟件分區(qū)信息所指示的主軟件分區(qū)由第一軟件分區(qū)/第二軟件分區(qū)修改為第二軟件分區(qū)/第一軟件分區(qū)。
10.如權(quán)利要求9所述的裝置,其特征在于,所述系統(tǒng)軟件啟動(dòng)模塊包含于所述終端設(shè)備中的引導(dǎo)程序中;以及 所述系統(tǒng)軟件升級(jí)模塊包含于所述終端設(shè)備中正在運(yùn)行的系統(tǒng)軟件中。
全文摘要
本發(fā)明公開了一種終端設(shè)備中系統(tǒng)軟件升級(jí)方法和裝置,所述方法包括終端設(shè)備根據(jù)軟件分區(qū)信息所指示的第一軟件分區(qū)為主軟件分區(qū),啟動(dòng)第一軟件分區(qū)中的系統(tǒng)軟件;啟動(dòng)的系統(tǒng)軟件在運(yùn)行過程中,若接收到系統(tǒng)軟件升級(jí)指令,則根據(jù)下載的新版本的系統(tǒng)軟件對(duì)第二軟件分區(qū)中的系統(tǒng)軟件進(jìn)行升級(jí);升級(jí)成功后,將軟件分區(qū)信息所指示的主軟件分區(qū)由第一軟件分區(qū)修改為第二軟件分區(qū)。由于在主軟件分區(qū)(如第一軟件分區(qū))中的系統(tǒng)軟件運(yùn)行時(shí),對(duì)備份軟件分區(qū)(如第二軟件分區(qū))中的系統(tǒng)軟件進(jìn)行升級(jí);這樣即使升級(jí)失敗,也不會(huì)影響主軟件分區(qū)中的系統(tǒng)軟件的正常運(yùn)行,保證了終端設(shè)備仍然可以正常啟動(dòng)、運(yùn)行。
文檔編號(hào)G06F9/445GK103106092SQ201310052259
公開日2013年5月15日 申請(qǐng)日期2013年2月18日 優(yōu)先權(quán)日2013年2月18日
發(fā)明者時(shí)飛飛 申請(qǐng)人:青島海信寬帶多媒體技術(shù)有限公司