[Android稳定性] 第065篇 SELinux 设置为 permissive 模式后出现的 kernel panic 2026-07-11 3 条
[Android稳定性] 第065篇 SELinux 设置为 permissive 模式后出现的 kernel panic

项目在 bringup 阶段发现,将手机 SELinux 设为 permissive 后系统会在进入 Android 前死机。通过 fulldump 与内核日志可见 panic 原因是 UBSAN 报告的数组越界,触发点位于 uzram 模块的 zram_submit_bio。借助自研工具 kernel-panic-killer,AI 自动还原异常路径:反汇编发现 zram_submit_bio 中通过 current_algo 计算压缩算法索引,逻辑为 algo = current_algo; 访问 zram->comps[algo - 1]。由于 current_algo 默认为未初始化的

[Android稳定性] 第064篇 blk_mq_tags Use-After-Free 导致系统级 I/O 死锁 2026-06-01 1 条
[Android稳定性] 第064篇 blk_mq_tags Use-After-Free 导致系统级 I/O 死锁

围绕 SPRD UMS9230 平台在 DDR Qualify.TT 测试中出现的冻屏问题,分析通过 ramdump、vmlinux 等工件定位到根因在内核 Block 层:blk_mq_tags 结构体发生 use-after-free,Scsi_Host.tag_set.tags 指针指向已被释放并被 cpumask/IRQ affinity 对象重用的 kmalloc-128 slab。内存中出现 “effective_affinity” 字符串,进一步印证该区域已被 IRQ 亲和性相关对象覆盖。由于 blk_mq_hw_ctx.tags 和 sched_tags 均为 NULL,当 E

[Android稳定性] 第063篇 EROFS 解压缩页面 Use-After-Free 导致 Kernel Panic 2026-06-01 评论
[Android稳定性] 第063篇 EROFS 解压缩页面 Use-After-Free 导致 Kernel Panic

围绕一次发生在 Qualcomm Ravelin SNP-AN00 平台上的 kernel panic,分析聚焦于 EROFS 压缩文件系统在 LZ4 解压过程中出现的 translation fault。根因是函数 z_erofs_lz4_decompress_partial 通过 __memcpy 访问压缩源页时,源页与目标页已被 page allocator 释放并填充为标准毒化值 dead000000000400,形成典型的 use-after-free。

[linux内存管理] 第046篇 Page Cache脏页回写机制深入分析 2026-04-10 1 条
[linux内存管理] 第046篇 Page Cache脏页回写机制深入分析

围绕 Linux‑6.1 的 Page Cache 脏页回写机制展开,承接上一篇“脏页标记”,完整追踪数据从被修改到落盘的路径。先提炼回写要解决的三大问题:何时触发、由谁执行、如何高效写回;再从历史演进切入,对比早期全局 pdflush/kupdated 与现代按设备划分的 bdi_writeback 框架,重点解析 backing_dev_info、bdi_writeback 等核心结构中与脏页控制、阈值、速率限制和等待队列相关的关键字段。通过源码路径展示回写线程从 bdi_queue_work 被唤醒,到 wb_workfn 轮询任务、wb_do_writeout 扫描 inode 链表并

[LRDP2] 解析插件之logcat 2026-02-28 评论
[LRDP2] 解析插件之logcat

通过logcat_v3和logcat_vma两套解析方案,工具能够应对大多数Android设备的内存布局变化,成功从ramdump中还原出logcat日志。整个过程涉及进程内存读取、数据结构逆向、多线程解析、日志去重等技术点,充分体现了ramdump parser工具的灵活性和强大功能。 本文重点剖析了logcat_v3的实现细节,从定位log buffer,到解析日志块,再到合并内核日志,每一步都力求清晰。希望读者能从中了解到Android logcat在内存中的存储方式,以及离线解析工具背后的工作原理。