
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:
[email protected]:~$ sudo su [email protected]:~$ add-apt-repository ppa:webupd8team/java [email protected]:~$ apt-get update [email protected]:~$ 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:
[email protected]:~/adt-bundle-linux-x86_64/sdk/platform-tools$ ./adb start-server [email protected]:~/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:
[email protected]:~$ sudo su [email protected]:~$ apt-get install mtp-tools mtpfs fuse [email protected]:~$ mkdir -p -m 777 /mnt/Android [email protected]:~$ 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:
[email protected]:~$ 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:
[email protected]:~$ 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:
[email protected]:~$ modprobe fuse [email protected]:~$ mtpfs /mnt/Android
Ora dovrebbe essere montato il dispositivo, manca solo un piccolo passo:
[email protected]:~$ cd /mnt/Android [email protected]:/mnt/Android$ nautilus &
Magicamente vedrete apparire tutti i vostri file 🙂 Per eseguire il dismount della periferica date da terminale il comando:
[email protected]:~$ umount /mnt/Android