adb shell cmgs AT 命令在 Redmi 7 上的 pdu 模式下不起作用
adb shell cmgs AT command in pdu mode on Redmi 7 not working
我运行这些命令:
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
让我们分析一下您提供给 shell 的两个命令:
cat /dev/smd7 &
echo "some_data" > /dev/smd7
cat /dev/smd7 &
:监听设备 /dev/smd7
:从现在开始,所有来自 来自 设备的数据都将被重定向到标准输出(shell 你正在写)。在后台执行 (&
) 以便能够发送更多命令
echo "some_data" > /dev/smd7
:发送some_data
到设备/dev/smd7
- 与设备的连接已打开
- 数据发送完毕
- 连接关闭并且控制权返回shell
当您发送 echo "AT+CMGS=24;\r" > /dev/smd7
AT+CMGS=24;\r
发送到设备
- 连接已关闭
- ...同时设备发回
>
提示字符告诉你它正在等待PDU消息
- ... 但是 shell 有控制权。
>
提示只是shell上的一个打印,所以任何发送的数据都会直接发送到shell!
- 由于发送的数据不是shell命令,所以显示
not found
错误
总之,为了正确发送PDU报文给设备,通过echo
命令继续发送:
echo "07...985C369F01" > /dev/smd7
注意: 确保使用 CTRL+Z 字符(ASCII 0x1A
)终止序列。
我运行这些命令:
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
让我们分析一下您提供给 shell 的两个命令:
cat /dev/smd7 &
echo "some_data" > /dev/smd7
cat /dev/smd7 &
:监听设备/dev/smd7
:从现在开始,所有来自 来自 设备的数据都将被重定向到标准输出(shell 你正在写)。在后台执行 (&
) 以便能够发送更多命令echo "some_data" > /dev/smd7
:发送some_data
到设备/dev/smd7
- 与设备的连接已打开
- 数据发送完毕
- 连接关闭并且控制权返回shell
当您发送 echo "AT+CMGS=24;\r" > /dev/smd7
AT+CMGS=24;\r
发送到设备- 连接已关闭
- ...同时设备发回
>
提示字符告诉你它正在等待PDU消息 - ... 但是 shell 有控制权。
>
提示只是shell上的一个打印,所以任何发送的数据都会直接发送到shell! - 由于发送的数据不是shell命令,所以显示
not found
错误
总之,为了正确发送PDU报文给设备,通过echo
命令继续发送:
echo "07...985C369F01" > /dev/smd7
注意: 确保使用 CTRL+Z 字符(ASCII 0x1A
)终止序列。