Skip to content

KCLF 1.5.7

Latest

Choose a tag to compare

@AndroidReverser-Test AndroidReverser-Test released this 01 Nov 10:22

KCLF 1.5.7

中文

  • manual 支持完整长符号名,按 DT_STRSZ、可读 PT_LOAD 和用户地址上限验证;SONAME、DT_NEEDED、版本名仍保留 255 字节限制。
  • 支持 payload 内定义的 compiler-rt emutls,标记 nodelete=emutls 并驻留至目标 mm 退出。首次 unload 和显式 release 拒绝执行,防止 pthread-key 析构访问已卸载代码。
  • 差分审计未发现破坏既有跨内核适配路径的问题;没有新增内核 ABI 或导入符号依赖。BTF、task_work、procfs/accessor/GUP 回退代码保持不变。
  • 12 组主机测试(ASan/UBSan)与真实设备 BTF 解析通过。Pixel 6 / Android 16 / Linux 6.1.134 / ARM64 / 4K:正式 KPM 通过 186 项原生/自有普通 App 断言,独立无 BTF/nofault 构建通过 243 项;两轮均安全排空卸载,无新增内核 BUG/WARNING/Oops/panic。

边界:其他 5.x/6.x、16K/64K 页设备未在本轮实测;回退构建仍运行在 6.1,且不用于发布。长名称缓冲最多 64 MiB(含 NUL),累计字符串读取预算 256 MiB。隐藏且不在 dynsym 中的 emutls 无法自动识别,依赖驻留和 payload 生命周期仍由使用方保证。

English

Manual loading now handles complete long symbol names with bounded reads and exact comparison. SONAME, dependency and version names retain their 255-byte limit. Payload-local compiler-rt emutls is supported with NODELETE residency until the target mm exits; first-load unload and explicit release are rejected.

The differential audit found no new kernel ABI/import dependencies or changes to existing compatibility paths. All 12 host suites and real-device BTF parsing passed. The release artifact passed 186 native/self-owned app assertions on Pixel 6 / Android 16 / Linux 6.1.134 / ARM64 / 4K; a separate no-BTF/no-nofault test build passed 243. Both runs drained/unloaded without new kernel diagnostics. This does not certify all kernels or 16K/64K devices.

Artifact and source

  • Source/tag: v1.5.7, main merge eb30b39d6dcc7c4336a5551626e4627e4c3958d9.
  • Audited dev: fcebdc6a06f29bea64e43f53326e1505ff295c99; production sources match main exactly.
  • Build: AArch64 GCC 13.3.0 / binutils 2.42; KernelPatch headers 406c85ce79a5e1c19b53be34c04baadc1ec68bc5.
  • kclf.kpm: 142168 bytes, ELF64 little-endian AArch64 ET_REL. The main rebuild is byte-identical to the device-tested artifact.
  • SHA-256: 8398bd98e72b5395e1ad4430fe474a5fb3e1008967bbacf0c2560a47f93593bf.
  • See attached SHA256SUMS and compatibility report. The report distinguishes preserved development evidence from this independent pre-release regression.

Before KPM unload, drain requests and resident images and confirm quiesce=idle. NODELETE images require target-process exit followed by reap; do not force unload active callbacks.