2.4 KiB
Microdroid kernel
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.
How to build the Microdroid kernels
Checkout the GKI source code.
repo init -u https://android.googlesource.com/kernel/manifest -b android14-5.15
repo sync
Build the Microdroid kernels manually
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.
Change the kernel configs
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
How to update Microdroid kernel prebuilts
For manually built kernels (only for your own development)
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-5.15
For x86_64,
cp out/dist/bzImage <android_checkout>/packages/modules/Virtualization/microdroid/kernel/arm64/kernel-5.15
For official updates
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 .