本發(fā)明涉及信息技術(shù)領(lǐng)域,特別是涉及一種安裝包批量生成方法及裝置。
背景技術(shù):
隨著信息技術(shù)的不斷發(fā)展,各種應(yīng)用程序?qū)映霾桓F,作為各種應(yīng)用程序的應(yīng)用市場(chǎng)也是各種各樣的,為了更好的推廣應(yīng)用程序,應(yīng)用程序開發(fā)商通常會(huì)將應(yīng)用程序的安裝包發(fā)布到不同的應(yīng)用市場(chǎng)中。為了方便后續(xù)統(tǒng)計(jì)不同應(yīng)用市場(chǎng)的下載量、用戶活躍度、使用習(xí)慣等,應(yīng)用程序開發(fā)商通常需要針對(duì)不同應(yīng)用市場(chǎng)生成不同的安裝包,以區(qū)分用戶是通過(guò)哪個(gè)應(yīng)用市場(chǎng)下載的應(yīng)用程序。由于針對(duì)不同應(yīng)用市場(chǎng)的不同安裝包只有少量文件不同,因此在每次應(yīng)用程序發(fā)布時(shí)都需要批量生成相似安裝包。
目前,主要通過(guò)項(xiàng)目構(gòu)建工具批量生成安裝包,即通過(guò)項(xiàng)目構(gòu)建工具調(diào)用軟件開發(fā)工具包(Software Development Kit,SDK)的配置文件構(gòu)建項(xiàng)目,從而生成安裝包。然而,通過(guò)項(xiàng)目構(gòu)建工具生成安裝包每生成一個(gè)安裝包,都需要重新構(gòu)建一次項(xiàng)目,都需要經(jīng)過(guò)資源文件編碼、代碼編譯、壓縮、簽名過(guò)程,一個(gè)10MB左右大小的安裝包的生成時(shí)間需要數(shù)分鐘。若通過(guò)項(xiàng)目構(gòu)建工具批量生成安裝包,會(huì)造成安裝包批量生成過(guò)程耗費(fèi)大量時(shí)間,從而導(dǎo)致安裝包批量生成效率較低。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種安裝包批量生成方法及裝置。主要目的在于能夠提升安裝包批量生成效率。
依據(jù)本發(fā)明一個(gè)方面,提供了一種安裝包批量生成方法,包括:
加載基準(zhǔn)安裝包,所述基準(zhǔn)安裝包用于提供多個(gè)待生成安裝包所需文件的壓縮包;
對(duì)所述基準(zhǔn)安裝包中待修改文件的壓縮包進(jìn)行解壓,并對(duì)所述待修改文件進(jìn)行修改;
對(duì)修改后文件進(jìn)行信息摘要處理,并根據(jù)信息摘要處理結(jié)果,對(duì)信息摘要文件中所述修改后文件原有的信息摘要進(jìn)行更新,所述信息摘要文件用于記錄所述基準(zhǔn)安裝包中多個(gè)文件的信息摘要;
通過(guò)直接獲取未修改文件的壓縮包以及通過(guò)對(duì)所述修改后文件進(jìn)行壓縮處理得到的壓縮包,生成多個(gè)未簽名的安裝包;
通過(guò)更新后的信息摘要文件對(duì)所述多個(gè)未簽名的安裝包進(jìn)行簽名,以批量生成所述多個(gè)待生成安裝包。
進(jìn)一步地,所述對(duì)所述基準(zhǔn)安裝包中待修改文件的壓縮包進(jìn)行解壓之前,所述方法還包括:
獲取預(yù)設(shè)配置文件,所述預(yù)設(shè)配置文件中包括所述基準(zhǔn)安裝包中待修改文件的標(biāo)識(shí)信息以及修改信息;
根據(jù)所述標(biāo)識(shí)信息從所述基準(zhǔn)安裝包中提取待修改文件的壓縮包;
所述對(duì)所述待修改文件進(jìn)行修改包括:
根據(jù)所述修改信息對(duì)所述待修改文件進(jìn)行修改。
進(jìn)一步地,所述通過(guò)更新后的信息摘要文件對(duì)所述多個(gè)未簽名的安裝包進(jìn)行簽名,以批量生成所述多個(gè)待生成安裝包包括:
對(duì)所述更新后的信息摘要文件進(jìn)行簽名處理,得到簽名文件;
將所述簽名文件添加到所述多個(gè)未簽名的安裝包中,以批量生成所述多個(gè)待生成安裝包。
進(jìn)一步地,所述對(duì)修改后文件進(jìn)行信息摘要處理包括:
通過(guò)安全散列SHA-1信息摘要算法,對(duì)修改后文件進(jìn)行信息摘要處理。
進(jìn)一步地,所述對(duì)所述更新后的信息摘要文件進(jìn)行簽名處理,得到簽名文件包括:
加載密鑰文件,所述密鑰文件用于保存簽名所需的私鑰;
通過(guò)所述私鑰和加密算法對(duì)所述更新后的信息摘要文件進(jìn)行加密簽名,得到簽名文件。
進(jìn)一步地,所述通過(guò)所述私鑰和加密算法對(duì)所述更新后的信息摘要文件進(jìn)行加密簽名,得到簽名文件包括:
通過(guò)所述私鑰和非對(duì)稱加密算法對(duì)所述更新后的信息摘要文件進(jìn)行加密簽名,得到簽名文件。
進(jìn)一步地,所述信息摘要文件用于記錄所述基準(zhǔn)安裝包中文件的信息摘要。
依據(jù)本發(fā)明另一個(gè)方面,提供了一種安裝包批量生成裝置,包括:
加載單元,用于加載基準(zhǔn)安裝包,所述基準(zhǔn)安裝包用于提供多個(gè)待生成安裝包所需文件的壓縮包;
解壓?jiǎn)卧?,用于?duì)所述加載單元加載的所述基準(zhǔn)安裝包中待修改文件的壓縮包進(jìn)行解壓;
修改單元,用于對(duì)所述解壓?jiǎn)卧鈮旱乃龃薷奈募M(jìn)行修改;
處理單元,用于對(duì)所述修改單元得到的修改后文件進(jìn)行信息摘要處理;
更新單元,用于根據(jù)所述處理單元的信息摘要處理結(jié)果,對(duì)信息摘要文件中所述修改后文件原有的信息摘要進(jìn)行更新,所述信息摘要文件用于記錄所述基準(zhǔn)安裝包中多個(gè)文件的信息摘要;
生成單元,用于通過(guò)直接獲取未修改文件的壓縮包以及通過(guò)對(duì)所述修改單元得到的所述修改后文件進(jìn)行壓縮處理得到的壓縮包,生成多個(gè)未簽名的安裝包;
簽名單元,用于通過(guò)所述更新單元更新后的信息摘要文件對(duì)所述生成單元生成的多個(gè)未簽名的安裝包進(jìn)行簽名,以批量生成所述多個(gè)待生成安裝包。
進(jìn)一步地,所述裝置還包括:獲取單元與提取單元,
所述獲取單元,用于獲取預(yù)設(shè)配置文件,所述預(yù)設(shè)配置文件中包括所述基準(zhǔn)安裝包中待修改文件的標(biāo)識(shí)信息以及修改信息;
所述提取單元,用于根據(jù)所述獲取單元獲取的標(biāo)識(shí)信息從所述基準(zhǔn)安裝包中提取待修改文件的壓縮包;
所述修改單元,具體用于根據(jù)所述獲取單元獲取的修改信息對(duì)所述待修改文件進(jìn)行修改。
進(jìn)一步地,所述生成單元包括:
處理模塊,用于對(duì)所述更新后的信息摘要文件進(jìn)行簽名處理,得到簽名文件;
添加模塊,用于將所述處理模塊得到的簽名文件添加到所述多個(gè)未簽名的安裝包中,以批量生成所述多個(gè)待生成安裝包。
進(jìn)一步地,所述處理單元,具體用于通過(guò)安全散列SHA-1信息摘要算法,對(duì)修改后文件進(jìn)行信息摘要處理。
進(jìn)一步地,所述處理模塊包括:
加載子模塊,用于加載密鑰文件,所述密鑰文件用于保存簽名所需的私鑰;
加密子模塊,用于通過(guò)所述加載子模塊加載的私鑰和加密算法對(duì)所述更新后的信息摘要文件進(jìn)行加密簽名,得到簽名文件。
進(jìn)一步地,所述加密子模塊,具體用于通過(guò)所述私鑰和非對(duì)稱加密算法對(duì)所述更新后的信息摘要文件進(jìn)行加密簽名,得到簽名文件。
進(jìn)一步地,所述信息摘要文件用于記錄所述基準(zhǔn)安裝包中多個(gè)文件的信息摘要。
本發(fā)明提供的一種安裝包批量生成方法及裝置。與現(xiàn)有技術(shù)通過(guò)項(xiàng)目構(gòu)建工具批量生成安裝包相比,本發(fā)明通過(guò)直接獲取未修改文件的壓縮包以及通過(guò)對(duì)所述修改文件進(jìn)行壓縮壓縮處理得到的壓縮包,生成多個(gè)未簽名的安裝包,實(shí)現(xiàn)了在安裝包生成過(guò)程中僅對(duì)修改的文件進(jìn)行解壓和壓縮,無(wú)需對(duì)未修改文件進(jìn)行解壓和壓縮,減少了安裝包生成過(guò)程中的文件解壓和壓縮時(shí)間。此外通過(guò)僅對(duì)修改后文件進(jìn)行信息摘要處理并根據(jù)信息摘要處理結(jié)果,對(duì)信息摘要文件中所述修改后文件原有的信息摘要進(jìn)行更新,并通過(guò)更新后的信息摘要文件對(duì)所述多個(gè)未簽名的安裝包進(jìn)行簽名,實(shí)現(xiàn)了在安裝包生成過(guò)程中無(wú)需針對(duì)未修改文件進(jìn)行信息摘要處理,縮短了安裝包生成過(guò)程中生成信息摘要的時(shí)間。通過(guò)減少安裝包生成過(guò)程中的文件解壓和壓縮時(shí)間以及通過(guò)縮短安裝包生成過(guò)程中生成信息摘要的時(shí)間,減少了批量生成安裝包所消耗的時(shí)間,從而提升了安裝包批量生成效率。
上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說(shuō)明
通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了本發(fā)明實(shí)施例提供的一種安裝包批量生成方法流程圖;
圖2示出了本發(fā)明實(shí)施例提供的另一種安裝包批量生成方法流程圖;
圖3示出了本發(fā)明實(shí)施例提供的一種安裝包批量生成裝置結(jié)構(gòu)示意圖;
圖4示出了本發(fā)明實(shí)施例提供的另一種安裝包批量生成裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本發(fā)明實(shí)施例提供了一種安裝包批量生成方法,如圖1所示,所述方法包括:
101、加載基準(zhǔn)安裝包。
其中,所述基準(zhǔn)安裝包用于提供多個(gè)待生成安裝包所需文件的壓縮包。即基準(zhǔn)安裝包提供了生成多個(gè)待生成安裝包所需的文件資源。在應(yīng)用程序開發(fā)商發(fā)布應(yīng)用程序時(shí),通常會(huì)需要將應(yīng)用程序發(fā)布到不同的應(yīng)用市場(chǎng)中,為了方便統(tǒng)計(jì)不同的應(yīng)用市場(chǎng)的下載量、用戶習(xí)慣等信息。應(yīng)用程序開發(fā)商通常會(huì)針對(duì)不同的應(yīng)用市場(chǎng)生成不同的安裝包,用以區(qū)分用戶是通過(guò)哪個(gè)應(yīng)用市場(chǎng)下載的應(yīng)用程序。由于同一個(gè)應(yīng)用程序在不同應(yīng)用市場(chǎng)中的安裝包只有少量文件不同,即大部分文件是相同的,因此通??梢赃x取有一個(gè)安裝包作為多個(gè)不同應(yīng)用市場(chǎng)版本安裝包的基準(zhǔn)安裝包,即通過(guò)對(duì)該基準(zhǔn)安裝包添加不同的文件或?qū)ζ渲械奈募M(jìn)行修改以生成針對(duì)不同應(yīng)用市場(chǎng)的安裝包。
102、對(duì)所述基準(zhǔn)安裝包中待修改文件的壓縮包進(jìn)行解壓,并對(duì)所述待修改文件進(jìn)行修改。
其中,應(yīng)用程序的基準(zhǔn)安裝包可以為壓縮狀態(tài)。因此,在進(jìn)行文件修改前,需要將基準(zhǔn)文件包內(nèi)的文件進(jìn)行查詢并找到需要修改的文件,然后選定需修改的文件并對(duì)該文件進(jìn)行解壓。需要說(shuō)明的是,由于文件的解壓過(guò)程的時(shí)間長(zhǎng)度與文件的數(shù)據(jù)量大小有關(guān),因此,不同大小的文件在進(jìn)行解壓的過(guò)程中所需的時(shí)間是不同的。在本步驟中,不需要對(duì)基準(zhǔn)安裝包的全部文件進(jìn)行解壓,而是直接選擇出需要修改的文件,然后僅將該文件解壓即可。
需要說(shuō)明的是,所述對(duì)所述待修改文件進(jìn)行修改的過(guò)程可以為:對(duì)待修改文件中的標(biāo)識(shí)性信息進(jìn)行修改。例如,修改安裝包的渠道版本號(hào)等。
103、對(duì)修改后文件進(jìn)行信息摘要處理,并根據(jù)信息摘要處理結(jié)果,對(duì)信息摘要文件中所述修改后文件原有的信息摘要進(jìn)行更新。
其中,信息摘要文件用于記錄所述基準(zhǔn)安裝包中多個(gè)文件的信息摘要。所述信息摘要可以為一個(gè)數(shù)據(jù)塊的數(shù)字指紋,對(duì)于本發(fā)明實(shí)施例,所述對(duì)修改后文件進(jìn)行信息摘要處理的過(guò)程可以為:對(duì)修改后文件中的數(shù)據(jù)塊進(jìn)行計(jì)算,生成一個(gè)固定唯一數(shù)字指紋。
在本步驟中,根據(jù)修改后的文件進(jìn)行摘要信息處理,并通過(guò)得到的摘要信息對(duì)原安裝包的摘要文件中對(duì)應(yīng)該修改文件的摘要內(nèi)容進(jìn)行修改,進(jìn)而得到更新了修改信息后的信息摘要文件。
104、使用所需文件的壓縮包中未修改文件的壓縮包以及通過(guò)對(duì)所述修改文件進(jìn)行壓縮處理得到的壓縮包,生成多個(gè)未簽名的安裝包。
需要說(shuō)明的是,如果要額外生成新的安裝包,則僅僅需要將本步驟所述的未修改的文件復(fù)制,然后將修改后的文件壓縮至復(fù)制的未修改文件中。由于未修改的文件為壓縮狀態(tài),壓縮狀態(tài)的文件數(shù)據(jù)量要比普通文件的數(shù)據(jù)量小,因此未修改文件的壓縮包的復(fù)制過(guò)程往往很快即可完成。
105、通過(guò)更新后的信息摘要文件對(duì)所述多個(gè)未簽名的安裝包進(jìn)行簽名,以批量生成所述多個(gè)待生成安裝包。
在應(yīng)用程序的安裝過(guò)程中,安裝包需要經(jīng)過(guò)簽名才能被系統(tǒng)識(shí)別安裝,其中所述簽名中包含安裝包的開發(fā)者的密鑰與文件的摘要信息組成,以此方式確保使用者在使用安裝包的過(guò)程中確認(rèn)該安裝包的完整性,并防止安裝包被篡改的可能。因此,任何安裝包在生成的過(guò)程中都需要進(jìn)行簽名,以完成安裝包的生成過(guò)程。
在本步驟中,由于前述步驟中的信息摘要已經(jīng)根據(jù)需要進(jìn)行了修改,因此在進(jìn)行簽名的過(guò)程中需要使用更新后的信息摘要用以生成新的簽名。在生成新的簽名后,使用所述新的簽名對(duì)為簽名的安裝包進(jìn)行簽名。
本發(fā)明實(shí)施例提供的一種安裝包批量生成方法。與現(xiàn)有技術(shù)通過(guò)項(xiàng)目構(gòu)建工具批量生成安裝包相比,本發(fā)明通過(guò)直接獲取未修改文件的壓縮包以及通過(guò)對(duì)所述修改文件進(jìn)行壓縮壓縮處理得到的壓縮包,生成多個(gè)未簽名的安裝包,實(shí)現(xiàn)了在安裝包生成過(guò)程中僅對(duì)修改的文件進(jìn)行解壓和壓縮,無(wú)需對(duì)未修改文件進(jìn)行解壓和壓縮,減少了安裝包生成過(guò)程中的文件解壓和壓縮時(shí)間。此外通過(guò)僅對(duì)修改后文件進(jìn)行信息摘要處理并根據(jù)信息摘要處理結(jié)果,對(duì)信息摘要文件中所述修改后文件原有的信息摘要進(jìn)行更新,并通過(guò)更新后的信息摘要文件對(duì)所述多個(gè)未簽名的安裝包進(jìn)行簽名,實(shí)現(xiàn)了在安裝包生成過(guò)程中無(wú)需針對(duì)未修改文件進(jìn)行信息摘要處理,縮短了安裝包生成過(guò)程中生成信息摘要的時(shí)間。通過(guò)減少安裝包生成過(guò)程中的文件解壓和壓縮時(shí)間以及通過(guò)縮短安裝包生成過(guò)程中生成信息摘要的時(shí)間,減少了批量生成安裝包所消耗的時(shí)間,從而提升了安裝包批量生成效率。
本發(fā)明實(shí)施例提供了另一種安裝包批量生成方法,如圖2所示,所述方法包括:
201、加載基準(zhǔn)安裝包。
其中,所述基準(zhǔn)安裝包用于提供多個(gè)待生成安裝包所需文件的壓縮包。
202、獲取預(yù)設(shè)配置文件。
其中,預(yù)設(shè)配置文件中包括所述基準(zhǔn)安裝包中待修改文件的標(biāo)識(shí)信息以及修改信息。預(yù)設(shè)配置文件是根據(jù)多個(gè)待生成安裝包相對(duì)于基準(zhǔn)安裝包的差異信息進(jìn)行設(shè)置的。因?yàn)椴煌惭b包所需修改的文件是不同的,或是需要對(duì)同一文件進(jìn)行不同的修改,因此,在進(jìn)行修改前需要將首先確認(rèn)哪個(gè)文件是待修改的文件。而確定待修改的文件則需要先獲取所述文件的標(biāo)識(shí)信息,然后根據(jù)標(biāo)識(shí)信息確認(rèn)待修改文件。并根據(jù)修改信息對(duì)待修改文件進(jìn)行修改。
需要說(shuō)明的是,預(yù)設(shè)配置文件的設(shè)置根據(jù)不同的需要進(jìn)行選取。其中所包含的待修改文件的標(biāo)識(shí)信息以及修改信息根據(jù)應(yīng)用程序開發(fā)商的需要自行配置,在此不做具體的限定。
203、根據(jù)所述標(biāo)識(shí)信息從所述基準(zhǔn)安裝包中提取待修改文件的壓縮包。
其中,所述基準(zhǔn)安裝包可以為壓縮狀態(tài)。在本步驟中,基于上述步驟202中所述的標(biāo)識(shí)信息對(duì)待修改文件進(jìn)行提取。由于同一應(yīng)用程序在不同市場(chǎng)所生成的安裝包中,大部分的文件是相同的,只有一少部分的文件是不同的。這類文件通??梢允菫榱四軌虻弥脩魪哪膫€(gè)應(yīng)用商店進(jìn)行下載或是對(duì)用戶習(xí)慣等行為進(jìn)行統(tǒng)計(jì)的信息文件,因此,本步驟中所需進(jìn)行提取的待修改文件應(yīng)該占安裝包文件中的一少部分。
204、對(duì)所述基準(zhǔn)安裝包中待修改文件的壓縮包進(jìn)行解壓,并根據(jù)所述修改信息對(duì)所述待修改文件進(jìn)行修改。
如前述步驟203所述已經(jīng)提取出待修改文件的壓縮包,因此在步驟中需要將所述壓縮包進(jìn)行解壓,并將解壓后的文件通過(guò)前述步驟202中所述的預(yù)配置文件中的修改信息進(jìn)行修改。需要說(shuō)明的是,解壓文件所需的時(shí)間可以由和待解壓文件的數(shù)據(jù)量大小所決定的。即,數(shù)據(jù)量越大的文件,解壓過(guò)程所需的時(shí)間越長(zhǎng);數(shù)據(jù)量越小的文件,解壓過(guò)程所需的時(shí)間越短。因此本步驟中,由于只需要將待修改的文件進(jìn)行解壓,而不需要對(duì)基準(zhǔn)安裝包的全部文件進(jìn)行解壓,而待修改的文件的數(shù)據(jù)量只占基準(zhǔn)安裝包的全部文件的數(shù)據(jù)量的一少部分,進(jìn)而可以得知,本步驟中對(duì)待修改文件的解壓過(guò)程實(shí)際上占用的時(shí)間要比基準(zhǔn)安裝包全部文件解壓所需的時(shí)間相比,要節(jié)省很多時(shí)間。
205、對(duì)修改后文件進(jìn)行信息摘要處理,并根據(jù)信息摘要處理結(jié)果,對(duì)信息摘要文件中所述修改后文件原有的信息摘要進(jìn)行更新。
對(duì)于本發(fā)明實(shí)施例,所述對(duì)修改后文件進(jìn)行信息摘要處理的步驟具體可以為:通過(guò)安全散列(Secure Hash Algorithm-1,SHA-1)信息摘要算法,對(duì)修改后文件進(jìn)行信息摘要處理。所述SHA-1信息摘要算法是SHA信息摘要算法的衍生版本,是一種可以從一個(gè)最大不超過(guò)2的64次冪的字節(jié)數(shù)的數(shù)據(jù)中產(chǎn)生160位的信息摘要的算法。
一般來(lái)說(shuō),信息摘要文件主要用于記錄所對(duì)應(yīng)的安裝包中文件內(nèi)容信息的文件,可以理解為對(duì)安裝包的簡(jiǎn)要介紹文件。因此,當(dāng)安裝包中的文件發(fā)生改變時(shí),對(duì)應(yīng)的信息摘要文件也要進(jìn)行相應(yīng)的修改。因此,在前述步驟對(duì)待修改文件進(jìn)行修改后,需要在本步驟中對(duì)安裝包的信息摘要文件中對(duì)應(yīng)修改文件的信息摘要進(jìn)行相應(yīng)的修改。其中通過(guò)對(duì)修改后的文件進(jìn)行摘要處理,得出修改文件對(duì)應(yīng)的信息摘要。通過(guò)所述修改文件對(duì)應(yīng)的信息摘要,對(duì)原安裝包的原來(lái)的信息摘要文件進(jìn)行修改,得出更新后的信息摘要文件。
206、使用所需文件的壓縮包中未修改文件的壓縮包以及通過(guò)對(duì)所述修改文件進(jìn)行壓縮處理得到的壓縮包,生成多個(gè)未簽名的安裝包。
如步驟206所述,基準(zhǔn)安裝包中,除了待修改文件,剩余的其余文件均為未修改的文件。由于未修改的文件為壓縮狀態(tài),因此本步驟中,若要生成其他額外的安裝包,只需要將未修改文件進(jìn)行復(fù)制即可,無(wú)需進(jìn)行解壓和壓縮過(guò)程。相對(duì)于壓縮和解壓過(guò)程,由于復(fù)制時(shí)未修改文件為壓縮狀態(tài),因此數(shù)據(jù)量并不會(huì)很大。
在得到修改后的文件后,需將修改后的文件進(jìn)行壓縮處理,由于前述步驟已經(jīng)說(shuō)過(guò),待修改文件占整個(gè)安裝包文件的一少部分,因此壓縮的過(guò)程并不會(huì)占用多少時(shí)間。并在得到壓縮后的修改文件后,將其與之前復(fù)制的未修改文件的壓縮包進(jìn)行合并,進(jìn)而生成新的安裝包,即未簽名的安裝包。
207、通過(guò)更新后的信息摘要文件對(duì)所述多個(gè)未簽名的安裝包進(jìn)行簽名,以批量生成所述多個(gè)待生成安裝包。
對(duì)于本發(fā)明實(shí)施例,步驟207具體可以包括:對(duì)所述更新后的信息摘要文件進(jìn)行簽名處理,得到簽名文件;將所述簽名文件添加到所述多個(gè)未簽名的安裝包中,以批量生成所述多個(gè)待生成安裝包。
需要說(shuō)明的是,所述對(duì)所述更新后的信息摘要文件進(jìn)行簽名處理,得到簽名文件的步驟具體可以包括:加載密鑰文件,所述密鑰文件用于保存簽名所需的私鑰;通過(guò)所述私鑰和加密算法對(duì)所述更新后的信息摘要文件進(jìn)行加密簽名,得到簽名文件。
此外,所述通過(guò)所述私鑰和加密算法對(duì)所述更新后的信息摘要文件進(jìn)行加密簽名,得到簽名文件的步驟具體可以包括:通過(guò)所述私鑰和非對(duì)稱加密算法對(duì)所述更新后的信息摘要文件進(jìn)行加密簽名,得到簽名文件。
其中,所述非對(duì)稱加密算法可以選擇RSA算法。該算法由由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。RSA就是他們?nèi)诵帐祥_頭字母拼在一起組成的。RSA算法是一種常用的非對(duì)稱加密算法,常用于加密和數(shù)字簽名。
本發(fā)明實(shí)施例提供的另一種安裝包批量生成方法。與現(xiàn)有技術(shù)通過(guò)項(xiàng)目構(gòu)建工具批量生成安裝包相比,本發(fā)明通過(guò)直接獲取未修改文件的壓縮包以及通過(guò)對(duì)所述修改文件進(jìn)行壓縮壓縮處理得到的壓縮包,生成多個(gè)未簽名的安裝包,實(shí)現(xiàn)了在安裝包生成過(guò)程中僅對(duì)修改的文件進(jìn)行解壓和壓縮,無(wú)需對(duì)未修改文件進(jìn)行解壓和壓縮,減少了安裝包生成過(guò)程中的文件解壓和壓縮時(shí)間。此外通過(guò)僅對(duì)修改后文件進(jìn)行信息摘要處理并根據(jù)信息摘要處理結(jié)果,對(duì)信息摘要文件中所述修改后文件原有的信息摘要進(jìn)行更新,并通過(guò)更新后的信息摘要文件對(duì)所述多個(gè)未簽名的安裝包進(jìn)行簽名,實(shí)現(xiàn)了在安裝包生成過(guò)程中無(wú)需針對(duì)未修改文件進(jìn)行信息摘要處理,縮短了安裝包生成過(guò)程中生成信息摘要的時(shí)間。通過(guò)減少安裝包生成過(guò)程中的文件解壓和壓縮時(shí)間以及通過(guò)縮短安裝包生成過(guò)程中生成信息摘要的時(shí)間,減少了批量生成安裝包所消耗的時(shí)間,從而提升了安裝包批量生成效率。進(jìn)一步地,通過(guò)獲取預(yù)設(shè)配置文件,并根據(jù)其中包含的待修改文件標(biāo)識(shí)信息和修改信息對(duì)基準(zhǔn)安裝包中的文件進(jìn)行修改,確保了對(duì)待修改文件進(jìn)行修改的準(zhǔn)確性。此外,根據(jù)SHA-1信息摘要算法對(duì)修改后文件進(jìn)行信息摘要處理,提高了摘要文件的生成速度,縮短了摘要文件的生成時(shí)間。并通過(guò)私鑰和非對(duì)稱加密算法對(duì)更新后的信息摘要文件進(jìn)行加密簽名,生成簽名文件,確保了文件的安全性。
進(jìn)一步的,作為對(duì)上述圖1所示方法的實(shí)現(xiàn),本發(fā)明實(shí)施例提供了一種安裝包批量生成裝置,如圖3所示,該裝置包括:加載單元31、解壓?jiǎn)卧?2、修改單元33、處理單元34、更新單元35、生成單元36、簽名單元37,其中
加載單元31,可以用于加載基準(zhǔn)安裝包,所述基準(zhǔn)安裝包用于提供多個(gè)待生成安裝包所需文件的壓縮包。
解壓?jiǎn)卧?2,可以用于對(duì)所述加載單元31加載的所述基準(zhǔn)安裝包中待修改文件的壓縮包進(jìn)行解壓。
修改單元33,可以用于對(duì)所述解壓?jiǎn)卧?2解壓的所述待修改文件進(jìn)行修改。
處理單元34,可以用于對(duì)所述修改單元33得到的修改后文件進(jìn)行信息摘要處理。
更新單元35,可以用于根據(jù)所述處理單元34的信息摘要處理結(jié)果,對(duì)信息摘要文件中所述修改后文件原有的信息摘要進(jìn)行更新,所述信息摘要文件用于記錄所述基準(zhǔn)安裝包中多個(gè)文件的信息摘要。
生成單元36,可以用于使用所述所需文件的壓縮包中未修改文件的壓縮包以及通過(guò)對(duì)所述修改單元33得到的所述修改后文件進(jìn)行壓縮處理得到的壓縮包,生成多個(gè)未簽名的安裝包。
簽名單元37,可以用于通過(guò)所述更新單元35更新后的信息摘要文件對(duì)所述生成單元36生成的多個(gè)未簽名的安裝包進(jìn)行簽名,以批量生成所述多個(gè)待生成安裝包。
本發(fā)明實(shí)施例提供的一種安裝包批量生成裝置。所述裝置包括:加載單元,解壓?jiǎn)卧薷膯卧?,處理單元,更新單元,生成單元,簽名單元。與現(xiàn)有技術(shù)通過(guò)項(xiàng)目構(gòu)建工具批量生成安裝包相比,本發(fā)明通過(guò)直接獲取未修改文件的壓縮包以及通過(guò)對(duì)所述修改文件進(jìn)行壓縮壓縮處理得到的壓縮包,生成多個(gè)未簽名的安裝包,實(shí)現(xiàn)了在安裝包生成過(guò)程中僅對(duì)修改的文件進(jìn)行解壓和壓縮,無(wú)需對(duì)未修改文件進(jìn)行解壓和壓縮,減少了安裝包生成過(guò)程中的文件解壓和壓縮時(shí)間。此外通過(guò)僅對(duì)修改后文件進(jìn)行信息摘要處理并根據(jù)信息摘要處理結(jié)果,對(duì)信息摘要文件中所述修改后文件原有的信息摘要進(jìn)行更新,并通過(guò)更新后的信息摘要文件對(duì)所述多個(gè)未簽名的安裝包進(jìn)行簽名,實(shí)現(xiàn)了在安裝包生成過(guò)程中無(wú)需針對(duì)未修改文件進(jìn)行信息摘要處理,縮短了安裝包生成過(guò)程中生成信息摘要的時(shí)間。通過(guò)減少安裝包生成過(guò)程中的文件解壓和壓縮時(shí)間以及通過(guò)縮短安裝包生成過(guò)程中生成信息摘要的時(shí)間,減少了批量生成安裝包所消耗的時(shí)間,從而提升了安裝包批量生成效率。
進(jìn)一步的,作為對(duì)上述圖2所示方法的實(shí)現(xiàn),本發(fā)明實(shí)施例提供了一種安裝包批量生成裝置,如圖4所示,該裝置包括:加載單元41、解壓?jiǎn)卧?2、修改單元43、處理單元44、更新單元45、生成單元46、簽名單元47,其中
加載單元41,可以用于加載基準(zhǔn)安裝包,所述基準(zhǔn)安裝包用于提供多個(gè)待生成安裝包所需文件的壓縮包。
解壓?jiǎn)卧?2,可以用于對(duì)所述加載單元41加載的所述基準(zhǔn)安裝包中待修改文件的壓縮包進(jìn)行解壓。
修改單元43,可以用于對(duì)所述解壓?jiǎn)卧?2解壓的所述待修改文件進(jìn)行修改。
處理單元44,可以用于對(duì)所述修改單元43得到的修改后文件進(jìn)行信息摘要處理。
更新單元45,可以用于根據(jù)所述處理單元44的信息摘要處理結(jié)果,對(duì)信息摘要文件中所述修改后文件原有的信息摘要進(jìn)行更新,所述信息摘要文件用于記錄所述基準(zhǔn)安裝包中多個(gè)文件的信息摘要。
生成單元46,可以用于使用所述所需文件的壓縮包中未修改文件的壓縮包以及通過(guò)對(duì)所述修改單元43得到所述修改后文件進(jìn)行壓縮處理得到的壓縮包,生成多個(gè)未簽名的安裝包。
簽名單元47,可以用于通過(guò)所述更新單元45更新后的信息摘要文件對(duì)所述生成單元46生成的多個(gè)未簽名的安裝包進(jìn)行簽名,以批量生成所述多個(gè)待生成安裝包。
進(jìn)一步的,所述裝置還包括:獲取單元48與提取單元49。
所述獲取單元48,可以用于獲取預(yù)設(shè)配置文件,所述預(yù)設(shè)配置文件中包括所述基準(zhǔn)安裝包中待修改文件的標(biāo)識(shí)信息以及修改信息.
所述提取單元49,可以用于根據(jù)所述獲取單元48獲取的標(biāo)識(shí)信息從所述基準(zhǔn)安裝包中提取待修改文件的壓縮包。
所述修改單元43,可以具體用于根據(jù)所述獲取單元48獲取的修改信息對(duì)所述待修改文件進(jìn)行修改。
進(jìn)一步的,所述生成單元46包括:處理模塊4601與添加模塊4602。
所述處理模塊4601,可以用于對(duì)所述更新后的信息摘要文件進(jìn)行簽名處理,得到簽名文件。
所述添加模塊4602,可以用于將所述處理模塊4601得到的簽名文件添加到所述多個(gè)未簽名的安裝包中,以批量生成所述多個(gè)待生成安裝包。
進(jìn)一步的,所述處理單元44,可以具體用于通過(guò)安全散列SHA-1信息摘要算法,對(duì)修改后文件進(jìn)行信息摘要處理。
進(jìn)一步的,所述所述處理模塊4601包括:加載子模塊460101與加密子模塊460102。
所述加載子模塊460101,可以用于加載密鑰文件,所述密鑰文件用于保存簽名所需的私鑰;
所述加密子模塊460102,可以用于通過(guò)所述加載子模塊460101加載的私鑰和加密算法對(duì)所述更新后的信息摘要文件進(jìn)行加密簽名,得到簽名文件。
進(jìn)一步的,所述加密子模塊460102,可以具體用于通過(guò)所述私鑰和非對(duì)稱加密算法對(duì)所述更新后的信息摘要文件進(jìn)行加密簽名,得到簽名文件。
本發(fā)明實(shí)施例提供的另一種安裝包批量生成裝置。所述裝置包括:加載單元,解壓?jiǎn)卧?,修改單元,處理單元,更新單元,生成單元,簽名單元,獲取單元與提取單元。與現(xiàn)有技術(shù)通過(guò)項(xiàng)目構(gòu)建工具批量生成安裝包相比,本發(fā)明通過(guò)直接獲取未修改文件的壓縮包以及通過(guò)對(duì)所述修改文件進(jìn)行壓縮壓縮處理得到的壓縮包,生成多個(gè)未簽名的安裝包,實(shí)現(xiàn)了在安裝包生成過(guò)程中僅對(duì)修改的文件進(jìn)行解壓和壓縮,無(wú)需對(duì)未修改文件進(jìn)行解壓和壓縮,減少了安裝包生成過(guò)程中的文件解壓和壓縮時(shí)間。此外通過(guò)僅對(duì)修改后文件進(jìn)行信息摘要處理并根據(jù)信息摘要處理結(jié)果,對(duì)信息摘要文件中所述修改后文件原有的信息摘要進(jìn)行更新,并通過(guò)更新后的信息摘要文件對(duì)所述多個(gè)未簽名的安裝包進(jìn)行簽名,實(shí)現(xiàn)了在安裝包生成過(guò)程中無(wú)需針對(duì)未修改文件進(jìn)行信息摘要處理,縮短了安裝包生成過(guò)程中生成信息摘要的時(shí)間。通過(guò)減少安裝包生成過(guò)程中的文件解壓和壓縮時(shí)間以及通過(guò)縮短安裝包生成過(guò)程中生成信息摘要的時(shí)間,減少了批量生成安裝包所消耗的時(shí)間,從而提升了安裝包批量生成效率。進(jìn)一步地,通過(guò)獲取預(yù)設(shè)配置文件,并根據(jù)其中包含的待修改文件標(biāo)識(shí)信息和修改信息對(duì)基準(zhǔn)安裝包中的文件進(jìn)行修改,確保了對(duì)待修改文件進(jìn)行修改的準(zhǔn)確性。此外,根據(jù)SHA-1信息摘要算法對(duì)修改后文件進(jìn)行信息摘要處理,提高了摘要文件的生成速度,縮短了摘要文件的生成時(shí)間。并通過(guò)私鑰和非對(duì)稱加密算法對(duì)更新后的信息摘要文件進(jìn)行加密簽名,生成簽名文件,確保了文件的安全性。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實(shí)施例中的“第一”、“第二”等是用于區(qū)分各實(shí)施例,而并不代表各實(shí)施例的優(yōu)劣。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說(shuō)明書中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的多個(gè)特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中。可以把實(shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的多個(gè)特征以及如此公開的任何方法或者設(shè)備的多個(gè)過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的安裝包批量生成裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。