高通8953 Android 9.0 打开user调试串口

高通8953 Android 9.0 打开user调试串口高通 8953Android9 0 打开 user 调试串口文章目录高通 8953Android9 0 打开 user 调试串口 1 user 模式打开 kernellog 调试 2 另外需要修改 user 版本串口只有输出不能输入的问题内核版本 Linux4 9 平台高通 8953 作者 nineyole 我们在调试 msm89539 0 的版本的时候发现在 userdebug 模式下是可以使用串口控制台调试的 而在 user 模式下则是关闭的 1 user 模式打开 kernellog 调试

高通8953 Android 9.0 打开user调试串口

内核版本 Linux4.9
平台 高通8953
作者 nineyole

我们在调试msm8953 9.0的版本的时候发现在userdebug模式下是可以使用串口控制台调试的,而在user模式下则是关闭的。

1、user模式打开kernel log调试

​ 我们都知道kernel的打印log是受CONFIG_SERIAL_MSM_CONSOLE控制的,因此我们可以来查询一下是哪些文件引用了CONFIG_SERIAL_MSM_CONSOLE

SC60Android9.0.0_kernel4.9kernel/msm-4.9$ grep -Fnr "CONFIG_SERIAL_MSM_CONSOLE" ./ ./drivers/tty/serial/msm_serial.c:18:#if defined(CONFIG_SERIAL_MSM_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) ./drivers/tty/serial/msm_serial.c:1608:#ifdef CONFIG_SERIAL_MSM_CONSOLE ./arch/arm64/configs/defconfig:224:CONFIG_SERIAL_MSM_CONSOLE=y ./arch/arm64/configs/msm8937_defconfig:342:CONFIG_SERIAL_MSM_CONSOLE=y ./arch/arm64/configs/msm8953_defconfig:352:CONFIG_SERIAL_MSM_CONSOLE=y ./arch/arm/configs/msm8937_defconfig:343:CONFIG_SERIAL_MSM_CONSOLE=y ./arch/arm/configs/msm8909_defconfig:283:CONFIG_SERIAL_MSM_CONSOLE=y ./arch/arm/configs/qcom_defconfig:96:CONFIG_SERIAL_MSM_CONSOLE=y ./arch/arm/configs/msm8953_defconfig:342:CONFIG_SERIAL_MSM_CONSOLE=y ./arch/arm/configs/msm8909w_defconfig:265:CONFIG_SERIAL_MSM_CONSOLE=y ./arch/arm/configs/msm8953-batcam_defconfig:93:CONFIG_SERIAL_MSM_CONSOLE=y ./arch/arm/configs/multi_v7_defconfig:323:CONFIG_SERIAL_MSM_CONSOLE=y ./arch/arm/configs/msm8937go_defconfig:342:CONFIG_SERIAL_MSM_CONSOLE=y 

可以看到在msm8953-perf_defconfig是没有定义CONFIG_SERIAL_MSM_CONSOLE的,因此我们只需要重新定义一下即可。

diff --git a/kernel/msm-4.9/arch/arm64/configs/msm8953-perf_defconfig b/kernel/msm-4.9/arch/arm64/configs/msm8953-perf_defconfig index e89dd5bbc1..6d  --- a/kernel/msm-4.9/arch/arm64/configs/msm8953-perf_defconfig +++ b/kernel/msm-4.9/arch/arm64/configs/msm8953-perf_defconfig @@ -341,8 +341,10 @@ CONFIG_INPUT_UINPUT=y # CONFIG_LEGACY_PTYS is not set # CONFIG_DEVMEM is not set # CONFIG_DEVKMEM is not set +CONFIG_SERIAL_MSM=y +CONFIG_SERIAL_MSM_CONSOLE=y CONFIG_SERIAL_MSM_HS=y -CONFIG_SERIAL_MSM_HSL_CONSOLE=y +#CONFIG_SERIAL_MSM_HSL_CONSOLE=y CONFIG_SERIAL_MSM_SMD=y CONFIG_DIAG_CHAR=y CONFIG_DIAG_USES_SMD=y 

有的时候,由于默认打印机等级比较低,因此有可能,无法打印,因此需要调整打印等级。

串口console在开机后可能会降低打印级别,可以通过如下命令显示所有log

 echo "8 6 1 7" > /proc/sys/kernel/printk 

关闭所有log显示

echo "0 6 1 7" > /proc/sys/kernel/printk 

经过上面的修改之后,就会有串口打印出来,另外如何控制台不能输入,请参考下面的。

2、另外需要修改user版本串口只有输出不能输入的问题

build/core/main.mk:

ifeq (true,$(strip $(enable_target_debugging))) # Target is more debuggable and adbd is on by default ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=1 # Enable Dalvik lock contention logging. ADDITIONAL_BUILD_PROPERTIES += dalvik.vm.lockprof.threshold=500 # Include the debugging/testing OTA keys in this build. INCLUDE_TEST_OTA_KEYS := true else # !enable_target_debugging # Target is less debuggable and adbd is off by default ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=0 endif # !enable_target_debugging 

system/core/rootdir/init.rc

service console /system/bin/sh class core console disabled user shell group shell log seclabel u:r:shell:s0 on property:ro.debuggable=1 start console 

可见console是否启动受属性ro.debuggable的控制.

解决方法有两种,任选其中一个即可:

  1. 修改 ro.debuggable = 1
  2. 直接将on property:ro.debuggable=1删除,然后默认就是无条件启动console.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177061.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午8:24
下一篇 2026年3月26日 下午8:24


相关推荐

  • 详解Ajax请求(四)——多个异步请求的执行顺序

    详解Ajax请求(四)——多个异步请求的执行顺序

    2021年11月3日
    38
  • word2vec原理简述[通俗易懂]

    word2vec原理简述[通俗易懂](原创)word2vec是将单词转为向量,并为后续应用机器学习的算法做准备。经典的模型有两种,skip-gram和cbow,其中,skip-gram是给定输入单词来预测上下文,而cbow相反,是给定上下文来预测输入单词。下面主要介绍skip-gram:1.skip-gram训练词对skip-gram首先设定所谓一个值(skip_window),作为一个单词选取它的上下文的单词…

    2022年5月16日
    31
  • Sublime插件推荐

    Sublime插件推荐常用插件推荐Alignment:自动对齐代码SublimeLinter提示编写代码中存在的不规范和错误的写法SublimeCodeIntel代码提示和补全BracketHighlighter代码匹配SideBarEnhancements侧栏右键功能增强ConvertToUTF8,GBK编码兼容Emmet让编写代码变得简单HTML-CSS-JSPrettifyHTML…

    2022年6月24日
    32
  • oc和js交互_js调用api

    oc和js交互_js调用apiiOSJS与OC交互1、UIWebView与JS交互UIWebView在iOS12中已经被废弃,同时WKWebView在iOS8中已经出现。所以无特殊情况的话,我们一般应该也是用不到前者了!UIWebView初始化:self.webView=[[UIWebViewalloc]initWithFrame:self.view.bounds];self.webView.delegate=self;[self.viewaddSubview:self.

    2025年8月3日
    6
  • VOIP技术架构

    VOIP技术架构H 323 协议存在一些问题 不支持群播 只有有限的 MCU 其 IP 电话网络在接入端仍需经过当地 PSTN 电路交换网 之后定制了 MGCP 目的在于将 H 323 在功能上进行分解 划分成负责媒体处理的媒体网关 MG 掌控呼叫建立与控制的媒体网关控制器 MGC 两部分 VoIP 架构 4 元素 媒体网关 媒体网关控制器 语音服务器 信号网关器 在交换过程中进行相关控制 以决定通话建立与否 及相关增值

    2026年3月18日
    2
  • 基于matlab的低通滤波器的设计_matlab带阻滤波器函数

    基于matlab的低通滤波器的设计_matlab带阻滤波器函数基于MATLAB的带通滤波器设计滤波前滤波后频谱图501001502002503003504004505000.511.522.5Frequency(Hz)Time0501001502002503003504004505000.511.522.5Frequency(Hz)Time时域图样500100015002000250030003500-1-0.8-0.6-0.4-0.20…

    2025年8月30日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号