差分包生成方法、升級方法、生成裝置及Linux終端的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種差分包生成方法、升級方法、生成裝置及 Linux終端。
【背景技術(shù)】
[0002] 在嵌入式系統(tǒng)使用的過程中,軟件的維護和升級工作是必不可少的,例如智能電 視在用戶使用過程中,部分在軟件研發(fā)階段未發(fā)現(xiàn)的缺陷會逐漸暴露;或者用戶往往會基 于原有軟件對產(chǎn)品提出新的功能或更高的性能要求,而要解決這些問題,則需要對嵌入式 系統(tǒng)中的軟件進行升級。
[0003] 在嵌入式系統(tǒng)中,現(xiàn)有技術(shù)一般采用全覆蓋的升級方案,即將下載的新版本的軟 件覆蓋老版本的軟件,這種方案需要將新版本的軟件完全下載到本地,下載的時間較長,在 升級的時候?qū)⒄加幂^大的存儲空間,給升級帶來一定的困難。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的主要目的在于解決現(xiàn)有技術(shù)的嵌入式系統(tǒng)的軟件升級下載慢及占用存 儲空間大的技術(shù)問題。
[0005] 為實現(xiàn)上述目的,本發(fā)明提供一種差分包生成方法,包括:
[0006] 獲取原始軟件包及新版軟件包之間具有差異的差異信息,根據(jù)所述差異信息生成 升級腳本文件;
[0007] 根據(jù)所述差異信息制作差異文件的補丁文件;
[0008] 獲取鏡像文件及升級標志信息,將所述升級腳本文件、補丁文件、鏡像文件及升級 標志信息打包成差分包。
[0009] 優(yōu)選地,所述獲取原始軟件包及新版軟件包之間具有差異的差異信息,根據(jù)所述 差異信息生成升級腳本文件的步驟包括:
[0010] 獲取新版軟件包相對于原始軟件包所添加的文件、所述新版軟件包相對于原始 軟件包所刪除的文件以及所述新版軟件包與原始軟件包之間文件內(nèi)容具有差異的差異文 件;
[0011] 對所添加的文件、所刪除的文件及差異文件進行歸類,將歸類后的所有文件生成 升級腳本文件。
[0012] 此外,為實現(xiàn)上述目的,本發(fā)明還提供一種升級方法,應(yīng)用于Linux終端中,其特 征在于,所述升級方法包括以下步驟:
[0013] 劃分Linux終端中的存儲區(qū),并對所述存儲區(qū)進行備份;
[0014] 下載差分包并獲取原始軟件包,將所述差分包及原始軟件包整合為升級包;
[0015] 獲取所述升級包中的升級標志信息,根據(jù)所述升級標志信息及升級包將引導加載 程序更新到所述存儲區(qū)或已備份的存儲區(qū),以進行軟件升級。
[0016] 優(yōu)選地,所述下載差分包并獲取原始軟件包,將所述差分包及原始軟件包整合為 升級包的步驟包括:
[0017] 解壓所述差分包,得到升級腳本文件;
[0018] 獲取原始軟件包,根據(jù)所述升級腳本文件及原始軟件包合成一合成軟件包;
[0019] 根據(jù)所述升級腳本文件獲取第一差異文件,并獲取所述合成軟件包與所述原始軟 件包之間的第二差異文件;
[0020] 判斷所述第一差異文件與所述第二差異文件是否相等;
[0021] 若是,整合所述合成軟件包,得到所述升級包。
[0022] 優(yōu)選地,所述獲取所述升級包中的升級標志信息,根據(jù)所述升級標志信息及升級 包將引導加載程序更新到所述存儲區(qū)或已備份的存儲區(qū),以進行軟件升級的步驟之后包 括:
[0023] 當重啟所述Linux終端后,根據(jù)所述升級標志信息加載所述存儲區(qū)或已備份的存 儲區(qū)。
[0024] 此外,為實現(xiàn)上述目的,本發(fā)明還提供一種生成裝置,其特征在于,所述生成裝置 包括:
[0025] 生成模塊,用于獲取原始軟件包及新版軟件包之間具有差異的差異信息,根據(jù)所 述差異信息生成升級腳本文件;
[0026] 制作模塊,用于根據(jù)所述差異信息制作差異文件的補丁文件;
[0027] 打包模塊,用于獲取鏡像文件及升級標志信息,將所述升級腳本文件、補丁文件、 鏡像文件及升級標志信息打包成差分包。
[0028] 優(yōu)選地,所述生成模塊包括:
[0029] 獲取單元,用于獲取新版軟件包相對于原始軟件包所添加的文件、所述新版軟件 包相對于原始軟件包所刪除的文件以及所述新版軟件包與原始軟件包之間文件內(nèi)容具有 差異的差異文件;
[0030] 生成單元,用于對所添加的文件、所刪除的文件及差異文件進行歸類,將歸類后的 所有文件生成升級腳本文件。
[0031] 此外,為實現(xiàn)上述目的,本發(fā)明還提供一種Linux終端,其特征在于,所述Linux終 端包括:
[0032] 劃分模塊,用于劃分Linux終端中的存儲區(qū),并對所述存儲區(qū)進行備份;
[0033] 整合模塊,用于下載差分包并獲取原始軟件包,將所述差分包及原始軟件包整合 為升級包;
[0034] 更新模塊,用于獲取所述升級包中的升級標志信息,根據(jù)所述升級標志信息及升 級包將引導加載程序更新到所述存儲區(qū)或已備份的存儲區(qū),以進行軟件升級。
[0035] 優(yōu)選地,所述整合模塊包括:
[0036] 解壓單元,用于解壓所述差分包,得到升級腳本文件;
[0037] 合成單元,用于獲取原始軟件包,根據(jù)所述升級腳本文件及原始軟件包合成一合 成軟件包;
[0038] 獲取單元,用于根據(jù)所述升級腳本文件獲取第一差異文件,并獲取所述合成軟件 包與所述原始軟件包之間的第二差異文件;
[0039] 判斷單元,用于判斷所述第一差異文件與所述第二差異文件是否相等;
[0040] 整合單元,用于若是,整合所述合成軟件包,得到所述升級包。
[0041] 優(yōu)選地,所述Linux終端還包括加載模塊,用于當重啟所述Linux終端后,根據(jù)所 述升級標志信息加載所述存儲區(qū)或已備份的存儲區(qū)。,
[0042] 本發(fā)明一種差分包生成方法、升級方法、生成裝置及Linux終端,Linux終端從服 務(wù)器下載差分包,在進行軟件升級時,利用差分包進行升級能夠減少下載時間,且差分包相 對占用較小的存儲空間,能有效提高軟件升級效率,另外,通過對Linux終端的Flash存儲 區(qū)進行劃分并進行備份,能夠確保Linux終端設(shè)備在發(fā)生異常時,例如斷電時仍然可以正 常啟動,提1?系統(tǒng)的性能。
【附圖說明】
[0043] 圖1為本發(fā)明差分包生成方法一實施例的流程示意圖;
[0044] 圖2為圖1中步驟S101的細化流程示意圖;
[0045] 圖3為本發(fā)明升級方法一實施例的流程示意圖;
[0046] 圖4為圖3中步驟S202的細化流程示意圖;
[0047] 圖5為本發(fā)明生成裝置一實施例的功能模塊示意圖;
[0048] 圖6為本發(fā)明Linux終端一實施例的功能模塊示意圖。
[0049] 本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
【具體實施方式】
[0050] 應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0051] 本發(fā)明提供一種差分包生成方法,參照圖1,在一實施例中,該差分包生成方法包 括:
[0052] 步驟S101,獲取原始軟件包及新版軟件包之間具有差異的差異信息,根據(jù)所述差 異信息生成升級腳本文件;
[0053] 本實施例所合成的差分包可用于嵌入式系統(tǒng)的軟件升級。嵌入式系統(tǒng)的終端有很 多,例如智能電視等。
[0054] 本實施例中,按照以下小步驟執(zhí)行:
[0055] 1、創(chuàng)建target(目標),input(輸入),output(輸出)文件夾,將新版軟件包 Vb. tgz拷貝到target文件夾下,原始軟件包Va. tgz拷貝到input文件夾下,分別解壓原始 軟件包及新版軟件包。
[0056] 2、使用diff命令查找出target及input兩文件夾下原始軟件包及新版軟件包的 差異信息。其中,diff命令是嵌入式系統(tǒng)中應(yīng)用的重要的工具,用于比較單個文件或目錄內(nèi) 容差