How to build kernel/module prebuilt for Android build
- Init repo:
repo init -u https://github.com/EssentialOpenSource/kernel-manifest -b refs/tags/OPM1.180104.267
- Sync repo:
repo sync -j4 -c
- Download the latest Android NDK and extract it in a toolchain folder
- Download clang-4053586 and extract it in the toolchain folder
- Export global variables
export ARCH=arm64
export CROSS_COMPILE=`pwd`/toolchain/android-ndk-r16b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-
# Build with CLANG
export PATH=`pwd`/toolchain/clang-4630689/bin:$PATH
export LD_LIBRARY_PATH=`pwd`/toolchain/clang-4630689/lib64:$LD_LIBRARY_PATH
export CLANG_TRIPLE=aarch64-linux-gnu-
- Build the kernel (For PH-1)
cd kernel
make CC=clang mata_defconfig
make CC=clang -j32
- Build the WiFi module
cd ../qcacld-3.0/
make CC=clang -j32
${CROSS_COMPILE}strip --strip-debug wlan.ko
- Use qcacld-3.0/wlan.ko and arch/arm64/boot/Image.gz-dtb as prebuilt for your Android boot image
Build Essential PH-1 kernel with KASAN/KCOV support
To allow KASAN testing and fuzzing (like with syzkaller), you can compile PH-1 kernel with mata_kasan_defconfig
cd kernel
make CC=clang mata_kasan_defconfig
make CC=clang -j32
KCOV, KASAN and additional debug configuration flags (like kernel memory leak detector) are enabled