Premessa:
Milioni di persone stanno smadonnando (anche in questo preciso momento) per far funzionare Android su un sistema Linux based.
Dunque, un bel giorno uno compra un dispositivo Android e spera che ci sia un minimo di compatibilità con un sistema Linux, e invece cosa si trova davanti?! MTP, ripeto MTP (Media Transfer Protocol)! Un maledettissimo protocollo ideato da Microzozz per il trasferimento file (originariamente musica e foto) e legato al mondo ¨Winzozz Media Player / XBOX¨. Ma non è il caso di perdersi d’animo, colleghiamo il bel dispositivo al PC, e….e….e….ed è un miracolo se un OS Linux lo riconosce al primo colpo. Beh, si narra di rari casi nei quali Ubuntu abbia riconosciuto il dispositivo, ma la felicità è durata poco. E qui entrano in gioco i “Pr0grammat0ri PR0” che tirano fuori il loro kit di sviluppo per Android, collegano il cellulare e dicono ¨ma tanto con ADB fai tutto¨, e invece… Con le nuove versioni di Ubuntu e derivate il supporto ufficiale ad ADB non lo ha più Canonical, ma è passato a terzi (leggasi Google). Quindi una persona con un minimo di animo si reca su Google e pigia i tasti fino a comporre ¨MTP Ubuntu¨ e saltano fuori millemila superblog con la soluzione a portata di mano. Si inizia ad impallidire quando ci si rende conto che hanno TUTTI la stessa maledettissima guida (a volte copiata pure con errori) ed adattata con i piedi alle nuove versioni di Ubuntu. Ci siamo quasi ragazzi, lasciatemi sfogare ancora un po’ 😉 ed ecco che dopo ore passate a leggere qui e li spunta la salvezza: Simple MTP. Un promettente programma che a dire di alcuni blogger è la soluzione all’ ¨agonia MTP su Linux¨. Risultato?! I sorgenti nemmeno compilano. Ok ora ho finito.
Per chi non sa cosa siano, affari suoi, queste cose sono utili ai programmatori o a chi ha voglia di smanettare, dunque vi rimando a http://en.wikipedia.org/wiki/Android_Debug_Bridge#Android_Debug_Bridge e http://en.wikipedia.org/wiki/Fastboot#Fastboot.
Prerequisiti:
– Dispositivo Android
– Android SDK
– Java SDK7 (non strettamente necessario)
Installiamo Java SDK, da Terminale:
user@linux:~$ sudo su root@linux:~$ add-apt-repository ppa:webupd8team/java root@linux:~$ apt-get update root@linux:~$ apt-get install oracle-java7-installer
Ora scaricate Android SDK dal sito ufficiale http://developer.android.com/sdk/index.html#download e scompattatelo sul Desktop o dove meglio vi pare. Da terminale entriamo nella cartella ¨adt-bundle-linux-*¨ e spostiamoci in ¨sdk/platform-tools¨ e avviamo il server ADB:
root@linux:~/adt-bundle-linux-x86_64/sdk/platform-tools$ ./adb start-server root@linux:~/adt-bundle-linux-x86_64/sdk/platform-tools$ ./adb devices
Se l’output dell’ultimo comando mostra il codice identificativo del vostro dispositivo, seguito dalla scritta ¨device¨ avete avuto successo, di conseguenza funzionerà anche fastboot! 🙂
Prerequisiti:
– Dispositivo Android
– Qualsiasi ditribuzione derivante da Debian
Premetto che la guida è stata scritta per Ubuntu e derivate, ma è facilmente adattabile ad altri sistemi Linux. Veniamo alla tanto agognata guida per far funzionare MTP. Collegate il dispositivo al PC e aprite il Terminale e digitate:
user@linux:~$ sudo su root@linux:~$ apt-get install mtp-tools mtpfs fuse root@linux:~$ mkdir -p -m 777 /mnt/Android root@linux:~$ gedit /etc/udev/rules.d/automount.rules &
A questo punto dovrebbe esserersi aperto in Gedit un file di testo nel quale dovrete inserire delle righette di configurazione 🙂 ma prima procuriamoci delle informazioni di vitale importanza. Abbiamo bisogno del VendorID e ProductID del nostro dispositivo, e ce li procureremo col comando ´lsusb´. Dunque da terminale digitate:
root@linux:~$ lsusb
Avrete sotto mano la lista dei bus USB del PC, il vostro compito è trovare il vostro dispositivo Android collegato e segnarvi su un blocco note le informazioni necessarie. Il mio output è questo:
root@linux:~$ Bus 001 Device 004: ID 1004:61f9 LG Electronics, Inc.
Il mio dispositivo è un LG Optimus Dual, e le informazioni utili sono:
VendorID: 1004
ProductID: 61f9
Ora possiamo tornare a Gedit ed inserire questo codice, sostituendo TUOVENDORID, TUOPRODUCTID e TUOUSERNAME con i vostri dati:
# Android rules SUBSYSTEM=="usb", ATTR{idVendor}=="TUOVENDORID", ATTR{idProduct}=="TUOPRODUCTID", ACTION=="add", MODE="0666", RUN+="/bin/su TUOUSERNAME -c '/usr/bin/mtpfs -o allow_other /media/phone'" SUBSYSTEM=="usb", ATTR{idVendor}=="TUOVENDORID", ATTR{idProduct}=="TUOPRODUCTID", ACTION=="remove", RUN+='/bin/fusermount -u /media/phone'
Salvate il file e chiudete Gedit, e ritornate al Terminale:
root@linux:~$ modprobe fuse root@linux:~$ mtpfs /mnt/Android
Ora dovrebbe essere montato il dispositivo, manca solo un piccolo passo:
root@linux:~$ cd /mnt/Android root@linux:/mnt/Android$ nautilus &
Magicamente vedrete apparire tutti i vostri file 🙂 Per eseguire il dismount della periferica date da terminale il comando:
root@linux:~$ umount /mnt/Android