基于安卓系統(tǒng)的快速寫入flash鏡像的方法
【專利摘要】基于安卓系統(tǒng)的快速寫入flash鏡像的方法,涉及flash芯片,特別涉及基于安桌系統(tǒng)的快速寫入flash鏡像的方法,目的是為了解決現(xiàn)有技術(shù)中寫入flash鏡像緩慢的問題。本發(fā)明的基于安卓系統(tǒng)的快速寫入flash鏡像的方法,包括如下步驟:第一步,制定稀疏分區(qū)及常規(guī)分區(qū)的內(nèi)容;第二步,制作升級腳本,將升級腳本壓縮到壓縮包中形成升級包,并將升級包的路徑及進入安卓系統(tǒng)的升級分區(qū)的指令寫入misc分區(qū);第三步,制作安卓系統(tǒng)除稀疏分區(qū)及空白分區(qū)之外的系統(tǒng)鏡像形成全系統(tǒng)鏡像;第四步,寫程器將全系統(tǒng)鏡像寫入flash芯片;第五步,利用升級腳本引導安卓系統(tǒng)完成對稀疏分區(qū)及空白分區(qū)的格式化。本發(fā)明適用于寫入系統(tǒng)鏡像文件到flash芯片。
【專利說明】基于安卓系統(tǒng)的快速寫入f I ash鏡像的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及flash芯片,特別涉及基于安卓系統(tǒng)的快速寫入flash鏡像的方法。【背景技術(shù)】
[0002]智能電視、手機及PAD等產(chǎn)業(yè)迅猛發(fā)展,操作系統(tǒng)功能不斷增強,產(chǎn)品能搭載的功能與應(yīng)用也越來越多,手機及電視上內(nèi)置的flash容量發(fā)展到了 4G/8G/16G甚至更大,通常flash上多個分區(qū),絕大多數(shù)都采用文件系統(tǒng)如eXt4、ubifs等格式來組織其中的文件數(shù)據(jù)。flash分區(qū)出廠時包含以下幾大類:1)常規(guī)分區(qū):分區(qū)容量跟該分區(qū)預置的數(shù)據(jù)容量相當,這類分區(qū)通常是產(chǎn)品開發(fā)過程中依據(jù)分區(qū)上全部文件的長度來定,有一定量的冗余但不會太多,如system分區(qū),操作系統(tǒng)及根文件分區(qū);2)稀疏分區(qū):表示分區(qū)容量比較大,但出廠預置的內(nèi)容很少,絕大部分空間是空白的,這類分區(qū)出廠后留有大量空白空間,是供用戶安裝程序或程序運行時記錄數(shù)據(jù)使用,典型的分區(qū)是data分區(qū);3)空白分區(qū):表示該分區(qū)出廠時沒有有效數(shù)據(jù),只需要按其需要的文件系統(tǒng)格式化即可,比如cache分區(qū)。生產(chǎn)時,一般都是工廠采用寫程器,在flash貼片前批量將flash整體文件鏡像寫入到flash芯片中,寫程器能一次寫入4至8片flash芯片。而文件系統(tǒng)的特點是將分區(qū)上的數(shù)據(jù)內(nèi)容及數(shù)據(jù)塊按特定的數(shù)據(jù)格式來組織及管理,即便是空白的分區(qū),也需要按文件系統(tǒng)的方法進行格式化,這種“格式化”產(chǎn)生了跟分區(qū)容量相同大小的鏡像文件。所以一個分區(qū)如果很大,而生產(chǎn)時該分區(qū)為空白或有效文件內(nèi)容少,就會造成大量的冗余數(shù)據(jù)被做成鏡像,造成整體flash的文件鏡像很大,如一個4G容量的flash,對應(yīng)要寫入的文件系統(tǒng)鏡像文件是4G,用寫程器燒錄時間可能長達15分鐘。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中寫入flash鏡像緩慢的問題,提供一種快速寫入flash鏡像的方法。
[0004]本發(fā)明的基于安卓(android)系統(tǒng)的快速寫入flash鏡像的方法,包括如下步驟:
[0005]a.制定稀疏分區(qū)及常規(guī)分區(qū)的內(nèi)容,對于稀疏分區(qū),將該分區(qū)上的有效文件做成壓縮包,并將該壓縮包復制到常規(guī)分區(qū),該稀疏分區(qū)不再制作文件系統(tǒng)鏡像,對于常規(guī)分區(qū),則將該分區(qū)文件內(nèi)容按通用方法制作成對應(yīng)文件系統(tǒng)的鏡像;
[0006]b.制作升級腳本,該升級腳本用于flash芯片上電時,引導安卓系統(tǒng)對空白分區(qū)及稀疏分區(qū)進行格式化,將升級腳本壓縮到所述壓縮包中形成升級包,并將升級包的路徑及進入安卓系統(tǒng)的升級分區(qū)的指令寫入misc分區(qū);
[0007]c.制作安卓系統(tǒng)除稀疏分區(qū)及空白分區(qū)之外的系統(tǒng)鏡像形成全系統(tǒng)鏡像;
[0008]d.寫程器將全系統(tǒng)鏡像寫入flash芯片;
[0009]e.利用升級腳本引導安卓系統(tǒng)完成對稀疏分區(qū)及空白分區(qū)的格式化。
[0010]具體地,所述壓縮包為zip格式。
[0011]具體地,步驟e包括如下步驟:[0012]el.將flash芯片上電,引導安卓系統(tǒng)讀取misc分區(qū)中升級包的路徑及進入安卓系統(tǒng)的升級分區(qū)的指令;
[0013]e2.依據(jù)進入安卓系統(tǒng)的升級分區(qū)的指令進入安卓系統(tǒng)的升級分區(qū);
[0014]e3.依據(jù)升級包完成對空白分區(qū)的格式化,將壓縮包釋放到稀疏分區(qū),完成對稀疏分區(qū)的格式化并擦除misc分區(qū)內(nèi)容。
[0015]本發(fā)明的有益效果是:剔除了文件分區(qū)中一種大容量分區(qū),小容量文件的稀疏分區(qū)及空白分區(qū),減少了 flash鏡像容量大小,加快了寫程器燒錄flash芯片過程,在各類安卓智能終端上都具備通用性,在容量越大的flash芯片上,優(yōu)越性越能凸顯。 【具體實施方式】
[0016]下面結(jié)合實施例對本發(fā)明的技術(shù)方案作進一步描述。
[0017]本發(fā)明的基于安卓系統(tǒng)的快速寫入flash鏡像的方法,包括如下步驟:第一步,制定稀疏分區(qū)及常規(guī)分區(qū)的內(nèi)容,對于稀疏分區(qū),將該分區(qū)上的有效文件做成壓縮包,并將該壓縮包復制到常規(guī)分區(qū),該稀疏分區(qū)不再制作文件系統(tǒng)鏡像,對于常規(guī)分區(qū),則將該分區(qū)文件內(nèi)容按通用方法制作成對應(yīng)文件系統(tǒng)的鏡像;第二步,制作升級腳本,該升級腳本用于flash芯片上電時,引導安卓系統(tǒng)對空白分區(qū)及稀疏分區(qū)進行格式化,將升級腳本壓縮到壓縮包中形成升級包,并將升級包的路徑及進入安卓系統(tǒng)的升級分區(qū)的指令寫入misc分區(qū);第三步,制作安卓系統(tǒng)除稀疏分區(qū)及空白分區(qū)之外的系統(tǒng)鏡像形成全系統(tǒng)鏡像;第四步,寫程器將全系統(tǒng)鏡像寫入flash芯片;第五步,利用升級腳本引導安卓系統(tǒng)完成對稀疏分區(qū)及空白分區(qū)的格式化。
[0018]實施例
[0019]安卓系統(tǒng)的NANDFLASH大的分區(qū)包括system、data、cache分區(qū)。出廠時,系統(tǒng)應(yīng)用及數(shù)據(jù)放system分區(qū),預裝的應(yīng)用分區(qū)是data分區(qū),cache分區(qū)供使用過程中系統(tǒng)升級,還有其它較小的分區(qū),如misc分區(qū)在系統(tǒng)需要升級時放置升級命令,升級分區(qū)即recovery分區(qū)是一個小型Iinux內(nèi)核及根文件系統(tǒng)分區(qū),boot分區(qū)是Iinux系統(tǒng)及根文件系統(tǒng)。由于data分區(qū)是應(yīng)用數(shù)據(jù)存儲及安裝區(qū),出廠時會占用大部分空間,cache分區(qū)用于下載升級鏡像,一般也有300M空間左右。
[0020]1、我們將data預裝的內(nèi)容及升級腳本壓縮成zip文件并簽名,放入system分區(qū):
[0021]$ (DATAPART):$(H0ST_0UT_EXECUTABLES)/fs_config$(callintermediates-dir-for,EXECUTABLES, updater)/updater
[0022]$ (hide) (cd$ (PR0DUCT_0UT) &&zip-qry$ (DATAPART) data/) # 文件壓縮
[0023]$ (hide) zipinfo-l$ (PR0DUCT_0UT) /$ (DATAPART) | awk,BEGIN {FS^data"} /data//{prin t"data"$$2}’ |\
[0024]$(H0ST_0UT_EXECUTABLES)/fs_config>$(PR0DUCT_0UT)/data_file_system.cfg
[0025]$ (hide)rm-rf$(PR0DUCT_0UT)/META-1NF
[0026]$ (hide) (mkdir-p$(PR0DUCT_0UT)/META-1NF/com/google/android)
[0027]$ (hide) $ (ACP) $ (cal I intermediates-dir-for, EXECUTABLES, updater) /updater$ (PR0DU CT_0UT)/META-1NF/com/google/android/update-binary
[0028]$ (hide) build/tools/handleperm.sh$ (PR0DUCT_0UT) /data_f ile_system.cfg$ (BUILD—FIRMWARE) >$ (PRODUCT—OUT) /META-1NF/com/google# 升級腳本制作
[0029]/android/updater-script
[0030]$ (hide) (cd$(PRODUCT—OUT)&&zip-q$ (DATAPART)META-1NF/com/google/an droid A)
[0031 ] $ (hide) mv$ (PRODUCT—OUT) /$ (DATAPART)./
[0032]$ (sign-data-package) # 簽名
[0033]2、上述步驟中,升級腳本得出的updater-script如下:
[0034]format ("ext4","EMMC","/dev/block/mmcblk0p7","0");
[0035]mount ("ext4","EMMC","/dev/block/mmcblk0p7","/data");
[0036]package—extract—dir("data","/data");
[0037]format ("ext4","EMMC","/dev/block/mmcblk0p8","0");
[0038]腳本表不系統(tǒng)升級時,將data (/dev/block/mmcblk0p7)及 cache 分區(qū)(/dev/block/mmcblk0p8)格式化,并將步驟I中升級包的data文件夾解壓到data分區(qū)。
[0039]3、將如下命令的文件制作成misc分區(qū):
[0040]boot-recovery
[0041]recovery
[0042]—update—package=/system/chandroid—ota—ZLM41AiJ—datapart.zip
[0043]最終,只需要將boot/system/misc/recovery鏡像制作成FLASH文件鏡像供編程器燒錄即可。
[0044]4、第一次上電,引導分區(qū)讀取misc分區(qū)內(nèi)容,依據(jù)指令boot-recovery便進入升級系統(tǒng),接下來執(zhí)行一updater—pacakge指令,讀取升級包chandroid—ota—ZLM41AiJ—datapart.zip 中腳本 updater-script 內(nèi)容并執(zhí)行。
[0045]通過上述操作,寫程器要寫入的系統(tǒng)鏡像內(nèi)容大大減少,加快了寫程器燒錄flash芯片過程。
【權(quán)利要求】
1.基于安卓系統(tǒng)的快速寫入flash鏡像的方法,其特征在于,包括以下步驟: a.制定稀疏分區(qū)及常規(guī)分區(qū)的內(nèi)容,對于稀疏分區(qū),將該分區(qū)上的有效文件做成壓縮包,并將該壓縮包復制到常規(guī)分區(qū),該稀疏分區(qū)不再制作文件系統(tǒng)鏡像,對于常規(guī)分區(qū),則將該分區(qū)文件內(nèi)容按通用方法制作成對應(yīng)文件系統(tǒng)的鏡像; b.制作升級腳本,該升級腳本用于flash芯片上電時,引導安卓系統(tǒng)對空白分區(qū)及稀疏分區(qū)進行格式化,將升級腳本壓縮到所述壓縮包中形成升級包,并將升級包的路徑及進入安卓系統(tǒng)的升級分區(qū)的指令寫入misc分區(qū); c.制作安卓系統(tǒng)除稀疏分區(qū)及空白分區(qū)之外的系統(tǒng)鏡像形成全系統(tǒng)鏡像; d.寫程器將全系統(tǒng)鏡像寫入flash芯片; e.利用升級腳本引導安卓系統(tǒng)完成對稀疏分區(qū)及空白分區(qū)的格式化。
2.如權(quán)利要求1所述的基于安卓系統(tǒng)的快速寫入flash鏡像的方法,其特征在于,所述壓縮包為zip格式。
3.如權(quán)利要求1所述的基于安卓系統(tǒng)的快速寫入flash鏡像的方法,其特征在于,步驟e包括如下步驟: el.將flash芯片上電,引導安卓系統(tǒng)讀取misc分區(qū)中升級包的路徑及進入安卓系統(tǒng)的升級分區(qū)的指令; e2.依據(jù)進入安卓系統(tǒng)的升級分區(qū)的指令進入安卓系統(tǒng)的升級分區(qū); e3.依據(jù)升級包完成對空白分區(qū)的格式化,將壓縮包釋放到稀疏分區(qū),完成對稀疏分區(qū)的格式化并擦除misc分區(qū)內(nèi)容。
【文檔編號】G06F9/445GK103605540SQ201310577396
【公開日】2014年2月26日 申請日期:2013年11月18日 優(yōu)先權(quán)日:2013年11月18日
【發(fā)明者】周建波 申請人:四川長虹電器股份有限公司