Kernel Build 4.19 #12
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Kernel Build 4.19 | |
on: | |
workflow_dispatch: | |
inputs: | |
KERNEL_REPO: | |
description: 'KERNEL_REPO' | |
required: true | |
default: 'https://github.com/zainarbani/kernel-mtk-4.19' | |
KERNEL_BRANCH: | |
description: 'KERNEL_BRANCH' | |
required: true | |
default: 't' | |
KERNEL_DEFCONFIG: | |
description: 'KERNEL_DEFCONFIG' | |
required: true | |
default: 'rosemary_defconfig' | |
KERNEL_HOTFIX: | |
description: 'KERNEL_HOTFIX' | |
required: false | |
default: 'N/A' | |
jobs: | |
build: | |
if: github.event.repository.owner.id == github.event.sender.id | |
runs-on: buildjet-8vcpu-ubuntu-2204 | |
permissions: | |
contents: write | |
steps: | |
- name: Prepare Env | |
run: | | |
sudo apt update &> /dev/null | |
sudo apt -y install gawk aria2 git ccache automake flex lzop bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libxml2-utils bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev squashfs-tools pngcrush schedtool dpkg-dev liblz4-tool make optipng maven libssl-dev pwgen libswitch-perl policycoreutils minicom libxml-sax-base-perl libxml-simple-perl bc libc6-dev-i386 lib32ncurses5-dev libx11-dev lib32z-dev libgl1-mesa-dev xsltproc unzip device-tree-compiler python2 python3 &> /dev/null | |
git config --global user.name "bot" | |
git config --global user.email "[email protected]" | |
mkdir -p $GITHUB_WORKSPACE/project | |
- name: Prepare TC | |
run: | | |
mkdir -p $GITHUB_WORKSPACE/project/clang | |
CLANG_URL=$(curl -Ls https://raw.githubusercontent.com/ZyCromerZ/Clang/main/Clang-main-link.txt) | |
aria2c $CLANG_URL &> /dev/null | |
tar -C $GITHUB_WORKSPACE/project/clang/ -zxf ${CLANG_URL##*/} | |
- name: Prepare Kernel | |
run: | | |
cd $GITHUB_WORKSPACE/project | |
git clone -b ${{ github.event.inputs.KERNEL_BRANCH }} ${{ github.event.inputs.KERNEL_REPO }} linux --recurse-submodules --depth=1 &> /dev/null | |
git clone -b rosemary-4.19 https://github.com/zainarbani/AnyKernel3 AnyKernel3 --depth=1 &> /dev/null | |
- name: Building Kernel | |
run: | | |
cd $GITHUB_WORKSPACE/project/linux | |
PATH=$GITHUB_WORKSPACE/project/clang/bin:$PATH | |
export TZ="Asia/Jakarta" | |
export DATE=$(date "+%Y%m%d-%H%M") | |
export KSU="0.9.5" | |
echo "BUILD_DATE=$(date "+%Y%m%d%H%M")" >> $GITHUB_ENV | |
echo "KERNEL_VER=$(make kernelversion)" >> $GITHUB_ENV | |
echo "CLANG_VER=$(clang --version | head -n 1 | perl -pe 's/\(http.*?\)//gs' | sed -e 's/ */ /g')" >> $GITHUB_ENV | |
echo "KSU_VER=$KSU" >> $GITHUB_ENV | |
export ARCH=arm64 | |
export KBUILD_BUILD_HOST=builder | |
export KBUILD_BUILD_USER=zainarbani | |
export KBUILD_COMPILER_STRING="$(clang --version | head -n 1 | perl -pe 's/\(http.*?\)//gs' | sed -e 's/ */ /g' -e 's/[[:space:]]*$//')" | |
echo "-Amogus" > localversion | |
make O=out ARCH=$ARCH ${{ github.event.inputs.KERNEL_DEFCONFIG }} | |
make -j$(nproc --all) O=out CC=clang ARCH=$ARCH CROSS_COMPILE=aarch64-linux-gnu- CROSS_COMPILE_ARM32=arm-linux-gnueabi- LLVM=1 LLVM_IAS=1 LD=ld.lld NM=llvm-nm AR=llvm-ar OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump | |
cp out/arch/arm64/boot/Image.gz $GITHUB_WORKSPACE/project/Image.gz | |
curl -s "https://android.googlesource.com/platform/system/libufdt/+/refs/heads/master/utils/src/mkdtboimg.py?format=TEXT" | base64 --decode > mkdtboimg.py | |
python3 mkdtboimg.py create $GITHUB_WORKSPACE/project/dtbnew out/arch/arm64/boot/dts/mediatek/mt6785.dtb | |
make clean | |
git restore drivers/input/touchscreen/mediatek/ft3418_i2c/include/firmware/fw_sample.i | |
wget -O ksu_4.19.patch https://gist.githubusercontent.com/zainarbani/922deba9987164bbb2f900991e8403f2/raw/568d0999b4dcd957cefdf2a08b2ef4b62f0fe637/ksu_4.19.patch | |
git apply ksu_4.19.patch || exit | |
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v$KSU | |
echo "KSU Version: $KSU" | |
echo "CONFIG_KSU=y" >> arch/arm64/configs/rosemary_defconfig | |
make O=out ARCH=$ARCH ${{ github.event.inputs.KERNEL_DEFCONFIG }} | |
make -j$(nproc --all) O=out CC=clang ARCH=$ARCH CROSS_COMPILE=aarch64-linux-gnu- CROSS_COMPILE_ARM32=arm-linux-gnueabi- LLVM=1 LLVM_IAS=1 LD=ld.lld NM=llvm-nm AR=llvm-ar OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump | |
cp out/arch/arm64/boot/Image.gz $GITHUB_WORKSPACE/project/Image.gz-ksu | |
- name: Prepare AK3 | |
run: | | |
cd $GITHUB_WORKSPACE/project/AnyKernel3 | |
cp $GITHUB_WORKSPACE/project/Image.gz Image.gz | |
cp $GITHUB_WORKSPACE/project/dtbnew dtbnew | |
zip -r9 $GITHUB_WORKSPACE/project/Amogus.zip -- * | |
cp -f $GITHUB_WORKSPACE/project/Image.gz-ksu Image.gz | |
zip -r9 $GITHUB_WORKSPACE/project/Amogus-ksu.zip -- * | |
- name: Upload Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
${{ github.workspace }}/project/Amogus.zip | |
${{ github.workspace }}/project/Amogus-ksu.zip | |
name: Amogus-${{ env.BUILD_DATE }} | |
tag_name: ${{ env.BUILD_DATE }} | |
body: | | |
Repo: ${{ github.event.inputs.KERNEL_REPO }} | |
Branch: ${{ github.event.inputs.KERNEL_BRANCH }} | |
Config: ${{ github.event.inputs.KERNEL_DEFCONFIG }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Update TG | |
uses: appleboy/telegram-action@master | |
with: | |
to: ${{ secrets.CHAT_ID }} | |
token: ${{ secrets.BOT_TOKEN }} | |
format: html | |
disable_web_page_preview: true | |
message: | | |
<b>Amogus-Kernel Update</b> | |
<b>Build Date: </b>${{ env.BUILD_DATE }} | |
<a href="https://github.com/${{ github.repository }}/releases/tag/${{ env.BUILD_DATE }}">Download</a> | |
<a href="${{ github.event.inputs.KERNEL_REPO }}/commits/${{ github.event.inputs.KERNEL_BRANCH }}">Changelogs</a> | |
<b>Hotfix:</b> | |
${{ github.event.inputs.KERNEL_HOTFIX }} | |
<b>Config: </b>${{ github.event.inputs.KERNEL_DEFCONFIG }} | |
<b>Kernel Ver: </b>${{ env.KERNEL_VER }} | |
<b>Clang Ver: </b>${{ env.CLANG_VER }} | |
<b>KernelSU Ver: </b>${{ env.KSU_VER }} | |
<b>Maintainer: </b>@AnotherZain |