![[Android稳定性] 第047篇 [问题篇] Unexpected kernel BRK exception at EL1](https://halo-19274848.oss-cn-shanghai.aliyuncs.com/2025/06/halo_ityiau2.webp?x-oss-process=image/resize,w_800,m_lfit)
[Android稳定性] 第047篇 [问题篇] Unexpected kernel BRK exception at EL1
当前文章内容已隐藏,评论后可见。
![[Android稳定性] 第029篇 [问题篇] 数组越界导致Unexpected kernel BRK exception at EL1](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/4/cover_android_stability_029_1c81c82acebdd8120bce9ae2e9352245.png)
[Android稳定性] 第029篇 [问题篇] 数组越界导致Unexpected kernel BRK exception at EL1
### 文章摘要 在高低温测试中,两例设备死机问题指向charger模块。分析日志发现,问题源于`status_change_work`函数中的数组越界,可能与bitflip问题相关。解决方案建议增加兼容性代码,确保`cyclecount`值在0到800之间,防止异常值导致数组越界。
![[Android稳定性] 第027篇 [问题篇] 数组越界导致Unexpected kernel BRK exception at EL1](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/25/4/cover_android_stability_027_c4bd7f27c2dcd67381ab558309350b7e.png)
[Android稳定性] 第027篇 [问题篇] 数组越界导致Unexpected kernel BRK exception at EL1
**摘要:** 在正常测试过程中,手机电池温度达到35度时,手机进入dump状态。问题分析显示,在`pd_policy_manager`模块的`usbpd_pm_workfunc`函数中出现了内核崩溃。进一步分析发现,`usbpd_pm_sm`函数在处理状态转换时,由于状态数组`pm_str`未包含`PD_PM_STATE_FC2_HOLD`,导致数组越界访问,引发崩溃。解决方案建议在`pm_str`数组中添加`PD_PM_STATE_FC2_HOLD`状态。
![[Android稳定性] 第010篇 [问题篇] 数组越界导致的内核panic](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/12/cover_android_stability_010.png)
[Android稳定性] 第010篇 [问题篇] 数组越界导致的内核panic
**摘要总结:** 服务器打包的daily版本在刷机后出现900E口死机问题。通过分析dmesg日志,发现程序在`fts_set_cur_value`函数处异常终止。进一步使用trace32工具恢复现场,确认是由于`touch_mode`数组越界导致的内存访问错误。该数组最大值被定义为15,但实际使用时传入了100,导致严重异常。
![[Android稳定性] 第009篇 [问题篇] 数组越界导致的内核panic](https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/12/cover_android_stability_009.png)
[Android稳定性] 第009篇 [问题篇] 数组越界导致的内核panic
**问题现象**: 部分机器插着 USB 后出现死机。 **问题分析**: 通过 `dmesg` 和 `trace32` 分析,发现死机原因是 `power_operation_mode_show` 函数中 `typec_port` 结构体的 `pwr_opmode` 成员值错误(为负数),导致数组越界。 **解决方案**: 更新 charger 模块,修复对 `pwr_opmode` 的误判,确保其值为正数,避免数组越界。 **总结**: 本次问题是由 `typec_port` 结构体的 `pwr_opmode` 成员值错误导致,通过分析定位问题,并更新 charger 模块修复了问题。