Ciao a tutti.
Non so se si possa considerare un tablet, ma sinceramente non sapevo dove metterlo (al massimo i moderatori mi ri allocheranno)
Cominciamo quindi a identificare l'oggetto; il Tolino Vision 2 e' un ebook reader (tipo kindle, kobo, ecc.) con all'interno un cuore android. Al momento in cui vi scrivo il tutto e' basato sul firmware 1.5.3
UPDATE ATTENZIONE, e' stata rilasciata la versione 1.6.0. Questa versione non permette piu' la possibilita' di rootare il vostro dispositivo.
Quindi fate attenzione prima di aggiornare!
Se siete degli avidi lettori e contemporaneamente degli smanettoni, questo puo' essere un prodotto che vi puo' interessare.
Il prodotto e' venduto in una famosa libreria on line italia ad un prezzo molto ragionevole. (cercatevelo in rete, e' facile trovarlo
)
Oltre a supportare nativamente i formati epub, grazie a questa guida, potrete installare le varie app per leggere altri formati, o semplicemente usare il lettore che piu' vi piace.
Questo e' possibile grazie alla possibilita' di apportare delle modifiche a fastboot almeno fino al firmware 1.5.3 (su cui e' basata questa guida).
PREMETTO CHE SEGUIRE QUESTA GUIDA INVALIDERA' LA GARANZIA SUL PRODOTTO!!!
SE CONTINUATE A LEGGERE E METTERETE IN PRATICA QUELLO CHE VI SCRIVO, LO FATE A VOSTRO RISCHIO E PERICOLO E IO NON ME NE PRENDO NESSUNA RESPONSABILITA'!!
NB non sono il realizzatore di questa procedura, ma solo una persona volenterosa che ha scritto la guida in italiano. TUTTI I CREDIT VANNO A roms3700 La guida originale l'ho trovata su di un sito tedesco. Io ho provato a contattarli per qualche dubbio, ma non rispondono nemmeno in inglese. 
Se sapete bene il tedesco e trovate degli errori in quello che ho scritto fatemelo sapere. Io non sono un programmatore, quindi quello che scrivo e' solo la mia esperienza.
OK, finite le debite premesse, cominciamo con la guida. Io l'ho fatto su di un computer con kubuntu 14.10 installato, non so se si possa fare anche via MAC O WIN. Se non avete un PC linux, potete semplicemente usare una distro live.
Avrete bisogno di tempo e pazienza perche' la procedura e' un po' lunga.
1 Preparazione
Dovrete anche installare i seguenti pacchetti:
- ADB Tools
- fastboot
- abootimg
codice:
$ sudo apt-get install android-tools-adb abootimg android-tools-fastboot
in modo da attivare correttamente ADB dobbiamo modificare alcuni file che gestiscono le regole UDEV
i due file da modificare sono ~/.android/adb_usb.ini e /etc/udev/rules.d/51-android.rules. Quest'ultimo essendo un file di sistema va modificato con i permessi di root!
Sempre nello stesso file sostituite roms con il vostro utente
Di seguito i miei 2 file
codice:
$ cat /etc/udev/rules.d/51-android.rules
$ SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", SYMLINK+="android_adb", MODE="0660", OWNER="roms"
$ SUBSYSTEM=="usb", ATTR{idVendor}=="1f85", SYMLINK+="android_adb", MODE="0660", OWNER="roms"
$
$ cat ~/.android/adb_usb.ini
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x1f85
0x18d1
$
2 Costruzione delle Custom-Recovery-Images
Ora bisogna scaricare il firmware "originale" su cui apporteremo tutte le nostre modifiche necessarie. Lo potete trovare sul sito ufficiale di Tolino
codice:
$ mkdir custom_recovery
$ cd custom_recovery
$ unzip ../update.zip recovery.img
$ mv recovery.img recovery.img.orig
$ abootimg -x recovery.img.orig
$ mv initrd.img initrd.img.orig
$ mkdir initrd
$ cd initrd
$ zcat ../initrd.img.orig | cpio -vid
Nella cartella initrd modificate il file default.prop modificate le stringhe in "ro.secure=0", "ro.debuggable=1" e "persist.sys.usb.config=mass_storage,adb"
Sostituite poi il file init.rc con il contenuto nel file custom_recovery_init.txt allegato a questo post.
In seguito ricompattiamo il tutto
codice:
$ find . | cpio --create --format='newc' | gzip > ../initrd_adb_enabled.img
$ cd ..
$ abootimg --create recovery_adb_enabled.img -f bootimg.cfg -k zImage -r initrd_adb_enabled.img
Otterrete un messaggio d'errore "recovery_adb_enabled.img: updated is too big for the Boot Image ..." . E' NORMALE! Bisogna modificare il file il file bootimg.cfg
Nel messaggio d'errore verranno indicate due dimensioni. Dovrete modificare il valore maggiore (convertito in esadecimale) e sostituire il valore della stringa bootsize
Rilanciate il comando di abootimg e vedrete che tutto andra' a buon fine.
Otterremo un file recovery_adb_enabled.img.
3 Avviare i Custom-Recovery-Images
Per avviare ora la nostra periferica con la nuova immagine, dobbiamo fare il seguente procedimento.
- Colleghiamo la periferica al nostro PC
- Spegnamo del tutto la periferica (bottone superiore sinistro) > spegni
- Tenendo premuto il tasto della luce (bottone superiore destro) premiamo anche il tasto di accensione e lo teniamo premuto fino a quando la lucetta HOME (centrale in basso) non rimane accesa. A questo punto possiamo mollare i tasti. La lucetta centrale si spegnara' e sullo schermo non si vedra' nulla. E' normale!
per controllare pero' che la periferica sia correttamente collegata, possiamo eseguire i seguenti comandi. Ho evidenziato le stringhe che ci interessano.
codice:
$ lsusb
...
Bus xxx Device xxx: ID 18d1:0d02 Google Inc. Celkon A88
...
$ dmesg
...
[12052.793349] usb 3-5: new high-speed USB device number 15 using xhci_hcd
[12052.958318] usb 3-5: New USB device found, idVendor=18d1, idProduct=0d02
[12052.958320] usb 3-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[12052.958322] usb 3-5: Product: i.mx6sl NTX Smart Device
[12052.958323] usb 3-5: Manufacturer: Freescale
[12052.958324] usb 3-5: SerialNumber: 12345
Se trovate queste stringhe la nostra periferica e' correttamente collegata e in stato Fastboot.
Adesso lanciamo i seguenti comandi
codice:
$ fastboot devices
12345 fastboot
$
$ fastboot getvar version
version: 0.5
finished. total time: 0.004s
Se non li vedete, probabilmente sono stati apportati dei cambiamenti che non vi permettono di eseguire le modifiche per ottenere i permessi di root
:o
Se invece tutto procede come deve, possiamo finalmente caricare la nostra immagine
codice:
$ fastboot boot recovery_adb_enabled.img
downloading 'boot.img'...
OKAY [ 0.217s]
booting...
OKAY [ 0.003s]
finished. total time: 0.220s
Sullo schermo della periferica apparira' il logo di Tolino e voi dovreste riuscire a vedere la periferica con i seguenti comandi:
codice:
$ lsusb
...
Bus 003 Device 025: ID 18d1:d001 Google Inc.
...
$
$ dmesg
...
[12660.415186] usb 3-5: New USB device found, idVendor=18d1, idProduct=d001
[12660.415190] usb 3-5: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[12660.415192] usb 3-5: Product: tolino
[12660.415194] usb 3-5: Manufacturer: Telekom
[12660.415196] usb 3-5: SerialNumber: xxx
[12660.425116] usb-storage 3-5:1.0: USB Mass Storage device detected
[12660.425327] scsi host7: usb-storage 3-5:1.0
[12661.428483] scsi 7:0:0:0: Direct-Access Linux File-CD Gadget 0000 PQ: 0 ANSI: 2
[12661.430414] scsi 7:0:0:1: Direct-Access Linux File-CD Gadget 0000 PQ: 0 ANSI: 2
[12661.432383] scsi 7:0:0:2: Direct-Access Linux File-CD Gadget 0000 PQ: 0 ANSI: 2
[12661.432650] sd 7:0:0:0: Attached scsi generic sg4 type 0
[12661.432927] sd 7:0:0:1: Attached scsi generic sg5 type 0
[12661.433117] sd 7:0:0:2: Attached scsi generic sg6 type 0
[12661.459419] sd 7:0:0:2: [sdf] Attached SCSI removable disk
[12661.579445] sd 7:0:0:0: [sdd] Attached SCSI removable disk
[12661.582528] sd 7:0:0:1: [sde] Attached SCSI removable disk
A questo punto possiamo finalmente utilizzare ADB (fino a questo punto adb non avrebbe rilevato la nostra periferica)
codice:
$ adb devices
List of devices attached
xxx recovery
$
$ adb shell
# id
uid=0(root) gid=0(root)
# ls
...
# exit
La stringa evidenziata ci indica che abbiamo anche i permessi di root!!!
4 Backup
Chi non ha mai perso dei dati?! TUTTI... e quindi facciamo il nostro bravo backup, prima di apportare delle modifiche definitive.
codice:
$ fastboot boot recovery_adb_enabled.img
$ adb shell
# mount
rootfs / rootfs rw 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
tmpfs /tmp tmpfs rw,relatime,size=102400k 0 0
# echo "/dev/block/mmcblk0" > /sys/devices/platform/fsl-usb2-udc/gadget/lun0/file
# exit
A questo punto il nostro computer dovrebbe rilevare una nuova periferica
codice:
$ dmesg
...
[14006.040991] sd 7:0:0:0: [sdd] 7733248 512-byte logical blocks: (3.95 GB/3.68 GiB)
[14006.044992] sd 7:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[14006.067578] sdd: sdd1 sdd2 sdd3 < sdd5 sdd6 sdd7 sdd8 sdd9 sdd10 > sdd4
Vi ho evidenziato la parte che potrebbe variare un po', dipende da quanti dischi avete collegati. Segnatevi da qualche parte questo valore.
A questo punto possiamo fare finalmente il backup. Vi ho evidenziato il pezzo che dovrete adattare e sostituire eventualmente con il valore che vi siete segnati prima
codice:
$ dd if=/dev/sdd of=tolino_vision_2_full_backup_before_root.bin bs=2M
...
ASPETTATE UN BEL PO' FINO A QUANDO NON AVETE FINITO
...
$ du -b --apparent-size tolino_vision_2_full_backup_before_root.bin
3959422976 tolino_vision_2_full_backup_before_root.bin
Salvatevi da qualche parte il file tolino_vision_2_full_backup_before_root.bin perche' il vostro backup (e spero non vi debba servire!)
In seguito eseguite i seguente comando:
codice:
$ adb shell
# echo "" > /sys/devices/platform/fsl-usb2-udc/gadget/lun0/file
# exit