Redmi 7 上 pdu 模式下的 adb shell cmgs AT 命令不起作用

Posted

技术标签:

【中文标题】Redmi 7 上 pdu 模式下的 adb shell cmgs AT 命令不起作用【英文标题】:adb shell cmgs AT command in pdu mode on Redmi 7 not working 【发布时间】:2020-10-08 14:22:10 【问题描述】:

我运行这些命令:

cat /dev/smd7 & echo "AT+CSCS=\"GSM\";\r" > /dev/smd7
cat /dev/smd7 & echo "AT+CMGF=0;\r" > /dev/smd7
cat /dev/smd7 & echo "AT+CMGS=24;\r" > /dev/smd7

然后我输入PDU消息:

07...985C369F01

我得到这个输出:

/system/bin/sh: 07...985C369F01: not found

【问题讨论】:

如何发送PDU消息?也可以使用echo 命令? @RobertoCaboni 不,在 /dev/smd7> 我在提示符中得到一个新行,带有 '>' ,然后我编写 PDU 并按 Enter。 【参考方案1】:

让我们分析一下你提供给 shell 的两个命令:

cat /dev/smd7 &
echo "some_data" > /dev/smd7
    cat /dev/smd7 &:收听设备/dev/smd7:从现在开始,所有来自来自该设备的数据都将被重定向到标准输出(您正在写入的外壳)。在后台执行此操作 (&) 以便能够发送更多命令

    echo "some_data" > /dev/smd7:发送some_data 设备/dev/smd7

      与设备的连接已打开 数据已发送 连接关闭控制返回到外壳

当您发送echo "AT+CMGS=24;\r" > /dev/smd7

    AT+CMGS=24;\r 发送到设备 连接已关闭 ...同时设备发回>提示符告诉你它正在等待PDU消息 ... 但外壳有控制权。 > 提示符只是 shell 上的打印,所以任何发送的数据都将直接发送到 shell! 由于发送的数据不是shell命令,所以显示not found错误

总结,为了正确发送PDU消息到设备,只需通过echo命令继续发送即可:

echo "07...985C369F01" > /dev/smd7

注意:确保以 CTRL+Z 字符(ASCII 0x1A)终止序列。

【讨论】:

以上是关于Redmi 7 上 pdu 模式下的 adb shell cmgs AT 命令不起作用的主要内容,如果未能解决你的问题,请参考以下文章

sh 一个简单的bash脚本,通过ADB在Marshmallow +设备上启用演示模式(基于http://bit.ly/295BHLx)

sh 一个简单的bash脚本,通过ADB在Marshmallow +设备上启用演示模式(基于http://bit.ly/295BHLx)

sh 一个简单的bash脚本,通过ADB在Marshmallow +设备上启用演示模式(基于http://bit.ly/295BHLx)

sh 一个简单的bash脚本,通过ADB在Marshmallow +设备上启用演示模式(基于http://bit.ly/295BHLx)

sh 一个简单的bash脚本,通过ADB在Marshmallow +设备上启用演示模式(基于http://bit.ly/295BHLx)

sh 一个简单的bash脚本,通过ADB在Marshmallow +设备上启用演示模式(基于http://bit.ly/295BHLx)