一種增量升級的備份方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于android系統(tǒng)的軟件升級領(lǐng)域,尤其涉及一種增量升級的備份方法及
目.ο
【背景技術(shù)】
[0002]增量升級是現(xiàn)在android系統(tǒng)主流的升級方式,其具備體積小,下載速度快等特征。但是,目前的增量升級只支持單向升級,也就是低版本往高版本升級,若用戶升級過后對高版本不滿意的話,是無法回退到之前的低版本的,這時,若用戶需要安裝之前的低版本,則需要對歷史版本做完整的系統(tǒng)備份,而完整的系統(tǒng)備份會占據(jù)大量的磁盤空間,從而造成資源浪費。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實施例提供了一種增量升級的備份方法,旨在解決現(xiàn)有方法在備份歷史版本時需要完整的系統(tǒng)備份,從而導(dǎo)致資源浪費的問題。
[0004]本發(fā)明實施例是這樣實現(xiàn)的,一種增量升級的備份方法,所述方法包括下述步驟:
[0005]在打開增量升級包時,創(chuàng)建備份包,所述增量升級包的信息包括多個系統(tǒng)升級文件與系統(tǒng)升級控制信息文件,所述備份包用于保存系統(tǒng)還原所需的系統(tǒng)還原文件與系統(tǒng)還原控制信息文件;
[0006]根據(jù)所述增量升級包的信息對系統(tǒng)軟件進(jìn)行升級;
[0007]在升級的同時,根據(jù)所述增量升級包的信息以及系統(tǒng)軟件的原有信息對升級前的系統(tǒng)差異文件進(jìn)行備份,生成系統(tǒng)還原文件與系統(tǒng)還原控制信息文件,并保存在所述備份包中;
[0008]在升級結(jié)束后關(guān)閉所述增量升級包;
[0009]在備份結(jié)束后關(guān)閉所述備份包。
[0010]本發(fā)明實施例的另一目的在于提供一種增量升級的備份裝置,所述裝置包括:
[0011]備份包創(chuàng)建單元,用于在打開增量升級包時,創(chuàng)建備份包,所述增量升級包的信息包括多個系統(tǒng)升級文件與系統(tǒng)升級控制信息文件,所述備份包用于保存系統(tǒng)還原所需的系統(tǒng)還原文件與系統(tǒng)還原控制信息文件;
[0012]軟件升級單元,用于根據(jù)所述增量升級包的信息對系統(tǒng)軟件進(jìn)行升級;
[0013]軟件備份單元,用于在升級的同時,根據(jù)所述增量升級包的信息以及系統(tǒng)軟件的原有信息對升級前的系統(tǒng)差異文件進(jìn)行備份,生成系統(tǒng)還原文件與系統(tǒng)還原控制信息文件,并保存在所述備份包中;
[0014]增量升級包關(guān)閉單元,用于在升級結(jié)束后關(guān)閉所述增量升級包;
[0015]備份包關(guān)閉單元,用于在備份結(jié)束后關(guān)閉所述備份包。
[0016]在本發(fā)明實施例中,由于無需對升級前的系統(tǒng)軟件做完整的系統(tǒng)備份,就能根據(jù)備份包以及升級后的系統(tǒng)軟件恢復(fù)為升級前的系統(tǒng)軟件,而備份包占用的內(nèi)存空間與增量升級包占用的內(nèi)存空間基本相同,遠(yuǎn)小于對升級前的系統(tǒng)軟件做完整的系統(tǒng)備份占用的內(nèi)存空間,因此,本申請的備份方法能夠極大節(jié)約存儲空間,提高資源利用率。
【附圖說明】
[0017]圖1是本發(fā)明第一實施例提供的一種增量升級的備份方法的流程圖;
[0018]圖2是本發(fā)明第二實施例提供的一種增量升級的備份裝置的結(jié)構(gòu)圖。
【具體實施方式】
[0019]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0020]本發(fā)明實施例中,在根據(jù)增量升級包的信息對系統(tǒng)軟件進(jìn)行升級的同時,根據(jù)所述增量升級包的信息以及系統(tǒng)軟件的原有信息對升級前的系統(tǒng)差異文件進(jìn)行備份,生成系統(tǒng)還原文件與系統(tǒng)還原控制信息文件,并保存在所述備份包中。
[0021 ] 為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進(jìn)行說明。
[0022]實施例一:
[0023]圖1示出了本發(fā)明第一實施例提供的一種增量升級的備份方法的流程圖,本實施例中,在采用增量升級包對系統(tǒng)軟件進(jìn)行增量升級的同時,根據(jù)增量升級包的信息以及系統(tǒng)軟件的原有信息對升級前的系統(tǒng)軟件信息進(jìn)行備份,詳述如下:
[0024]步驟S11,在打開增量升級包時,創(chuàng)建備份包,所述增量升級包的信息包括多個系統(tǒng)升級文件與系統(tǒng)升級控制信息文件,所述備份包用于保存系統(tǒng)還原所需的系統(tǒng)還原文件與系統(tǒng)還原控制信息文件。
[0025]其中,系統(tǒng)升級文件包括補丁文件和升級文件(如刪除文件列表、新增文件等),系統(tǒng)升級控制信息文件包括運行刪除文件操作、替換文件操作以及新增文件操作所需的腳本文件。
[0026]優(yōu)選地,在打開增量升級包之前,需要對增量升級包進(jìn)行簽名校驗,以判斷該增量升級包是否合法、安全。在打開增量升級包時,同時創(chuàng)建備份包,創(chuàng)建備份包可通過直接復(fù)制增量升級包得到,也可直接通過創(chuàng)建一個空的文件夾作為備份包。若通過直接復(fù)制增量升級包得到,則在備份包被創(chuàng)建之初,其包含的內(nèi)容與增量升級包的完全相同,比如,一個增量升級包通常包括以下內(nèi)容:補丁(Pach)文件、shal值校驗?zāi)_本、刪除文件列表、平臺校驗信息、新增文件夾及在該新增文件夾的新增文件等,則創(chuàng)建的備份包也包括上述內(nèi)容。其中,shal值為文件通過安全哈希算法得到的消息摘要,根據(jù)判斷該shal值是否發(fā)生變化可判斷該shal值對應(yīng)的文件的數(shù)據(jù)是否發(fā)生變化。當(dāng)然,增量升級包還可以包括新增文件腳本文件、新增文件權(quán)限修改腳本文件、刪除文件腳本文件等等,此處不再--列舉。
[0027]步驟S12,根據(jù)所述增量升級包的信息對系統(tǒng)軟件進(jìn)行升級。
[0028]其中,所述根據(jù)所述增量升級包的信息對軟件進(jìn)行升級的步驟具體包括:
[0029]Al、校驗所述增量升級包的平臺信息。該步驟中,校驗增量升級包的平臺信息主要是判斷該增量升級包適用的平臺與將要升級的軟件所處的平臺是否匹配。
[0030]A2、在所述增量升級包的平臺信息與系統(tǒng)軟件當(dāng)前運行的平臺匹配時,采用所述系統(tǒng)升級控制信息文件將所述系統(tǒng)升級文件中包含的新增文件新增至所述系統(tǒng)軟件,將所述系統(tǒng)升級文件包含的補丁文件替換在所述系統(tǒng)軟件中與所述升級文件包含的補丁文件對應(yīng)的補丁文件,以及根據(jù)所述系統(tǒng)升級文件包含的刪除列表中的文件標(biāo)識,刪除所述系統(tǒng)升級文件包含的刪除列表中的文件標(biāo)識對應(yīng)的文件。具體地,在增量升級包的平臺信息與系統(tǒng)軟件當(dāng)前運行的平臺信息相匹配時,依次驗證所有補丁(Pach)的shal值,并在驗證通過時,依次合并所有的pach。其中,pach的shal值為與pach的內(nèi)容對應(yīng)的字符串。
[0031]步驟S13,在升級的同時,根據(jù)所述增量升級包的信息以及系統(tǒng)軟件的原有信息對升級前的系統(tǒng)差異文件進(jìn)行備份,生成系統(tǒng)還原文件與系統(tǒng)還原控制信息文件,并保存在所述備份包中。
[0032]具體地,所述根據(jù)所述增量升級包的信息以及系統(tǒng)軟件的原有信息對升級前的系統(tǒng)差異文件進(jìn)行備份,生成系統(tǒng)還原文件與系統(tǒng)還原控制信息文件,并保存在所述備份包中的步驟具體包括:
[0033]B1、在備份包的刪除列表中記錄所述系統(tǒng)升級文件中包含的新增文件的唯一標(biāo)識;在備份包中存入所述系統(tǒng)軟件中與所述升級文件包含的補丁文件對應(yīng)的補丁文件;在備份包中存入所述系統(tǒng)升級文件包含的刪除列表中的文件標(biāo)識對應(yīng)的文件;其中,上述記錄有新增文件的唯一標(biāo)識的刪除列表、存入的補丁文件、以及存入的文件都屬于系統(tǒng)還原文件。在該步驟中,將系統(tǒng)軟件新增的文件作為備份包中將要刪除的文件;將系統(tǒng)軟件刪除的文件作為備份包中將要新增的文件;將系統(tǒng)文件被替換之前的補丁文件作為備份包的補丁文件。
[0034]B2、在備份包中存入運行刪除文件操作、替換文件操作以及新增文件操作的腳本文件,存入的腳本文件作為系統(tǒng)還原控制信息文件。
[0035]通過上述步驟,使得備份包存儲的補丁不再是高版本的補丁,而是低版本的補丁。
[0036]優(yōu)選地,在所述在備份包中存入所述系統(tǒng)升級文件包含的刪除列表中的文件標(biāo)識對應(yīng)的文件時,包括下述步驟:
[0037]在備份包中存入需要增加的新增文件的權(quán)限值;所述需要增加的新增文件為所述系統(tǒng)升級文件包含的刪除列表中的文件標(biāo)識對應(yīng)的文件。
[0038]該步驟中,系統(tǒng)升級文件包含的刪除列表中的文件標(biāo)識對應(yīng)的文件作為備份包的新增文件,即為從低版本升級到高版本新增的文件,將該新增文件對應(yīng)的權(quán)限修改腳本文件記錄的權(quán)限值,修改為系統(tǒng)升級文件包含的刪除列表中的文件所對應(yīng)的權(quán)限修改腳本文件的權(quán)限值。這樣,當(dāng)系統(tǒng)軟件需要從高版本降為低版本時,可通過備份包中記錄的權(quán)限值對備份包存儲的新增文件執(zhí)行相應(yīng)的操作。
[0039]步驟S14,在升級結(jié)束后關(guān)閉所述增量升級包。
[0040]該步驟中,關(guān)閉增量升級包,升級完成。進(jìn)一步地,可在升級結(jié)束后刪除增量升級包,以減少內(nèi)存占用。
[0041]步驟S15,在備份結(jié)束后關(guān)閉所述備份包。
[0042]在該步驟中,當(dāng)關(guān)閉備份包之后,重新對該備份包執(zhí)行簽名操作,以便后續(xù)升級時對該備份包進(jìn)行簽名校驗。
[0043]本發(fā)明第一實施例中,在根據(jù)增量升級包的信息對軟件進(jìn)行升級的同時,根據(jù)所述增量升級包的信息以及系統(tǒng)軟件的原有信息對升級前的系統(tǒng)差異文件進(jìn)行備份,生成系統(tǒng)還原文件與系統(tǒng)還原控制信息文件,并保存在所述備份包中。即在升級過程中,采用升級包的補丁文件替換系統(tǒng)軟件對應(yīng)的原始文件,并在替換過程中,把將要替換的原始文件保存在備份包中,且所述備份包還存儲有升級后新增的文件的記錄信息,從而實現(xiàn)同時升級和備份的目的。由于無需對升級前的系統(tǒng)軟件做完整的系統(tǒng)備份,就能根據(jù)備份包以及升級后的系統(tǒng)軟件恢復(fù)為升級前的軟件,而備份包占用的內(nèi)存空間與增量升級包占用的內(nèi)存空間基本相同,遠(yuǎn)小于對升級前的系統(tǒng)軟件做完整的系統(tǒng)備份占用的內(nèi)存空間,因此,本申請的備份方法能夠極大節(jié)約存儲空間,提高資源利用率。
[0044]實施例二:
[0045]圖2示出了本發(fā)明第二實施例提供的一種增量升級的備份裝置的結(jié)構(gòu)圖,在本公開中描述的增量升級的備份裝置可以應(yīng)用于諸如數(shù)