View Single Post
Old 08-06-2014, 01:13 PM   #2
MarekGibek
Zealot
MarekGibek is out to avenge the death of his or her father, Domingo Montoya.MarekGibek is out to avenge the death of his or her father, Domingo Montoya.MarekGibek is out to avenge the death of his or her father, Domingo Montoya.MarekGibek is out to avenge the death of his or her father, Domingo Montoya.MarekGibek is out to avenge the death of his or her father, Domingo Montoya.MarekGibek is out to avenge the death of his or her father, Domingo Montoya.MarekGibek is out to avenge the death of his or her father, Domingo Montoya.MarekGibek is out to avenge the death of his or her father, Domingo Montoya.MarekGibek is out to avenge the death of his or her father, Domingo Montoya.MarekGibek is out to avenge the death of his or her father, Domingo Montoya.MarekGibek is out to avenge the death of his or her father, Domingo Montoya.
 
MarekGibek's Avatar
 
Posts: 129
Karma: 34471
Join Date: Aug 2013
Location: Cracow, Poland
Device: Kobo Touch N905C
Hi!

I prepared a short description how to (theoretically) try to port Android to Kobo Mini. I suppose it is much easier to do than Aura HD port so the problem is with lacking the right person. Who wants to be a hero and do it??

--

To be successful you must know the structure of the SD image:

offset 0 (0x000000) - MBR (446 bytes)
offset 446 (0x0001BE) - partition table (64 bajty)
offset 510 (0x0001FE) - boot signature (2 bajty: 0x55, 0xAA)
offset 512 (0x000200) - serial number
offset 1024 (0x000400) - u-boot
offset 524288 (0x080000) - kernel configuration for specific kobo device
offset 786432 (0x0C0000) - additional u-boot configuration (not used?)
offset 917504 (0x0E0000) - ?
offset 983040 (0x0F0000) - copy of 0xE0000 (?)
offset 1048576 (0x100000) - uImage (kernel)
offset 7340016 (0x6FFFF0) - ? (waveform data header?)
offset 7340032 (0x700000) - waveform data
...
.... (partitions)

You only need to properly mix these parts for your device with hex editor. Start with Android image (for Kobo Touch/Glo or Tolino Shine) and move needed parts from kobo mini image.

1. MBR - use the one from kobo mini (I'm not 100% sure of this so please try with Android image, too). Or check if MBRs are the same (and there is no problem which one to choose).

2. Partition table - use the one from the Android image.

3. u-boot - this is the most complicated change - probably it will take a few tries. You have to use the one from kobo mini but with configuration altered from Android image. Configuration is compiled inside binary block. You know C like strings. There is \0 byte at the end. We have a few strings one after the other and double \0 at the
end. Only one configuration string is used (assuming you don't press any button at start). You can override not used ones ore make them shorter with the hex editor (you can even move beginning of the string by making previous one shorter). All that matters - the number of \0's must be the same. u-boot finds correct entry by counting \0's. Please refer to this description:
https://www.mobileread.com/forums/sho...&postcount=162
I think you need to use partition names and other parameters from Android image but if there are any HW addresses you should try to use them from kobo mini. I'm writing from my head - I don't remeber exactly how it looks like. It could be helpful to compare config string between originial Kobo Mini and Kobo Touch/Glo images to know
how Kobo mini config differs. Of course, you should read u-boot documentation carefully first to be sure you know meaning of every part of the config string before start.

4. kernel configuration - please copy the one from kobo mini (whole block - a hundreds of bytes - it should be clear where it ends)

5. additional u-boot configuration - I suppose it is not used - I haven't touched it for kobo touch.

6. uImage (kernel) - keep the one from Android image

7. waveform data - hm... do not touch this at the beginning - if you succeed to start Android but there will be something wrong with shadows of gray - you can copy this area from kobo mini.

I was doing above blindly for the kobo touch and it was hard to know what's happening after boot. But you can connect to RS-232 pins on kobo's PCB and listen to boot messages on PC. It should help greatly!

I believe it is possible to do it without any software recompilation.
MarekGibek is offline   Reply With Quote