Unboxing |
L'aggeggino (novanta grammi, inclusa batteriola da 1500mAh) ha uno slot SIM e uno microSD, ha uno schermo in bianco e nero e una tastiera composta da ben due tasti (tastino funzione e tastone di accensione/spegnimento, quest'ultimo utilizzabile come tasto invio), funge da access point wifi e può ricevere e inviare SMS. Ovviamente ci gira Linux con un... mini_httpd/1.19 19dec2003, il che significa che l'aggeggio è root-abile anche se ha come porte aperte solo la 53/DNS e la 80/HTTP. Hanno usato nientemeno che jQuery mobile 1.2 e log4javascript (del 2009), e naturalmente il firmware risulta già all'ultimissima versione aggiornatissima.
Invece di hackerarlo, mi piacerebbe piuttosto ricevere gli SMS da programma (mandarli no, perché con quella SIM si pagano), senza adoperare l'interfaccia web, in modo da mandare comandi da remoto ad un eventuale server collegato. Dal Javascript invocato per la inbox degli SMS vedo che basta fare una GET a http://3.home/api/sms/sms-count per leggere un XML del conteggio messaggi (non letti, totali, in uscita, bozze, ecc.) ed una POST su sms-list nella stessa directory api/sms per leggere una pagina di SMS. Devo solo scrivere uno script del tipo: se risulti collegato all'aggeggino, controlla periodicamente gli SMS per vedere se ci sono ordini da remoto...
Trovato! Per leggere fino a 20 messaggi:
curl --data-binary '<request><pageindex>1</pageindex><readcount>20</readcount><boxtype>1</boxtype><sorttype>0</sorttype><ascending>0</ascending><unreadpreferred>0</unreadpreferred></request>' http://3.home/api/sms/sms-list
Per marcare come letto il messaggio con indice 40007:
curl --data-binary '<request><index>40007</index></request>' http://3.home/api/sms/set-read
Per eliminare, usare delete-sms anziché set-read.
Per scoprire tutte queste cose ho usato soltanto il menu Tools / WebDeveloper / Inspector del browser Firefox. Neanche cinque minuti e non c'è stato bisogno neppure di scomodare l'invincibile Wireshark.
Da Ubuntu, collegata via USB, con questo comando viene vista come "Ethernet su USB":
RispondiEliminausb_modeswitch --default-vendor 0x12d1 --default-product 0x1f01 -J