2121 - name : Setup build kernel environment
2222 run : |
2323 echo "BUILD_TIME=$(TZ=Asia/Shanghai date "+%y%m%d")" >> $GITHUB_ENV
24+ echo "BUILD_TIME_1=$(TZ=Asia/Shanghai date "+%Y-%m-%d")" >> $GITHUB_ENV
2425 sudo apt-get update
25- sudo apt-get install git dwarves libelf-dev ccache automake flex bison build-essential zlib1g-dev libncurses5-dev libc6 -dev-i386 bc device-tree-compiler python3 make
26+ sudo apt-get install git ccache automake flex lzop bison gperf build-essential zip curl zlib1g-dev g++-multilib bzip2 libbz2 -dev liblz4-tool make squashfs-tools dpkg-dev libssl-dev python3 bc libc6-dev-i386 libncurses5-dev
2627 mkdir -p $GITHUB_WORKSPACE/kernel_workspace
2728
2829 - name : Download Clang-aosp
@@ -32,134 +33,121 @@ jobs:
3233 wget https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/refs/heads/main/clang-r522817.tar.gz
3334 tar -C clang-aosp/ -zxvf clang-r522817.tar.gz
3435
36+ - name : Download Gcc-aosp
37+ run : |
38+ cd $GITHUB_WORKSPACE/kernel_workspace
39+ mkdir gcc-64
40+ wget -O gcc-aarch64.tar.gz https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/+archive/refs/tags/android-12.1.0_r27.tar.gz
41+ tar -C gcc-64/ -zxvf gcc-aarch64.tar.gz
42+
3543 - name : Download kernel source
3644 run : |
3745 cd $GITHUB_WORKSPACE/kernel_workspace
3846 git clone --recursive https://github.com/LineageOS/android_kernel_oneplus_sm8150 -b lineage-22.1 android-kernel --depth=1
39- cd $GITHUB_WORKSPACE/kernel_workspace/android-kernel/scripts
40- sed -i 's/ -dirty//g' setlocalversion
4147
42- - name : Setup official KernelSU
48+ - name : Set up rsuntk KernelSU
4349 run : |
50+ cd $GITHUB_WORKSPACE/patches
51+ sed -i '1655 r path_umount.c' $GITHUB_WORKSPACE/kernel_workspace/android-kernel/fs/namespace.c
4452 cd $GITHUB_WORKSPACE/kernel_workspace/android-kernel
45- curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
53+ curl -LSs "https://raw.githubusercontent.com/rsuntk/KernelSU/main/kernel/setup.sh" | bash -s main
54+ bash $GITHUB_WORKSPACE/patches/patches.sh
55+ if ! grep -q "CONFIG_KSU=y" arch/arm64/configs/vendor/sm8150-perf_defconfig; then
56+ sed -i '$a # KernelSU\nCONFIG_KSU=y' arch/arm64/configs/vendor/sm8150-perf_defconfig
57+ fi
4658 KSU_VERSION=$(cd KernelSU && expr $(/usr/bin/git rev-list --count HEAD) + 10200)
4759 echo "KSUVER=$KSU_VERSION" >> $GITHUB_ENV
48-
49- - name : Build kernel
60+ cd scripts
61+ sed -i 's/ -dirty//g' setlocalversion
62+
63+ - name : Build kernel with rsuntk KernelSU
5064 run : |
5165 cd $GITHUB_WORKSPACE/kernel_workspace/android-kernel
52- LTO=thin
5366 export ARCH=arm64
5467 export SUBARCH=arm64
55- export HEADER_ARCH=arm64
56- export PATH=$GITHUB_WORKSPACE/kernel_workspace/clang-aosp/bin:$PATH
68+ export BRAND_SHOW_FLAG=oneplus
69+ export PATH=$GITHUB_WORKSPACE/kernel_workspace/clang-aosp/bin:$GITHUB_WORKSPACE/kernel_workspace/gcc-64/bin:$ PATH
5770 export KBUILD_BUILD_HOST=Github-Action
5871 export KBUILD_BUILD_USER=$(echo ${{ github.actor }} | tr A-Z a-z)
59- AR_CMD="ARCH=${ARCH} SUBARCH=${SUBARCH} HEADER_ARCH=${HEADER_ARCH}"
60- BA_CMD="CC=clang CXX=clang++"
61- EX_CMD="LD=ld.lld AR=llvm-ar NM=llvm-nm OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump READELF=llvm-readelf OBJSIZE=llvm-size STRIP=llvm-strip LLVM=1 LLVM_IAS=1"
62- DEFCONFIG="lineage_sm8150_defconfig"
63- make O=out $AR_CMD $BA_CMD $EX_CMD $DEFCONFIG
64- scripts/config --file out/.config -e LTO_CLANG -d LTO_NONE -e LTO_CLANG_THIN -d LTO_CLANG_FULL -e THINLTO
65- make -j$(nproc --all) O=out $AR_CMD $BA_CMD $EX_CMD
72+ BA_CMD="CLANG_TRIPLE=aarch64-linux-gnu- CROSS_COMPILE=aarch64-linux-android-"
73+ EX_CMD="LD=ld.lld LLVM=1 LLVM_IAS=1"
74+ DEFCONFIG="vendor/sm8150-perf_defconfig vendor/debugfs.config"
75+ make O=out ARCH=arm64 CC=clang $BA_CMD $EX_CMD $DEFCONFIG
76+ make -j$(nproc --all) O=out ARCH=arm64 CC=clang $BA_CMD $EX_CMD
6677
67- - name : Check a kernel output files
78+ - name : Check a kernel output files with rsuntk KernelSU
6879 run : |
69- cd $GITHUB_WORKSPACE/kernel_workspace
70- if [ -f android-kernel/out/ arch/arm64/boot/Image ]; then
80+ cd $GITHUB_WORKSPACE/kernel_workspace/android-kernel/out
81+ if [ -f arch/arm64/boot/Image ]; then
7182 echo "CHECK_IMAGE=true" >> $GITHUB_ENV
83+ KERNEL_VERSION=$(cat include/config/kernel.release)
84+ echo "KERNEL_VERSION=$KERNEL_VERSION" >> $GITHUB_ENV
7285 else
7386 echo "Kernel output file is empty"
7487 exit 1
7588 fi
7689
77- - name : Make Anykernel3
78- if : env.CHECK_IMAGE == 'true'
90+ - name : Make AnyKernel3 with rsuntk KernelSU
91+ if : ${{ env.CHECK_IMAGE == 'true' }}
7992 run : |
8093 cd $GITHUB_WORKSPACE/kernel_workspace
81- git clone https://github.com/Kernel-SU/AnyKernel3 --depth=1
82- rm -rf AnyKernel3/.git
94+ git clone https://github.com/osm0sis/AnyKernel3 --depth=1 AnyKernel3
95+ sed -i 's/do.devicecheck=1/do.devicecheck=0/g' AnyKernel3/anykernel.sh
96+ sed -i 's!BLOCK=/dev/block/platform/omap/omap_hsmmc.0/by-name/boot;!BLOCK=auto;!g' AnyKernel3/anykernel.sh
97+ sed -i 's/IS_SLOT_DEVICE=0;/IS_SLOT_DEVICE=auto;/g' AnyKernel3/anykernel.sh
8398 cp android-kernel/out/arch/arm64/boot/Image AnyKernel3/
99+ rm -rf AnyKernel3/.git* AnyKernel3/README.md
84100
85101 - name : Compress AnyKernel3 with official KernelSU folder to zip
102+ if : ${{ env.CHECK_IMAGE == 'true' }}
86103 run : |
87104 cd $GITHUB_WORKSPACE/kernel_workspace/AnyKernel3
88- zip -r $GITHUB_WORKSPACE/AK3-LOS22.1-Salami -Official-KSU_${{ env.KSUVER }}-${{ env.BUILD_TIME }}.zip ./*
89-
105+ zip -r $GITHUB_WORKSPACE/AK3-LineageOS-OPlus-SM8150 -Official-KSU_${{ env.KSUVER }}-${{ env.BUILD_TIME }}.zip ./*
106+
90107 - name : Upload Image
91- if : env.CHECK_IMAGE == 'true'
108+ if : ${{ env.CHECK_IMAGE == 'true' }}
92109 uses : actions/upload-artifact@v4
93110 with :
94- name : Image-Official-KSU_${{ env.KSUVER }}
111+ name : Image
95112 path : kernel_workspace/android-kernel/out/arch/arm64/boot/Image
96113
97114 - name : Upload AnyKernel3
98- if : env.CHECK_IMAGE == 'true'
115+ if : ${{ env.CHECK_IMAGE == 'true' }}
99116 uses : actions/upload-artifact@v4
100117 with :
101- name : AK3-LOS22.1-Salami-Official -KSU_${{ env.KSUVER }}-${{ env.BUILD_TIME }}
118+ name : AK3-LineageOS_22-OPlus-SM1250 -KSU_${{ env.KSUVER }}-${{ env.BUILD_TIME }}
102119 path : kernel_workspace/AnyKernel3/*
103-
104- - name : Setup unofficial KernelSU
105- run : |
106- cd $GITHUB_WORKSPACE/kernel_workspace/android-kernel
107- rm -rf KernelSU
108- git clone --recursive https://github.com/5ec1cff/KernelSU -b main KernelSU
109- KSU_VERSION_1=$(cd KernelSU && expr $(/usr/bin/git rev-list --count HEAD) + 10200)
110- echo "KSUVER_1=$KSU_VERSION_1" >> $GITHUB_ENV
111-
112- - name : Build kernel
113- run : |
114- cd $GITHUB_WORKSPACE/kernel_workspace/android-kernel
115- rm -rf out/arch/arm64/boot/Image
116- LTO=thin
117- export ARCH=arm64
118- export SUBARCH=arm64
119- export HEADER_ARCH=arm64
120- export PATH=$GITHUB_WORKSPACE/kernel_workspace/clang-aosp/bin:$PATH
121- export KBUILD_BUILD_HOST=Github-Action
122- export KBUILD_BUILD_USER=$(echo ${{ github.actor }} | tr A-Z a-z)
123- AR_CMD="ARCH=${ARCH} SUBARCH=${SUBARCH} HEADER_ARCH=${HEADER_ARCH}"
124- BA_CMD="CC=clang CXX=clang++"
125- EX_CMD="LD=ld.lld AR=llvm-ar NM=llvm-nm OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump READELF=llvm-readelf OBJSIZE=llvm-size STRIP=llvm-strip LLVM=1 LLVM_IAS=1"
126- DEFCONFIG="gki_defconfig vendor/kalama_GKI.config vendor/oplus/kalama_GKI.config vendor/debugfs.config vendor/oplus/salami.config"
127- make O=out $AR_CMD $BA_CMD $EX_CMD $DEFCONFIG
128- scripts/config --file out/.config -e LTO_CLANG -d LTO_NONE -e LTO_CLANG_THIN -d LTO_CLANG_FULL -e THINLTO
129- make -j$(nproc --all) O=out $AR_CMD $BA_CMD $EX_CMD
130-
131- - name : Check a kernel output files
132- run : |
133- cd $GITHUB_WORKSPACE/kernel_workspace
134- if [ -f android-kernel/out/arch/arm64/boot/Image ]; then
135- echo "CHECK_IMAGE_1=true" >> $GITHUB_ENV
136- else
137- echo "Kernel output file is empty"
138- exit 1
139- fi
140-
141- - name : Make Anykernel3
142- if : env.CHECK_IMAGE_1 == 'true'
143- run : |
144- cd $GITHUB_WORKSPACE/kernel_workspace
145- rm -rf AnyKernel3/Image
146- cp android-kernel/out/arch/arm64/boot/Image AnyKernel3/
147-
148- - name : Compress AnyKernel3 with official KernelSU folder to zip
120+
121+ - name : Zip files
149122 run : |
123+ zip -r Image.zip $GITHUB_WORKSPACE/kernel_workspace/android-kernel/out/arch/arm64/boot/Image
150124 cd $GITHUB_WORKSPACE/kernel_workspace/AnyKernel3
151- zip -r $GITHUB_WORKSPACE/AK3-LOS22.1-Salami-Unofficial-KSU_${{ env.KSUVER_1 }}-${{ env.BUILD_TIME }}.zip ./*
152-
153- - name : Upload Image
154- if : env.CHECK_IMAGE_1 == 'true'
155- uses : actions/upload-artifact@v4
156- with :
157- name : Image-Unofficial-KSU_${{ env.KSUVER_1 }}
158- path : kernel_workspace/android-kernel/out/arch/arm64/boot/Image
125+ zip -r $GITHUB_WORKSPACE/AK3-LineageOS_22-OPlus-SM8150-KSU_${{ env.KSUVER }}-${{ env.BUILD_TIME }}.zip ./*
159126
160- - name : Upload AnyKernel3
161- if : env.CHECK_IMAGE_1 == 'true'
162- uses : actions/upload-artifact@v4
163- with :
164- name : AK3-LOS22.1-Salami-Unofficial-KSU_${{ env.KSUVER_1 }}-${{ env.BUILD_TIME }}
165- path : kernel_workspace/AnyKernel3/*
127+ - name : Send AnyKernel3 to Telegram
128+ env :
129+ TELEGRAM_TOKEN : ${{ secrets.TELEGRAM_TOKEN }}
130+ TELEGRAM_CHAT_ID : ${{ secrets.TELEGRAM_CHANNEL_ID }}
131+ run : |
132+ caption2="\
133+ <blockquote><a href=\"https://github.com/rsuntk/KernelSU\"><b>Unofficial KernelSU (rsuntk)</b> - ${{ env.KSUVER }}</a></blockquote>
134+
135+ ROM:<blockquote><b>LineageOS 22</b></blockquote>
136+ Device:<blockquote>OnePlus 8 | OnePlus 8 Pro | OnePlus 8T | OnePlus 9R</blockquote>
137+ Kernel Version:<blockquote>${{ env.KERNEL_VERSION }}</blockquote>
138+ Build Time:<blockquote>${{ env.BUILD_TIME_1 }}</blockquote>
139+ Special Note:
140+ <blockquote>The unofficial version is recommended to install an <a href=\"https://github.com/rsuntk/KernelSU/releases\">unofficial manager</a></blockquote>
141+ Change Log:<blockquote>Test only.</blockquote>
142+
143+ <a href=\"https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}\">Github Action</a>"
144+ media=$(jq -n \
145+ --arg media1 "attach://anykernel3" \
146+ --arg media2 "attach://Image" \
147+ --arg caption2 "$caption2" \
148+ '[{type: "document", media: $media1, parse_mode: "HTML"},
149+ {type: "document", media: $media2, caption: $caption2, parse_mode: "HTML"}]')
150+ curl "https://api.telegram.org/bot$TELEGRAM_TOKEN/sendMediaGroup?chat_id=$TELEGRAM_CHAT_ID" \
151+ -F "media=$media" \
152+ -F anykernel3="@$GITHUB_WORKSPACE/AK3-LineageOS_22-OPlus-SM8150-KSU_${{ env.KSUVER }}-${{ env.BUILD_TIME }}.zip" \
153+ -F Image="@$GITHUB_WORKSPACE/Image.zip"
0 commit comments