0%

kernel编译

https://source.android.com/docs/setup/build/building-kernels?hl=zh-cn#customize-build

https://aliyuque.antfin.com/xiaobao.spf/ad2gcp/mpq8ov

下载源码

我本地aosp是基于android10分支编译的pixel4xl代码,这里下载的是4.19内核

1
2
3
4
5
6
// 创建目录
mkdir android-kernel && cd android-kernel
// 拉manifest
repo init -u https://android.googlesource.com/kernel/manifest -b android-msm-coral-4.14-android10
// 根据manifest 将代码克隆到.repo中,这里可能的事镜像,然后将代码同步到android-kernel目录
repo sync

Mac编译

  • 安装docker

    1
    2
    // 安装docker
    brew install --cask docke
  • Dockerfile

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    FROM ubuntu:16.04
    RUN apt-get update \&& apt-get install -y \
    libc6-dev \
    make \
    python \
    python3 \
    binutils \
    clang \
    flex \
    bison \
    gcc \
    bc

    构建内核,这里需要安装必要的工具

  • 创建Image

    1
    docker build -t android_kernel .

    image.png
    创建完成后执行 docker image ls 可以展示构建的Image

  • 运行Docker Image

    1
    docker run -v /Volumes/android/android-kernel:/android-kernel -it android_kernel bash

    这里需要挂载mac下的android_kernel目录到docker ubuntu中
    image.png

  • 编译

image.png

烧录

  • 解包

    1
    python /Volumes/android/aosp/system/core/mkbootimg/unpack_bootimg.py --boot_img=/Users/juneleo/Desktop/boot.img --out=/Users/juneleo/Desktop/boot

    image.png

  • mkbootimg 工具

Docker需要安装的工具

  • apt-get install libc6-dev
  • apt-get install make
  • apt-get install python
  • apt-get install python3
  • apt-get install binutils
  • apt-get install clang
  • apt-get install flex
  • apt-get install bison
  • apt-get install gcc
  • apt-get install bc