This directory contains prebuilt images of the Linux kernel that is used in Microdroid. The kernel is built from the same source tree as Generic Kernel Image (GKI), but with a different config where most of the config items are turned off to make the kernel fast & slim.
repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1 repo sync
For ARM64
tools/bazel clean tooln/bazel run --config=fast //common:kernel_aarch64_microdroid_dist -- --dist_dir=out/dist
For x86_64,
tools/bazel clean tools/bazel run --config=fast //common:kernel_x86_64_microdroid_dist -- --dist_dir=out/dist
Note that --config=fast
is not mandatory, but will make your build much faster.
The build may fail in case you are doing an incremental build and the config has changed (b/257288175). Until that issue is fixed, do the clean build by invoking tools/bazel clean
before the build command.
For ARM64
tools/bazel run //common:kernel_aarch64_microdroid_config -- menuconfig
For x86_64
tools/bazel run //common:kernel_x86_64_microdroid_config -- menuconfig
Copy the built kernel image to the Android source tree directly, and build the virt APEX.
For ARM64,
cp out/dist/Image <android_checkout>/packages/modules/Virtualization/microdroid/kernel/arm64/kernel-6.1
For x86_64,
cp out/dist/bzImage <android_checkout>/packages/modules/Virtualization/microdroid/kernel/x86_64/kernel-6.1
Use the download_from_ci
script to automatically fetch the built images from a specific <build_id>
and make commits with nice history in the message.
cd <android_checkout>/packages/modules/Virtualization repo start <topic_name> cd <kernel_checkout> ANDROID_BUILD_TOP=<android_checkout> ./build/kernel/gki/download_from_ci --update-microdroid -b <bug_id> <build_id> cd <android_checkout>/packages/modules/Virtualization repo upload .