1- name : Build Kernel - Mi 11 Ultra/Pro (WildKSU + SuSFS )
1+ name : Build Kernel - Mi 11 Ultra (WildKSU)
22
33on :
44 workflow_dispatch :
1111 description : ' Kernel source branch'
1212 required : true
1313 default : ' twelve'
14+ SELINUX_MODE :
15+ description : ' SELinux mode'
16+ required : true
17+ default : ' enforcing'
18+ type : choice
19+ options :
20+ - ' enforcing'
21+ - ' permissive'
22+ DISABLE_REAR_DISPLAY :
23+ description : ' Disable rear display'
24+ required : true
25+ default : ' true'
26+ type : choice
27+ options :
28+ - ' true'
29+ - ' false'
1430
1531jobs :
1632 build :
@@ -39,15 +55,15 @@ jobs:
3955 libelf-dev libssl-dev lld llvm make python3 \
4056 tar perl lz4 jq zip unzip wget
4157
42- - name : Clone Clang Toolchain (v15)
58+ - name : Clone Clang (v15)
4359 run : |
4460 mkdir -p $TC_DIR
4561 CLANG_URL=$(curl -s https://raw.githubusercontent.com/ZyCromerZ/Clang/main/Clang-15-link.txt)
4662 wget -q "$CLANG_URL" -O $TC_DIR/clang.tar.gz
4763 tar -xf $TC_DIR/clang.tar.gz -C $TC_DIR
4864 echo "$TC_DIR/bin" >> $GITHUB_PATH
4965
50- - name : Clone Kernel Source
66+ - name : Clone Source
5167 run : |
5268 git clone --depth=1 -b ${{ github.event.inputs.KERNEL_BRANCH }} \
5369 https://github.com/${{ github.event.inputs.KERNEL_SOURCE }}.git $KERNEL_DIR
@@ -56,41 +72,41 @@ jobs:
5672 working-directory : ${{ env.KERNEL_DIR }}
5773 run : |
5874 CONF=$(find arch/arm64/configs/ -name "*star*_defconfig" -o -name "*mars*_defconfig" | head -n 1)
59- if [ -n "$CONF" ]; then
60- DEFCONFIG=$(echo "$CONF" | sed 's|arch/arm64/configs/||')
61- echo "DEFCONFIG=$DEFCONFIG" >> $GITHUB_ENV
62- echo "Found: $DEFCONFIG"
63- else
64- echo "ERROR: Defconfig not found!" && exit 1
65- fi
75+ if [ -z "$CONF" ]; then echo "ERROR: No config!" && exit 1; fi
76+ DEFCONFIG=$(echo "$CONF" | sed 's|arch/arm64/configs/||')
77+ echo "DEFCONFIG=$DEFCONFIG" >> $GITHUB_ENV
6678
6779 - name : Integrate WildKSU & SuSFS
6880 working-directory : ${{ env.KERNEL_DIR }}
6981 run : |
70- # WildKSU
7182 curl -LSs "https://raw.githubusercontent.com/WildKernels/Wild_KSU/refs/heads/stable/kernel/setup.sh" | bash -s stable
72-
73- # SuSFS (для ядра 5.4 нужны другие патчи, чем для 6.6)
7483 git clone --depth=1 https://gitlab.com/simonpunk/susfs4ksu.git -b kernel-5.4
75-
76- # Накладываем патч SuSFS для 5.4
77- # (Пути к патчам могут отличаться, подбираем самый подходящий)
7884 PATCH_FILE=$(find susfs4ksu/kernel_patches/ -name "*5.4*.patch" | head -n 1)
79- if [ -f "$PATCH_FILE" ]; then
80- patch -p1 < "$PATCH_FILE"
81- fi
82-
83- # Копируем файлы SuSFS
84- cp susfs4ksu/kernel_patches/fs/susfs.c fs/
85- cp susfs4ksu/kernel_patches/include/linux/susfs.h include/linux/
86- cp susfs4ksu/kernel_patches/include/linux/susfs_def.h include/linux/
85+ [ -f "$PATCH_FILE" ] && patch -p1 < "$PATCH_FILE"
86+ cp -f susfs4ksu/kernel_patches/fs/susfs.c fs/
87+ cp -f susfs4ksu/kernel_patches/include/linux/susfs.h include/linux/
88+ cp -f susfs4ksu/kernel_patches/include/linux/susfs_def.h include/linux/
8789 rm -rf susfs4ksu
8890
91+ - name : Patch DTS
92+ if : ${{ github.event.inputs.DISABLE_REAR_DISPLAY == 'true' }}
93+ working-directory : ${{ env.KERNEL_DIR }}
94+ run : |
95+ find arch/arm64/boot/dts/ -name "*star*.dts" -o -name "*mars*.dts" | while read f; do
96+ printf '\n&sde_dsi1 { status = "disabled"; };\n' >> "$f"
97+ printf '&dsi_display1 { /delete-property/ qcom,dsi-display-active; };\n' >> "$f"
98+ done
99+
89100 - name : Configure Kconfig
90101 working-directory : ${{ env.KERNEL_DIR }}
91102 run : |
92103 DCFG="arch/arm64/configs/$DEFCONFIG"
93- cat >> "$DCFG" << 'EOF'
104+ if [ "${{ github.event.inputs.SELINUX_MODE }}" = "permissive" ]; then
105+ SEL="CONFIG_SECURITY_SELINUX_BOOTPARAM=y"
106+ else
107+ SEL="# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set"
108+ fi
109+ cat >> "$DCFG" << EOF
94110 CONFIG_KSU=y
95111 CONFIG_WILD_KSU=y
96112 CONFIG_KSU_SUSFS=y
@@ -99,36 +115,34 @@ jobs:
99115 CONFIG_KSU_SUSFS_SPOOF_UNAME=y
100116 CONFIG_KSU_SUSFS_ENABLE_LOG=y
101117 CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y
118+ $SEL
102119 CONFIG_LOCALVERSION="-palaziks-wild"
103120 CONFIG_LTO_NONE=y
104121 EOF
105122
106- - name : Build Kernel
123+ - name : Build
107124 working-directory : ${{ env.KERNEL_DIR }}
108125 run : |
109126 mkdir -p $OUT_DIR
110- make O=$OUT_DIR ARCH=arm64 CC=clang \
111- CLANG_TRIPLE=aarch64-linux-gnu- \
112- CROSS_COMPILE=aarch64-linux-gnu- \
113- CROSS_COMPILE_ARM32=arm-linux-gnueabi- \
114- $DEFCONFIG
115-
116- make -j$(nproc --all) O=$OUT_DIR ARCH=arm64 CC=clang \
117- CLANG_TRIPLE=aarch64-linux-gnu- \
118- CROSS_COMPILE=aarch64-linux-gnu- \
119- CROSS_COMPILE_ARM32=arm-linux-gnueabi- \
120- Image.gz-dtb
127+ ARGS="ARCH=arm64 O=$OUT_DIR CC=clang CLANG_TRIPLE=aarch64-linux-gnu- CROSS_COMPILE=aarch64-linux-gnu- CROSS_COMPILE_ARM32=arm-linux-gnueabi-"
128+ make $ARGS $DEFCONFIG
129+ make -j$(nproc --all) $ARGS Image.gz-dtb || make -j$(nproc --all) $ARGS Image.gz
121130
122- - name : Package AnyKernel3
131+ - name : Package
123132 run : |
124133 git clone --depth=1 https://github.com/osm0sis/AnyKernel3.git $ANYKERNEL_DIR
125- cp $OUT_DIR/arch/arm64/boot/Image.gz-dtb $ANYKERNEL_DIR/Image
126- # Настройка скрипта
134+ if [ -f "$OUT_DIR/arch/arm64/boot/Image.gz-dtb" ]; then
135+ cp "$OUT_DIR/arch/arm64/boot/Image.gz-dtb" "$ANYKERNEL_DIR/Image"
136+ else
137+ cp "$OUT_DIR/arch/arm64/boot/Image.gz" "$ANYKERNEL_DIR/Image"
138+ fi
127139 sed -i 's/do.devicecheck=1/do.devicecheck=0/g' $ANYKERNEL_DIR/anykernel.sh
128- cd $ANYKERNEL_DIR && zip -r9 ../kernel-build.zip ./*
140+ ZIP_NAME="WildKSU_SuSFS_${{ github.event.inputs.SELINUX_MODE }}_$(date +%d%m).zip"
141+ cd $ANYKERNEL_DIR && zip -r9 "${GITHUB_WORKSPACE}/${ZIP_NAME}" ./*
142+ echo "ZIP_NAME=${ZIP_NAME}" >> $GITHUB_ENV
129143
130144 - name : Upload
131145 uses : actions/upload-artifact@v4
132146 with :
133- name : WildKSU-SuSFS-Mi11-Kernel
134- path : kernel-build.zip
147+ name : ${{ env.ZIP_NAME }}
148+ path : ${{ github.workspace }}/${{ env.ZIP_NAME }}
0 commit comments