欢迎访问 2025中国西部成都国际工程机械展览会官方网站!  时间:2025年7月10-12日    地点:成都世纪城新国际会展中心    距离展会开幕还有 天    
   13122602208    
展会知识

展会知识

展会知识

展讯默认+的进工程模式_signtool是什么启动项

展讯默认+的进工程模式

阅读五分钟展讯默认+的进工程模式,每日十点展讯默认+的进工程模式,和您一起终身学习,这里是程序员Android

本篇文章主要介绍展讯平台手机开发中的部分重启问题知识点,通过阅读本篇文章,您将收获以下内容:

一、 User 版本 默认开启 sysdump 方法

二、插入SD卡 抓取Sysdump log

三、 sysdump log 分析

四、展讯平台抓取重启 串口log的方案

五、展讯平台判断重启类型

六、展讯平台关闭 sysdump 与watchdog关联

七、展讯平台手动触发sysdump 方法

一、 User 版本 默认开启 sysdump 方法

首先,为什么要这么干展讯默认+的进工程模式

主要原因是,展讯平台部分重启问题,同样的代码,userdebug 版本无法复现,User 版本 可以复现,这样才有此默认开启sysdump的方案。

那么展讯平台user版本默认开启sysdump 方案

修改一下代码

device\sprd\xxxx\common\rootdir\root\init.common.rc

在 on post-fs-data 下添加:

// 设置 Ylog 默认开启开关 1 开启,0或不写 关闭setprop persist.ylog.enabled 1start ylog// 设置sysdump 默认开关属性值 开启为true 关闭 falsesetprop debug.sysdump.enabled truesetprop persist.sys.eng.reset 0在代码中添加后,可以进行一下操作查看是否成功、确认是否开启sysdump 开关

*#*#83781#*#* (进入工程模式菜单) ->DEBUG&LOG -> YLog-> Setting -> Sysdump Enable (开启sysdump)

确认是否开Ylog

*#*#83781#*#*(进入工程模式菜单)->DEBUG&LOG -> YLog (开启ylog)

展讯默认+的进工程模式

Ylog关闭,sysdump 开关默认开启

二、插入SD卡 抓取Sysdump log

注意事项 一定要 插入4G及以上的SD卡,否则无法抓的重启的dump log

展讯默认+的进工程模式

一定要 插入4G及以上的SD卡,否则无法抓的重启的dump log

三、 sysdump log 分析

插入SD 卡后,成功dump log信息如下:

展讯默认+的进工程模式

dump log 成功的界面

dump log成功后,我们需要解析 sysdump log,解析过程中需要使用对应版本的 vmlinux (out/target/product/sp9832e_1h10_go/obj/KERNEL/vmlinux) 以及

crash_arm (vendor/sprd/tools/crash/crash_arm) 解析脚本来解析dumpcore 文件。

展讯默认+的进工程模式

新建解析dump log目录

将 vmlinux 、crash_arm、 sysdump log 放置同一目录cp out/target/product/sp9832e_1h10_go/obj/KERNEL/vmlinux reboot/cp vendor/sprd/tools/crash/crash_arm reboot/

展讯默认+的进工程模式

将 vmlinux crash_arm sysdump log 放置同一目录

将 sysdump 所有文件 追加到一个文件中

展讯默认+的进工程模式

将sysdump 所有文件 追加到一个文件中

使用 crash_arm 脚本 联合 vmlinux 解析 sysdump log

展讯默认+的进工程模式

使用 crash_arm 脚本 联合 vmlinux 解析sysdump log

使用 Log 命令 将 Crash log追加到指定文件中

展讯默认+的进工程模式

使用 log 命令 读取log 到指定文件

查看log,分析重启的具体原因

展讯默认+的进工程模式

重启log举例

6.参考调试命令

32 位系统调试命令

./crash_arm -m phys_base=0X80000000 --cpus number2 vmlinux all

64 位系统调试命令

./crash_arm64 vmlinux all -m phys_offset=0x80000000四、展讯平台抓取重启 串口log的方案调高 Kernel log 等级为 7

修改代码路径如下:

kernel/arch/arm/boot/dts/<sprd-xx-yourboard>.dts,将bootargs = ""里修改loglevel字段 1 修改为 7 loglevel=7, console=ttyS1,115200n8 。

搜索关键字 loglevel 即可。

展讯默认+的进工程模式

调高 **Kernel log** 等级为 **7**

将 logcat log 重定向到 串口

修改init.common.rc代码(device/sprd/sharkle/common/rootdir/root/init.common.rc)。

在 init 脚本中添加 logcat 重定向 Service .

+service logcat /system/bin/logcat -f /dev/kmsg *:w + class main + user root + group log + oneshoton boot chown system system /proc/wcn_gnss/start chown system system /proc/wcn_gnss/stopdisabble SElinux

在 init.cpp (/system/core/init/init.cpp)中,让selinux_is_enforcing(void)函数直接返回false,同时注掉selinux_status_from_cmdline()函数。

#if 0static selinux_enforcing_status selinux_status_from_cmdline() { selinux_enforcing_status status = SELINUX_ENFORCING; import_kernel_cmdline(false, [&](const std::string& key, const std::string& value, bool in_qemu) { if (key == "androidboot.selinux" && value == "permissive") { status = SELINUX_PERMISSIVE; } }); return status;}#endifstatic bool selinux_is_enforcing(void){#if 0 if (ALLOW_PERMISSIVE_SELINUX) { return selinux_status_from_cmdline() == SELINUX_ENFORCING; } return true;#else return false;#endif}五、展讯平台判断重启类型在main.log 中查看

在 main.log 中搜索关键字 bootmode

展讯默认+的进工程模式

搜索关键字 bootmode

2.在 phone.info 文件中查看

在 Ylog ->poweron->aplog 目录下的phone.info 文件中 搜索关键字 bootmode

展讯默认+的进工程模式

搜索关键字 bootmode

在Sysdump中查看触发重启dump的类型

展讯默认+的进工程模式

重启类型信息保存文件路径

展讯默认+的进工程模式

Kernel panic 重启

展讯默认+的进工程模式

手动触发sysdump 重启

六、展讯平台关闭 sysdump 与watchdog关联

关闭sysdump 与watchdog关联,防止开启sysdump后watchdog被默认关闭,导致无法抓取复现到重启log的dump。

修改文件路径如下:

kernel/drivers/soc/sprd/debug/sysdump/sysdump.c

sysdump_status = 1; sprd_set_reboot_mode("dumpenable"); set_sysdump_enable(1);//****************- sysdump_enable_watchdog(0);//************* } else if (!strncmp(sysdump_buf, "off", 3)) { pr_emerg("sprd_sysdump_write: disable user version sysdump!!!\n"); sysdump_status = 0;

展讯默认+的进工程模式

删除 sysdump_enable_watchdog

七、展讯平台手动触发sysdump方法

在Kernel未完全死掉时候,触发SWT(优先方案)

手动触发方案:

同时按住音量+ 、音量- 、然后双击Power键

在Kernel完全死掉,触发HWT

手动触发方案:

长按Power 键、 音量+

版权所有 © 上海企升展览有限公司    沪ICP备2021023001号-6