|
@@ -28,7 +28,6 @@ jobs:
|
|
|
timeout-minutes: 120
|
|
timeout-minutes: 120
|
|
|
strategy:
|
|
strategy:
|
|
|
matrix:
|
|
matrix:
|
|
|
- build_type: ["make", "normal"]
|
|
|
|
|
apply_symbol_fix: [true, false]
|
|
apply_symbol_fix: [true, false]
|
|
|
|
|
|
|
|
steps:
|
|
steps:
|
|
@@ -353,13 +352,9 @@ jobs:
|
|
|
perl -pi -e 's{UTS_VERSION="\$\(echo \$UTS_VERSION \$CONFIG_FLAGS \$TIMESTAMP \| cut -b -\$UTS_LEN\)"}{UTS_VERSION="#1 SMP PREEMPT Sun Apr 20 04:20:00 UTC 2025"}' ./common/scripts/mkcompile_h
|
|
perl -pi -e 's{UTS_VERSION="\$\(echo \$UTS_VERSION \$CONFIG_FLAGS \$TIMESTAMP \| cut -b -\$UTS_LEN\)"}{UTS_VERSION="#1 SMP PREEMPT Sun Apr 20 04:20:00 UTC 2025"}' ./common/scripts/mkcompile_h
|
|
|
|
|
|
|
|
#Set Kernel Name
|
|
#Set Kernel Name
|
|
|
- if [ "${{ matrix.build_type }}" = "make" ] && [ "${{ inputs.kernel_version }}" = "6.6" ]; then
|
|
|
|
|
- perl -0777 -pi -e 's/(echo "\$\{KERNELVERSION\}\$\{file_localversion\}\$\{config_localversion\}\$\{LOCALVERSION\}\$\{scm_version\}")/echo "\$\{KERNELVERSION\}-${{ inputs.android_version }}-Wild"/s' ./common/scripts/setlocalversion
|
|
|
|
|
- elif [ "${{ matrix.build_type }}" = "make" ]; then
|
|
|
|
|
- perl -0777 -pi -e 's/(echo "\$res")(?!.*echo "\$res")/echo "\-${{ inputs.android_version }}-Wild"/s' ./common/scripts/setlocalversion
|
|
|
|
|
- elif [ "${{ matrix.build_type }}" = "normal" ] && [ "${{ inputs.kernel_version }}" = "6.6" ]; then
|
|
|
|
|
|
|
+ if [ "${{ inputs.kernel_version }}" = "6.6" ]; then
|
|
|
perl -0777 -pi -e 's/(echo "\$\{KERNELVERSION\}\$\{file_localversion\}\$\{config_localversion\}\$\{LOCALVERSION\}\$\{scm_version\}")/echo "\$\{KERNELVERSION\}\$\{file_localversion\}\$\{config_localversion\}\$\{LOCALVERSION\}\$\{scm_version\}-Wild"/s' ./common/scripts/setlocalversion
|
|
perl -0777 -pi -e 's/(echo "\$\{KERNELVERSION\}\$\{file_localversion\}\$\{config_localversion\}\$\{LOCALVERSION\}\$\{scm_version\}")/echo "\$\{KERNELVERSION\}\$\{file_localversion\}\$\{config_localversion\}\$\{LOCALVERSION\}\$\{scm_version\}-Wild"/s' ./common/scripts/setlocalversion
|
|
|
- elif [ "${{ matrix.build_type }}" = "normal" ]; then
|
|
|
|
|
|
|
+ else
|
|
|
perl -0777 -pi -e 's/(echo "\$res")(?!.*echo "\$res")/echo "\$res-Wild"/s' ./common/scripts/setlocalversion
|
|
perl -0777 -pi -e 's/(echo "\$res")(?!.*echo "\$res")/echo "\$res-Wild"/s' ./common/scripts/setlocalversion
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
@@ -371,7 +366,6 @@ jobs:
|
|
|
perl -pi -e 's/^\s*"protected_exports_list"\s*:\s*"android\/abi_gki_protected_exports_aarch64",\s*$//;' ./common/BUILD.bazel
|
|
perl -pi -e 's/^\s*"protected_exports_list"\s*:\s*"android\/abi_gki_protected_exports_aarch64",\s*$//;' ./common/BUILD.bazel
|
|
|
|
|
|
|
|
- name: Build
|
|
- name: Build
|
|
|
- if: ${{ matrix.build_type == 'normal' }}
|
|
|
|
|
run : |
|
|
run : |
|
|
|
set -e
|
|
set -e
|
|
|
set -x
|
|
set -x
|
|
@@ -383,106 +377,10 @@ jobs:
|
|
|
tools/bazel build --config=fast --lto=thin //common:kernel_aarch64_dist || exit 1
|
|
tools/bazel build --config=fast --lto=thin //common:kernel_aarch64_dist || exit 1
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
- - name: Detect Clang Version from Configs
|
|
|
|
|
- if: ${{ matrix.build_type == 'make' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- KERNEL_PATH="$GITHUB_WORKSPACE/$CONFIG"
|
|
|
|
|
- DEFCONFIG="$KERNEL_PATH/common/arch/arm64/configs/gki_defconfig"
|
|
|
|
|
- BUILDCONFIG="$KERNEL_PATH/common/build.config.gki"
|
|
|
|
|
- CONSTANTSCONFIG="$KERNEL_PATH/common/build.config.constants"
|
|
|
|
|
- CLANG_VERSION=""
|
|
|
|
|
- CLANG_BIN_PATH=""
|
|
|
|
|
- if grep -q '^CONFIG_CLANG_VERSION=' "$DEFCONFIG" 2>/dev/null; then
|
|
|
|
|
- CLANG_VERSION=$(grep '^CONFIG_CLANG_VERSION=' "$DEFCONFIG" 2>/dev/null | head -n1 | cut -d'=' -f2 | tr -d '"' | xargs)
|
|
|
|
|
- elif grep -q '^CLANG_VERSION=' "$BUILDCONFIG" 2>/dev/null; then
|
|
|
|
|
- CLANG_VERSION=$(grep '^CLANG_VERSION=' "$BUILDCONFIG" 2>/dev/null | head -n1 | cut -d'=' -f2 | xargs)
|
|
|
|
|
- elif grep -q '^CLANG_VERSION=' "$CONSTANTSCONFIG" 2>/dev/null; then
|
|
|
|
|
- CLANG_VERSION=$(grep '^CLANG_VERSION=' "$CONSTANTSCONFIG" 2>/dev/null | head -n1 | cut -d'=' -f2 | xargs)
|
|
|
|
|
- CLANG_VERSION="clang-$CLANG_VERSION"
|
|
|
|
|
- else
|
|
|
|
|
- echo "No clang version found in config, will auto-detect in prebuilts."
|
|
|
|
|
- fi
|
|
|
|
|
- if [ -z "$CLANG_VERSION" ]; then
|
|
|
|
|
- if [ -d "$KERNEL_PATH/prebuilts/clang/host/linux-x86" ]; then
|
|
|
|
|
- CLANG_VERSION=$(ls -d "$KERNEL_PATH"/prebuilts/clang/host/linux-x86/clang-r*/ | tail -n 1 | xargs basename)
|
|
|
|
|
- CLANG_BIN_PATH="$KERNEL_PATH/prebuilts/clang/host/linux-x86/$CLANG_VERSION/bin"
|
|
|
|
|
- elif [ -d "$KERNEL_PATH/prebuilts-master/clang/host/linux-x86" ]; then
|
|
|
|
|
- CLANG_VERSION=$(ls -d "$KERNEL_PATH"/prebuilts-master/clang/host/linux-x86/clang-r*/ | tail -n 1 | xargs basename)
|
|
|
|
|
- CLANG_BIN_PATH="$KERNEL_PATH/prebuilts-master/clang/host/linux-x86/$CLANG_VERSION/bin"
|
|
|
|
|
- else
|
|
|
|
|
- CLANG_VERSION="clang"
|
|
|
|
|
- CLANG_BIN_PATH="$KERNEL_PATH/prebuilts/clang/host/linux-x86/$CLANG_VERSION/bin" # dummy
|
|
|
|
|
- fi
|
|
|
|
|
- else
|
|
|
|
|
- if [ -d "$KERNEL_PATH/prebuilts/clang/host/linux-x86" ]; then
|
|
|
|
|
- CLANG_BIN_PATH="$KERNEL_PATH/prebuilts/clang/host/linux-x86/$CLANG_VERSION/bin"
|
|
|
|
|
- else
|
|
|
|
|
- CLANG_BIN_PATH="$KERNEL_PATH/prebuilts-master/clang/host/linux-x86/$CLANG_VERSION/bin"
|
|
|
|
|
- fi
|
|
|
|
|
- fi
|
|
|
|
|
- echo "CLANG_VERSION=$CLANG_VERSION" >> $GITHUB_ENV
|
|
|
|
|
- echo "CLANG_BIN_PATH=$CLANG_BIN_PATH" >> $GITHUB_ENV
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- - name: Build Kernel
|
|
|
|
|
- if: ${{ matrix.build_type == 'make' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- KERNEL_PATH="$GITHUB_WORKSPACE/$CONFIG"
|
|
|
|
|
- CLANG_BIN_PATH="${{ env.CLANG_BIN_PATH }}"
|
|
|
|
|
- CLANG_VERSION="${{ env.CLANG_VERSION }}"
|
|
|
|
|
-
|
|
|
|
|
- if [ -d "$CLANG_BIN_PATH" ] && [ -x "$CLANG_BIN_PATH/clang" ]; then
|
|
|
|
|
- export PATH="$CLANG_BIN_PATH:$PATH"
|
|
|
|
|
- SELECTED_CLANG="$CLANG_BIN_PATH/clang"
|
|
|
|
|
- elif command -v clang >/dev/null 2>&1; then
|
|
|
|
|
- SELECTED_CLANG="$(command -v clang)"
|
|
|
|
|
- exit 1
|
|
|
|
|
- else
|
|
|
|
|
- exit 1
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- LLVM_TOOLS="clang ld.lld llvm-ar llvm-objcopy llvm-objdump llvm-nm"
|
|
|
|
|
- MISSING_TOOLS=""
|
|
|
|
|
- for tool in $LLVM_TOOLS; do
|
|
|
|
|
- if ! command -v $tool >/dev/null 2>&1; then
|
|
|
|
|
- MISSING_TOOLS="$MISSING_TOOLS $tool"
|
|
|
|
|
- fi
|
|
|
|
|
- done
|
|
|
|
|
-
|
|
|
|
|
- if [ -n "$MISSING_TOOLS" ]; then
|
|
|
|
|
- sudo apt-get update
|
|
|
|
|
- sudo apt-get install -yq --no-install-recommends llvm
|
|
|
|
|
- for tool in $MISSING_TOOLS; do
|
|
|
|
|
- if ! command -v $tool >/dev/null 2>&1; then
|
|
|
|
|
- exit 1
|
|
|
|
|
- fi
|
|
|
|
|
- done
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- KERNEL_VERSION="${{ inputs.kernel_version }}"
|
|
|
|
|
- if [[ "$KERNEL_VERSION" == "5.10" ]]; then
|
|
|
|
|
- USE_LLVM_IAS=true
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- cd "$KERNEL_PATH/common" || exit 1
|
|
|
|
|
-
|
|
|
|
|
- MAKE_ARGS="LLVM=1 ARCH=arm64 CROSS_COMPILE=aarch64-linux-android- \
|
|
|
|
|
- RUSTC=$KERNEL_PATH/prebuilts/rust/linux-x86/1.73.0b/bin/rustc \
|
|
|
|
|
- PAHOLE=$KERNEL_PATH/prebuilts/kernel-build-tools/linux-x86/bin/pahole \
|
|
|
|
|
- LD=ld.lld HOSTLD=ld.lld"
|
|
|
|
|
- if [[ -v USE_LLVM_IAS ]]; then
|
|
|
|
|
- MAKE_ARGS="LLVM_IAS=1 $MAKE_ARGS"
|
|
|
|
|
- fi
|
|
|
|
|
-
|
|
|
|
|
- make -j$(nproc --all) O=out $MAKE_ARGS KCFLAGS+="-Wno-error -O2 -flto=thin -fno-stack-protector" gki_defconfig Image Image.gz Image.lz4 || exit 1
|
|
|
|
|
- make -j$(nproc --all) O=out $MAKE_ARGS KCFLAGS+="-Wno-error -O2 -flto=thin -fno-stack-protector" || exit 1
|
|
|
|
|
-
|
|
|
|
|
- name: Create AK3 ZIP
|
|
- name: Create AK3 ZIP
|
|
|
run: |
|
|
run: |
|
|
|
- # Try different Image locations based on build type
|
|
|
|
|
- if [ -f "$CONFIG/common/out/arch/arm64/boot/Image" ]; then
|
|
|
|
|
- cp $CONFIG/common/out/arch/arm64/boot/Image AnyKernel3/Image
|
|
|
|
|
- elif [ -f "./$CONFIG/out/${{ inputs.android_version }}-${{ inputs.kernel_version }}/dist/Image" ]; then
|
|
|
|
|
|
|
+ # Copy Image from normal build locations
|
|
|
|
|
+ if [ -f "./$CONFIG/out/${{ inputs.android_version }}-${{ inputs.kernel_version }}/dist/Image" ]; then
|
|
|
cp ./$CONFIG/out/${{ inputs.android_version }}-${{ inputs.kernel_version }}/dist/Image AnyKernel3/Image
|
|
cp ./$CONFIG/out/${{ inputs.android_version }}-${{ inputs.kernel_version }}/dist/Image AnyKernel3/Image
|
|
|
elif [ -f "./$CONFIG/bazel-bin/common/kernel_aarch64/Image" ]; then
|
|
elif [ -f "./$CONFIG/bazel-bin/common/kernel_aarch64/Image" ]; then
|
|
|
cp ./$CONFIG/bazel-bin/common/kernel_aarch64/Image AnyKernel3/Image
|
|
cp ./$CONFIG/bazel-bin/common/kernel_aarch64/Image AnyKernel3/Image
|
|
@@ -503,20 +401,7 @@ jobs:
|
|
|
zip -r "../$ZIP_NAME" ./*
|
|
zip -r "../$ZIP_NAME" ./*
|
|
|
|
|
|
|
|
- name: Create Bootimgs Folder and Copy Images for Android 12/13
|
|
- name: Create Bootimgs Folder and Copy Images for Android 12/13
|
|
|
- if: ${{ matrix.build_type == 'make' }}
|
|
|
|
|
- run: |
|
|
|
|
|
- mkdir bootimgs
|
|
|
|
|
-
|
|
|
|
|
- echo "Creating bootimgs folder and copying images..."
|
|
|
|
|
- cp $CONFIG/common/out/arch/arm64/boot/Image ./bootimgs
|
|
|
|
|
- cp $CONFIG/common/out/arch/arm64/boot/Image.gz ./bootimgs
|
|
|
|
|
- cp $CONFIG/common/out/arch/arm64/boot/Image.lz4 ./bootimgs
|
|
|
|
|
- cp $CONFIG/common/out/arch/arm64/boot/Image ./
|
|
|
|
|
- cp $CONFIG/common/out/arch/arm64/boot/Image.gz ./
|
|
|
|
|
- cp $CONFIG/common/out/arch/arm64/boot/Image.lz4 ./
|
|
|
|
|
-
|
|
|
|
|
- - name: Create Bootimgs Folder and Copy Images for Android 12/13
|
|
|
|
|
- if: ${{ (inputs.android_version == 'android12' || inputs.android_version == 'android13') && matrix.build_type == 'normal' }}
|
|
|
|
|
|
|
+ if: ${{ inputs.android_version == 'android12' || inputs.android_version == 'android13' }}
|
|
|
run: |
|
|
run: |
|
|
|
mkdir bootimgs
|
|
mkdir bootimgs
|
|
|
|
|
|
|
@@ -531,7 +416,7 @@ jobs:
|
|
|
gzip -n -k -f -9 ./Image > ./bootimgs/Image.gz
|
|
gzip -n -k -f -9 ./Image > ./bootimgs/Image.gz
|
|
|
|
|
|
|
|
- name: Create Bootimgs Folder and Copy Images for Android 14/15
|
|
- name: Create Bootimgs Folder and Copy Images for Android 14/15
|
|
|
- if: ${{ (inputs.android_version == 'android14' || inputs.android_version == 'android15') && matrix.build_type == 'normal' }}
|
|
|
|
|
|
|
+ if: ${{ inputs.android_version == 'android14' || inputs.android_version == 'android15' }}
|
|
|
run: |
|
|
run: |
|
|
|
mkdir bootimgs
|
|
mkdir bootimgs
|
|
|
|
|
|
|
@@ -627,7 +512,7 @@ jobs:
|
|
|
- name: Upload Build Artifacts
|
|
- name: Upload Build Artifacts
|
|
|
uses: actions/upload-artifact@v4
|
|
uses: actions/upload-artifact@v4
|
|
|
with:
|
|
with:
|
|
|
- name: WKSU-${{ env.KSUVER }}-${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ env.ACTUAL_SUBLEVEL || inputs.sub_level }}-${{ inputs.os_patch_level }}-${{ matrix.build_type }}-${{ matrix.apply_symbol_fix && 'SymbolFix'}}
|
|
|
|
|
|
|
+ name: WKSU-${{ env.KSUVER }}-${{ matrix.apply_symbol_fix && 'SymbolFix'}}-${{ inputs.android_version }}-${{ inputs.kernel_version }}.${{ env.ACTUAL_SUBLEVEL || inputs.sub_level }}-${{ inputs.os_patch_level }}-
|
|
|
path: |
|
|
path: |
|
|
|
*.zip
|
|
*.zip
|
|
|
*.img
|
|
*.img
|