對多個apk文件進(jìn)行加固的方法和服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及apk文件的加固技術(shù),具體涉及一種對多個apk文件進(jìn)行加固的方法和服務(wù)器。
【背景技術(shù)】
[0002]apk是AndroidPackage的縮寫,即Android安裝包。Apk文件具有類似于SymbianSis或Sisx的文件格式。通過將apk文件直接傳到Android模擬器或Android手機(jī)中執(zhí)行即可安裝該應(yīng)用程序。
[0003]為了對apk文件本身的內(nèi)容進(jìn)行保護(hù),通常需要將apk文件進(jìn)行加固,加固的過程相當(dāng)于為apk文件做了一層防護(hù),防止別人惡意破解,并且能夠防止病毒和/或廣告植入。
[0004]在現(xiàn)有技術(shù)中,通常需要操作員對apk文件進(jìn)行手動加固。具體地,操作員需首先將待加固的apk文件上傳至用于加固的服務(wù)器端。隨后,在服務(wù)器端對該apk文件進(jìn)行加固,在加固完成后,再從服務(wù)器端下載該已經(jīng)過加固的apk文件。而且,通常在使用前,還要對經(jīng)過加固的apk文件進(jìn)行自動測試,也測試加固后的apk文件的穩(wěn)定性。
[0005]然而,如果需要加固的apk文件比較多,例如,幾十個甚至上百個apk文件需要加固。那么一個一個地手動進(jìn)行操作費(fèi)時費(fèi)力,效率很低。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明提出了一種對多個apk文件進(jìn)行加固的方法和服務(wù)器。
[0007]根據(jù)本發(fā)明的一個方面,提供了一種對多個apk文件進(jìn)行加固的方法,包括:在具有插件的服務(wù)器端接收多個apk文件;在所述服務(wù)器中創(chuàng)建第一任務(wù),并將所述多個apk文件添加至所述第一任務(wù)中;以及運(yùn)行所述第一任務(wù),以利用所述插件對所述多個apk文件進(jìn)行加固。
[0008]根據(jù)一個實(shí)施方式,所述插件為Jenkins插件。
[0009]根據(jù)一個實(shí)施方式,所述插件被配置為調(diào)用所述多個apk文件在加固前和加固后在所述服務(wù)器中的存儲路徑以及用于加固的服務(wù)包和工具包在所述服務(wù)器中的存儲路徑。
[0010]根據(jù)一個實(shí)施方式,運(yùn)行所述第一任務(wù),以利用所述插件對所述多個apk文件進(jìn)行加固包括:通過所述插件調(diào)用所述工具包對所述多個apk文件進(jìn)行簽名;通過所述插件調(diào)用所述服務(wù)包對已簽名的apk文件進(jìn)行加固;以及通過所述插件調(diào)用所述工具包對已加固的apk文件再次進(jìn)行簽名。
[0011]根據(jù)一個實(shí)施方式,采用多線程并行地利用所述插件對所述多個apk文件進(jìn)行加固。
[0012]根據(jù)一個實(shí)施方式,該方法還包括:創(chuàng)建第二任務(wù);以及運(yùn)行所述第二任務(wù),以將通過運(yùn)行所述第一任務(wù)而加固的apk文件發(fā)送給測試端進(jìn)行測試。
[0013]根據(jù)一個實(shí)施方式,該方法還包括:利用所述插件對所述多個apk文件進(jìn)行過濾,以選出具有加固標(biāo)識的apk文件添加至所述第一任務(wù)中。
[0014]根據(jù)本發(fā)明的另一方面,提供了一種對多個apk文件進(jìn)行加固的服務(wù)器,在所述服務(wù)器中具有插件,所述服務(wù)器包括:接收單元,用于接收多個apk文件;創(chuàng)建單元,用于創(chuàng)建第一任務(wù);添加單元,用于將所述多個apk文件添加至所述第一任務(wù)中;以及加固單元,用于運(yùn)行所述第一任務(wù),以利用所述插件對所述多個apk文件進(jìn)行加固。
[0015]根據(jù)一個實(shí)施方式,所述插件為Jenkins插件。
[0016]根據(jù)一個實(shí)施方式,所述插件被配置為調(diào)用所述多個apk文件在加固前和加固后在所述服務(wù)器中的存儲路徑以及用于加固的服務(wù)包和工具包在所述服務(wù)器中的存儲路徑。
[0017]根據(jù)一個實(shí)施方式,所述加固單元包括:簽名子單元,用于通過所述插件調(diào)用所述工具包對所述多個apk文件進(jìn)行簽名;以及加固子單元,用于通過所述插件調(diào)用所述服務(wù)包對已簽名的apk文件進(jìn)行加固,其中所述簽名子單元還用于通過所述插件調(diào)用所述工具包對已加固的apk文件再次進(jìn)行簽名。
[0018]根據(jù)一個實(shí)施方式,所述加固單元采用多線程并行地利用所述插件對所述多個apk文件進(jìn)行加固。
[0019]根據(jù)一個實(shí)施方式,該服務(wù)器還包括:發(fā)送單元,其中所述創(chuàng)建單元還用于創(chuàng)建第二任務(wù),所述發(fā)送單元運(yùn)行所述第二任務(wù),以將通過運(yùn)行所述第一任務(wù)而加固的apk文件發(fā)送給測試端進(jìn)行測試。
[0020]根據(jù)一個實(shí)施方式,該服務(wù)器還包括:過濾單元,用于利用所述插件對所述多個apk文件進(jìn)行過濾,以選出具有加固標(biāo)識的apk文件由所述添加單元添加至所述第一任務(wù)中。
[0021]根據(jù)本發(fā)明所提供的技術(shù)方案,由于服務(wù)器端采用諸如Jenkins的架構(gòu),其具有Jenkins插件,從而使得自動地執(zhí)行多個apk文件的加固過程成為可能。這樣,避免了在需要加固多個apk文件時,只能進(jìn)行手動操作的情況,從而提高了操作效率。
【附圖說明】
[0022]參照附圖來閱讀本發(fā)明的各實(shí)施方式,將更容易理解本發(fā)明的其它特征和優(yōu)點(diǎn),在此描述的附圖只是為了對本發(fā)明的實(shí)施方式進(jìn)行示意性說明的目的,而非全部可能的實(shí)施,并且不旨在限制本發(fā)明的范圍。在附圖中:
[0023]圖1示出了根據(jù)本發(fā)明一個示例性實(shí)施方式對多個apk文件進(jìn)行加固的方法的流程圖;
[0024]圖2示出了根據(jù)本發(fā)明一個示例性實(shí)施方式利用插件對多個apk文件進(jìn)行加固的流程圖;
[0025]圖3示出了根據(jù)本發(fā)明另一示例性實(shí)施方式對多個apk文件進(jìn)行加固的方法的流程圖;
[0026]圖4示出了根據(jù)本發(fā)明另一示例性實(shí)施方式對多個apk文件進(jìn)行加固的方法的流程圖;
[0027]圖5示出了根據(jù)實(shí)施例一的json文件的文件格式;
[0028]圖6示出了根據(jù)實(shí)施例一的加固插件操作界面的一個示例;
[0029]圖7示出了根據(jù)實(shí)施例一顯示存放apk文件的文件夾的界面的一個示例;
[0030]圖8示出了根據(jù)實(shí)施例一的加固插件操作界面的一個示例;
[0031]圖9示出了根據(jù)實(shí)施例一的測試結(jié)果的一個示例;
[0032]圖10示出了根據(jù)實(shí)施例二存放加固包的目錄結(jié)構(gòu)的一個示例;
[0033]圖11示出了根據(jù)實(shí)施例二的加固插件操作界面的一個示例;
[0034]圖12示出了根據(jù)實(shí)施例二顯示存放apk文件的文件夾的界面的一個示例;
[0035]圖13示出了根據(jù)本發(fā)明一個示例性實(shí)施方式對多個apk文件進(jìn)行加固的服務(wù)器的框圖;
[0036]圖14示出了根據(jù)本發(fā)明一個示例性實(shí)施方式的加固單元的框圖;
[0037]圖15示出了根據(jù)本發(fā)明另一示例性實(shí)施方式對多個apk文件進(jìn)行加固的服務(wù)器的框圖;以及
[0038]圖16示出了根據(jù)本發(fā)明另一示例性實(shí)施方式對多個apk文件進(jìn)行加固的服務(wù)器的框圖。
【具體實(shí)施方式】
[0039]現(xiàn)參照附圖對本發(fā)明的實(shí)施方式進(jìn)行詳細(xì)描述。應(yīng)注意,以下描述僅僅是示例性的,而并不旨在限制本發(fā)明,并且為了簡要起見,在以下描述中省略了與現(xiàn)有技術(shù)相同的一些部件的具體描述。此外,在以下描述中,將采用相同的附圖標(biāo)號表示不同附圖中的相同或相似的部件。在以下描述的不同實(shí)施方式中的不同特征,可彼此結(jié)合,以形成本發(fā)明范圍內(nèi)的其他實(shí)施方式。
[0040]圖1示出了根據(jù)本發(fā)明一個示例性實(shí)施方式對多個apk文件進(jìn)行加固的方法的流程圖。如圖1所示,該方法100可包括步驟S110至S130。在步驟S110中,在具有插件的服務(wù)器端接收多個apk文件。根據(jù)本實(shí)施方式,對apk文件進(jìn)行加固的服務(wù)器可采用諸如Jenkins的架構(gòu),其具有Jenkins插件,以使得對多個apk文件的加固能夠成為自動處理過程。因此,可由操作員選中需要進(jìn)行加固的多個apk文件,一次性上傳到該服務(wù)器端。
[0041]在步驟S120中,在該服務(wù)器中創(chuàng)建第一任務(wù),并將所接收的多個apk文件添加至第一任務(wù)中。隨后,在步驟S130中,運(yùn)行該第一任務(wù),以利用該服務(wù)器端的插件對多個apk文件進(jìn)行加固。上述的加固,例如可以從Android安裝包中提取出指定的特征信息。指定的特征信息例如可以是包名、版本號、數(shù)字簽名、AndroidManifest.xml中列出的各模塊的入口信息、Dex文件和ELF文件、Android安裝包目錄下各文件的MD5值等。
[0042]由此,由于服務(wù)器端采用諸如