Android 的核心 Makefile 为 build/core/main.mk ,其中编译的内核的target为 INSTALLED_BOOTIMAGE_TARGET 即 out/target/product/dream-open/boot.img

boot.img的生成在下面的Makefile中

build/core/Makefile: 293

$(INSTALLED_BOOTIMAGE_TARGET): $(MKEXT2IMG) $(INTERNAL_BOOTIMAGE_FILES)
$(call pretty,"Target boot image: $@")
$(hide) $(MKEXT2BOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --output $@

上面的语句翻译下来为:

out/target/product/dream-open/boot.img: out/host/linux-x86/bin/genext2fs out/target/product/dream-open/kernel out/target/product/dream-open/ramdisk.img
$(call pretty,"Target boot image: out/target/product/dream-open/boot.img")
$(hide) external/genext2fs/mkbootimg_ext2.sh --kernel out/target/product/dream-open/kernel --ramdisk out/target/product/dream-open/ramdisk.img --cmdline "no_console_suspend=1 console=null" --output out/target/product/dream-open/boot.img

可见boot.img 是由 kernel 和 ramdisk.img 通过脚本mkbootimg_ext2.sh生成的。

那个out/target/product/dream-open/kernel 从哪里来的呢?请看下面的Makefile

vendor/htc/dream-open/AndroidBoard.mk:3
ifeq ($(TARGET_PREBUILT_KERNEL),)
TARGET_PREBUILT_KERNEL := $(LOCAL_PATH)/kernel
endif

file := $(INSTALLED_KERNEL_TARGET)
ALL_PREBUILT += $(file)
$(file): $(TARGET_PREBUILT_KERNEL) | $(ACP)
$(transform-prebuilt-to-target)

可见内核在 vendor/htc/dream-open/kernel,该文件是预编译好的,从android的版本库上直接下载下来的。

更多相关文章

  1. Android(安卓)ROM研究---制作Nexus S上的ROM
  2. Android内核详解之Low memory killer
  3. 利用BLCR加快android的启动过程
  4. 浅入浅出 Android(安卓)安全 (二) Android(安卓)Linux 内核层安全
  5. R文件没了怎么办
  6. (三)Android(安卓)Context说明
  7. Android(安卓)NDK Hello
  8. Android学习启动
  9. 第二章 如何分析 Android(安卓)程序

随机推荐

  1. android fragment show hide回调
  2. Android: 自定义Tab样式
  3. Android Service 服务(三)—— bindService
  4. Android 最佳实践
  5. Android UI学习 - ListView
  6. android scrollview的所有touchevent的顺
  7. Android 设置View 圆角
  8. Android(安卓)开发常用的工具网站
  9. Android优秀开源库1000+,你值得拥有
  10. ProgressBar的简单使用