Off topic e tether-one-click!
...e se volessi eseguire le impostazioni Lato Next con un clik direttamente dalla home page?
http://dl.dropbox.com/u/40706818/usbnet/SC1.png
...guardando l'icona dell'applicazione... secondo voi chi ha avuto l'idea/proposta? ...eh eh...
Premetto che non sono un programmatore Java, ma vediamo comunque come si può mettere in piedi una applicazione base per Android, seguendo i tutorial e le linee guida presenti qui:
Android developers
Tra parentesi un sito fatto veramente bene e pieno di risorse di ogni tipo...
1] l'ambiente di sviluppo
N.B. Faccio le operazioni che seguono su un PC con Ubuntu 11.04...
Scarico e installo l'ambiente di sviluppo consigliato: Eclipse Classic 3.7.1 partendo da qui:
Eclipse Downloads
...sono 173Mb quindi mettiamoci comodi...
scompatto l'archivio in una cartella a piacere, ad esempio
/home/doc/bin/eclipse
e faccio partire il programma eclipse con un doppio click direttamente dalla cartellina...
2] il plugin di android
Attenzione: da qui in poi devo avere installato l'Android Sdk e avere creato almeno un android virtuale 2.3.3
...ma chi al giorno d'oggi non l'ha ancora fatto...
Eclipse è un ambiente di sviluppo che va adattato ad android, seguendo le istruzioni che trovo qui:
ADT Plugin
3] l'applicazione USB tethering One Click
Scarico il progetto (che vi propongo) da qui:
tethering.tar.gz
e lo importo in eclipse dal menu File -> Import -> General -> Existing projects into workspace
ATTENZIONE: Questa applicazione è solo un "proof of concept".... funziona ma non è affatto scritta bene... in gergo si parla di "poor programming practice"... infatti l'app non controlla che il telefono sia rooted, non controlla che l'interfaccia usb0 sia attiva, non controlla le impostazioni del gateway...
...inoltre non chiede in maniera dinamica gli indirizzi dei server DNS e non chiede nemmeno quello del gateway... queste sono funzioni decisamente utili e che potrebbero essere inserite in una ipotetica whish list... chissà...
...l'unica cosa che fa è quella di eseguire una sequenza predefinita di comandi shell...
Quello che vedo quando parte l'applicazione è questo:
http://dl.dropbox.com/u/40706818/usbnet/SC2.png
...
Il sorgente principale lo raggiungo (colonna di sinistra di Eclipse) da
Tethering Script -> src -> doc.tethering.usbscript -> TetheringUpActivity.java e doppio click!
Mi basta (per ora) modificare questa parte di codice:
codice:
os.writeBytes("busybox route del default\n");
os.writeBytes("busybox route add default gw 192.168.42.77 usb0\n");
os.writeBytes("setprop net.usb0.dns1 208.67.222.222\n");
os.writeBytes("setprop net.usb0.dns2 208.67.220.220\n");
os.writeBytes("setprop net.dns1 208.67.222.222\n");
os.writeBytes("setprop net.dns2 208.67.220.220\n");
perchè dovrò adattarla alle mie esigenze...
fatto questo la provo dal menu
run -> run -> Android application
...se sono soddisfatto la preparo seguendo sempre le indicazioni del sito Androis developers...
...se sono pigro questa è quella compilata da Doc:
Tethering Script.apk
...ma dentro ha gli indirizzi dei server openDNS...;)
...e la installo da adb shell così:
codice:
doc@NattyBox:~$ adb install Tethering\ Script.apk
doc@NattyBox:~$
4] Ringraziamenti
Il codice della routine per i permessi di root è stato scritto da
Blackgin
e l'ho trovato qui:
[facile] Uso dei permessi di root in un'applicazione - Android Developers Italia
Cosa posso dire questa volta?
Easy Click
ovviamente!
P.S. Era forse più semplice dire all'applicazione di eseguire lo script tether presentato in precedenza, così ognuno poteva personalizzare i propri indirizzi più velocemente...
...ma si può aprire un potenziale (per quanto remoto) buco di sicurezza nel sistema...