A daily‑driver focused Linux 6.6 GKI 2.0 kernel for the OnePlus 13
(PJZ110 / sun / sm8750), built entirely from GitHub Actions. The goal is a
stock‑like, stable baseline with modern root + hiding support and a few
opt‑in performance and battery tweaks — not a maxed‑out benchmark build.
Three root solutions are offered as separate build lanes, all sharing the same CCTV18 OP13 source, toolchain and SUSFS tree:
| Lane | Workflow | Root solution | Pick it if… |
|---|---|---|---|
| ReSukiSU | Build_ReSukiSU.yml |
ReSukiSU (SukiSU fork) | you want the SukiSU feature set with the ReSukiSU manager/metamodule stack |
| SukiSU Ultra | Build SukiSU_Ultra.yml |
SukiSU‑Ultra | you want upstream SukiSU Ultra with KPM + inline SUSFS |
| KernelSU‑Next | Build KSUN.yml |
KernelSU‑Next | you prefer the classic KernelSU‑Next experience |
Builds are produced as GitHub Actions artifacts on each manual run. If a tagged release exists, grab the ZIP from Releases; otherwise open the relevant Actions run and download the artifact.
Current release line:
v81— feature‑rich daily‑driver defaults (SUSFS inline + KPM + ADIOS + Baseband‑Guard + ZRAM LZ4 + NTSYNC + netfilter, with BBR and Re:Kernel now on by default). FengChi/HMBIRD stays off for stability. Seedocs/RELEASE_v81.md.
All three lanes are manually triggered (workflow_dispatch) and share:
- Source:
cctv18/android_kernel_common_oneplus_sm8750@oneplus/sm8750_v_16.0.0_oneplus_13_6.6.89 - Toolchain: CCTV18 prebuilt LLVM/Clang 18 (
LLVM-Clang18-r510928) + build‑tools - SUSFS:
cctv18/susfs4oki@oki-android15-6.6(single source — no mixed SUSFS trees) - Packaging: osm0sis/AnyKernel3, boot detection fixed for the A/B
sunlayout - Caching: per‑lane
ccache(zstd), restored across runs
| Input | What it does | Sensible default |
|---|---|---|
profile |
stock_daily / stock_plus / minimal_safe / debug_only |
stock_daily |
| root ref | resukisu_ref / sukisu_ref / ksun_ref |
main · builtin · dev-susfs |
SUSFS / susfs_enable |
Enable CCTV18 SUSFS | On |
susfs_patch_policy |
strict / audited_cctv18 / native_cctv18 |
audited_cctv18 |
hook_mode |
Hook target (inline SUSFS vs. auto/kprobe) | inline_susfs / cctv18_susfs_auto |
kernel_suffix / kernel_name |
Stock‑mimic LOCALVERSION (controls uname -r) |
stock‑like string |
optimise |
O2 (stable) or O3 (test‑only) |
O2 |
zram_comp |
Preferred ZRAM compressor | lz4 |
bbr / bbr_mode |
Compile in TCP BBR (selectable at runtime, not forced default) | On / enabled |
proxy / better_net |
Netfilter / TTL / IP_SET options | On |
adios, bbg, rekernel |
Optional CCTV18 patches (best‑effort, see note) | On |
fengchi / HMBIRD |
Experimental scheduler | Off (stability) |
clean_ccache |
Wipe ccache before building | false |
Optional patches are best‑effort.
adios,baseband_guard,rekernel,fengchi/HMBIRD etc. are applied only if a matching CCTV18 patch exists and dry‑runs cleanly; otherwise the step logs a warning and skips, so the build still completes. Don't assume a toggle is "on" in the final Image — confirm in the run's_ox_debug/optional-patches.logandconfig-scan.txt.
Each run uploads one artifact containing:
Image_OP13_…— raw kernel image (+.sha256)AK3_OP13_…_FLASH_THIS.zip— AnyKernel3 flashable ZIP (+.sha256)OP13_ZRAM_LZ4_Tuner_…zip— optional, separate ZRAM/LZ4 tuner module_ox_debug/— logs, final.config, rejects, UTS release, patch audit
What each lane reliably provides:
- GKI 2.0 packaging as an AnyKernel3 flashable ZIP
- Root: ReSukiSU or SukiSU Ultra or KernelSU‑Next (one per lane)
- SUSFS (CCTV18
susfs4oki) with inline hook by default — SUS path / mount / kstat, try‑umount,unamespoof, cmdline/bootconfig spoof, open‑redirect, sus‑map - ZRAM with LZ4 / LZ4HC / ZSTD kernel support and a preferred compressor
- Netfilter extras when
proxy/better_netis on: TTL/HL target + match, IP_SET - KPM support on the SukiSU/ReSukiSU lanes (kernel support only — no modules bundled)
- Stock‑mimic
uname -rviakernel_suffix, so the build looks stock to apps
Opt‑in / best‑effort (only if the CCTV18 patch applies cleanly): ADIOS I/O scheduler, Baseband‑Guard, Re:Kernel, FengChi/HMBIRD scheduler, NTSYNC, BBR.
Hiding note: the SukiSU stable lane intentionally skips the SUSFS SELinux‑policy hiding blocks (
69_hide_stuffand the policy‑query wrappers) because they failed final link against the current SukiSU builtin. Core SUSFS + inline hook stay enabled; SELinux‑policy hiding is reduced. Seedocs/REVIEW.md.
⚠️ Flashing kernels can cause bootloops, soft‑bricks, data loss and instability. You are responsible for what you flash. If you can't recover from a bootloop, don't flash.
Back up before flashing. In recovery, back up boot and init_boot
(and vbmeta if your setup uses it).
If you bootloop:
- Reboot to recovery.
- Restore your
boot/init_bootbackup. (If recovery is broken, flash the stockboot.img, then reboot to recovery.) - Reboot.
- Download the correct
AK3_OP13_…_FLASH_THIS.zipfrom Releases (or the Actions run artifact). - Flash with a kernel flasher or your KernelSU/SukiSU/Magisk manager's AnyKernel3 flasher.
- Reboot.
- Install/update the matching SUSFS module for your root manager.
Force LZ4 ZRAM (optional): flash the separate OP13_ZRAM_LZ4_Tuner module,
reboot, and it prefers LZ4 when supported. It is safe by design — it will not
reset ZRAM if it's already active.
Switching lanes (e.g. SukiSU → KSUN)? Reinstall the SUSFS module afterwards to clear stale module state.
# Kernel version / stock-mimic uname
uname -a
# ZRAM + active compressor
su -c 'cat /sys/block/zram0/comp_algorithm 2>/dev/null; cat /proc/swaps'
# SUSFS kernel flags
su -c 'zcat /proc/config.gz | grep -E "CONFIG_KSU(_SUSFS)?(_SUS_PATH|_SUS_MOUNT|_TRY_UMOUNT|_SPOOF_UNAME)?="'- SUSFS module "operation not supported" /
0x555e1— reinstall the SUSFS module after flashing; if you had a different one before, uninstall it, reboot, then install the correct one. - No
zram.ko— ZRAM is built‑in here; check/proc/swapsand/sys/block/zram0/comp_algorithminstead of looking for a.ko. - Bootloop — restore
boot/init_boot, then return to thestock_dailyprofile and re‑introduce options one at a time. - A toggle didn't take effect — open the run's
_ox_debug/config-scan.txtandoptional-patches.log; best‑effort patches skip if they don't apply.
Open Actions → pick a lane → Run workflow, choose your inputs, and download
the artifact when it finishes. Start from stock_daily + O2 + inline SUSFS for
a stable result, then experiment from a fork.
- Clean Caches (
Clean Caches.yml) — purgeccache-*Actions caches. - Cleanup CCache (
clean-up.yml) — bulk cache/run cleanup with filters. - Lint Workflows (
lint.yml) — actionlint + yamllint + shellcheck on every workflow change, so pipeline typos are caught before a build is queued.
action.yml is a separate, device‑agnostic builder that syncs sources with
Google's repo tool (manifest.xml), pulls AnyKernel3/kernel_patches from
TheWildJames + SUSFS from simonpunk/susfs4ksu, and applies a broad OnePlus
performance/battery patch set. It is intended for forks/other devices and is
not what the OP13 release lanes above use. See docs/REVIEW.md for details
and a roadmap to unify the lanes.
@cctv18 · SukiSU‑Ultra · ReSukiSU · KernelSU‑Next · @simonpunk (SUSFS) · @osm0sis (AnyKernel3) · @mrcxlinux · @WildKernels / @TheWildJames
Distributed under GPL‑2.0‑only (see LICENSE), matching the
upstream Linux kernel and SUSFS sources this project builds on. Build glue and
workflows are covered by the same license. Bundled third‑party components
(AnyKernel3, root solutions, CCTV18 patches) remain under their own upstream
licenses — follow those where applicable.