• Peetz0r
  • Registratie: Mei 2009
  • Laatst online: 12-09 20:06
Ik heb nu sinds twee weken de Polaroid MIDC700. Dit is een prima tablet voor €77 bij de Kijkshop.
Afbeeldingslocatie: http://i.imgur.com/vvHx3.png
Nu heb ik een manier gevonden om de tablet te rooten. Zelf gebruik ik Linux, dezelfde methode zou voor OS X ook moeten werken. Voor alle Windows-gebruikers, sorry. Ik kan jullie (nog) niet verder helpen. Misschien later.
Disclaimer
Voordat je begint, besef wel dat het rooten van je tablet mogelijk gevolgen heeft voor de garantie. Ook kan ik niet garanderen dat je tablet werkt, en altijd blijft werken. Als je op het verkeerde moment een typfout maakt is het mogelijk je tablet onherstelbaar te beschadigen en/of de kat van de buren te vergiftigen.
Waarschuwing!
Het zou mogelijk moeten zijn om de tablet in flash mode te krijgen met een bepaalde toetsencombinatie met de volumeknoppen en de power knop. Dit is mij nog niet gelukt. Ik krijg de tablet alleen in flash mode via adb. Dat betekent dat het onmogelijk is om de tablet in flash mode te krijgen als android niet meer (volledig) werkt. Dus als je een fout maakt (bijvoorbeeld een verkeerde offset) bij het flashen van de system image, en je probeert de tablet te rebooten, is het (voor zover ik weet) onmogelijk om opnieuw te flashen en de schade te herstellen! Wees voorzichtig!

Alle instructies zijn geschreven op een systeem met Linux Mint 12, maar op andere Linux distro's, BSD's en OS X zou alles (bijna) hetzelfde moeten werken. Voor windows heb ik helaas nog geen oplossing.

Benodigdheden

Instructies

Stap 1
Linux
Eerst moeten we rkflashtool compilen. Op Debian/Ubuntu/Mint gaat dat zo:
$ sudo apt-get install build-essential libusb-1.0-0-dev unzip
$ wget "http://forum.xda-developers.com/attachment.php?attachmentid=785592&d=1321547155" -O rkflashtool.zip
$ unzip rkflashtool.zip
$ gcc -o rkflashtool rkflashtool.c -lusb-1.0 -O2 -W -Wall -s
OS X
Er is voor OS X een kant-en-klare rkflashtool binary.
Stap 2
Nu hebben we adb nodig, deze kun je hier downloaden. Pak deze vervolgens ergens uit.
Zorg ook dat usb debugging op de tablet aan staat.
Dit is te vinden bij Instellingen => Opties voor ontwikkelaars => USB-foutopsporing

Op mijn machine werke adb niet direct goed samen met mijn tablet. Het was nodig om het vendor id (2207) toe te voegen aan een bepaald bestandje.
$ adb kill-server
$ echo 2207 >> .android/adb_usb.ini


Om te controleren of alles werkt, doen we het volgende:
Linux
$ android-sdk-linux/platform-tools/adb devices
List of devices attached 
0123456789ABCDEF	device

$ lsusb
[...knip...]
Bus 001 Device 023: ID 2207:0006  
[...knip...]

2207:0006 is het device nummer van mijn tablet in android mode.
OS X
adb zou op OS X hetzelfde werken als Linux, alleen OS X kent geen lsusb. Wel system_profiler SPUSBDataType. Probeer hiermee het device nummer te achterhalen. Ik heb geen voorbeelden hiervan op OS X.
Stap 3
Nu gaan we de tablet herstarten in flash mode. Hierbij staat de tablet wel aan, maar blijft het scherm uit. Er is een toetsencobinatie om de tablet in flash mode te rkijgen, alleen bij mij werkt dat niet. Volgens de telefonische helpdesk was dat vol- en power samen vasthouden voor 8 seconden. Dit werkte niet. Wat wel werkd is het volgende:
adb reboot-bootloader

Nu gaat het scherm uit. Wacht even 10 seconden, en doe daarna (op Linux):
$ lsusb
[...knip...]
Bus 001 Device 025: ID 2207:290a  
[...knip...]

2207:0006 is het device nummer van mijn tablet in android mode.
2207:290a is het device nummer van mijn tablet in flash mode.

Als je dit ziet staat de tablet nu in de flash mode.
Stap 4
code:
1
2
3
4
5
6
rkflashtool: fatal: usage:
    rkflashtool b                       reboot device
    rkflashtool r offset size >file     read flash
    rkflashtool w offset size <file     write flash

    offset and size are in units of 512 bytes


Nu gaan we de memory offsets lezen. Deze zijn o.a. terug te vinden in de kernel opties, die ergens in de bootloader staan. Gelukkig staan die helemaal voorin in het geheugen. Om het wat leesbaarder te maken gebruik ik grep en sed om de offsets netjes te printen voor je ;)
$ ./rkflashtool r 0 1 | grep -a CMDLINE | sed -e "s/[,:]/\n/g"
rkflashtool: info: interface claimed
rkflashtool: info: reading flash memory at offset 0x00000000
CMDLINE
  console=ttyS1
115200n8n androidboot.console=ttyS1 init=/init initrd=0x62000000
0x800000 mtdparts=rk29xxnand
0x00002000@0x00002000(misc)
0x00008000@0x00004000(kernel)
0x00008000@0x0000c000(boot)
0x0000c000@0x00014000(recovery)
0x00100000@0x00020000(backup)
0x0003a000@0x00120000(cache)
0x00100000@0x0015a000(userdata)
0x00002000@0x0025a000(kpanic)
0x00100000@0x0025c000(system)
-@0x0035c000(user)

Hier zie je alle partities die op de flashchip staan. Het gaat nu om de system partitie, want daar willen de de beroemde/beruchte su binary neerzetten.
Waarschuwing!
Ik weet niet of de offsets bij elke tablet hetzelfde zijn. De 8: en 9,7" versies hebben 8GB geheugen in plaats van 4GB, dus dan verschillen de waardes sowieso. Kopieer dus niet zomaar deze waardes, maar controleer deze zelf!

0x00100000@0x0025c000(system)
De offset van de systempartitie is 0x0025c000 en de size is 0x00100000.
Stap 5
Nu we de offset en size van de system partitie weten, kunnen we deze gaan lezen. Dit is 512MB, en duurt op mijn systeem ruim een minuut.
$ ./rkflashtool r 0x0025c000 0x00100000 > system.img
rkflashtool: info: interface claimed
rkflashtool: info: reading flash memory at offset 0x0025c000
rkflashtool: info: reading flash memory at offset 0x0025c020
[...knip...]
rkflashtool: info: reading flash memory at offset 0x0035bfc0
rkflashtool: info: reading flash memory at offset 0x0035bfe0
$ file system.img
system.img: Linux rev 1.0 ext3 filesystem data, UUID=95f7a93e-cac8-4cfb-9aec-415529f4f35f, volume name "system"

Als file iets anders laat zien dan een ext3 filesystem heb je misschien de offset en size omgewisseld, of een typfout gemaakt. Nu is dat niet zo erg, want je bent aan het lezen. Als je straks bij het schrijven deze fout maakt kan dat veel ernstigere gevolgen hebben...
Stap 6
We kunnen dit filesystem eenvoudigweg mounten, daar alles mee doen wat we willen, unmounten, en weer terugschrijven naar de tablet.
Natuurlijk willen we de su binary erop zetten. Eerst downloaden en uitpakken natuurlijk. Kies su-bin-*-arm-signed.zip (waar * het versienummer is, op moment van schrijven 3.1.3).
We hebben alleen de binary nodig, de Superuser app zelf halen we straks uit de Play Store, zodat we steeds automatisch de nieuwste versie hebben.
$ sudo mount -o loop system.img /mnt
$ sudo cp su /mnt/xbin/su
$ sudo chown root:root /mnt/xbin/su
$ sudo chmod 7755 /mnt/xbin/su
$ ls -lh /mnt/xbin/su
-rwsr-sr-x 1 root 2000 372K 2008-02-29 01:33 /mnt/xbin/su

Als de permissies in laatste regel overeenkomen met wat hierboven staat heb je nu correct su geinstalleerd op de image van je system partitie.
Stap 7
Nu gaan we de image unmounten, en terugflashen naar het apparaat. Dit duurt iets langer dan het lezen, anderhalve minuut bij mij.
Let op dat je dezelfde offset en size gebruikt als in stap 5, maar dat de r verandert in een w en de > in een <!
$ sudo umout /mnt
$ ./rkflashtool w 0x0025c000 0x00100000 < system.img
rkflashtool: info: interface claimed
rkflashtool: info: writing flash memory at offset 0x0025c000
rkflashtool: info: writing flash memory at offset 0x0025c020
[...knip...]
rkflashtool: info: writing flash memory at offset 0x0035bfc0
rkflashtool: info: writing flash memory at offset 0x0035bfe0

Nu kunnen we de tablet rebooten, terug naar android mode.
$ ./rkflashtool b
rkflashtool: info: interface claimed
rkflashtool: info: rebooting device...
Stap 8
Terwijl je tablet aan het rebooten is, neem dan de tijd om (vanaf je desktop) de volgende apps te installeren.
  • Superuser, een front-end om applicaties die root (su) gebruiken te beheren.
  • Busybox, een berg tools om een bruikbare shell te krijgen, zoals grep en wget.
Als ondertussen je tablet weer gestart is, probeer dan het volgende om te kijken of alles werkt.
$ adb shell
shell@android:/ $ id
uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),1007(log),1009(mount),1011(adb),1015(sdcard_rw),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats)
shell@android:/ $ su
shell@android:/ # id
uid=0(root) gid=0(root) groups=1003(graphics),1004(input),1007(log),1009(mount),1011(adb),1015(sdcard_rw),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats)
shell@android:/ # 

Einde

Als het goed is heb je nu een geroote tablet. Het is misschien verstandig om usb debugging uit te zetten, maar op mijn apparaten staat het altijd aan ;)
Als er ergens iets fout gaat hoor ik het graag in de reacties.
Ook als iemand de toetsencombinatie voor de flash mode weet te achterhalen word ik erg blij!

En, veel plezier met de goedkope geroote Polaroid White Line tablets!

[ Voor 100% gewijzigd door Peetz0r op 02-09-2012 11:48 . Reden: extra waarschuwing voor offsets bij 8" en 9,7" ]


Acties:
  • 0 Henk 'm!

Verwijderd

Mijn vraag heeft geen betrekking tot het rooten, maar ik bezit zelf ook een polaroid MIDC700.
Mijn accu is echt bar slecht en deze gaat met moeite anderhalf uur mee als je er mee werkt.
Nou vroeg ik me af ligt dat aan mijn tablet, of hoort dat zo bij de polaroid MIDC700?

Acties:
  • 0 Henk 'm!

  • Peetz0r
  • Registratie: Mei 2009
  • Laatst online: 12-09 20:06
Verwijderd schreef op zaterdag 01 september 2012 @ 11:43:
Mijn vraag heeft geen betrekking tot het rooten, maar ik bezit zelf ook een polaroid MIDC700.
Mijn accu is echt bar slecht en deze gaat met moeite anderhalf uur mee als je er mee werkt.
Nou vroeg ik me af ligt dat aan mijn tablet, of hoort dat zo bij de polaroid MIDC700?
Je krijgt waar we voor hebben betaald. 2400mAh voor een 7" scherm is best weinig.
De standby-tijd (scherm uit dus) is redelijk, maar als je spelletjes zit te doen, zoek dan een stopcontact ;)

Acties:
  • 0 Henk 'm!

Verwijderd

P.E.T.E.R. schreef op zondag 02 september 2012 @ 11:17:
[...]

Je krijgt waar we voor hebben betaald. 2400mAh voor een 7" scherm is best weinig.
De standby-tijd (scherm uit dus) is redelijk, maar als je spelletjes zit te doen, zoek dan een stopcontact ;)
Oke, ik ben blij dat het dan niet alleen aan mijn tablet ligt.
Ik had hiervoor een xiron excellent 8 die wel een erg goede accu had.
Maar in een grotere behuizing past natuurlijk ook een grotere accu.

Acties:
  • 0 Henk 'm!

  • Peetz0r
  • Registratie: Mei 2009
  • Laatst online: 12-09 20:06
Verwijderd schreef op zondag 02 september 2012 @ 11:33:
[...]


Oke, ik ben blij dat het dan niet alleen aan mijn tablet ligt.
Ik had hiervoor een xiron excellent 8 die wel een erg goede accu had.
Maar in een grotere behuizing past natuurlijk ook een grotere accu.
Precies, als je kijkt op http://www.polaroidtablet.com/white-line/ zie je ook dat de 8" versie 1,5x de capaciteit heeft, en de 9,7" versie zelfs 2x. Maar die hebben ook weer schermen die meer verbruiken. Hoe zich dat precies verhoudt tegenover elkaar weet ik niet precies, dus het zou best kunnen dat de 9,7" versie net zo lang meegaat. Maar de standby-tijd zou wel beter moeten zijn.