Skip to content

Instantly share code, notes, and snippets.

@R0rt1z2
Created July 9, 2025 20:11
Show Gist options
  • Save R0rt1z2/9305fec205f2ddcdab5960cb8874a1b3 to your computer and use it in GitHub Desktop.
Save R0rt1z2/9305fec205f2ddcdab5960cb8874a1b3 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
if [ $# -eq 0 ]; then
echo "Usage: $0 <kernel_directory>"
exit 1
fi
KERNEL_DIR="$1"
TOOLCHAIN_DIR="$(pwd)/toolchain"
CLANG_DIR="$TOOLCHAIN_DIR/clang-r383902"
GCC_DIR="$TOOLCHAIN_DIR/aarch64-linux-android-4.9"
if [ ! -d "$KERNEL_DIR" ]; then
echo "Error: Kernel directory '$KERNEL_DIR' does not exist"
exit 1
fi
if [ ! -d "$CLANG_DIR" ]; then
echo "Downloading CLANG toolchain..."
mkdir -p "$TOOLCHAIN_DIR"
cd "$TOOLCHAIN_DIR"
wget -O clang-r383902.tar.gz "https://android.googlesource.com/platform//prebuilts/clang/host/linux-x86/+archive/3857008389202edac32d57008bb8c99d2c957f9d/clang-r383902.tar.gz"
mkdir -p clang-r383902
tar -xzf clang-r383902.tar.gz -C clang-r383902
rm clang-r383902.tar.gz
cd - > /dev/null
fi
if [ ! -d "$GCC_DIR" ]; then
echo "Downloading GCC toolchain..."
mkdir -p "$TOOLCHAIN_DIR"
cd "$TOOLCHAIN_DIR"
git clone -b lineage-18.1 https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9.git aarch64-linux-android-4.9
cd - > /dev/null
fi
cd "$KERNEL_DIR"
export PATH="$CLANG_DIR/bin:$GCC_DIR/bin:$PATH"
export ARCH=arm64
export CLANG_TRIPLE=aarch64-linux-gnu-
export CROSS_COMPILE=aarch64-linux-androidkernel-
export CC=clang
export LD=ld.lld
export AR=llvm-ar
export NM=llvm-nm
export OBJCOPY=llvm-objcopy
export OBJDUMP=llvm-objdump
export READELF=llvm-readelf
export OBJSIZE=llvm-size
export STRIP=llvm-strip
make O=out kobe2_defconfig -j$(nproc --all)
make O=out -j$(nproc --all)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment