Repository navigation
Releases: ltcdz5/gt5pro-kernel-src
Release list
6.1.141-android14-11-o-ltcdz5-v1.1-opt50(厂商钩子回移 · gameopt 可装载 · HZ 对齐出厂)
6.1.141-android14-11-o-ltcdz5-v1.1-opt50
真我 GT5 Pro(RMX3888 / SM8650)自编内核 · 基于 OPPO 官方 6.1.141 OKI + ACK(android14-6.1)回移
本轮做了什么
1. 回移 5 个 OPPO 厂商钩子(功能性优化)
android_vh_scx_select_cpu_dfl、android_vh_check_preempt_curr_scx、android_vh_scx_cpu_exclusive、android_vh_scx_consume_dsq_allowed、android_vh_scx_sched_lpm_disallowed_time
- 效果:
oplus_bsp_game_opt(游戏优化驱动)由「被拒载」变为「可装载」 —— 游戏场景的调度/频率干预恢复(设备 insmod 实测 = 1) - 原型来源:OPPO/realme 官方开源与社区补丁(
Suxiaoqinx/scxe、oppo-source/android_kernel_oppo_sm8750、reigadegr/sun_action::patchs/6.1/6.1sched_ext.diff) - 验收:刷机前比对
oplus_bsp_game_opt的 124 个期望符号 ⇒ 缺失 0 / CRC 不符 0;5 个钩子 CRC 与模块期望值逐项一致
2. CONFIG_HZ 300 → 250(与出厂对齐)
tick 更少(略省电),且厂商模块按 250 编译,时间换算一致。
3. 蓝牙 CRC 定点覆写(延续)
sk_filter_trim_cap 的 modversions CRC 对齐厂商期望值(0x43b2b8f0 → 0xf5845708),保证 BT 全栈装载。
出厂 config 对照(诊断结论)
逐项对照出厂 6036 项 × opt49 6111 项:一致 5971 / 我们多开 83 / 出厂多开 20 / 值不同 7。
- KASAN / KFENCE / DEBUG_LIST / SCHED_DEBUG / SCHEDSTATS / BUG_ON_DATA_CORRUPTION 与出厂逐项一致(非本项目引入,按安全线默认不动)
- 我们相对出厂已省掉的性能税:
UBSAN(含 bounds/array-bounds/local-bounds/trap)off、INIT_STACK_ALL_ZEROoff(INIT_STACK_NONE)、KFENCE_SAMPLE_INTERVAL=0
上机核验
版本串 v1.1-opt50、槽位 _a、CONFIG_HZ=250、gameopt 可装载、蓝牙 state:ON、
Oops / BUG: / Kernel panic / Unknown symbol / disagrees about version 全 0。
附件
boot-v1.1-opt50-repacked.img(md54a2829cf415756107d3785157e7289cd)— fastboot 刷boot_aGT5Pro-RMX3888-v1.1-opt50-AK3.zip(md5fd82842d7ff857b756494a0846940407)— 管理器直接刷,自动安装附加模块horae_once/quiet_logs
刷写
fastboot flash boot_a boot-v1.1-opt50-repacked.img
fastboot set_active a # 必须!
fastboot reboot回退首选
boot-v1.1-opt49-crc-repacked.img(md5c40ee988904f2ea29720b0100b0ad124,蓝牙修复版)- 更早:
boot-v1.1-opt49-repacked.img(md5f285f54b2af95af56677d96f96f1b377)
仍未做(明确记录)
oplus_bsp_sched_ext与 hmbird/walt 私有调度栈(缺 19 个符号)⇒ 单独立项;这也是「cpufreq 调速器里没有 scx」的根因(scx 是调度类,接口在/sys/kernel/sched_ext,需该栈注册)- KASAN/KFENCE/DEBUG_LIST/SCHED_DEBUG/SCHEDSTATS/BUG_ON_DATA_CORRUPTION 关闭(属安全换性能,需机主决定)
PANIC_TIMEOUT保持 30(panic 自动重启);regdb 内嵌保留(69 秒 ueventd 等待有 dmesg 实测证据)
源码
- 快照分支
opt50=ed072ed9afeb4aa102c6aa7576d0dc649f80f161 - 台账:
gt5pro-kernel-kit的 CHANGELOG §九
6.1.141-android14-11-o-ltcdz5-v1.1-opt49(-crc 蓝牙修复版)
6.1.141-android14-11-o-ltcdz5-v1.1-opt49(-crc 蓝牙修复版)
真我 GT5 Pro(RMX3888 / SM8650)自编内核 · 基于 OPPO 官方 6.1.141 OKI + ACK(android14-6.1)回移
⚠️ 按机主决定提前发布(观察期本应到 2026-10-09 16:41)——属《发布规范》§二 例外,记录在案。
本版改动(opt49)
- 新增(内置):
NTFS3_FS(+LZX_XPRESS)、SQUASHFS(+XZ)、CIFS - 撤除:
MODULE_FORCE_LOAD/KSM—— 闸门2 实测这两项会改核心结构布局(struct module/struct mm_struct)⇒ 厂商模块 modversions CRC 全数失效(“改结构=砖”被闸门拦下) - 厂商源码缺陷处置:
net/l2tp/l2tp_core.c调用全树无定义的l2tp_session_inc_refcount⇒ defconfig 显式关闭L2TP/PPPOL2TP(运行时由厂商预编译l2tp_core.ko/l2tp_ppp.ko提供) - 编译期:
KCFLAGS+=-Wno-implicit-function-declaration(厂商代码漂移)
蓝牙修复(-crc)
- 现象:厂商
system_dlkm/bluetooth.ko因sk_filter_trim_cap的 modversions CRC 不符被拒载(期望0xf5845708/ 本树0x43b2b8f0)⇒hci_uart/btqca/btbcm依赖失败 ⇒ 内核侧无 HCI 设备 - 证据:出厂
boot_a.img的 BTF 与本内核 BTF 逐块对比 ——struct sk_buff(221/221)、struct sock(142/142)、struct sock_common(70/70) 完全一致;闸门2 显示bluetooth.ko其余 96 个符号全部匹配 ⇒ 无真实 ABI 差异,定点覆写安全 - 做法:构建后定点覆写内核
__kcrctab中该符号的值(镜像内唯一出现,4 字节)⇒tools/patch_crc_sk_filter_trim_cap.py - 验收:蓝牙耳机连接与使用正常(机主实机测试) ✓;
disagrees about version= 0;BT 全栈模块装载(bluetooth/hci_uart/btqca/btbcm/rfcomm/hidp/btsdio)
闸门结果
- 闸门2(厂商模块 CRC):会拒绝装载的模块 = 0(493 模块全过)
- 闸门1(替代法·导出名集):候选 15443 / 基线 15437 ⇒ 新增 6、消失 0、无遮蔽(6 个新导出全部来自 CIFS+DNS_RESOLVER)
附件
boot-v1.1-opt49-crc-repacked.img(md5c40ee988904f2ea29720b0100b0ad124)— fastboot 刷boot_aGT5Pro-RMX3888-v1.1-opt49-crc-AK3.zip(md513966f4df5e14c6289b4aff60b4380d9)— 管理器直接刷,自动安装附加模块horae_once/quiet_logs
刷写
fastboot flash boot_a boot-v1.1-opt49-crc-repacked.img
fastboot set_active a # 必须!fastboot flash 会切槽
fastboot reboot回退首选
- 上一版镜像:
boot-v1.1-opt49-repacked.img(md5f285f54b2af95af56677d96f96f1b377,无蓝牙修复) - 更早:
boot-v1.1-opt48-repacked.img(md5ae3989451bf046d61762677573f07d28)
源码
- 快照分支
opt49=8e2a46773322c680a450db8a52c83edc291b83bf - 台账(权威):工具仓库
gt5pro-kernel-kit的CHANGELOG.md§八
6.1.141-android14-11-o-ltcdz5-v1.1-opt47
6.1.141-android14-11-o-ltcdz5-v1.1-opt47
基于 AOSP Android Common Kernel 6.1.141(android14-6.1-lts)的 GT5 Pro(RMX3888)自编内核。
本版改动
- ACK 2026-10-02 两条 i2c 修复(本版主线):适配器注册竞态(
idr_alloc先存 NULL、注册完成前idr_replace发布真指针)+dev_set_name判返回值 + 失败路径补拆 Host Notify IRQ domain。纯函数体改动 +23/−4。 - sched_ext 干净失败(opt45 起):从 BPF struct_ops 类型表摘掉
sched_ext_ops,并让scx_ops_enable()早退 —— 修掉 scx 加载硬挂死整机的问题(已实测确认挂点在 BPF 对象加载层)。 - 交付前清理:删除 61 个
.rej/.orig残留;Baseband-guard 从悬空 gitlink 修成合法子模块(补.gitmodules)。
闸门(在该版真实产物上跑)
- 闸门1(导出符号):新增 50 / 消失 1 / 命中厂商 0 / 遮蔽 0 ⇒ PASS
- 闸门2(厂商模块 CRC):会拒绝装载 = 1(仅既有蓝牙基线)⇒ 非蓝牙拒载 = 0
- 上机实测:
lsmod621、dmesgUnknown symbol=0 且 disagrees=0、oops=0、23 个 i2c 客户端正常挂上
刷写须知(⚠️ 只刷 boot_a)
fastboot flash boot_a boot-v1.1-opt47-repacked.img
fastboot set_active a
fastboot reboot
刷完必须 set_active a;不要碰 init_boot / devinfo / abl / xbl / vbmeta / super / userdata / boot_b。
文件与校验
| 文件 | md5 |
|---|---|
| boot-v1.1-opt47-repacked.img | 4ad29d109c597f018e30f2f908d5031a |
| 裸 Image(构建产物) | f7dcb69f3828a62f95687bc4da262195 |
| 回退首选 boot-v1.1-opt42-repacked.img | 4bd362b0a17513474de217ea9beb8ae3 |
镜像不入公开仓库(含原厂 ramdisk,公开再分发有合规风险);上表 md5 为核验依据。
观察期(如实说明)
本版观察期为 2026-10-04 18:20 → 发布时刻(约 4.6 小时),未满 24 小时 —— 机主明确决定提前发布,特此记录。
期间:Scene 未更新(lastUpdateTime 2026-10-04 02:08,早于窗口起点)、未再刷机、lsmod 621、dmesg 三项全 0。
可审计载体
- 逐版补丁:本仓库
history分支build-history/0034..0038(git format-patch 导出,保留原始提交 SHA) - 工具与台账:ltcdz5/gt5pro-kernel-kit —— 版本、闸门、回退件与决策记录以其中的
CHANGELOG.md为准
6.1.141-android14-11-o-ltcdz5-v1.1-opt42
6.1.141-android14-11-o-ltcdz5-v1.1-opt42
设备:真我 GT5 Pro(pineapple / RMX3888,Snapdragon 8 Gen 3 / SM8650)· Android 16 · GKI 6.1.141 OKI
源码:基于 OPPO 官方开源(android_kernel_common_oneplus_sm8650)+ AOSP android14-6.1,GPL-2.0
一、本版是什么
| 项 | 值 |
|---|---|
| 完整版本串 | 6.1.141-android14-11-o-ltcdz5-v1.1-opt42 |
| 本版源码 | 本 Release 的 tag v1.1-opt42 即该版本源码快照(提交 a4428da);默认分支 main 亦已快进到同一提交 ⇒ 打开仓库即是现役源码。逐版补丁序列见 history 分支的 build-history/ |
| 可刷镜像 | boot-v1.1-opt42-repacked.img(201,326,592 B) md5 4bd362b0a17513474de217ea9beb8ae3 |
| 裸内核 | perf42/Image.opt42 md5 2e20e2c1b7dea60cdfee3d58a730a79f |
| 回退首选 | boot-v1.1-opt41-repacked.img md5 8e449caedeb1791923393c9c4eb2245f |
⚠️ 本 Release 不附镜像文件(仅给出 md5 供核对)。镜像不入公开仓库。
二、本版改动
① USB gadget bRequestType 位域误判(drivers/usb/gadget/composite.c)
USB_DIR_OUT == 0、USB_DIR_IN == 0x80,原式对整字节做相等比较,导致 0x21(RNDIS class-OUT)等
控制请求也走「截断后继续下发」;改为只测方向位且方向反转(命中 USB_DIR_IN 时截断,否则 stall),
与上游 f08adf5add9a 语义一致。
② LZ4 armv8 Permtable 越界读(lib/lz4/lz4armv8/lz4armv8.S)
Permtable 为 16 行 x 32B = 512B,offset 属于 [16,31] 时最远读到 480B;
把边界判定提到访存之前,越界分支复用既有的 32 字节整块拷贝标签。
③ 累计(opt37 → opt42):ext4/jbd2 三项(含 CVE-2025-38337)、CVE-2026-31446(ext4 sysfs UAF)、
netfilter 四项(ipset dump 竞态、nf_conntrack_expect 空指针、TCP 非对齐读)、
AF_PACKET 时间戳 cmsg 越界读(上游 1ee90b77b727)、以及版本号换新规范。
三、验证
| 项 | 结果 |
|---|---|
| 闸门1 gate_new_exports.py | PASS(命中厂商:新增 = 0,消失 = 0) |
| 闸门2 gate_vko_crc.py | 会拒绝装载的模块 = 1,即判定基线 bluetooth.ko / sk_filter_trim_cap |
| 更强证据 | opt37 与 opt42 的 vmlinux.symvers 字节级完全相同(15437 行 / 923271 B)⇒ 导出符号集合与全部 modversions CRC 零变化 |
| 代码审核 | 8 处改动逐条与上游修法一致 |
| 上机健康(2026-10-04 02:33 实测) | 内核 6.1.141-android14-11-o-ltcdz5-v1.1-opt42;槽位 _a;governor uag x4;oops 0;lsmod 621 |
| 频率控制 | 限频器 max 1132800 / 960000 / 960000 / 902400;下限 min 787200 / 729600 / 729600 / 787200 ⇒ Scene LP 正常 |
四、刷写须知(务必看)
- 只刷 boot_a;绝不碰 init_boot / devinfo / abl / xbl / vbmeta / super / userdata / boot_b
- fastboot flash 会把活动槽切到 b ⇒ 刷完必须 fastboot set_active a(铁律)
- 动手前先备好回退件(上一节「回退首选」+ md5 已给)
- 本版为第三方自编内核,刷机风险自负
五、观察期与发布说明
本版于 2026-10-04 01:12 刷入。按工具台账仓库《发布规范-20261004.md》,发布应在确认没问题满
24 小时(即 2026-10-05 01:12)后进行;本次经机主决定提前发布,属记录在案的例外。
截至发布时:oops 0、lsmod 621、Scene 频率控制正常。
六、完整版本史
opt5 → v1.1-opt42 全部 30 个版本的逐条改动、以及全部错误实验的失败原因,
见工具台账仓库 https://github.com/ltcdz5/gt5pro-kernel-kit/blob/master/CHANGELOG.md
七、许可与来源
GPL-2.0。内核源自 AOSP kernel/common(android14-6.1)+ OPPO/oplus 官方开源;
复刻/借鉴/引用清单见 https://github.com/ltcdz5/gt5pro-kernel-kit/blob/master/NOTICE.md