L'idea principale è quella di realizzare un grabber di gesture realizzabili sullo schermo del nostro device. Ad ogni movimento delle dita sullo schermo potrebbe corrispondere l'apertura di una specifica applicazione. Nel caso di seguito è possibile scorrere un dito dall'alto a sinistra dello schermo sino al basso a destra per fare in modo che una applicazione a scelta venga avviata. L'immagine di seguito potrà chiarire;

Parte del codice deriva dallo screenlocker di lindi, il quale blocca lo schermo sino a quando una gesture verticale (dall'alto al basso) viene rilevata.
In touchscreen_gesture.c viene usato EVIOCGRAB mediante I/O asincrono per evitare che lo schermo venga bloccato durante l'esecuzione (vedasi ioctl(...)) e la matematica delle operazioni diviene leggermente più complessa. Giustamente occorre verificare che gli eventi legati alla coordinata x non assumano valori costanti e che questi siano crescenti.
Evito di trattare nel dettaglio la matematica delle operazioni. In pratica lo schermo riceve degli eventi tra cui le coordinate x ed y del mouse (del dito nel nostro caso) e touchscreen_gesture.c controlla ciclicamente la storia degli eventi ricevuti. Qualora la gesture dovesse matchare con quella mostrata sopra verrà aperta una finestra con zenity. E' possibile modificare il comando da eseguire a seguito della gesture, vedasi la riga relativa all'execlp(...). Il risultato a seguito della gesture è il seguente mostrato:

Compilazione:
gcc -c touchscreen_gesture.c
gcc -o touchscreen_gesture touchscreen_gesture.o
Uso:
./touchscreen_gesture /dev/input/touchscreen0LATEST ENTRIES
- HTML5 xss vectors
- Computer threats: cool statistics
- php l0gg3r 0.2.2: a very simple php logger
- Mobile Web: Privacy Keeping and Exploitation Methods (on Hakin9 2010-02)
- Möbius strip
- [java] NetS3nd [easy] Client - client to send messages over windows NT/2000 networks
- Merry Xmas!!
- touchscreen_gesture.c (for Openmoko NeoFreerunner)

Replies: 0
Leave a Reply