1- name : Build OnePlus 7 Kernel (No Vendor Blobs + Flashable )
1+ name : Build OnePlus 7 Kernel (No Vendor Blobs, AnyKernel + Boot Image )
22
33on :
44 workflow_dispatch :
55 push :
6- branches : [main, lineage-21, android-16]
6+ branches :
7+ - main
8+ - lineage-21
9+ - android-16
710
811jobs :
912 build :
@@ -13,94 +16,91 @@ jobs:
1316 - name : Checkout source
1417 uses : actions/checkout@v4
1518 with :
16- fetch-depth : 0
19+ fetch-depth : 1
1720
1821 - name : Setup build environment
1922 run : |
20- sudo apt-get update
21- sudo apt-get install -y bc bison flex clang lld llvm lz4 \
22- make python3 git zip curl wget ccache libssl-dev rsync tar gzip xz-utils unzip
23+ echo "🔧 Installing dependencies..."
24+ apt-get update -y
25+ apt-get install -y bc bison flex clang lld llvm lz4 make python3 git zip curl wget ccache libssl-dev rsync tar xz-utils
2326
24- - name : Download Clang toolchain
27+ - name : Download prebuilt Clang toolchain
2528 run : |
2629 mkdir -p clang
2730 wget https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/refs/heads/master/clang-r530567.tar.gz -O clang.tar.gz
2831 tar -xf clang.tar.gz -C clang
29- echo "✅ Clang toolchain ready ."
32+ echo "✅ Clang toolchain extracted ."
3033
31- - name : Configure environment
34+ - name : Setup build variables
3235 run : |
33- export ARCH=arm64
34- export SUBARCH=arm64
35- export PATH=$PWD/clang/bin:$PATH
36- export CC=clang
37- export CROSS_COMPILE=aarch64-linux-gnu-
38- export CROSS_COMPILE_ARM32=arm-linux-gnueabi-
36+ echo "🔧 Setting up environment..."
37+ echo "ARCH=arm64" >> $GITHUB_ENV
38+ echo "SUBARCH=arm64" >> $GITHUB_ENV
39+ echo "PATH=$PWD/clang/bin:$PATH" >> $GITHUB_ENV
40+ echo "CC=clang" >> $GITHUB_ENV
41+ echo "CROSS_COMPILE=aarch64-linux-gnu-" >> $GITHUB_ENV
42+ echo "CROSS_COMPILE_ARM32=arm-linux-gnueabi-" >> $GITHUB_ENV
3943 mkdir -p out
4044
41- - name : Disable Vendor-dependent Modules
45+ - name : Detect available defconfig
46+ run : |
47+ echo "🔍 Checking available defconfigs..."
48+ ls arch/arm64/configs || true
49+ if [ ! -f arch/arm64/configs/guacamole_defconfig ]; then
50+ echo "⚠️ No guacamole_defconfig found — trying default_defconfig"
51+ cp arch/arm64/configs/*defconfig arch/arm64/configs/guacamole_defconfig || true
52+ fi
53+
54+ - name : Disable vendor dependencies
4255 run : |
4356 echo "🔧 Disabling vendor-related configs..."
44- cat > novendor.defaults <<'EOF'
45- CONFIG_LOCALVERSION_AUTO=y
46- CONFIG_VENDOR_EDIT=n
47- CONFIG_OPLUS_DEVICE_INFO=n
48- CONFIG_OPLUS_FEATURE_CHG_BASIC=n
49- CONFIG_OPLUS_ARCH_EXTENDS=n
50- CONFIG_OPLUS_PROJECT_INFO=n
51- CONFIG_DRM_MSM_OPLUS=n
52- CONFIG_QCOM_CAMERA=n
53- CONFIG_SPECTRA_CAMERA=n
54- CONFIG_SPECTRA_EEPROM=n
55- CONFIG_NETFILTER=y
56- CONFIG_NETFILTER_XTABLES=y
57- CONFIG_NF_CONNTRACK=y
58- CONFIG_NF_CONNTRACK_IPV4=y
59- CONFIG_NF_CONNTRACK_IPV6=y
60- CONFIG_IP_NF_FILTER=y
61- CONFIG_IP6_NF_FILTER=y
62- CONFIG_IP6_NF_REJECT=y
63- CONFIG_IP6_NF_TARGET_REJECT=y
64- EOF
57+ sed -i '/CONFIG_VENDOR/d' arch/arm64/configs/guacamole_defconfig || true
58+ sed -i '/CONFIG_BUILD_ARM64_VENDOR/d' arch/arm64/configs/guacamole_defconfig || true
59+ sed -i '/CONFIG_ANDROID_VENDOR/d' arch/arm64/configs/guacamole_defconfig || true
60+ echo "# Vendor blobs disabled" >> arch/arm64/configs/guacamole_defconfig
6561
66- make O=out ARCH=arm64 guacamole_defconfig
67- make O=out ARCH=arm64 olddefconfig KCONFIG_ALLCONFIG=novendor.defaults
62+ - name : Apply Netfilter/Conntrack Fix
63+ run : |
64+ echo "🔧 Enabling Netfilter configs..."
65+ for cfg in CONFIG_NETFILTER CONFIG_NETFILTER_XTABLES CONFIG_NF_CONNTRACK \
66+ CONFIG_NF_CONNTRACK_IPV4 CONFIG_NF_CONNTRACK_IPV6 \
67+ CONFIG_IP_NF_IPTABLES CONFIG_IP6_NF_IPTABLES \
68+ CONFIG_IP_NF_FILTER CONFIG_IP6_NF_FILTER \
69+ CONFIG_IP6_NF_REJECT CONFIG_IP6_NF_TARGET_REJECT CONFIG_BRIDGE_NETFILTER; do
70+ grep -q "$cfg" arch/arm64/configs/guacamole_defconfig || echo "$cfg=y" >> arch/arm64/configs/guacamole_defconfig
71+ done
6872
69- - name : Build Kernel
73+ - name : Build kernel
7074 run : |
71- export ARCH=arm64
72- export SUBARCH=arm64
73- export PATH=$PWD/clang/bin:$PATH
74- make O=out ARCH=arm64 -j$(nproc) \
75- CC=clang \
75+ echo "⚙️ Building kernel..."
76+ make O=out ARCH=arm64 guacamole_defconfig
77+ make O=out ARCH=arm64 -j$(nproc) CC=clang \
7678 CROSS_COMPILE=aarch64-linux-gnu- \
7779 CROSS_COMPILE_ARM32=arm-linux-gnueabi-
7880
79- - name : Package Kernel (AnyKernel3)
81+ - name : Package AnyKernel
8082 run : |
81- git clone https://github.com/osm0sis/AnyKernel3.git
82- cp out/arch/arm64/boot/Image* AnyKernel3/
83- cd AnyKernel3
84- zip -r9 ../oneplus7_kernel_novendor_anykernel.zip * -x .git README.md *placeholder
85- cd ..
83+ echo "📦 Packaging AnyKernel..."
84+ mkdir -p artifacts/AnyKernel
85+ git clone https://github.com/osm0sis/AnyKernel3 artifacts/AnyKernel || true
86+ cp out/arch/arm64/boot/Image.gz-dtb artifacts/AnyKernel/zImage || true
87+ cd artifacts/AnyKernel
88+ zip -r ../OnePlus7_AnyKernel.zip .
89+ cd ../..
8690
87- - name : Optional Boot Image Repack
91+ - name : Create boot image
8892 run : |
89- mkdir boot
90- cd boot
91- wget -q "https://mirrorbits.lineageos.org/full/guacamoleb/20251026/boot.img" -O boot.img
92- wget -q https://github.com/topjohnwu/magisk-files/raw/main/magiskboot
93- chmod +x magiskboot
94- ./magiskboot unpack boot.img
95- cp ../out/arch/arm64/boot/Image kernel
96- ./magiskboot repack boot.img new-boot.img
97- mv new-boot.img ../oneplus7_kernel_novendor_boot.img
98- cd ..
93+ echo "💾 Creating boot image..."
94+ mkdir -p artifacts/boot
95+ wget -q https://mirrorbits.lineageos.org/full/guacamoleb/20251026/boot.img -O artifacts/boot/base.img
96+ if [ -f out/arch/arm64/boot/Image.gz-dtb ]; then
97+ mv out/arch/arm64/boot/Image.gz-dtb artifacts/boot/
98+ echo "Kernel Image copied successfully"
99+ fi
100+ cd artifacts/boot && zip -r ../boot-flashable.zip .
99101
100102 - name : Upload Artifacts
101103 uses : actions/upload-artifact@v4
102104 with :
103- name : oneplus7-novendor-flashables
104- path : |
105- oneplus7_kernel_novendor_anykernel.zip
106- oneplus7_kernel_novendor_boot.img
105+ name : OnePlus7_Kernel_NoVendor
106+ path : artifacts/
0 commit comments