qcom 平台efuse机器抓取dump log的方法

引言:

qcom 平台机器,一旦efuse后机器将无法抓取dump log

qcom 原文:

efuse机器抓取dump log的方法如下:

一、修改配置文件:


    把kamorta_debugpolicy.xml 在配置了debugpolicy(加入串号和打开开关),编译dp并签了名,efuse的设备才能dump
    注意:注意此serial_number是cpu的serial number,不是工厂写的串号。需要按这个命令提供:adb shell cat /sys/devices/soc0/serial_number
        cat /sys/devices/soc0/serial_number  ->  2937467141  -> 0xaf163105

获取serial number的方法:

  1. xbl_sc 的日志中有打印:S - Serial Number @ 0x221c8610 = 0x0000044baf163105
  2. 通过sys/devices/soc0/serial_number 获取

注意:v2中serial_number 定义是64位,由8个字节构成,高位的4字节代表CHIP_ID。所以serial number应该是0x0000044baf163105


二、dp文件 编译、签名:


    脚本:
        #!/bin/bash

        SEC_TOOLS="../Linux/sectools"
        SECURITY_PROFILE="../../kamorta_debugpolicy.xml"
        DEC_FILE="../../decs/Dec-LimitedDebug-Unconstrained.bin"
        SERIAL_NUMBER="0x0000044b9E7DC877"
        OEM_HW_ID="0xXXXX"
        OEM_PRODUCT_ID="0x0400"
        SIGNING_MODE="LOCAL"
        OEM_KEYS_PATH="../OEM-keys"
        ROOT_KEY="$OEM_KEYS_PATH/qpsa_rootca.key"
        ROOT_CERTIFICATE="$OEM_KEYS_PATH/qpsa_rootca.cer"
        CA_CERTIFICATE="$OEM_KEYS_PATH/qpsa_ca.cer"
        CA_KEY="$OEM_KEYS_PATH/qpsa_ca.key"
        OUT_FILE="apdp.mbn"

        #../Linux/sectools tme-secure-debug --security-profile ../../kamorta_debugpolicy.xml -h
        #用于生成apdp.mbn

        $SEC_TOOLS tme-secure-debug \
               -v \
               --oem-lifecycle-state PRODUCTION \
               --generate \
               --security-profile $SECURITY_PROFILE \
               --dec $DEC_FILE \
               --outfile $OUT_FILE \
               --serial-number $SERIAL_NUMBER \
               --crash-dump MINI_DUMP \
               --ap-sec-tz-log-en \
               --sign \
               --signing-mode $SIGNING_MODE \
               --oem-id $OEM_HW_ID \
               --oem-product-id $OEM_PRODUCT_ID \
               --root-key $ROOT_KEY \
               --root-certificate $ROOT_CERTIFICATE \
               --ca-certificate $CA_CERTIFICATE \
               --ca-key $CA_KEY


    签名:
    cd Kamorta.LA.2.0/common/sectools/

    python sectools.py debugpolicy -i dbgp_ap --sign_id=dbgp_ap -p kamorta -g -s
    生成Kamorta.LA.2.0/common/sectools/debugpolicy_output/apdp.mbn 文件并签名


三、把apdp.mbn文件烧录到手机

userdebug版本命令:fastboot flash apdp apdp.mbn  

user版本:qile 单独刷apdp文件


四、复现问题抓取dump log

使用qpst 抓取log

使用qcom 在线工具 QCAP解析dump log

demo:

diff --git a/common/sectools/config/kamorta/kamorta_debugpolicy.xml b/common/sectools/config/kamorta/kamorta_debugpolicy.xml
index 942d5e6..9d7b161 100755
--- a/common/sectools/config/kamorta/kamorta_debugpolicy.xml
+++ b/common/sectools/config/kamorta/kamorta_debugpolicy.xml
@@ -23,22 +23,22 @@
 
         <flags>
             <flag> <bit_pos>0</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_ONLINE_CRASH_DUMPS-->
-            <flag> <bit_pos>1</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_OFFLINE_CRASH_DUMPS-->
+            <flag> <bit_pos>1</bit_pos> <value>1</value> </flag> <!--DP_ENABLE_OFFLINE_CRASH_DUMPS-->
             <flag> <bit_pos>2</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_JTAG-->
-            <flag> <bit_pos>3</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_LOGS-->
+            <flag> <bit_pos>3</bit_pos> <value>1</value> </flag> <!--DP_ENABLE_LOGS-->
             <flag> <bit_pos>4</bit_pos> <value>0</value> </flag> <!-- DP_ENABLE_MODEM_INV_DEBUG -->
             <flag> <bit_pos>5</bit_pos> <value>0</value> </flag> <!-- DP_ENABLE_MODEM_NINV_DEBUG -->
             <flag> <bit_pos>6</bit_pos> <value>0</value> </flag> <!-- DP_ENABLE_DEBUG_INV -->
             <flag> <bit_pos>7</bit_pos> <value>0</value> </flag> <!-- DP_ENABLE_DEBUG_LEVEL -->
             <flag> <bit_pos>8</bit_pos> <value>0</value> </flag> <!-- DP_ENABLE_DEBUG_LEVEL -->
-            <flag> <bit_pos>24</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_NONSECURE_CRASH_DUMPS-->
+            <flag> <bit_pos>24</bit_pos> <value>1</value> </flag> <!--DP_ENABLE_NONSECURE_CRASH_DUMPS-->
             <flag> <bit_pos>25</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_APPS_ENCRYPTED_MINI_DUMPS-->
             <flag> <bit_pos>26</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_MPSS_ENCRYPTED_MINI_DUMPS-->
             <flag> <bit_pos>27</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_LPASS_ENCRYPTED_MINI_DUMPS-->
             <flag> <bit_pos>28</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_CSS_ENCRYPTED_MINI_DUMPS-->
             <flag> <bit_pos>29</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_ADSP_ENCRYPTED_MINI_DUMPS-->
             <flag> <bit_pos>30</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_CDSP_ENCRYPTED_MINI_DUMPS-->
-            <flag> <bit_pos>31</bit_pos> <value>0</value> </flag> <!--DP_ENABLE_WLAN_ENCRYPTED_MINI_DUMPS-->
+            <flag> <bit_pos>31</bit_pos> <value>1</value> </flag> <!--DP_ENABLE_WLAN_ENCRYPTED_MINI_DUMPS-->
         </flags>
 
         <image_bit_map> <!--Range: 0 to 32-->
@@ -52,7 +52,10 @@
         </root_cert_hash_list>
 
         <serial_num_list> <!--Range: 1 to 200-->
-            <!--<serial_num>00000000</serial_num>-->
+        <!--<serial_num>00000000</serial_num>-->
+        <serial_num>0x48A5062A</serial_num>
+       <serial_num>0x68EBB529</serial_num>
+        <serial_num>0x635D242A</serial_num>
         </serial_num_list>


注:此apdp.mbn 只能刷debugpolicy.xml表格中列的串号的设备,刷其他设备无法开机

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/43318.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么检查SSL证书是否有效?

SSL证书的有效性对于保护网站数据安全和用户隐私至关重要。然而&#xff0c;有时可能会出现证书过期、无效或被吊销的情况。为了确保网站的安全性&#xff0c;对SSL证书的有效性进行检查至关重要。本文将介绍几种常用的方法来检查SSL证书的有效性&#xff0c;帮助大家有效评估和…

Android Studio Download Gradle 时慢问题解决

1.腾讯gradle 下载&#xff1a;后面拼接版本&#xff08;gradle-8.0-bin.zip&#xff09; https://mirrors.cloud.tencent.com/gradle/gradle-8.0-bin.zip 2.Android Studio 配置&#xff1a;setting-->gradle-->Use Gradle from 选择本地文件夹&#xff08;解压后的bi…

前端开发常用的框架有以下几种?

React&#xff1a;由Facebook开发&#xff0c;用于构建用户界面的JavaScript库。它可以用于构建单页面应用和移动应用。 Vue&#xff1a;一套用于构建用户界面的渐进式框架&#xff0c;也是一个基于JavaScript的前端开发框架。Vue易于学习和使用&#xff0c;适用于构建小型到大…

基于Make的c工程No compilation commands found报错

由于安装gcc时只安装了build-essential&#xff0c;没有将其添加到环境变量中&#xff0c;因此打开Make工程时&#xff0c;CLion会产生如下错误&#xff1a; 要解决这个问题&#xff0c;一个方法是将GCC添加到环境变量中&#xff0c;但是这个方法需要修改至少两个配置文件&…

数据结构——约瑟夫环C语言链表实现

约瑟夫环问题由古罗马史学家约瑟夫&#xff08;Josephus&#xff09;提出&#xff0c;他参加并记录了公元66—70年犹太人反抗罗马的起义。在城市沦陷之后&#xff0c;他和40名死硬的将士在附近的一个洞穴中避难。起义者表示“宁为玉碎不为瓦全”&#xff0c;约瑟夫则想“留得青…

dledger原理源码分析(四)-日志

简介 dledger是openmessaging的一个组件&#xff0c; raft算法实现&#xff0c;用于分布式日志&#xff0c;本系列分析dledger如何实现raft概念&#xff0c;以及dledger在rocketmq的应用 本系列使用dledger v0.40 本文分析dledger的日志&#xff0c;包括写入&#xff0c;复制…

liunx下通过设备文件设置串口波特率,并收发

在Linux下&#xff0c;你可以通过串口设备文件设置串口波特率&#xff0c;并进行数据的收发。 确认串口设备文件 首先&#xff0c;确认你要使用的串口设备文件&#xff0c;一般情况下串口设备文件的命名规则为/dev/ttyS0、/dev/ttyS1等&#xff0c;具体的设备文件名可能会有所…

Linux 网络文件系统 NFS:配置与管理指南

Linux 网络文件系统 NFS&#xff1a;配置与管理指南 网络文件系统&#xff08;NFS&#xff09;是一种分布式文件系统协议&#xff0c;允许用户在网络上跨不同计算机和操作系统共享文件和存储资源。NFS 提供了强大的数据共享功能&#xff0c;广泛应用于企业级存储解决方案中。本…

网站SEO百度搜索排名—通过关键字提升网站流量

添加网站关键字 <meta name"keywords" content"系统通过搜索到的关键字XXXXXXXXX"> <meta name"description" content"网站的介绍内容XXXXXXXXXXXXXXXXX"> <title>平台名称XXXXXXX</title> 在 百度站点管理 …

STM32串口通讯(RS232、RS485、TTL)详解

前言 STM32串口&#xff08;Serial Communication Interface&#xff09;是STM32微控制器中用于串行通信的接口&#xff0c;通常指的是USART&#xff08;通用同步异步收发器&#xff09;或UART&#xff08;通用异步收发传输器&#xff09;。这些接口允许STM32微控制器与其他设…

跟我从零开始学STL(STL代码基础01)---string容器

引言 小伙伴们大家好&#xff0c;又到了新的篇章了&#xff0c;感谢大家的支持&#xff01;今天我们要学一个新的篇章&#xff0c;STL。在编程领域&#xff0c;STL&#xff08;Standard Template Library&#xff0c;标准模板库&#xff09;是C语言中非常重要的一部分。它为我们…

zabbix 学习笔记

文章目录 Zabbix 安装Ubuntu 18.04.1 server 安装Zabbix 4.0Centos7 安装Zabbix3.4Centos7 安装zabbix4.2Centos7.1908安装zabbix 基于ngixDebian11安装zabbix6.0LTS 基于PostgreSQL和NGINXAlmaLinux9.2使用国内清华源在线安装zabbix6.0.18LTS 基于MySQL和NGINXUbunut22.04使用…

crewAI中通过Ollama调用本地模型的两种方式

0 背景 crewAI中默认使用的gpt4的模型&#xff0c; 在环境中配置OPENAI_API_KEY即可使用。 但openai的api毕竟是要花钱的&#xff0c; 况且现在对大陆地区做了封禁&#xff0c; 使用起来不是那么方便。 而Ollama可以方便的运行本地的大模型&#xff0c; 既不用花钱&#xff0c…

图文讲解IDEA如何导入JDBC驱动包

前言 学习JDBC编程,势必要学会如何导入驱动包,这里笔者用图文的方式来介绍 视频版本在这里 50秒教你怎么导入驱动包然后进行JDBC编程的学习_哔哩哔哩_bilibili 忘记录音频了,大伙凑合着看 下载驱动包 https://mvnrepository.com/artifact/mysql/mysql-connector-java 去中…

GB28181设备如何添加

简介 此篇描述视频网关&#xff08;中间件&#xff09;接入大华、海康、ONVIF设备&#xff08;NVR、摄像头&#xff09;、GB28181设备步骤和流程。 阅读本文档之前建议先阅览视频网关&#xff08;中间件&#xff09;用户使用手册。 接入方式和说明 视频网关&#xff08;中间…

Flutter——最详细(GestureDetector)使用教程

背景 组件手势检测&#xff0c;单击、双击、长按、松开、移动、横向拖动、竖向拖动等事件 属性作用onTap单击onDoubleTap双击onLongPress长按onPanUpdate拖动实时更新onHorizontalDragDown横向点击onVerticalDragDown竖向点击 GestureDetector(onTap: () > setState(() >…

论文学习_Getafix: learning to fix bugs automatically

1. 引言 研究背景:现代生产代码库极其复杂并且不断更新。静态分析器可以帮助开发人员发现代码中的潜在问题(在本文的其余部分中称为错误),这对于在这些大型代码库中保持高代码质量是必要的。虽然通过静态分析尽早发现错误是有帮助的,但修复这些错误的问题在实践中仍然主要…

ZP-UHZ系列顶装式磁翻板液位计

一、用途及特点 ZP-UHZ系列磁浮子液位计是一种能就地指示或远传显示与控制的物位仪表&#xff0c;它广泛用于石油、化工、轻工、电力、核工业以及食品、医药等工业中&#xff0c;对各种塔、罐、槽、箱等容器中介质的液位进行指示和控制。 ZP-UHZ系列磁浮子液位计的指示部分及发…

jmeter-beanshell学习7-props获取全局变量和设置全局变量

继续写点不痛不痒的小东西。第一篇写了vars设置变量&#xff0c;但是vars只能作用在同一个线程组。跨线程组情况比较少&#xff0c;要是用到跨线程组&#xff0c;有个pros&#xff0c;用法和vars一样。 在setup线程组设置变量a&#xff0c;执行的时候&#xff0c;jmeter会先执行…

第二证券:转股溢价率是什么意思?高好还是低好?

转股溢价率是指可转债在商场上的交易价格相对于其转股价值的溢价份额&#xff0c;能够用来衡量投资者为取得将债券转换为股票权力而付出的额定金额&#xff0c;是可转债的重要指标。 转股溢价率的核算公式为&#xff1a;溢价率&#xff1d;&#xff08;转债价格-转股价值&…