Saturday, 24 November 2012

Mediacom 10.1S2 - Collegarsi in ADB

Quanto segue non è niente di particolarmente clamoroso, specie per chi abbia una certa dimestichezza col robottino verde, comunque 1) dovevo buttare giù un po' di appunti 2) vista la novità del tablet potrebbe essere utile a qualcuno.

Come collegare il nuovo Mediacom 10.1S2 in ADB? ADB sta per Android Debug Bridge, in pratica tramite collegamento USB si possono scambiare file col proprio dispositivo android, installare pacchetti APK, ed utilizzare una shell di tipo Unix (con un set di comandi limitati), nonché utilizzare esegubili a linea di comando, per gli usi più disparati (ad esempio per rootare il dispositivo).

L'ADB fa parte del SDK per Android. Per proseguire 1) è necessario sapere cosa sia l'SDK 2) è necessario scaricarlo e installarlo correttamente. Se non sapete come fare, google is your friend.

Il collegamento ADB lato tablet si attiva in Impostazioni, Opzioni Sviluppatore, spuntando 'Debug USB'.



Fatto questo una volta collegato al PC (quanto sopra è stato provato con Windows 7 64 bit e Windows XP, su MacOS e Linux la procedura è diversa) il dispositivo si presenta come un nuovo componente USB richiedente un driver particolare.

Il driver sembrebbe un driver specifico per il tablet, da trovare in rete, ma non è così. Non esiste un driver specifico ma si deve 'convincere' un driver generico.presente nell'SDK stesso. Questa è la procedura di 'convincimento' specifica per il 10.1S2 (ma credo anche per tutti i tablet basati su chipset RK3066) - volendo è possibile automatizzare la cosa con i driver PDA.NET, facenti parte di un pacchetto di accesso ad internet via USB tramite telefono/tablet Android. Con questa procedura manuale tuttavia si utilizzano i driver più recenti dell'SDK e non si deve installare niente di extra.

Procedere così:

Una volta inserito il tablet con il debug USB abilitato il sistema chiede i driver: procedere senza ricerca su internet, scegliendo Ricarca Manuale/Ricerca driver nel computer. La ricerca fallirà e andando poi in Computer, tasto dx, Gestione dispositivi apparirà la classica icona col punto esclamativo giallo e la sigla del tablet.


A questo punto si tratta di trovare gli ID Usb Vendor e Product per configurare il driver standard dell'SDK. Si tratta di cliccare tasto dx sull'icona gialla, scegliere proprietà e andare in Dettagli

Gli id che ci interessano sono visibili scegliendo ID hardware:
In pratica ci serve il VID 2207 e il PID 0010.

A questo punto si tratta di localizzare la cartella  .\extras\google\usb_driver all'interno della directory dove è già stato installato l'SDK. E' presente un file android_winusb.inf : è un normale file di testo che associa il driver agli ID hardware compatibili. Si tratta di aprirlo con un editor di testo (va bene Notepad, anche se sarebbe meglio disporre di un editor di testo degno di questo nome come Notepad++). Nelle sezioni [Google.NTx86] e [Google.NTamd64] aggiungere le seguenti righe. In pratica sono il copia e incolla di due righe SingelAdbInterface e CompositeAdbInterface con gli ID cambiati, più una riga di commento.

[Google.NTx86]
;m101s2
%SingleAdbInterface% = USB_Install, USB\VID_2207&PID_0010
%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0010&MI_01


[Google.NTamd64]
;m101s2
%SingleAdbInterface% = USB_Install, USB\VID_2207&PID_0010
%CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0010&MI_01


Una volta modificato il file .inf, per installare il driver basta ritornare in gestione dispositivi, fare tasto dx sull'icona gialla, trovare e cliccare il bottone Aggiorna Driver e dare come percorso dei driver la stessa cartella .\extras\google\usb_driver all'interno della directory dell'SDK.

Il tablet ora sarà correttamente rinosciuto come 'Composite ADB Interface'. Prima di procedere all'avvio del sistema ADB tuttavia di solito, pena il mancato effettivo riconoscimento del tablet, è di solito necessario editare un altro file di testo. Per editarlo visto che è in formato testo, ma in formato testo Unix, sarebbe meglio usare un editor di testo diverso dal Notepad, come appunto il Notepad++.
Il file si chiama  adb_usb.ini e si trova nella cartella .android all'interno della cartella profilo utente di windows. Su Windows 7 se il vostro username è luigi, la cartella profilo sarà di solito C:\users\luigi, su XP C:\Documents and Settings\luigi

Si tratta di aggiungere a mano il solo ID prodotto (2207) seguito dal prefisso esadecimale 0x

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x2207



Volendo ho già preparato sia l'adb_usb.ini che l'android_winusb.inf - se usate l'ultima versione dell'SDK Android e non avete installato altri dispositivi in ADB, vanno bene: si scaricano qui.

Fatto questo per utilizzare l'ADB si tratta di lanciare un prompt dei comandi, in modalità Amministratore su WIndows 7 e posizionarsi nella cartella platform-tools della directory dell'SDK.

Il comando adb devices mostra i dispositivi ADB collegati ed eventualmente lancia il servizio sul computer. Col solo 101S2 collegato dovrebbe rispondere:

List of devices attached
0123456789ABCDEF        device


Se non appare la riga 'device', qualcosa è andato storto nell'installazione.

Si può eventualmente usare adb kill-server e poi adb start-server per riavviare il servizio.

Per entrare in shell usare adb shell. Entrati si può esaminare il file system con cd, ls e così via. Si può anche accedere come superuser con il comando  su e cancellare file con rm, cambiare permessi con chmod: non si tratta di quello che su android si intende con accesso root tuttavia.

Per uscire dalla shell dare il comando exit

Per inviare un file dal pc al tablet, nella cartella /sdcard

adb push nomefile /sdcard

Per prelevare un file dal tablet al pc

adb pull /sdcard/nomefile

Per installare un file .apk

adb install percorsofile.apk

Per fare uno screenshot (mi funziona solo in landscape, c'è bisogno di ffmpeg.exe, che da errore ma crea un png corretto: nella cartella tools dell'SDK c'è ddms.exe che tra le altre cose fa anche screenshot)

adb pull /dev/graphics/fb0

ffmpeg -vframes 1 -f rawvideo -pix_fmt rgb32 -s 1200x800 -i fb0 immagine.png
 
Per mandare il servizio adb sul pc in modalità root

adb root

Ad esempio un uso non del tutto banale dell'ADB è quello di cambare l'animazione di boot. Non è necessario rootare il dispositivo con questo metodo: però è meglio essere sicuri di quello che si fa prima di procedere.

Per cambiare l'animazione di boot procurarsi  un'animazione di boot su internet, per esempio da http://androidbootanimation.com -  è un file .zip chiamato dentro bootanimation.zip e dentro dei file PNG con i frame e un file di testo di configurazione. E' ovviamente possibile crearsi animazioni personalizzate, creandosi in PNG e configurando il file, ma per semplicità usiamo un'animazione già fatta.

Prima facciamo un backup dell'animazione esistente. Meglio mettere il servizio in root con adb root. Per fare la copia procedere così:

adb pull /system/media/bootanimation.zip

Il file con dentro i loghi mediacom si troverà nella stessa cartella platform-tools, è consigliabile metterlo da parte.

Questi due comandi tolgono le protezioni in scrittura al file dell'animazione sul tablet

adb remount

adb shell chmod 777 /system/media/bootanimation.zip

Con questo comando (supponendo che il file scaricato si trovi in C:\) si scrive sul tablet il file di animazione prelevato da internet

adb push c:\bootanimation.zip /system/media

Fatto questo non resta che fare il reboot del tablet. Si può procedere anche da adb con

adb reboot

Al riavvio al posto dell'animazione mediacom il 101s2 mostrerà la nuova animazione. Per rimettere la vecchia si tratta di ripetere la procedura col file bootanimation.zip salvato dal tablet precedentemente.


6 comments:

  1. Complimenti. Funziona anche sul MP1010i.

    ReplyDelete
  2. Per installare l'Android SDK, bisogna installare solo l'Android SDK Tools; poi bisogna avviarlo e selezionare per installare (dalla priam schermata che ci appare con le spunte) tutti gli "extra" e "Android platform tool". Basta mettere la spunta e dire "accetta tutto".

    ReplyDelete
  3. Ottima guida!!

    ReplyDelete
  4. Funziona anche con il tablet Mediacom MP720GO. Grazie mille!

    ReplyDelete
  5. volevo sapere se funzona con il mio tab mediacom 10.1 s2 3g .M.MP1S2B3G

    ReplyDelete
  6. penso di sì, sono indicazioni molto generiche

    ReplyDelete