2012-10-12 141 views
10

我有一个任务在工作,以研究是否有可能通过ADB shell将AT命令发送到android设备。到目前为止,我试图回显AT命令,但它将它们作为普通字符串传递。 任何帮助,请任何人。通过ADB发送AT命令Android

+0

我不认为是可能的。亚行不是一个GSM调制解调器 – opc0de

+0

我知道,但我已经看到类似的帖子,人们已经成功执行了一个根植设备的命令。 –

+0

检查了这一点http://tech-papers.org/executing-at-commands-android-application/ –

回答

2

回声他们在哪里?在Android中,您可以与rild(无线电接口层)守护进程交谈,该进程会与专有库进行通信,该库会将命令发送到实际硬件。有关详细信息,请查阅rild源代码。你可以编写一个命令行程序,与rild通信并通过adb shell执行它,如果这符合你的需求的话。

+0

它实际上是可能的。我已经能够得到一对夫妇的工作,并且大部分都已经返回OK请求。 –

+0

再一次,回声他们在哪里?你发出了什么命令? ADB只是在手机上执行shell命令的一种手段。您可以直接与某些串行(类似)设备交谈,或者您可能无法。这在很大程度上取决于特定的手机。 –

6

请试试这个:

echo -e "AT+CFUN=?\r\n" > /dev/ttyUSB0 

在您的手机,串口线不一定必须叫ttyUSB0。如果这不起作用或不可用,请查看/dev/目录的其他条目。
所以它也可能是/dev/ttyGS0/dev/SMD0(由@Sani发现)。

欲了解更多信息,请看看这个Guide


注:

也有可能是手机,不就任何其序列(tty)设备的AT命令做出响应。
我刚刚在三星Galaxy S4上试过我自己的程序,但没有任何成功。

+0

我试过这个,它不起作用。 BDW我的设备是一个根深蒂固的星系王牌 –

+1

我有一个工作解决方案。我需要找到我的设备调制解调器,在我的情况下是SMD0而不是TTYUSB0。我有几个命令的工作,一些返回OK。仍在调查。多谢你们。 –

+0

Aaah,这就是为什么我告诉你看看指南。 :o)我会完成我的答案,以配合这个问题。多谢与我们分享! – Nippey

0

为了找出哪些端口使用方法: 您可以检查

# cat /proc/tty/drivers 

使用logcat -b radio | grep dev看到至极TTY收音机使用。

+0

对于我的Galaxy Note II(GT-N7100),这是'/ dev/ttySAC2'。 – psiphi75

0

是的,你可以运行从亚行外壳太命令......

prerequsite :- 
1. rooted android phone 
2. you are aware of the port that RIL use for i/o operation. 
3. to check which port is being used by RIl use `getprop rild.libargs` 

从亚行

use echo -c "AT\r\n" > /dev/smd11 

PS AT命令来运行:smd11由RIL.This使用的端口变化从设备到设备。

也运行从Android应用程序的命令检查本教程

http://tech-papers.org/executing-at-commands-android-application/

+0

“来检查RIl正在使用哪个端口使用'getprop rild.libargs'”,但在我的情况下它什么都不返回。没有文字显示。我正在使用三星GT-S5301 – mkhan

+1

链接死了 –