2012-10-12 19 views
10

Ich habe eine Aufgabe zu untersuchen, ob es möglich ist, AT-Befehle über die ADB-Shell an ein Android-Gerät zu senden. Bis jetzt habe ich versucht, die AT-Befehle wiederzugeben, aber sie übergibt sie als normale Strings. Irgendwelche Hilfe bitte jedermann.Senden von AT-Befehlen über ADB Android

+0

Ich glaube nicht möglich ist, laufen. ADB ist kein GSM-Modem – opc0de

+0

Ich weiß, aber ich habe ähnliche Post gesehen, wo Menschen erfolgreich bei Befehlen mit einem gerooteten Gerät ausgeführt haben. –

+0

überprüfen Sie dies http://tech-papers.org/executing-at-commands-android-application/ –

Antwort

2

Echo sie wo? In Android spricht man mit dem Rild-Dämon (Radio Interface Layer), der wiederum mit einer proprietären Bibliothek kommuniziert, die Befehle an die tatsächliche Hardware sendet. Überprüfen Sie den Quellcode für Details. Sie könnten wahrscheinlich ein Befehlszeilenprogramm schreiben, das mit dem Rild kommuniziert und es über die adb-Shell ausführt, wenn dies Ihren Anforderungen entspricht.

+0

Es ist tatsächlich möglich. Ich konnte ein Paar arbeiten lassen und die meisten haben OK-Anfrage zurückgegeben. –

+0

Wieder, echo sie wo? Welchen Befehl hast du ausgegeben? ADB ist nur ein Mittel, Shell-Befehl auf dem Telefon auszuführen. Sie könnten direkt mit einem seriellen (oder ähnlichen) Gerät sprechen, oder Sie könnten es möglicherweise nicht. Dies hängt weitgehend vom jeweiligen Telefon ab. –

6

Bitte versuchen Sie dies:

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

auf Ihrem Telefon muss die serielle Leitung nicht unbedingt ttyUSB0 aufgerufen werden. Wenn dies nicht funktioniert oder nicht verfügbar ist, überprüfen Sie die anderen Einträge des Verzeichnisses /dev/.
So könnte es auch /dev/ttyGS0 oder /dev/SMD0 sein (wie von @Sani herausgefunden).

Für weitere Informationen besuchen Sie bitte diese Guide


HINWEIS:

Es Telefone sein könnte, die auf AT-Befehle auf einem ihrer seriellen (tty) Geräte reagieren nicht.
Ich habe gerade mein eigenes Verfahren auf einem Samsung Galaxy S4 versucht und hatte keinen Erfolg.

+0

Ich habe das versucht und es funktioniert nicht. BDW mein Gerät ist eine Galaxie ace wurzeln –

+1

Ich habe eine funktionierende Lösung.Ich musste mein Gerätemodem finden, das in meinem Fall SMD0 statt TTYUSB0 ist. Ich habe ein paar Befehle ausgeführt und einige kommen wieder. Immer noch untersuchen. Danke Leute. –

+0

Aaah, deshalb habe ich dir gesagt, dass du dir den Guide ansehen sollst. : o) Ich werde meine Antwort vervollständigen, um dieses Problem zu lösen. Danke für das Teilen mit uns! – Nippey

0

Um herauszufinden, welcher Port zu verwenden: Sie können

überprüfen
# cat /proc/tty/drivers 

Verwenden logcat -b radio | grep dev Wich tty Radio sehen verwendet.

+0

Für mein Galaxy Note II (GT-N7100) war dies '/ dev/ttySAC2'. – psiphi75

0

ja auch Sie können AT-Befehle von adb shell laufen ...

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` 

AT-Befehl von ADB laufen

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

PS: smd11 wird Port von RIL.This verwendet wird, variiert von Gerät zu Gerät.

auch Befehle von Android-Anwendung lesen Sie in diesem Tutorial

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

+0

"Um zu überprüfen, welcher Port von RI benutzt wird, benutze' getprop rild.libargs' ", aber in meinem Fall gibt es nichts zurück. Kein Text wird angezeigt. Ich benutze ein Samsung GT-S5301 – mkhan

+1

Der Link ist tot –