1. 程式人生 > >快速編譯system.img和boot.img的方法

快速編譯system.img和boot.img的方法

快速編譯system.img,可以使用這個命令:

#make systemimage 

快速編譯boot.img,可以使用以下命令:

#make bootimage 

快速編譯userdata.img,可以使用以下命令:

# make userdataimage-nodeps

但是,對於bootimage, 在不改變記憶體佈局的情況下,可以使用以下命令:

#cp ./arch/arm/boot/Image ./arch/arm/boot/kernel

#mkbootimg --kernel ./arch/arm/boot/kernel --ramdisk ../out/target/product/tcc8800/ramdisk.img --cmdline

console=ttyTCC,115200n8 --base 0x40000000 --pagesize 8192 --output ../out/target/product/tcc8800/boot.img

其實這些生成命令都在build/core/Makefile中.

生成boo.img的方法: 

$(INSTALLED_BOOTIMAGE_TARGET):$(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES)

              $(MKBOOTIMG)  $(INTERNAL_BOOTIMAGE_ARGS) --output [email protected]

......

生成system.img的方法:

define build-systemimage-target

     $(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT) $(1)

生成userdata.img的方法

define build-userdataimage-target

mkdir -p $(TARGET_OUT_DATA)

$(MKYAFFS2) -f $(mkyaffs2_extra_flags) $(TARGET_OUT_DATA) $(INSTALLED_USERDATAIMAGE_TARGET)

 同樣,ramdisk.img的生成方法為:

BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img

 INSTALLED_RAMDISK_TARGET := $(BUILT_RAMDISK_TARGET)

$(INSTALLED_RAMDISK_TARGET): $(MKBOOTFS) $(INTERNAL_RAMDISK_FILES) | $(MINIGZIP)

$(MKBOOTFS) $(TARGET_ROOT_OUT) | $(MINIGZIP) > [email protected]

為方便起見,也可以在Makefile中加入以下內容:

BUILT_RAMDISK_TARGET := $(PRODUCT_OUT)/ramdisk.img

.PHONY: ramdiskimage

ramdiskimage: ${BUILT_RAMDISK_TARGET}

然後,就可以輸入:make ramdiskimage 來編譯ramdisk.img檔案了

最簡單的方法是:

  out/host/linux-x86/bin/mkbootfs out/target/product/tcc8900/root |

   out/host/linux-x86/bin/minigzip > out/target/product/tcc8900/ramdisk.img

相關推薦

快速編譯system.imgboot.img方法

快速編譯system.img,可以使用這個命令: #make systemimage  快速編譯boot.img,可以使用以下命令: #make bootimage  快速編譯userdata.img,可以使用以下命令: # make userdataimage-nodeps 但是,對於bootimage,

android系統備份----即提取system.imgboot.img方法!(轉載)

操作條件: 1.安裝好手機的USB驅動2.需要root許可權3.adb環境正式開始提取:1.解壓adbs,放到任意目錄下,比如放到C盤根目錄下2.在windows下開啟cmd命令列,進入到adbs目錄下,即C:\adbs>3.在當前游標下輸入adb devices,

通過ADB命令刷入boot.imgrecovery.img方法

一個完整的官方rom解開如下所示boot.imgsystem.imgrecovery.imghboot.nb0data.imgcache.imgradio.img等等 我們所說的刷機也僅僅是boot.img引導分割槽加上system.img系統分割槽、那麼很多同學卡在第一屏

使用fastboot工具刷入recovery.imgboot.imgsystem.img

解壓FastBoot工具.zip ,將解壓得到的 FastBoot資料夾複製到任意盤如:D盤,,將要刷入手機的recovery.img、recovery.img等放到FastBoot資料夾 安裝好手機型號對應的USB驅動,手機進入fastboot模式 開啟cmd,進

boot.imgrecovery.img結構說明

今天對boot.img和recovery.img結構做了研究,這是一個十分好玩的事情,當然,在android移植和編譯的過程中,也是需要有一定了解的。 Why: 其實為什麼要做這個瞭解呢,起源是源於S-ON的問題,當然,這個是HTC的加密方式,源於硬體,如果還有什麼其他

關於boot.imgrecovery.img的修改編輯

        關於boot.img和recovery.img的編輯和修改方面的文章,希望能夠為感興趣的朋友節約一些看資料的時間。感謝本文的作者:Alansj, DarkriftX, RyeBrye, Will, Try OP9, Tonyb486, Timmmm, Lxr

VC將同一份代碼同時編譯為DllExe的方法

導出函數 接口 bool mod spa 新增 arpspoof 配置 影響 開發中經常遇到這樣的情況,需要開發一個某某功能的接口Dll,但是Dll不能直接調試,你至少需要一個Loader 但是Loader和Dll本身不在同一個工程裏,雖然都在本機的話並不影響源碼級調試,

Java中 System.arraycopy() Arrays.copyOf()方法

index 成員 size obj lis sco 方法測試 新建 -a System.arraycopy() 和 Arrays.copyOf()方法 閱讀源碼的話,我們就會發現 ArrayList 中大量調用了這兩個方法。比如:我們上面講的擴容操作以及add(int in

快速重建system.img方法

每次修改android原始碼後,經歷make的過程 太過漫長,剛才找到一個快速重建 system.img映象檔案的方法: 以修改services模組為例,命令如下:cd frameworks/base/services mm ~/YOUDIR/out/host/linux-x

[Android] 單獨編譯生成boot.img時mkbootfs: No such file or directory解決方法

在一臺沒有安裝Android原始碼編譯環境的64位 Ubuntu14.04.5虛擬機器上嘗試單獨編譯Android用的Linux Kernel。並從編譯好Android原始碼的機器上將out資料夾下的mkbootfs、minigzip、mkbootimg二進位制

Android 原始碼編譯 指定userdata.imgsystem.img、cache.img容量大小【轉】

本文轉載自:https://blog.csdn.net/baodinglaolang/article/details/49791041 修改build/target/board/generic_x86(對應編譯平臺)/BoardConfig.mk檔案BOARD_SYSTEMIMAGE_PARTITION_S

idea怎麼像eclipse一樣騷氣地快速System.out.printlnmain()方法

在eclipse中,我們想打System.out.println()方法,直接輸入syso然後按alt+/聯想然後再按Enter就能打出來,那麼idea怎麼實現這個功能呢? 我們首先開啟File->setting,在搜尋框輸入live,然後找到這個選項: 在右邊選中output選

boot.img解包打包過程

MTK平臺: boot.img打包過程: boot.img=header+kernel+ramdisk.img LK會使用header裡面的引數。 mkbootimg header引數在BoardConfig.mk檔案裡定義:BOARD_KERNEL_BASE = 0x40

boot.img recovery.img ramdisk.img ramdisk-recovery.img 解壓方法

1、下載工具 wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz

android 手機中boot.img基址的計算方法(zz)

boot.img基址 base的計算方法 如果您看這個帖子,沒有耐心的話,我只能對你說,出現任何問題都是你自己的錯,有點耐心繼續 看吧,雖然在文章最後有點邪惡,大家原諒一下!我在工具包中給了一個引數,對於我的GT540肯定沒有什麼問題,但是對於其他手機我不敢保證,所以可能還

android快速打包system.img

修改android的系統模組後, 需要重新生成system.img, 以前我用make systemimage,但是這個過程比較慢。我們通過make輸出的資訊, 找到一個比較快的方法,只編譯模組和生成system.img,省去其它過程,重新生成system.img快了不少。

android system.img,ramdisk.img,boot.img 分析

android 原始碼編譯後得到system.img,ramdisk.img,userdata.img映像檔案。其中, ramdisk.img是emulator的 檔案系統,system.img包括了主要的包、庫等檔案,userdata.img包括了一些使用者資料,emu

android系統映象:boot.img kernel.img ramdisk.img system.img userdata.img cache.img recovery.img

boot.img(kernel.img+ramdisk.img) ramdisk.img(/) system.img(/system) userdata.img(/data) cache.im

android解析 ramdisk.img boot.img system.img

img解析: ramdisk.img:android根檔案系統,在android編譯系統生成的out/target/product/root目錄中 結構: ./init.trout.rc ./default.prop 儲存一些除錯引數,對於開發者相當重要 ./proc ./dev ./init.rc

如何將ramdisk.img 編譯進核心修改init.rc

一 將ramdisk.img編譯進核心android系統可以不用ramdisk.img 檔案就可以啟動檔案系統,原因是在android核心編譯的時候使用配置選項已經將檔案系統編譯進核心。方法是在編譯配置選項中開啟File Systems->"The Extended