mtk log、kernel log、adb log的详细使用

MTKlog包含kernel和上层日志,适用于抓取开机到关机等深层记录;kernellog需硬件连接,专注kernel层日志;adblog通过USB调试抓取上层应用日志。操作涉及开发者模式、命令行工具和特殊代码输入。


打印MTK log,里面就包含了kernel层的log,像我们adb log打印的是上层应用的log,mtk log打印的则是更底层的log。

那么什么时候需要用到mtk log 呢?

就比如你想抓一些从关机到开机的log,这个kernel log也可以抓的到,但是adb log抓不到。

那mtk log和kernel log和adb log有什么区别呢?

mtklog 可以抓kernel和上层等的log,去硬件那边接2根电源线只能抓kernel 的log,adb只能抓上层log

那这三个log应该怎么操作呢?

mtk log

  • mtk log:首先打开开发者模式,打开拨号键,输入对应的代码,像我是*#*#3646633#*#*就可以进入mtk log模式(代码在后面贴出),然后进行录制,录制开始后,就进行你的操作。

在这里插入图片描述

操作完毕后关闭录制,打印日志的文件都在文件管理中——mtklog——mobilelog——APLog_日期_数字

最后里面有大概10来个文件,手机打不开的,需要用USB线连接电脑用电脑打开这些文件,里面最常用的文件就是main_logkernel_logmain_log打印所有日志(包括kernel和上层),kernel_log打印kernel层的所有日志。

1

packages\apps\Dialer\src\com\android\dialer\SpecialCharSequenceMgr.java

进入设备的mtk log的方式。
1

kernel log

  • kernel log:去硬件那边连接两根电源线,打开对应日志软件即可操作。

adb log

  • adb log:首先打开开发者模式,开启USB调试,连接数据线(确保数据线可以通信),cmd打开命令行,adb devices连接成功后,即可开始 adb logcat -s 日志标签 来启动调试。

示例:
adb logcat -s ActivityManager:I WindowManager:W 是一个用于过滤日志输出的命令,它会只显示具有特定标签和级别的日志消息。

在这个示例中,ActivityManager:I 表示只显示 ActivityManager 标签的信息,并且级别为 “Info” 或更高(包括 Debug、Info、Warning、Error 和 Fatal)。

同样地,WindowManager:W 表示只显示 WindowManager 标签的信息,并且级别为 “Warning” 或更高(包括 Warning、Error 和 Fatal)。

以下是一个示例,展示了如何使用该命令:

$ adb logcat -s ActivityManager:I WindowManager:W

该命令将开始显示带有标签 “ActivityManager” 和 “WindowManager” 的日志消息,并且级别符合指定的条件。请注意,您需要在计算机上正确安装和配置 ADB(Android 调试桥),并连接设备才能使用此命令。

具体操作:

1
1

#检测是否连接成功
$ adb devices
#打印日志
$ adb logcat -s DisplayDensityUtils:W
<think>我们正在处理一个关于MTK平台关闭内核串口日志的问题。用户希望关闭kernel串口log,这与引用内容中打开串口打印的操作相反。 根据引用内容,在MTK平台上,串口打印的控制可以通过以下几种方式: 1. 修改lk文件(bootloader)中的设置:将`printk.disable_uart=1`改为`printk.disable_uart=0`可以打开串口打印。那么反过来,如果要关闭,应该确保这个值为1。 2. 在系统运行后,可以通过以下方式再次打开打印: - 在串口终端按回车键 - 通过adb命令:`adb shell echo 1 > /proc/mtprintk` - 通过设置属性:`adb shell setprop persist.uartconsole.enable 1` 因此,关闭串口日志的思路应该是: 1. 在编译时修改lk,确保`printk.disable_uart`设置为1(默认user版本就是1,所以如果已经是user版本,可能默认就是关闭的?但用户可能是在eng版本上想关闭,或者之前打开过现在想关闭) 2. 在系统运行时,通过adb命令或属性设置来关闭。 但是,用户的需求是关闭内核串口日志,我们需要注意: - 引用中提到,在user版本默认是关闭的,打印会停止在`<< printk console disable >>`。所以如果用户使用的是user版本,可能默认已经关闭了。 - 如果用户之前通过某些方式打开了(比如修改了lk或者设置了属性),现在想关闭,那么我们可以通过以下方式: 方法1:通过adb命令临时关闭 - 关闭打印:`adb shell echo 0 > /proc/mtprintk` (注意:引用中打开是写1,那么关闭应该是写0?) 但是引用中打开打印是写1到`/proc/mtprintk`,所以关闭应该是写0。 方法2:通过属性设置(持久化) - 关闭:`adb shell setprop persist.uartconsole.enable 0` 因为打开是设置1,关闭就设置0。并且这个属性是持久化的,重启后仍然有效。 另外,我们还需要考虑lk部分的修改。如果用户是在编译阶段想要永久关闭,那么应该修改lk的代码,将`printk.disable_uart`设置为1(或者保持为1,不要改为0)。 但是,用户的问题是在MTK平台关闭内核串口日志,并没有说明是编译时还是运行时,也没有说明当前版本。因此,我们需要给出两种情况的解决方案。 步骤总结: 一、运行时关闭(适用于已经打开串口日志的系统,临时或永久关闭) 1. 临时关闭(重启后恢复,但恢复可能是打开也可能是关闭,取决于默认设置): adb shell "echo 0 > /proc/mtprintk" 2. 永久关闭(设置属性,重启后仍然关闭): adb shell setprop persist.uartconsole.enable 0 注意:引用中提到,设置属性`persist.uartconsole.enable`为1可以打开,那么设置为0应该就是关闭。但是,我们还需要确认这个属性是否被系统使用。根据引用,这个属性是用于控制uartconsole的,所以设置为0应该会关闭。 二、编译时关闭(适用于需要永久关闭,比如在user版本中确保关闭) 1. 修改lk代码:在文件`vendor/*/bootable/bootloader/lk/app/mt_boot/mt_boot.c`中,确保有`printk.disable_uart=1`(默认user版本就是1,所以检查一下即可)。 2. 重新编译lk并烧写。 但是,用户可能只是想在当前运行的系统上关闭,而不重新编译。因此,我们优先给出运行时的解决方案。 另外,引用中还提到,在串口终端按回车键可以重新打开打印,那么按回车键是否也会关闭?根据引用,当打印被关闭后(出现`<< printk console disable >>`),按回车键可以打开。所以关闭操作不能通过按回车键实现。 因此,我们给出以下回答: 注意:在回答中,我们不需要重复引用中的全部内容,而是针对用户的问题给出解决方案。</think>在 MTK 平台上关闭内核串口日志,可通过以下方法实现: ### 一、运行时临时关闭 1. **通过 ADB 命令禁用** 执行以下命令立即关闭内核串口输出(重启后失效): ```bash adb shell "echo 0 > /proc/mtprintk" ``` 2. **通过属性设置持久关闭** 执行以下命令永久禁用串口日志(重启后仍生效): ```bash adb shell setprop persist.uartconsole.enable 0 ``` ### 二、编译时永久关闭 1. **修改 LK 引导代码** 编辑文件 `vendor/*/bootable/bootloader/lk/app/mt_boot/mt_boot.c`: ```c // 将 printk.disable_uart 参数值设为 1 - cmdline_append("printk.disable_uart=0"); + cmdline_append("printk.disable_uart=1"); // 关闭串口输出 ``` 重新编译 LK 并烧录系统。 2. **确保内核配置** 检查内核配置选项: ```bash CONFIG_MT_PRINTK_UART_CONSOLE=n ``` ### 三、验证方法 1. 查看当前日志状态: ```bash adb shell cat /proc/mtprintk # 返回 0 表示已关闭,1 表示开启 ``` 2. 观察串口输出: 成功关闭后会显示 `<< printk console disable >>` 提示[^1]。 > **注意事项** > - 默认 **user 版本** 的 LK 已配置 `printk.disable_uart=1`,无需额外修改 > - 修改 LK 需重新编译整个引导分区 > - 临时关闭方法在系统崩溃时可能失效
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七qi_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值