11月前
[Android稳定性] 第029篇 [问题篇] 数组越界导致Unexpected kernel BRK exception at EL1
在高低温测试中,两例设备死机问题指向charger模块。分析日志发现,问题源于`status_change_work`函数中的数组越界,可能与bitflip问题相关。解决方案建议增加兼容性代码,确保`cyclecount`值在0到800之间,防止异常值导致数组越界。
2025-01-18
[Android稳定性] 第021篇 [问题篇] Kernel panic - not syncing: stack-protector: Kernel stack is corrupted
深入剖析了一起由内核函数mi_binder_wait4_hook触发的“Kernel stack is corrupted”内核崩溃问题。文章通过详细的dmesg日志分析、ARM汇编栈帧解析和Trace32进程栈回溯,复现了故障发生的关键环节,定位到x29栈帧指针因bitflip问题发生异常,导致栈保护机制触发__stack_chk_fail并panic。内容不仅梳理了栈帧的典型入栈流程及关键寄存器的存储关系,还精确描述了如何通过异常PC偏移与寄存器快照还原出崩溃前后的调用链路,展示了问题定位的扎实技术细节。最后,通过二进制对比,明确指出bitflip对函数栈帧完整性的破坏方式,为类似内核异常