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

news2025/3/3 6:04:08

引言:

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.coloradmin.cn/o/1917647.html

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

相关文章

前端进阶全栈计划:Java基础语法

前言 本教程旨在帮助初学者系统地掌握Java的基础知识。我们将从Java的基本语法开始&#xff0c;逐步深入到面向对象编程、异常处理、多线程编程等核心概念。无论你是编程新手&#xff0c;还是希望夯实基础的开发者&#xff0c;这份指南都将带你走进Java的世界&#xff0c;打下坚…

安全防御---防火墙实验1

安全防御—防火墙实验1 一、实验拓扑与要求 要求&#xff1a; 1、DMZ区内的服务器&#xff0c;办公区仅能在办公时间内&#xff08;9&#xff1a;00-18:00)可以访问&#xff0c;生产区的设备全天可以访问 2、生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 …

TQSDRPI开发板教程:编译openwifi工程

本例程基于SDRPI开发板&#xff0c;在Ubuntu中使用vivado编译openwifi工程&#xff0c;最终生成BOOT.BIN文件。需要拥有安装vivado2021.1版本的ubuntu系统或虚拟机。 首先需要下载openwifi的编译文件&#xff0c;可以在GitHub中搜索openwifi-hw&#xff0c;网址如下所示&#…

Python基础教学之一:入门篇——迈入编程世界的第一步

Python基础教学之一&#xff1a;入门篇——迈入编程世界的第一步 一、Python简介&#xff1a;历史与现状 Python&#xff0c;一种解释型、高级和通用的编程语言&#xff0c;由Guido van Rossum在1989年圣诞节期间创造&#xff0c;并于1991年首次发布。设计哲学强调代码的可读性…

Centos9安装部署及静态ip配置方案

一、获取centos9的iso镜像 去官网 点击download 官网 点击x86&#xff0c;下载centos9 二、创建虚拟机 1、点击新建虚拟机 2、选择自定义 下一步 3、点击下一步 4、选择稍后安装操作系统 点击下一步 5、选择linux 选择要安装的centos 版本 这里选择centos7 6、设置虚拟…

顺序结构 ( 五 ) —— 数据输入输出 【互三互三】

文章目录 &#x1f341;序 &#x1f341;一、字符输入函数getchar &#x1f341;二、字符输出函数putchar &#x1f341;三、通过cout流输出数据 &#x1f341;四、通过cin流读入数据 &#x1f341;五、格式化输入函数scanf &#x1f341;六、格式化输出函数printf &…

最简单的vue3组件之间传值

localStorage 是 HTML5 引入的一个 Web Storage API 的一部分&#xff0c;它允许网页在用户的浏览器上存储数据。localStorage 提供了一种持久化的本地存储方案&#xff0c;数据不会因为浏览器关闭而丢失&#xff0c;除非用户或脚本显式地删除它们。 localStorage 是一种非常实…

代码架构你想过吗?

过去的一段时间&#xff0c;我常发现我接手的服务、自己从0开始搭建起来的服务&#xff0c;整个服务代码的架构都比较混乱&#xff0c;很难去维护迭代。常见的有两种 平铺在根目录的。层次不清晰的&#xff0c;逻辑分别散落在各个层次中 我经过一段时间的分析&#xff0c;我总…

实现分布式锁的常用三种方式

分布式锁概述 我们的系统都是分布式部署的&#xff0c;日常开发中&#xff0c;秒杀下单、抢购商品等等业务场景&#xff0c;为了防⽌库存超卖&#xff0c;都需要用到分布式锁。 分布式锁其实就是&#xff0c;控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的…

【VUE实战项目】使用typescript重构项目

前言 本文是博主vue实战系列中的一篇&#xff0c;本系列不是专业的前端教程&#xff0c;是专门针对后端熟悉前端的。前面我们用vue实现了一个基础的管理系统&#xff0c;前文专栏地址&#xff1a; https://blog.csdn.net/joker_zjn/category_12469788.html?spm1001.2014.300…

java线程锁synchronized的几种情况

一、对象方法锁 1、成员方法加锁 同一个对象成员方法有3个synchronized修饰的方法&#xff0c;通过睡眠模拟业务操作 public class CaseOne {public synchronized void m1(){try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { e.printStackTrace()…

七款好用的公司电脑监控软件推荐|2024年电脑监控软件干货整理!

在现代企业管理中&#xff0c;电脑监控软件成为提高员工生产力、确保数据安全和防止信息泄露的重要工具。以下是七款适合公司使用的电脑监控软件推荐 固信软件https://www.gooxion.com/ 1. 固信软件 功能特点&#xff1a; 实时屏幕监控和行为分析。 网站访问历史记录和详细…

pytorch-RNN存在的问题

这里写目录标题 1. RNN存在哪些问题呢&#xff1f;1.1 梯度弥散和梯度爆炸1.2 RNN为什么会出现梯度弥散和梯度爆炸呢&#xff1f; 2. 解决梯度爆炸方法3. Gradient Clipping的实现4. 解决梯度弥散的方法 1. RNN存在哪些问题呢&#xff1f; 1.1 梯度弥散和梯度爆炸 梯度弥散是…

C++超市外卖小程序-计算机毕业设计源码62482

摘要 随着社会生活节奏加快和消费习惯的变化&#xff0c;外卖服务成为人们日常生活中不可或缺的一部分。超市外卖作为新兴业态备受关注&#xff0c;然而传统外卖平台在推荐精准度和用户体验方面存在挑战。 本研究旨在基于协同过滤算法&#xff0c;结合C语言和MySQL数据库&#…

信息化安全管理怎么做

企业如何做好安全管理工作?检查频次多了怕影响子正常生产经营&#xff0c;效益低下&#xff0c;检查频次少了又担心管控不住。”这是安全管理部综合业务室的困惑&#xff0c;也是很多企业的困惑。面对企业在安全管理中的困惑与挑战&#xff0c;采用信息化平台与精细化管理策略…

Java研学-Shiro安全框架(四)

六 SpringBoot集成Shiro认证 1 分析 Shiro提供认证授权功能&#xff0c;所以SpringBoot中不需再编写自定义注解&#xff0c;权限拦截&#xff0c;登录拦截&#xff0c;登录登出。Shiro 环境中有三个封装对象Subject &#xff0c;SecurityManager和Realms&#xff0c;SpringBoo…

hcip暑假第二次作业

ip配置如下 配置缺省路由 [R1]ip route-static 0.0.0.0 0 12.0.0.2 -------设置缺省路由 [R1]ip route-static 0.0.0.0 0 21.0.0.2 [R2]ip route-static 0.0.0.0 0 22.0.0.2 [R3]ip route-static 0.0.0.0 0 23.0.0.2 [R4]ip route-static 0.0.0.0 0 24.0.0.2 [R5]ip route…

python如何计算两个时间相差多少秒钟,分钟,小时,天,月,年

使用场景&#xff1a;在做上课记录系统的时候&#xff0c;有上课开始时间和上课结束时间&#xff0c;需要计算这两个时间的插值&#xff0c;以分钟为单位。 封装方法如下&#xff1a; from datetime import datetimedef sub_seconds(date1: str "2024-07-11 12:33:33&q…

编程范式之事件驱动编程

目录 前言1. 定义2. 特点2.1 异步性2.2 解耦2.3 可扩展性2.4 高度响应 3. 适用场景3.1 用户界面开发3.2 网络编程3.3 游戏开发3.4 物联网&#xff08;IoT&#xff09; 4. 优点4.1 提高效率4.2 灵活性和可扩展性4.3 解耦和模块化4.4 高响应性 5. 缺点5.1 复杂性增加5.2 调试困难…