标签:android

以下是与标签 “android” 相关联的文章

android 内核编译打包方法

  • 教程 {XDA}{Tutorial}Build your first kernel.
  • bootimg 打包工具

    下载代码 unpackbootimg ,直接 make 编译解包和打包工具。

  • 编译内核
  • 生成 boot.img 内核包
    • 解包得到 ramdisk 根文件系统

      unpackbootimg -i boot.img -o .
    • 解包 ramdisk.gz 方法(一般不用解包,直接使用即可)

      gunzip -k ramdisk.gz 
      apt install cpio
      cpio -i -F ramdisk 
    • 与编译得到的 boot 内核一起打包,得到 boot.img

      vim pack.sh
      ./mkbootimg \
        --kernel build/arch/arm64/boot/Image.gz \
        --ramdisk ramdisk.gz \
        --cmdline "console=null androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 cma=24M@0-0xffffffff rcupdate.rcu_expedited=1" \
        --base 0x80000000 \
        --pagesize 4096 \
        --dt build/arch/arm64/boot/dtb.img \
        --ramdisk_offset 0x02200000 \
        --tags_offset 0x02000000 \
        --output boot.img
      tar -cvf boot.tar boot.img
      
  • 刷入内核
    • 将 boot.img 打包进 boot.tar

      tar cvf boot.tar boot.img

      AP 中可以包含 boot.img, recovery.img, system.ext 等分区,仅打包部分分区,刷机时不会影响其它分区。

    • 用 Odin 工具刷入 AP,选择 boot.tar 刷入