Ho un compito al lavoro per indagare se è possibile inviare comandi AT a un dispositivo Android tramite shell ADB. Finora, ho cercato di echeggiare i comandi AT ma li passa come normali stringhe. Qualsiasi aiuto, per favore chiunque.Invio di comandi AT tramite ADB Android
risposta
Echo dove? In Android parli con il daemon rild (Radio Interface Layer), che a sua volta parla con una libreria proprietaria, che invia comandi all'hardware reale. Controllare il codice sorgente rild per i dettagli. Probabilmente potresti scrivere un programma a riga di comando che dialoga con il rild ed eseguirlo tramite adb shell, se questo corrisponde alle tue esigenze.
In realtà è possibile. Sono stato in grado di ottenere un paio di lavoro e la maggior parte hanno restituito richiesta OK. –
Ancora, li fai eco dove? Che comando hai emesso? ADB è solo un mezzo per eseguire il comando della shell sul telefono. Potresti essere in grado di parlare direttamente con qualche dispositivo seriale (-like), oppure potresti non essere in grado di farlo. Questo dipende in gran parte dal particolare telefono. –
Si prega di provare questo:
echo -e "AT+CFUN=?\r\n" > /dev/ttyUSB0
Sul telefono, la linea seriale non deve necessariamente essere chiamato ttyUSB0
. Se questo non funziona o non è disponibile, controlla le altre voci della directory /dev/
.
Quindi potrebbe anche essere /dev/ttyGS0
o /dev/SMD0
(come scoperto da @Sani).
Per ulteriori informazioni, si prega di consultare questo Guide
NOTA:
Ci potrebbe essere anche i telefoni, che non rispondono ai comandi AT su uno qualsiasi dei loro (tty)
dispositivi seriali.
Ho appena provato la mia procedura su un Samsung Galaxy S4 e non ho avuto alcun successo.
Ho provato questo e non funziona. BDW il mio dispositivo è un asso di galassie radicato –
HO GIÀ OTTENUTO una soluzione funzionante.Avevo bisogno di trovare il mio modem del dispositivo che nel mio caso è SMD0 invece di TTYUSB0. Ho avuto un paio di comandi e alcuni ritornano OK. Ancora indagando Grazie ragazzi. –
Aaah, ecco perché ti ho detto di dare un'occhiata alla guida. : o) Completerò la mia risposta per abbinare quel problema. Grazie per aver condiviso con noi! – Nippey
Al fine di scoprire quale porta da utilizzare: È possibile controllare
# cat /proc/tty/drivers
Usa logcat -b radio | grep dev
per vedere wich tty la radio sta usando.
Per il mio Galaxy Note II (GT-N7100) questo era '/ dev/ttySAC2'. – psiphi75
sì, è possibile eseguire i comandi AT da adb shell troppo ...
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`
per l'esecuzione a comando da ADB
use echo -c "AT\r\n" > /dev/smd11
PS: smd11 è la porta utilizzata da RIL.This varia da dispositivo a dispositivo.
anche a correre i comandi AT dall'applicazione Android controllare questo tutorial
http://tech-papers.org/executing-at-commands-android-application/
"per verificare quale porta viene utilizzata da RIl utilizzare' getprop rild.libargs' "ma nel mio caso non restituisce nulla. Nessun testo è mostrato. Sto usando un Samsung GT-S5301 – mkhan
Il collegamento è morto –
non credo sia possibile. ADB non è un modem GSM – opc0de
Lo so, ma ho visto post simili in cui le persone hanno eseguito con successo i comandi con un dispositivo rooted. –
controlla questo http://tech-papers.org/executing-at-commands-android-application/ –