文件;
[0078]將獲取到的所述恢復(fù)模式下的鏡像文件經(jīng)過(guò)轉(zhuǎn)換處理得到恢復(fù)模式下的虛擬硬盤及內(nèi)核文件;
[0079]將獲取到的所述boot下的鏡像文件經(jīng)過(guò)轉(zhuǎn)換處理得到所述boot下的虛擬硬盤及內(nèi)核文件。
[0080]具體來(lái)說(shuō),由于直接獲取的源文件是鏡像文件,則需要將系統(tǒng)鏡像文件經(jīng)過(guò)轉(zhuǎn)換處理得到系統(tǒng)文件,該轉(zhuǎn)換處理的過(guò)程為將系統(tǒng)文件轉(zhuǎn)換為系統(tǒng)鏡像文件的逆過(guò)程;獲取恢復(fù)模式下的虛擬硬盤及內(nèi)核文件以及開機(jī)模式下的虛擬硬盤及內(nèi)核文件過(guò)程類似。此時(shí)目標(biāo)文件包括:系統(tǒng)文件、恢復(fù)模式下的虛擬硬盤及內(nèi)核文件、boot下的虛擬硬盤及內(nèi)核文件。
[0081]其中,在實(shí)際應(yīng)用中,經(jīng)過(guò)轉(zhuǎn)換處理得到系統(tǒng)文件,具體可以采用如下的實(shí)現(xiàn)方式:
[0082]將獲取到的系統(tǒng)鏡像文件執(zhí)行掛載mount指令得到系統(tǒng)文件。
[0083]此時(shí)的系統(tǒng)鏡像文件為ext4格式的系統(tǒng)鏡像文件。
[0084]其中,在實(shí)際應(yīng)用中,將獲取到的恢復(fù)模式下的鏡像文件經(jīng)過(guò)轉(zhuǎn)換處理得到恢復(fù)模式下的虛擬硬盤文件及內(nèi)核文件,具體可以采用如下的實(shí)現(xiàn)方式:
[0085]從恢復(fù)模式下的鏡像文件讀取出內(nèi)核文件,以及二進(jìn)制的虛擬硬盤文件,并將二進(jìn)制的虛擬硬盤文件轉(zhuǎn)換為文件形式的虛擬硬盤文件。
[0086]具體來(lái)說(shuō),恢復(fù)模式下的鏡像文件不同于系統(tǒng)鏡像文件,其并不是一個(gè)完整的文件系統(tǒng),它是一種操作系統(tǒng)自定義的文件格式,該格式包括了用gzip壓縮過(guò)的內(nèi)核和虛擬硬盤(ramdisk)。因此恢復(fù)模式下的鏡像文件的轉(zhuǎn)換方式跟系統(tǒng)鏡像文件完全不同。
[0087]恢復(fù)模式下的虛擬硬盤文件及內(nèi)核文件,如文件夾RECOVERY包括:文件夾RAMDISK、文件kerne I 等。
[0088]恢復(fù)模式下的鏡像文件如recovery.1mg,先加載該鏡像文件,略過(guò)開頭的2K文件,分別從鏡像文件中將內(nèi)核(kerne I)和二進(jìn)制的虛擬硬盤(RAMDISK)讀取出來(lái),kerne I即為所需的內(nèi)核文件,內(nèi)核文件無(wú)需轉(zhuǎn)換,由于RAMDISK為二進(jìn)制的文件,需要經(jīng)過(guò)轉(zhuǎn)換處理,首先創(chuàng)建RAMDISK文件夾,并切換到此目錄下,通過(guò)gzip命令進(jìn)行解壓縮,然后經(jīng)過(guò)cp1處理獲取最終的文件形式的虛擬硬盤文件,該虛擬硬盤文件包括多個(gè)文件和文件夾。
[0089]現(xiàn)有的windows下的轉(zhuǎn)換方式解出的文件并不完整,且由于操作系統(tǒng)的差異,文件內(nèi)容也會(huì)存在差異,而OTA升級(jí)要求要保持文件的完整性,為此我們可以將上述功能制作一種Iinux工具,通過(guò)該工具將獲取的恢復(fù)模式下的鏡像文件得到恢復(fù)模式下的虛擬硬盤文件及內(nèi)核文件。
[0090]其中,在實(shí)際應(yīng)用中,將獲取到的boot下的鏡像文件經(jīng)過(guò)轉(zhuǎn)換處理得到boot下的虛擬硬盤文件及內(nèi)核文件,具體可以采用如下的實(shí)現(xiàn)方式:
[0091]從boot下的鏡像文件讀取出內(nèi)核文件,以及二進(jìn)制的虛擬硬盤文件,并將二進(jìn)制的虛擬硬盤文件轉(zhuǎn)換為文件形式的虛擬硬盤文件。
[0092]具體來(lái)說(shuō),boot下的虛擬硬盤文件及內(nèi)核文件,如文件夾BOOT包括:文件夾RAMDISK、文件kerne I等,文件夾RECOVERY和文件夾BOOT的區(qū)別是文件夾RAMDISK中的文件不同。
[0093]boot下的鏡像文件如boot, img,先加載該鏡像文件,略過(guò)開頭的2K文件,分別從鏡像文件中將內(nèi)核(kernel)和虛擬硬盤(RAMDISK)讀取出來(lái),kernel S卩為所需的內(nèi)核文件,內(nèi)核文件無(wú)需轉(zhuǎn)換,由于RAMDISK為二進(jìn)制的文件,需要經(jīng)過(guò)轉(zhuǎn)換處理,首先創(chuàng)建RAMDISK文件夾,并切換到此目錄下,通過(guò)gzip命令進(jìn)行解壓縮,然后經(jīng)過(guò)cp1處理獲取最終的文件形式的虛擬硬盤文件。
[0094]boot下的鏡像文件轉(zhuǎn)換處理與恢復(fù)模式下的鏡像文件轉(zhuǎn)換過(guò)程類似。
[0095]圖2A為本發(fā)明系統(tǒng)固件升級(jí)包的生成裝置一實(shí)施例的結(jié)構(gòu)示意圖。如圖2A所示,本實(shí)施例的系統(tǒng)固件升級(jí)包的生成裝置,可以包括:第一獲取模塊201、第二獲取模塊202、第三獲取模塊203和處理模塊204;
[0096]其中,第一獲取模塊201,用于獲取目標(biāo)升級(jí)文件系統(tǒng)中的源文件;所述源文件包括:系統(tǒng)鏡像文件、恢復(fù)模式下的鏡像文件、開機(jī)引導(dǎo)模式boot下的鏡像文件和協(xié)議文件;
[0097]第二獲取模塊202,用于分別獲取與所述目標(biāo)升級(jí)文件系統(tǒng)中的源文件對(duì)應(yīng)的目標(biāo)文件;
[0098]第三獲取模塊203,用于獲取所述目標(biāo)升級(jí)文件系統(tǒng)的配置文件;
[0099]處理模塊204,用于將所述目標(biāo)文件和配置文件打包生成所述目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的無(wú)線下載OTA中間包,并根據(jù)所述OTA中間包生成所述目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA升級(jí)包。
[0100]可選的,作為一種可實(shí)施的方式,所述第一獲取模塊201,具體用于:
[0101]從工廠刷機(jī)包獲取拆分后的系統(tǒng)鏡像文件,并將所述拆分后的系統(tǒng)鏡像文件轉(zhuǎn)換為完整的系統(tǒng)鏡像文件;
[0102]將所述完整的系統(tǒng)鏡像文件轉(zhuǎn)換為四級(jí)擴(kuò)展文件系統(tǒng)ext4格式的系統(tǒng)鏡像文件;或,
[0103]從終端的第一物理分區(qū)中獲取四級(jí)擴(kuò)展文件系統(tǒng)ext4格式的系統(tǒng)鏡像文件。
[0104]可選的,作為一種可實(shí)施的方式,所述第一獲取模塊201,具體用于:
[0105]從工廠刷機(jī)包獲取恢復(fù)模式下的鏡像文件;或,
[0106]從終端的第二物理分區(qū)中獲取恢復(fù)模式下的鏡像文件。
[0107]可選的,作為一種可實(shí)施的方式,所述第一獲取模塊201,具體用于:
[0108]從工廠刷機(jī)包獲取boot下的鏡像文件;或,
[0109]從終端的第三物理分區(qū)中獲取boot下的鏡像文件。
[0110]圖2B為本發(fā)明系統(tǒng)固件升級(jí)包的生成裝置另一實(shí)施例的結(jié)構(gòu)示意圖。在上述實(shí)施例的基礎(chǔ)上,如圖2B所示,本實(shí)施例的第二獲取模塊202,可以包括:
[0111]第一獲取單元,用于將獲取到的所述系統(tǒng)鏡像文件經(jīng)過(guò)轉(zhuǎn)換處理得到系統(tǒng)文件;
[0112]第二獲取單元,用于將獲取到的所述恢復(fù)模式下的鏡像文件經(jīng)過(guò)轉(zhuǎn)換處理得到恢復(fù)模式下的虛擬硬盤文件及內(nèi)核文件;
[0113]第三獲取單元,用于將獲取到的所述boot下的鏡像文件經(jīng)過(guò)轉(zhuǎn)換處理得到所述boot下的虛擬硬盤文件及內(nèi)核文件。
[0114]可選的,作為一種可實(shí)施的方式,所述第一獲取單元,具體用于:
[0115]將獲取到的所述系統(tǒng)鏡像文件執(zhí)行掛載mount指令得到所述系統(tǒng)文件;
[0116]所述第二獲取單元,具體用于:
[0117]從恢復(fù)模式下的鏡像文件讀取出內(nèi)核文件,以及二進(jìn)制的虛擬硬盤文件,并將所述二進(jìn)制的虛擬硬盤文件轉(zhuǎn)換為文件形式的虛擬硬盤文件;
[0118]所述第三獲取單元,具體用于:
[0119]從boot下的鏡像文件讀取出內(nèi)核文件,以及二進(jìn)制的虛擬硬盤文件,并將所述二進(jìn)制的虛擬硬盤文件轉(zhuǎn)換為文件形式的虛擬硬盤文件。
[0120]可選的,作為一種可實(shí)施的方式,所述第三獲取模塊203,還用于:
[0121 ]獲取待升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA中間包;
[0122]所述處理模塊204,具體用于:
[0123]根據(jù)所述OTA中間包生成所述目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA完整升級(jí)包;或,
[0124]根據(jù)所述待升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA中間包和所述目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA中間包,生成所述目標(biāo)升級(jí)文件系統(tǒng)對(duì)應(yīng)的OTA差分升級(jí)包。
[0125]需要說(shuō)明的是,對(duì)于裝置實(shí)施例而言,由于其基本相應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
[0126]圖3為本發(fā)明系統(tǒng)固件升級(jí)包的生成設(shè)備一實(shí)施例的結(jié)構(gòu)示意圖。如圖3所示,本實(shí)施例的系統(tǒng)固件升級(jí)包的生成設(shè)備,可以包括:存儲(chǔ)器301、通信接口 302和處理器303;
[0127]其中,存儲(chǔ)器301,用于存儲(chǔ)程序;具體地,程序可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。存儲(chǔ)器301可能包含隨機(jī)存取存儲(chǔ)器(random access memory,簡(jiǎn)稱RAM),也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。
[0128]通信接口302,用于與其他設(shè)備進(jìn)行通信,如終端;
[0129]處理器303,用于執(zhí)行存儲(chǔ)器存儲(chǔ)的程序,用于執(zhí)行本發(fā)明方法實(shí)施例所提供的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,可參考方法實(shí)施例部分的說(shuō)明,此處不再贅述。
[0130]上述實(shí)施例中的第一獲取模塊、第二獲取模塊、第三獲取模塊