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
tools/bazel run --config=fast --lto=thin //common-modules/virtual-device:microdroid_aarch64_dist -- --dist_dir=out/dist
For x86_64,
tools/bazel clean
tools/bazel run --config=fast --lto=thin //common-modules/virtual-device:microdroid_x86_64_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-modules/virtual-device:microdroid_aarch64_config -- menuconfig
For x86_64
tools/bazel run //common-modules/virtual-device:microdroid_x86_64_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 .