Skip to content

Releases: ltcdz5/gt5pro-kernel-src

6.1.141-android14-11-o-ltcdz5-v1.1-opt50(厂商钩子回移 · gameopt 可装载 · HZ 对齐出厂)

Choose a tag to compare

@ltcdz5 ltcdz5 released this 08 Oct 10:19

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_ZERO off(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(md5 4a2829cf415756107d3785157e7289cd)— fastboot 刷 boot_a
  • GT5Pro-RMX3888-v1.1-opt50-AK3.zip(md5 fd82842d7ff857b756494a0846940407)— 管理器直接刷,自动安装附加模块 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(md5 c40ee988904f2ea29720b0100b0ad124,蓝牙修复版)
  • 更早:boot-v1.1-opt49-repacked.img(md5 f285f54b2af95af56677d96f96f1b377)

仍未做(明确记录)

  • 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 蓝牙修复版)

Choose a tag to compare

@ltcdz5 ltcdz5 released this 08 Oct 09:03

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)

  1. 新增(内置):NTFS3_FS(+LZX_XPRESS)、SQUASHFS(+XZ)、CIFS
  2. 撤除:MODULE_FORCE_LOAD / KSM —— 闸门2 实测这两项会改核心结构布局(struct module / struct mm_struct)⇒ 厂商模块 modversions CRC 全数失效(“改结构=砖”被闸门拦下)
  3. 厂商源码缺陷处置:net/l2tp/l2tp_core.c 调用全树无定义的 l2tp_session_inc_refcount ⇒ defconfig 显式关闭 L2TP/PPPOL2TP(运行时由厂商预编译 l2tp_core.ko / l2tp_ppp.ko 提供)
  4. 编译期: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(md5 c40ee988904f2ea29720b0100b0ad124)— fastboot 刷 boot_a
  • GT5Pro-RMX3888-v1.1-opt49-crc-AK3.zip(md5 13966f4df5e14c6289b4aff60b4380d9)— 管理器直接刷,自动安装附加模块 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(md5 f285f54b2af95af56677d96f96f1b377,无蓝牙修复)
  • 更早:boot-v1.1-opt48-repacked.img(md5 ae3989451bf046d61762677573f07d28)

源码

  • 快照分支 opt49 = 8e2a46773322c680a450db8a52c83edc291b83bf
  • 台账(权威):工具仓库 gt5pro-kernel-kit 的 CHANGELOG.md §八

6.1.141-android14-11-o-ltcdz5-v1.1-opt47

Choose a tag to compare

@ltcdz5 ltcdz5 released this 04 Oct 15:11

6.1.141-android14-11-o-ltcdz5-v1.1-opt47

基于 AOSP Android Common Kernel 6.1.141(android14-6.1-lts)的 GT5 Pro(RMX3888)自编内核。

本版改动

  1. ACK 2026-10-02 两条 i2c 修复(本版主线):适配器注册竞态(idr_alloc 先存 NULL、注册完成前 idr_replace 发布真指针)+ dev_set_name 判返回值 + 失败路径补拆 Host Notify IRQ domain。纯函数体改动 +23/−4。
  2. sched_ext 干净失败(opt45 起):从 BPF struct_ops 类型表摘掉 sched_ext_ops,并让 scx_ops_enable() 早退 —— 修掉 scx 加载硬挂死整机的问题(已实测确认挂点在 BPF 对象加载层)。
  3. 交付前清理:删除 61 个 .rej/.orig 残留;Baseband-guard 从悬空 gitlink 修成合法子模块(补 .gitmodules)。

闸门(在该版真实产物上跑)

  • 闸门1(导出符号):新增 50 / 消失 1 / 命中厂商 0 / 遮蔽 0 ⇒ PASS
  • 闸门2(厂商模块 CRC):会拒绝装载 = 1(仅既有蓝牙基线)⇒ 非蓝牙拒载 = 0
  • 上机实测:lsmod 621、dmesg Unknown 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

Choose a tag to compare

@ltcdz5 ltcdz5 released this 03 Oct 18:44

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 正常

四、刷写须知(务必看)

  1. 只刷 boot_a;绝不碰 init_boot / devinfo / abl / xbl / vbmeta / super / userdata / boot_b
  2. fastboot flash 会把活动槽切到 b ⇒ 刷完必须 fastboot set_active a(铁律)
  3. 动手前先备好回退件(上一节「回退首选」+ md5 已给)
  4. 本版为第三方自编内核,刷机风险自负

五、观察期与发布说明

本版于 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