亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于Android平臺(tái)的系統(tǒng)固件定制的方法和Android設(shè)備與流程

文檔序號(hào):12463109閱讀:221來源:國知局
基于Android平臺(tái)的系統(tǒng)固件定制的方法和Android設(shè)備與流程

本發(fā)明涉及通信領(lǐng)域,更具體地說,涉及一種基于Android平臺(tái)的系統(tǒng)固件定制的方法。



背景技術(shù):

Android平臺(tái)代碼編譯后,按照目錄要求經(jīng)一系列的編譯后生成的lib、so、圖片、鈴聲等文件,按照ext4格式打包成對(duì)應(yīng)的img文件。此方式要求特定的編譯環(huán)境,Android目前限定是在64位ubuntu14.04(或更新的版本)、內(nèi)存8G、磁盤空間100G的機(jī)器上。

目前手機(jī)系統(tǒng)開發(fā)者是直接提供打包好的系統(tǒng)固件給用戶使用,也就是又開發(fā)者編譯好平臺(tái)代碼后提供給用戶,如果用戶想要做一些和硬件平臺(tái)無關(guān)的定制,如更改開機(jī)動(dòng)畫、預(yù)裝應(yīng)用、系統(tǒng)設(shè)置等,就需要再次由手機(jī)系統(tǒng)開發(fā)者進(jìn)行相應(yīng)的更改后重新編譯打包,這樣就造成以下兩個(gè)問題,第一:重新編譯打包的系統(tǒng)固件發(fā)布,需要按照標(biāo)準(zhǔn)的工作流程,雖然編譯過程本身不復(fù)雜,但是耗時(shí)約一個(gè)小時(shí),開發(fā)者與用戶之間的交流溝通也需要時(shí)間,總體比較費(fèi)時(shí);第二:系統(tǒng)固件版本維護(hù)成本高,后續(xù)維護(hù)需要具有一定經(jīng)驗(yàn)的程序員或者團(tuán)隊(duì)來維護(hù)用戶需求。

公告號(hào)為CN104461533A的中國發(fā)明專利申請(qǐng),公開了“一種基于Marvell LTE平臺(tái)的系統(tǒng)固件定制方法”,其通過剝離Marvell LTE平臺(tái)的打包工具,形成為打包模塊集成到自己編寫的系統(tǒng)固件生成工具中,系統(tǒng)固件生成工具通過定制模塊修改編譯好的Android源目錄,最后打包生成定制的系統(tǒng)固件。此種方法存在著以下缺陷,第一:對(duì)于非Marvell LTE平臺(tái),此打包模塊不具普遍性;第二:需要龐大的源目錄作為打包基礎(chǔ),打包過程耗時(shí)且固件包較大不便傳輸。第三:對(duì)于定制商業(yè)用途的系統(tǒng)固件,開放源目錄具有可能會(huì)損害商業(yè)利益。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的系統(tǒng)固件定制方法需要龐大的源目錄作為打包基礎(chǔ)、打包過程耗時(shí)且固件包較大不便傳輸?shù)娜毕?,提供一種基于Android平臺(tái)的系統(tǒng)固件定制的方法。

本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:提供一種基于Android平臺(tái)的系統(tǒng)固件定制的方法,包括如下步驟:

步驟A、根據(jù)需要更改在定制目錄模板下的文件;

步驟B、設(shè)置recovery升級(jí)配置文件;

步驟C、將定制目錄模板打包成img格式文件;

步驟D、將步驟C生成的img格式文件和步驟B的升級(jí)配置文件打包并簽名,生成最終的定制包。

在本發(fā)明所述的基于Android平臺(tái)的系統(tǒng)固件定制的方法中,步驟D中采用定制包生成腳本來生成定制包,腳本的輸入?yún)?shù)包括定制目錄路徑、版本號(hào)及簽名信息。

在本發(fā)明所述的基于Android平臺(tái)的系統(tǒng)固件定制的方法中,其中,所述定制包生成腳本在linux平臺(tái)上運(yùn)行。

在本發(fā)明所述的基于Android平臺(tái)的系統(tǒng)固件定制的方法中,所述定制目錄模板下的文件包括:開機(jī)動(dòng)畫定制文件、白名單定制文件、系統(tǒng)設(shè)置定制文件、預(yù)裝應(yīng)用定制文件、預(yù)裝應(yīng)用動(dòng)態(tài)庫定制文件、序列號(hào)定制文件、內(nèi)核開機(jī)動(dòng)畫定制文件和系統(tǒng)顯示及型號(hào)定制文件中的一種或多種。

在本發(fā)明所述的基于Android平臺(tái)的系統(tǒng)固件定制的方法中,步驟A中所述更改包括替換、增加和/或減少文件。

在本發(fā)明所述的基于Android平臺(tái)的系統(tǒng)固件定制的方法中,包括

步驟E、將生成的定制包存儲(chǔ)到指定的路徑下;

步驟F、將定制包通過recovery模式燒寫到Android設(shè)備中,以更新所述Android設(shè)備到新的定制狀態(tài)。

在本發(fā)明所述的基于Android平臺(tái)的系統(tǒng)固件定制的方法中,包括:

所述步驟A中,將定制目錄模板下原來的開關(guān)機(jī)動(dòng)畫文件替換為新的開關(guān)機(jī)動(dòng)畫文件,以更改開機(jī)動(dòng)畫;

和/或

在所述步驟A中,將需預(yù)裝的至少一個(gè)apk拷貝到定制目錄模板下存放預(yù)裝apk的目錄下,以增加預(yù)裝apk。

在本發(fā)明所述的基于Android平臺(tái)的系統(tǒng)固件定制的方法中,步驟C中生成的img格式文件包括:

超級(jí)塊:用于保存塊個(gè)數(shù)、塊數(shù)據(jù)索引和當(dāng)前分區(qū)數(shù)據(jù)的有效性信息;

塊索引:用于保存塊類型、塊內(nèi)容的起始位置和塊內(nèi)容的長度;

塊內(nèi)容:用于保存文件名、文件內(nèi)容和文件路徑;及

校驗(yàn)塊:用于保存對(duì)整個(gè)img文件進(jìn)行sha-1校驗(yàn)的校驗(yàn)和,所述校驗(yàn)塊在定制分區(qū)結(jié)尾預(yù)留的32個(gè)字節(jié)中。

在本發(fā)明所述的基于Android平臺(tái)的系統(tǒng)固件定制的方法中,步驟F中,所述將定制包通過recovery模式燒寫到Android設(shè)備中包括:通過recovery升級(jí)模式燒寫定制包到Android設(shè)備的定制分區(qū);且,

所述方法還包括:

步驟G、所述Android設(shè)備重啟后檢測(cè)所述定制分區(qū)是否有改動(dòng),并當(dāng)檢測(cè)到定制分區(qū)有改動(dòng)時(shí)提取定制信息。

本發(fā)明解決其技術(shù)問題所采用的另一技術(shù)方案是:構(gòu)造一種Android設(shè)備,所述Android設(shè)備的存儲(chǔ)裝置上設(shè)置有用于存儲(chǔ)定制信息的定制分區(qū),且所述Android設(shè)備還設(shè)置有用于在重啟時(shí)檢測(cè)所述定制分區(qū)中的定制信息是否有改動(dòng),并當(dāng)檢測(cè)到有改動(dòng)時(shí)提取定制信息的檢測(cè)及提取裝置。

實(shí)施本發(fā)明,具有以下有益效果:僅對(duì)要定制的部分進(jìn)行打包,生成定制包更小,方便傳輸和存儲(chǔ)。定制過程不需要使用源目錄,更加安全高效。即,不需要重新編譯Android平臺(tái)代碼和打包源目錄,就可以完成與硬件平臺(tái)無關(guān)的系統(tǒng)定制。而且,本發(fā)明的方法具有普遍性,基于Android平臺(tái)的固件定制都適用。

附圖說明

下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中:

圖1是本發(fā)明基于Android平臺(tái)的系統(tǒng)固件定制的方法的流程圖;

圖2是本發(fā)明基于Android平臺(tái)的系統(tǒng)固件定制的方法的一實(shí)施例的流程圖;

圖3是本發(fā)明基于Android平臺(tái)的系統(tǒng)固件定制的方法中采用的文件系統(tǒng)的結(jié)構(gòu)圖。

具體實(shí)施方式

如圖1所示,本發(fā)明基于Android平臺(tái)的系統(tǒng)固件定制的方法包括如下步驟:

步驟A、根據(jù)需要更改在定制目錄模板下的文件。

步驟B、設(shè)置recovery升級(jí)配置文件。

步驟C、將定制目錄模板打包成img格式文件,該打包操作可由腳本執(zhí)行。

步驟D、將步驟C生成的img格式文件和步驟B的升級(jí)配置文件打包并簽名,生成最終的定制包。

Recovery升級(jí)配置文件負(fù)責(zé)對(duì)目錄模板生成的定制包進(jìn)行識(shí)別,只要使用配套的recovery設(shè)置,就能對(duì)定制包識(shí)別,跟某種具體Android設(shè)備無關(guān)。另外,有關(guān)步驟B、C的執(zhí)行順序,既可先執(zhí)行步驟B,也可先執(zhí)行步驟C。

本發(fā)明所述recovery升級(jí)配置文件包括updater-script文件,updater-script是Android設(shè)備刷入系統(tǒng)時(shí)的腳本文件,由其來決定Android需要刷入哪些內(nèi)容、如何刷入,是Android設(shè)備刷機(jī)必不可少的文件。在本發(fā)明的各個(gè)實(shí)施例中,為了配合系統(tǒng)固件定制的方法,對(duì)該文件的設(shè)置做了改進(jìn),配置其作用為:將定制目錄模板打包生成的img格式文件提取到Android設(shè)備中的一個(gè)定制分區(qū),當(dāng)然,如沒有該定制分區(qū)則需事先創(chuàng)建該分區(qū)。

如圖2所示,在本發(fā)明的實(shí)施例中,本發(fā)明基于Android平臺(tái)的系統(tǒng)固件定制的方法除了包括圖1所示的步驟A至步驟D外,還包括:

步驟E、將生成的定制包存儲(chǔ)到指定的路徑下;

步驟F、將定制包通過recovery模式燒寫到Android設(shè)備中,以更新所述Android設(shè)備到新的定制狀態(tài);

步驟G、Android設(shè)備檢測(cè)定制分區(qū)的改動(dòng),以及提取定制信息。

需要說明的是,當(dāng)改變定制信息時(shí),定制分區(qū)隨之改動(dòng)。例如,可通過定制包的版本號(hào)來標(biāo)識(shí)定制分區(qū)的改動(dòng)。在一個(gè)實(shí)例中,每個(gè)定制包都保存著一個(gè)唯一的版本號(hào)。每次開機(jī)時(shí)會(huì)將定制分區(qū)的版本號(hào)和系統(tǒng)屬性里的版本號(hào)作比較,如果相同,則不進(jìn)行定制,正常開機(jī),如果不同,則從定制分區(qū)中提取定制信息,進(jìn)行系統(tǒng)定制,并將定制分區(qū)的版本號(hào)覆蓋寫入到系統(tǒng)屬性值里。即通過系統(tǒng)屬性值里的版本號(hào)和定制分區(qū)里的版本號(hào)來識(shí)別是否有改動(dòng)。

在本發(fā)明的一個(gè)實(shí)施例中,采用的定制目錄模板的結(jié)構(gòu)如下:

定制目錄模板:

其左邊是定制目錄模板,右邊是對(duì)定制目錄的說明/解釋。該定制目錄模板下包括的文件有:開機(jī)動(dòng)畫定制文件、白名單定制文件、系統(tǒng)設(shè)置定制文件、預(yù)裝應(yīng)用定制文件、預(yù)裝應(yīng)用動(dòng)態(tài)庫定制文件、序列號(hào)定制文件、內(nèi)核開機(jī)動(dòng)畫定制文件和系統(tǒng)顯示及型號(hào)定制文件。需要說明的是,本發(fā)明不限于此,在本發(fā)明的其他實(shí)施例中,定制目錄模板下的文件可包括上述定制文件中的一種或多種,即比上述實(shí)施例更多或更少的文件,也可包括其他類型的定制文件。

此外,步驟A中更改在定制目錄模板下的文件包括替換、增加和/或減少(即刪除一部分原來的定制文件)定制目錄模板下的文件。對(duì)沒有定制的文件,升級(jí)過程中不會(huì)更改,只會(huì)更新定制包中的內(nèi)容。

在本發(fā)明的各個(gè)實(shí)施例中,步驟D中采用定制包生成腳本來生成定制包,腳本的輸入?yún)?shù)包括定制目錄路徑、版本號(hào)及簽名信息。輸入定制目錄的路徑這個(gè)參數(shù)是為了執(zhí)行步驟C將定制目錄模板打包成img格式文件,輸入是否簽名是為了執(zhí)行步驟D將生成的img格式文件和升級(jí)配置文件打包并簽名。

在這里對(duì)定制包生成腳本做一下說明。

傳統(tǒng)的定制方法主要有兩種:

第一種:對(duì)Android源目錄進(jìn)行更改定制,如替換開機(jī)動(dòng)畫文件,添加或刪除內(nèi)置應(yīng)用等,然后對(duì)更改好的源目錄進(jìn)行打包,生成新的系統(tǒng)固件。

第二種:通過增量包來實(shí)現(xiàn)定制,先通過make otapackage生成一個(gè)未定制ota升級(jí)包,如A.zip,然后對(duì)源目錄進(jìn)行更改定制,再生成一個(gè)修改后的升級(jí)包,如B.zip.然后使用源碼中的ota_from_target_files腳本工具,以A.zip和B.zip作為輸入生成差分增量包update.zip,這樣就實(shí)現(xiàn)了只升級(jí)更改過的那部分內(nèi)容,完成系統(tǒng)的定制。

上述兩種定制方法存在以下缺陷:第一種要重新打包源目錄,費(fèi)時(shí)且生成的是全量升級(jí)包,體積較大不便傳輸,第二種則要打包兩次后還要做差分,操作繁瑣。

本發(fā)明的打包工具具有以下功能:

1、自動(dòng)遍歷目錄模板下的所有文件,通過文件后綴名和文件存放位置匹配不同類型的文件,然后依次解析匹配到的文件的相關(guān)信息,如文件名、文件內(nèi)容、文件的大小等。

2、創(chuàng)建一個(gè)img格式的打包文件,打包文件按照本發(fā)明設(shè)定的文件系統(tǒng)進(jìn)行文件寫入,本發(fā)明的文件系統(tǒng)結(jié)構(gòu)如圖3所示,包括:超級(jí)塊:保存了塊個(gè)數(shù)、塊數(shù)據(jù)索引和當(dāng)前分區(qū)數(shù)據(jù)的有效性信息;塊索引:保存了塊類型、塊內(nèi)容的起始位置和塊內(nèi)容的長度;塊內(nèi)容:保存了文件名、文件內(nèi)容和文件路徑。32B的校驗(yàn)塊:用于對(duì)整個(gè)img文件進(jìn)行sha-1校驗(yàn),校驗(yàn)和保存到定制分區(qū)結(jié)尾預(yù)留的32個(gè)字節(jié)中,其目的是防止篡改。這樣就實(shí)現(xiàn)了對(duì)目錄模板的打包。

本發(fā)明的腳本工具的功能包括:負(fù)責(zé)調(diào)用打包工具打包目錄模板,并添加recovery升級(jí)配置和簽名信息,然后生成最終的定制包。即執(zhí)行圖1所示的步驟C和步驟D。

本發(fā)明基于Android平臺(tái)的系統(tǒng)固件定制的方法與傳統(tǒng)方法的不同之處在于:與上述傳統(tǒng)方法的第一種相比,打包的內(nèi)容不一樣,第一種打包了很多不是定制所需的東西。與上述傳統(tǒng)方法的第二種相比:打包的方式不一樣,第二種通過比較兩次打包的的差異來生成定制包,兩次打包了不是定制必需的東西,且依賴源目錄。

本發(fā)明的方法是將要定制的文件匯總打包,然后通過recovery升級(jí)模式燒寫定制包到Android設(shè)備的定制分區(qū),設(shè)備重啟后會(huì)先檢測(cè)定制分區(qū)是否有改動(dòng),如果改動(dòng)了,則按照定制的文件系統(tǒng)結(jié)構(gòu),從分區(qū)中解析出定制信息進(jìn)行定制,如將內(nèi)置應(yīng)用文件提取到指定位置、設(shè)置設(shè)備型號(hào)等;如果沒改動(dòng),則不對(duì)定制分區(qū)進(jìn)行處理,系統(tǒng)保持原來的定制,正常開機(jī)。

關(guān)于開機(jī)檢測(cè)定制分區(qū)的實(shí)現(xiàn)方式:本發(fā)明的方案中,在Android的框架層(framework層)添加了對(duì)定制分區(qū)的處理程序,主要實(shí)現(xiàn)對(duì)定制分區(qū)的改動(dòng)檢測(cè)和提取定制信息,使分區(qū)中的定制信息真正起效。

在本發(fā)明的一個(gè)實(shí)施例中,Android設(shè)備的存儲(chǔ)裝置上設(shè)置有用于存儲(chǔ)定制信息的定制分區(qū),且該Android設(shè)備還設(shè)置有用于在設(shè)備重啟時(shí)檢測(cè)所述定制分區(qū)中的定制信息是否有改動(dòng),并當(dāng)檢測(cè)到有改動(dòng)時(shí)提取定制信息的檢測(cè)及提取裝置。作為選擇,該檢測(cè)及提取裝置可由上述Android的框架層(framework層)中對(duì)定制分區(qū)的處理程序來實(shí)現(xiàn)。

在本發(fā)明的各個(gè)實(shí)施例中,定制包生成腳本在linux平臺(tái)上運(yùn)行。本發(fā)明的方法中定制包的生成不需要編譯Android平臺(tái)代碼,所以不依賴特定的編譯環(huán)境。本發(fā)明基于Android平臺(tái)的系統(tǒng)固件定制的方法所需的環(huán)境包括:安裝了zip打包工具和java環(huán)境的linux平臺(tái)。

以下是更改系統(tǒng)固件定制的舉例。

首先,設(shè)計(jì)人員實(shí)施步驟A:更改在定制目錄模板下的文件。

例如,當(dāng)用戶想更改開關(guān)機(jī)動(dòng)畫時(shí),把定制目錄模板下原來的開關(guān)機(jī)動(dòng)畫文件替換為新的開關(guān)機(jī)動(dòng)畫文件,然后執(zhí)行定制包生成腳本,腳本的輸入?yún)?shù)包括定制目錄路徑,版本號(hào)和是否簽名。生成的定制包會(huì)存儲(chǔ)到指定的路徑下,完成定制。

又例如,如果用戶想更改預(yù)裝apk,可以將需預(yù)裝apk拷貝到定制目錄模板下存放預(yù)裝apk的目錄,支持同時(shí)更改多個(gè)apk。然后執(zhí)行定制包生成腳本,所需的定制可以先全部更改完成,然后只執(zhí)行一次定制包生成腳本,就可以在制定路徑下生成定制包,完成定制。

再例如,當(dāng)用戶想更改開關(guān)機(jī)動(dòng)畫同時(shí)還要更改預(yù)裝apk,則把定制目錄模板下原來的開關(guān)機(jī)動(dòng)畫文件替換為新的開關(guān)機(jī)動(dòng)畫文件,并將需預(yù)裝apk拷貝到定制目錄模板下存放預(yù)裝apk的目錄,然后執(zhí)行定制包生成腳本。

最后,將定制包通過recovery模式燒寫到Android設(shè)備上,更新設(shè)備到新的定制狀態(tài)。定制包是包含定制目錄下的全部文件和recovery升級(jí)配置文件的一個(gè)文件包。定制包燒寫到Android設(shè)備存儲(chǔ)器后,自動(dòng)執(zhí)行升級(jí)程序。對(duì)沒有定制的文件,升級(jí)過程中不會(huì)更改,只會(huì)更新定制包中的內(nèi)容。

以上實(shí)施例只為說明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng)技術(shù)的人士能夠了解本發(fā)明的內(nèi)容并據(jù)此實(shí)施,并不能限制本發(fā)明的保護(hù)范圍。凡跟本發(fā)明權(quán)利要求范圍所做的均等變化與修飾,均應(yīng)屬于本發(fā)明權(quán)利要求的涵蓋范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1