当前位置: 首页 > news >正文

ramparser

ramparser

1 理解概念

1.1 ramdump

ramdump是内存转储文件,简单来说,就是当系统发生致命错误无法恢复的时候,把整个DRAM抓下来,写到多个固定大小的.bin文件当中(文件尺寸相加就是当前DRAM的大小)。

1.2 ramparser

ramparser是解析ramdump的工具

1.3 debugpolicy

secure boot: 为了安全,凡是开了secure boot的机器, 会禁用相当一部分的debug功能. 但是很多打开了secure boot的手机出现问题的时候也需要调试. 需要临时打开这些debug feature, 比如tzlog, full ramdump, 以及subsystem restart ramdump.

debugpolicy: 在8994以及之前的平台,想干这件事比较麻烦,需要修改签名的配置文件,重新签名xbl.elf以及mba.mbn才能enable. 在8996以及之后的平台上,高通引入了debugpolicy. 本质上, 它是一个被签名的配置文件, 会被刷到apdp和msadp分区(通常情况下这两个分区是空的),当xbl以及tz在启动阶段发现有这个文件,并且能通过签名校验的时候,就会临时开启相应的debug功能.

2 抓取ramdump

2.1 触发crash dump

# 检查debugpolicy(0x0b有效)
adb shell getprop ro.boot.d
# 刷入debugpolicy
python ./vendor/xiaomi/securebootsigner/Qualcomm/common/debugpolicy.py
# 检查debugpolicy(0x0b有效)
adb shell getprop ro.boot.d

# 触发crash dump; 或手动按音量+-和power键4s左右进入dump
adb root
adb shell "echo c > /proc/sysrq-trigger"
lsusb

2.2 使用QPST configuration

此时进入crash dump模式,端口识别为900e。使用工具自动获取dump信息。Ports标签页查看,查看dump文件: Help --> Open Log File Directory

3 解析ramdump

3.1 安装ramparser

3.2 获取vmlinux symbols文件

build生成路径 out/target/product/<product_name>/obj/kernel/msm-4.19/vmlinux
husky平台 http://husky.pt.miui.com/buildFile/symbols

3.3 使用ramparser

python ramparse.py -x -a <dump_path>  -v <dump_path>\vmlinux -o cmdparser --force-hardware umi
# 注意上面的路径,替换为你本地的路径:
-x 解压
-a dump的路径
-v vmlinux符号表的路径
-o 执行parser
--force-hardware 是指定的平台

4 查看报告

N/A

5 参考资料

  • ramdump文件抓取及解析
  • DebugPolicy 安装

相关文章:

  • 上海建设银行网站网页/怎么做盲盒
  • 100件创意产品设计国外/seo关键词优化排名软件
  • 体育网站建设规划/bt磁力搜索神器
  • 网站模板有什么用/网络营销方案模板
  • 网站服务器租/seo每天一贴博客
  • 手机浏览器主页网站推荐/近几天发生的新闻大事
  • Exceeded limit on max bytes to buffer : 262144
  • @PropertySource与@ImportResource的区别
  • python-MySQL数据库基础(三)MySQL与python交互
  • ATAC-seq分析:TSS 信号(7)
  • JAVA并发终章-核心源码调试
  • pandas案例——预处理部分地区数据
  • Python离线下载whl文件,xxx.wh1 is not a supported wheel on this platform
  • PromQL之选择器和运算符
  • 40 个定时任务,带你理解 RocketMQ 设计精髓!
  • oracle 10g(R2)客户端安装
  • 建表后修改AUTO_INCREMENT=5,以及意思
  • python虚拟机集锦(1)-垃圾收集算法(1)