一種升級包生成方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于操作系統(tǒng)領(lǐng)域,尤其涉及一種升級包生成方法和裝置。
【背景技術(shù)】
[0002]安卓系統(tǒng)Android,是基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機和平板電腦。隨著安卓系統(tǒng)的普及,針對安卓系統(tǒng)開發(fā)的系統(tǒng)程序逐漸
>曰夕O
[0003]對于已開發(fā)的系統(tǒng)程序,可能根據(jù)使用場合的改變,需要升級。但現(xiàn)有技術(shù)提供的升級包制作工具,僅能人工針對每個分區(qū),分別制作升級包;實際應(yīng)用時,由于實際分區(qū)的數(shù)量通常都遠遠多于安卓系統(tǒng)的原生分區(qū)(system, boot, recovery, data, cache等),人工針對每個分區(qū)生成升級包的方式非常繁瑣和耗時。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種升級包生成方法和裝置,以解決現(xiàn)有技術(shù)需人工針對每個分區(qū),人為使用升級包制作工作生成對應(yīng)的升級包,繁瑣而耗時的問題。
[0005]第一方面,本發(fā)明提供一種升級包生成方法,所述升級包生成方法包括:
[0006]獲取分區(qū)表中記錄的分區(qū)名稱;
[0007]判斷目標(biāo)文件包是否包括所述分區(qū)名稱的文件夾;
[0008]如果所述目標(biāo)文件包包括所述分區(qū)名稱的文件夾,則從所述分區(qū)表中獲取與所述分區(qū)名稱對應(yīng)的分區(qū)類型;
[0009]基于與所述分區(qū)名稱對應(yīng)的分區(qū)類型,根據(jù)所述分區(qū)名稱的文件夾生成升級包。
[0010]第二方面,本發(fā)明提供一種升級包生成裝置,所述升級包生成裝置包括分區(qū)名稱獲取單元、第一判斷單元、分區(qū)類型獲取單元和升級包生成單元;
[0011]所述分區(qū)名稱獲取單元用于:獲取分區(qū)表中記錄的分區(qū)名稱;
[0012]所述第一判斷單元用于:判斷目標(biāo)文件包是否包括所述分區(qū)名稱的文件夾;
[0013]所述分區(qū)類型獲取單元用于:如果所述目標(biāo)文件包包括所述分區(qū)名稱的文件夾,則從所述分區(qū)表中獲取與所述分區(qū)名稱對應(yīng)的分區(qū)類型;
[0014]所述升級包生成單元用于:基于與所述分區(qū)名稱對應(yīng)的分區(qū)類型,根據(jù)所述分區(qū)名稱的文件夾生成升級包。
[0015]本發(fā)明的有益效果:對于在目的系統(tǒng)中已設(shè)定的每個分區(qū),預(yù)先在分區(qū)表中記錄該分區(qū)的分區(qū)名稱和分區(qū)類型;在制作升級包的過程中,依次遍歷分區(qū)表中記錄的所有分區(qū)名稱,對于需要升級的分區(qū),基于該分區(qū)的分區(qū)類型生成升級包。整個過程不需要人工參與,并且對于需升級的不同目的系統(tǒng),可根據(jù)該目的系統(tǒng)的分區(qū)類型,調(diào)整分區(qū)表,這樣可自適應(yīng)目的系統(tǒng)的不同分區(qū)方式,更具實用性。
【附圖說明】
[0016]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0017]圖1是本發(fā)明實施例提供的升級包生成方法的工作流程圖;
[0018]圖2是本發(fā)明實施例提供的升級包生成方法的一種優(yōu)化工作流程圖;
[0019]圖3是本發(fā)明實施例提供的升級包生成方法的又一種優(yōu)化工作流程圖;
[0020]圖4是本發(fā)明實施例提供的升級包生成方法的又一種優(yōu)化工作流程圖;
[0021]圖5是本發(fā)明實施例提供的升級包生成方法的又一種優(yōu)化工作流程圖;
[0022]圖6是本發(fā)明實施例提供的升級包生成裝置的組成結(jié)構(gòu);
[0023]圖7是本發(fā)明實施例提供的升級包生成裝置的一種優(yōu)化組成結(jié)構(gòu);
[0024]圖8是本發(fā)明實施例提供的升級包生成裝置的又一種優(yōu)化組成結(jié)構(gòu);
[0025]圖9是本發(fā)明實施例提供的升級包生成裝置的又一種優(yōu)化組成結(jié)構(gòu)。
【具體實施方式】
[0026]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進行說明。
[0027]本發(fā)明實施例以安卓系統(tǒng)為例對本發(fā)明的實施過程進行解釋,當(dāng)然,本發(fā)明提供的升級包生成方法還可適用于其他操作系統(tǒng)。
[0028]在本發(fā)明實施例中,需預(yù)先獲取目標(biāo)文件包;對于某個系統(tǒng)程序而言,需要預(yù)先獲取的目標(biāo)文件包包括:本次升級成功后,執(zhí)行升級成功后的該系統(tǒng)程序所需的所有文件。
[0029]在本發(fā)明實施例中,目標(biāo)文件包、原始文件包以及升級包中的一種或多種為由數(shù)據(jù)組成的包。優(yōu)選的,目標(biāo)文件包、原始文件包以及升級包均為壓縮包,需得說明的是,對于生成目標(biāo)文件包、原始文件包以及升級包分別采用的壓縮算法,本發(fā)明實施例在此不做限定,對相應(yīng)的解壓縮的算法也不做限定。
[0030]圖1示出了本發(fā)明實施例提供的升級包生成方法的工作流程,為了便于描述,僅TJK出了與本發(fā)明實施例相關(guān)的部分。
[0031]本發(fā)明實施例提供的所述升級包生成方法,如圖1所示,所述升級包生成方法包括步驟Al、步驟A2、步驟A3和步驟A4。
[0032]步驟Al,獲取分區(qū)表中記錄的分區(qū)名稱。
[0033]在本發(fā)明實施例中,所述目標(biāo)文件包中已包括分區(qū)表,該分區(qū)表記錄了:目的系統(tǒng)(該目的系統(tǒng)為需要升級的安卓系統(tǒng))的所有分區(qū)的分區(qū)名稱和分區(qū)類型,以及每個分區(qū)對應(yīng)的分區(qū)節(jié)點。例如,在zip格式的目標(biāo)文件包中設(shè)置recovery文件夾,在該recovery文件夾添加有recovery, fstab文件,該recovery, fstab文件中記錄有本發(fā)明實施例所述的分區(qū)表。
[0034]作為本發(fā)明實施例一【具體實施方式】,所述分區(qū)表的每一行記錄一個分區(qū)的分區(qū)名稱、該個分區(qū)的分區(qū)類型、以及該個分區(qū)的分區(qū)節(jié)點。需說明的是,本發(fā)明實施例所述的分區(qū)包括但不限于:system分區(qū)、boot分區(qū)、recovery分區(qū)、data分區(qū)以及cache分區(qū)等。
[0035]因此,在制作升級包時,按行依次讀取所述分區(qū)表的每一行;針對每一行指定的分區(qū),如需升級,分別制作對應(yīng)的升級文件;將制作的所有升級文件合并,并采用相應(yīng)算法制作升級包。
[0036]步驟A2,判斷目標(biāo)文件包是否包括所述分區(qū)名稱的文件夾。
[0037]在本發(fā)明實施例中,由于與分區(qū)表中記錄的分區(qū)名稱對應(yīng)的分區(qū),不一定都需要升級,因此在制作升級包時,需要遍歷分區(qū)表中的每個分區(qū)名稱,查找目標(biāo)文件中是否具有相同分區(qū)名稱的文件夾。如果在目標(biāo)文件中查找到分區(qū)表中的某個分區(qū)名稱的文件夾,則代表需要對具有該個分區(qū)名稱的分區(qū)進行升級,本發(fā)明需要針對該個分區(qū)制作升級文件,即執(zhí)行步驟A3。
[0038]步驟A3,如果所述目標(biāo)文件包包括所述分區(qū)名稱的文件夾,則從所述分區(qū)表中獲取與所述分區(qū)名稱對應(yīng)的分區(qū)類型。
[0039]在本發(fā)明實施例中,如果執(zhí)行步驟A2并在所述目標(biāo)文件包中找到所述分區(qū)名稱的文件夾,則根據(jù)分區(qū)表確定與該分區(qū)名稱對應(yīng)的分區(qū)類型。
[0040]例如,分區(qū)表的每一行記錄有一個分區(qū)的分區(qū)名稱、該個分區(qū)的分區(qū)類型、以及該個分區(qū)的分區(qū)節(jié)點;因此,如果執(zhí)行步驟A2在所述目標(biāo)文件包找到所述分區(qū)名稱的文件夾,可從分區(qū)表中找到與該分區(qū)名稱對應(yīng)的分區(qū)類型,執(zhí)行步驟A4根據(jù)該分區(qū)類型制作升級文件。
[0041]步驟A4,基于與所述分區(qū)名稱對應(yīng)的分區(qū)類型,根據(jù)所述分區(qū)名稱的文件夾生成升級包。
[0042]在本發(fā)明實施例中,對于需要生成升級文件的分區(qū),待執(zhí)行步驟A3確定出與該分區(qū)的分區(qū)類型之后,基于確定出的該分區(qū)類型執(zhí)行步驟A4,生成與該分區(qū)對應(yīng)的升級文件;這樣,生成的升級文件可適用于該分區(qū)類型。具體在制作升級文件時,至少根據(jù)所述目標(biāo)文件包包含的所述分區(qū)名稱的文件夾生成該升級文件。
[0043]例如,如果需制作全量升級包,則在制作該分區(qū)的升級文件時,需將所述目標(biāo)文件包包含的與該分區(qū)相關(guān)的文件全部復(fù)制到升級文件中。
[0044]再例如,如果需制作增量升級包,則在制作該分區(qū)的升級文件時,需將所述目標(biāo)文件包相對于原始文件包增加的、與該分區(qū)相關(guān)的文件和/或數(shù)據(jù)全部復(fù)制到升級文件中。
[0045]針對每個需要升級的分區(qū)分別制作升級文件之后,根據(jù)制作出的所有升級文件以及升級順序生成升級包。
[0046]具體對于如何制作升級包,需要在升級包中添加的升級程序、腳本,以及執(zhí)行該升級程序、執(zhí)行該腳本所需的環(huán)境和語言,在此不做限定,只要能夠保證以該升級包能夠完成本次升級即可。
[0047]下面結(jié)合全量升級包的制作流程,對本發(fā)明的精神進行詳述,圖2為本發(fā)明實施例在制作全量升級包時提供的升級包生成方法的一種工作流程,為了便于描述,僅示出了與本發(fā)明實施例相關(guān)的部分。
[0048]作為本發(fā)明實施例一實施方式,如圖2所示,在制作全量升級包時,對于步驟A4,即對于所述基于與所述分區(qū)名稱對應(yīng)的分區(qū)類型,根據(jù)所述分區(qū)名稱的文件夾生成升級包這一步驟,具體包括步驟A411、步驟A412、步驟A413、步驟A414和步驟A415。
[0049]步驟A411,判斷與所述分區(qū)名稱對應(yīng)的分區(qū)類型。
[0050]步驟A412,如果與所述分區(qū)名稱對應(yīng)的分區(qū)類型為文件系統(tǒng)分區(qū)類型,則將所述分區(qū)名稱的文件夾復(fù)制到用于制作所述升級包的中間升級包,并在所述中間升級包中添加第一升級腳本,使得在運行所述第一升級腳本時執(zhí)行:在目的系統(tǒng)掛載所述分區(qū)名稱的文件夾,將所述升級包包括的所述分區(qū)名稱的文件夾所包含的所有文件復(fù)制到所述目的系統(tǒng)掛載的所述分區(qū)名稱的文件夾中,對所述目的系統(tǒng)掛載的所述分區(qū)名稱的文件夾及其包含的所有文件分別設(shè)置修改權(quán)限,在所述目的系統(tǒng)卸載所述分區(qū)名稱的文件夾。
[0051 ] 作為步驟A