程序更新到所述存儲區(qū)或已備份的存儲區(qū),以進(jìn)行軟件升級;
[0146] 本實(shí)施例中,更新模塊203解壓升級包(Vb. tgz);獲取升級包中的升級標(biāo)志信息, 打開升級標(biāo)志update_flag(update_flag = 1),將update_flag寫入到上述表1中的misc 分區(qū);讀取升級包中的更新分區(qū)標(biāo)志(update_ptbl),判斷update_ptbl>0,若是,打開升 級標(biāo)志,讀取binary_index值,當(dāng)binary_index為0時(shí),需將引導(dǎo)加載程序uboot更新到 binary備份分區(qū)。若binary_index不為0時(shí),將引導(dǎo)加載程序uboot更新到binary分區(qū)。 若update_ptbl不滿足update_ptbl>0,則重啟Linux終端;當(dāng)檢測到升級標(biāo)志打開時(shí),更 新其他分區(qū)(如system分區(qū));更新binary_index值,當(dāng)讀到的值為0(1)時(shí),更新為1 (0), 并存儲到misc分區(qū)。關(guān)閉升級標(biāo)志update_flag (此時(shí)update_flag = 0),并存儲到misc 分區(qū)。
[0147] 通過上述將Linux終端的Flash存儲區(qū)進(jìn)行劃分并進(jìn)行備份,能夠確保Linux終 端設(shè)備在發(fā)生異常時(shí),例如斷電時(shí)仍然可以正常啟動。
[0148] 在一優(yōu)選的實(shí)施例中,在上述圖6的實(shí)施例的基礎(chǔ)上,所述整合模塊202包括:解 壓單元,用于解壓所述差分包,得到升級腳本文件;合成單元,用于獲取原始軟件包,根據(jù)所 述升級腳本文件及原始軟件包合成一合成軟件包;獲取單元,用于根據(jù)所述升級腳本文件 獲取第一差異文件,并獲取所述合成軟件包與所述原始軟件包之間的第二差異文件;判斷 單元,用于判斷所述第一差異文件與所述第二差異文件是否相等;整合單元,用于若是,整 合所述合成軟件包,得到所述升級包。
[0149] 本實(shí)施例中,將升級腳本文件中讀取的第一差異文件賦值給(AFP_MD5),將第二差 異文件賦值給(CFP_MD5),然后對(AFP_MD5)與(CFP_MD5)進(jìn)行判斷。
[0150] 在一優(yōu)選的實(shí)施例中,在上述圖6的實(shí)施例的基礎(chǔ)上,,所述Linux終端還包括加 載模塊,用于當(dāng)重啟所述Linux終端后,根據(jù)所述升級標(biāo)志信息加載所述存儲區(qū)或已備份 的存儲區(qū)。
[0151] 本實(shí)施例中,Linux終端開機(jī)后,檢測升級標(biāo)志update_flag,若update_flag>l, 則為打開,啟動升級流程;若update_flag不滿足update_flag>l,則檢測binary_index標(biāo) 志,判斷binary_index>l ;若大于1,從加載binary備份分區(qū)啟動,否則從binary分區(qū)啟 動。然后,判斷kernel_flag>0,若大于0,則加載kernel備份分區(qū),否則加載kernel分區(qū), 當(dāng)加載完所有存儲區(qū)域時(shí),完成Linux終端的正常啟動。
[0152] 以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā) 明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技 術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 一種差分包生成方法,其特征在于,包括: 獲取原始軟件包及新版軟件包之間具有差異的差異信息,根據(jù)所述差異信息生成升級 腳本文件; 根據(jù)所述差異信息制作差異文件的補(bǔ)丁文件; 獲取鏡像文件及升級標(biāo)志信息,將所述升級腳本文件、補(bǔ)丁文件、鏡像文件及升級標(biāo)志 信息打包成差分包。2. 如權(quán)利要求1所述的差分包生成方法,其特征在于,所述獲取原始軟件包及新版軟 件包之間具有差異的差異信息,根據(jù)所述差異信息生成升級腳本文件的步驟包括: 獲取新版軟件包相對于原始軟件包所添加的文件、所述新版軟件包相對于原始軟件包 所刪除的文件以及所述新版軟件包與原始軟件包之間文件內(nèi)容具有差異的差異文件; 對所添加的文件、所刪除的文件及差異文件進(jìn)行歸類,將歸類后的所有文件生成升級 腳本文件。3. -種升級方法,應(yīng)用于Linux終端中,其特征在于,所述升級方法包括以下步驟: 劃分Linux終端中的存儲區(qū),并對所述存儲區(qū)進(jìn)行備份; 下載差分包并獲取原始軟件包,將所述差分包及原始軟件包整合為升級包; 獲取所述升級包中的升級標(biāo)志信息,根據(jù)所述升級標(biāo)志信息及升級包將引導(dǎo)加載程序 更新到所述存儲區(qū)或已備份的存儲區(qū),以進(jìn)行軟件升級。4. 如權(quán)利要求3所述的升級方法,其特征在于,所述下載差分包并獲取原始軟件包,將 所述差分包及原始軟件包整合為升級包的步驟包括: 解壓所述差分包,得到升級腳本文件; 獲取原始軟件包,根據(jù)所述升級腳本文件及原始軟件包合成一合成軟件包; 根據(jù)所述升級腳本文件獲取第一差異文件,并獲取所述合成軟件包與所述原始軟件包 之間的第二差異文件; 判斷所述第一差異文件與所述第二差異文件是否相等; 若是,整合所述合成軟件包,得到所述升級包。5. 如權(quán)利要求3所述的升級方法,其特征在于,所述獲取所述升級包中的升級標(biāo)志信 息,根據(jù)所述升級標(biāo)志信息及升級包將引導(dǎo)加載程序更新到所述存儲區(qū)或已備份的存儲 區(qū),以進(jìn)行軟件升級的步驟之后包括: 當(dāng)重啟所述Linux終端后,根據(jù)所述升級標(biāo)志信息加載所述存儲區(qū)或已備份的存儲 區(qū)。6. -種生成裝置,其特征在于,所述生成裝置包括: 生成模塊,用于獲取原始軟件包及新版軟件包之間具有差異的差異信息,根據(jù)所述差 異信息生成升級腳本文件; 制作模塊,用于根據(jù)所述差異信息制作差異文件的補(bǔ)丁文件; 打包模塊,用于獲取鏡像文件及升級標(biāo)志信息,將所述升級腳本文件、補(bǔ)丁文件、鏡像 文件及升級標(biāo)志信息打包成差分包。7. 如權(quán)利要求6所述的生成裝置,其特征在于,所述生成模塊包括: 獲取單元,用于獲取新版軟件包相對于原始軟件包所添加的文件、所述新版軟件包相 對于原始軟件包所刪除的文件以及所述新版軟件包與原始軟件包之間文件內(nèi)容具有差異 的差異文件; 生成單元,用于對所添加的文件、所刪除的文件及差異文件進(jìn)行歸類,將歸類后的所有 文件生成升級腳本文件。8. -種Linux終端,其特征在于,所述Linux終端包括: 劃分模塊,用于劃分Linux終端中的存儲區(qū),并對所述存儲區(qū)進(jìn)行備份; 整合模塊,用于下載差分包并獲取原始軟件包,將所述差分包及原始軟件包整合為升 級包; 更新模塊,用于獲取所述升級包中的升級標(biāo)志信息,根據(jù)所述升級標(biāo)志信息及升級包 將引導(dǎo)加載程序更新到所述存儲區(qū)或已備份的存儲區(qū),以進(jìn)行軟件升級。9. 如權(quán)利要求8所述的Linux終端,其特征在于,所述整合模塊包括: 解壓單元,用于解壓所述差分包,得到升級腳本文件; 合成單元,用于獲取原始軟件包,根據(jù)所述升級腳本文件及原始軟件包合成一合成軟 件包; 獲取單元,用于根據(jù)所述升級腳本文件獲取第一差異文件,并獲取所述合成軟件包與 所述原始軟件包之間的第二差異文件; 判斷單元,用于判斷所述第一差異文件與所述第二差異文件是否相等; 整合單元,用于若是,整合所述合成軟件包,得到所述升級包。10. 如權(quán)利要求8所述的Linux終端,其特征在于,所述Linux終端還包括加載模塊,用 于當(dāng)重啟所述Linux終端后,根據(jù)所述升級標(biāo)志信息加載所述存儲區(qū)或已備份的存儲區(qū)。
【專利摘要】本發(fā)明公開了一種差分包生成方法,包括:獲取原始軟件包及新版軟件包之間具有差異的差異信息,根據(jù)所述差異信息生成升級腳本文件;根據(jù)所述差異信息制作差異文件的補(bǔ)丁文件;獲取鏡像文件及升級標(biāo)志信息,將所述升級腳本文件、補(bǔ)丁文件、鏡像文件及升級標(biāo)志信息打包成差分包。本發(fā)明還公開了一種升級方法、生成裝置及Linux終端。本發(fā)明能夠減少升級所需的下載時(shí)間,且差分包相對占用較小的存儲空間,有效提高軟件升級效率。
【IPC分類】G06F9/445
【公開號】CN105468396
【申請?zhí)枴緾N201410461107
【發(fā)明人】曾慶忠, 孫銘
【申請人】深圳Tcl數(shù)字技術(shù)有限公司
【公開日】2016年4月6日
【申請日】2014年9月11日