8月前
[Android稳定性] 第052篇 [方法篇] HMI项目中如何使用QCAP解析minidump?
本文主要介绍在HMI项目中处理minidump.gz文件的方法,包括解压minidump.gz和解密minidump。文中提到两种解压方式:本地解压和在线解压,推荐在线解压。解压后,使用脚本将minidump拆分成各个bin文件。接着,生成ap_minidump.elf文件,这是解析APPS关键步骤。文章还提供了相关的脚本和命令,并展示了预期解析结果。该方法也适用于其他高通平台项目。
2024-12-25
[Android稳定性] 第011篇 [原理篇] minidump的原理介绍补充
这篇文章主要介绍了Android系统中的minidump机制,这是一种用于保存系统崩溃信息的技术。文章首先解释了minidump的概念,即各个子系统在内存映射表中注册,当系统崩溃时,boot subsystem会加密并保存注册过的内存信息到RAM EMMC分区。 接着,文章详细描述了minidump的流程图和代码流程,包括HLOS侧和NON-HLOS侧的流程。在HLOS侧,文章重点介绍了defconfig配置、相关代码以及msm_minidump_add_region函数。在NON-HLOS侧,文章重点介绍了add_minidump_regions函数和boot_ram_dump_to_raw_parition函数。 文章还介绍了小米项目在minidump中增加的regions,包括md_kmsg、md_pmsg和tz_log,并解释了它们的设计原理。最后,文章介绍了如何验证minidump,包括设置minidump到emmc、触发dump以及从设备中拉取minidump。 此外,文章还介绍了minidump.gz的解析方法,包括解压minidump.gz和拆分minidump。
2024-12-18
[Android稳定性] 第004篇 [原理篇] minidump的原理介绍
Minidump是一种在系统崩溃时,将关键内存区域加密后保存至RAM或EMMC分区的机制,以便后续调试分析。文章详细解析了minidump的流程:系统各子模块会在内存映射表注册,崩溃时boot子系统通过检测特定寄存器(如TCSR寄存器)判断是否进入minidump流程,随后将内核日志、logcat及安全区域日志等关键区块存入特定分区。文中通过流程图、代码示例和寄存器地址详解,剖析了从检测寄存器值,到执行XBLRamDumpMain写入dump的完整过程,并指出通过简单配置可实现最小化、定制化的日志保存,极大提升了问题定位的效率。此外,文章特别强调小米定制适配方案,仅保留关键日志区,兼顾调试需求