The Lab

Android, event inject:

by emuboy on Jun.08, 2009, under Post

Da un pò di giorni sto pensando a come comandare il mio htc g1 da remoto quando sono in macchina,quindi mi sono messo di lena e ho setacciato il sistema operativo, e ho trovato due comandi utilissimi:
getevent
sendevent

getevent sniffa i dati provenienti da tastiera, touchscreed, trackball (!) e compasso e li restituisce in esadecimale.
sendevent esegue l’inject dei comandi nel sottosistema di controllo permettendovi di emulare tutte le periferiche su citate.

ho trovato la maggiorparte delle informazioni qui .Da qui ho poi scritto un piccolo batch, lo dovete lanciare dal computer con adb funzionante:

Aprite un file e rinominatelo .sh (in questo caso anche un chmod +x serve )o bat in base a che sistema operativo usate, e copiateci dentro questo:

adb shell sendevent /dev/input/event3 1 46   1
adb shell sendevent /dev/input/event3 1 46   0
adb shell sendevent /dev/input/event3 1 23   1
adb shell sendevent /dev/input/event3 1 23   0
adb shell sendevent /dev/input/event3 1 30   1
adb shell sendevent /dev/input/event3 1 30   0
adb shell sendevent /dev/input/event3 1 24   1
adb shell sendevent /dev/input/event3 1 24   0

dopo di che, aprite la tastiera e andate in un programma che vi permetta di scrivere e lanciate il bat, vedrete la scritta ciao comporsi.

Ma come vunziona? semplice:

adb shell sendevent /dev/input/event3 1 24   0

adb shell è palese dire….

sendevent è il comando che verrà eseguito sull shell

il primo 1 è il mode, il 24 è il keycode e l’ultimo 1 è il tasto premuto, dovrete ridare lo stesso comando con lo 0 per simulare la pressione del tasto.

bello eh? la domanda sorge spontanea…emu, e mo che ci fai? ordino il connettore per attaccarmi alla seriale e glieli faccio mandare all’arduino ;)

:, , , , ,
4 comments for this entry:
  1. Alessandro "NeRON" Lorenzi

    ahahah che figata! :D
    … mh.. ma non ho capito come glieli mandi… sei attaccato via usb?

    o via wireless?… del tipo facciamo partire le chiamate a caso xD

  2. emuboy

    sono comandi da console, puoi scriverli a mano col l’emulatore di terminale SUL telefono (ma in questo caso non funzionerebbero perchè non hai un programma aperto) oppure puoi creare un file .sh da avviare, in questo caso lo mando via usb, ma si può fare via wireless con una sessione ssh o telnet o si può fare da seriale (penso…)

  3. ZyRix1st

    ovvero: tocco tocco il touch, senza lasciare ditate :D

  4. Android,event inject 2 : | The Lab

    [...] emuboy on Aug.31, 2009, under Post Lo so che ho già trattato questo argomento in precenza, ma in forma differente, il fatto è che getevent e sendevent sono dei comandi molto veloci ma hanno [...]

Leave a Reply

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!