Open The Book logo

Open The Book

Welcome to the web site of the Open The Book project, such as it is. Here you will (eventually, perhaps not today) find all of the information I have regarding how to get the Augen TheBook to run your own custom software. (Note that I am not in any way affiliated with Augen, nor have I any privileged access to information from the manufacturer of these devices. Much of my current information comes from analysis of a single firmware upgrade image; the first released for this device.) I will consider the project a success if eventually we have all of the information and resources you need to build your own custom firmware, perhaps without the proprietary and rather objectionable DRM related code that I don't care to have anyway. We're a long way from that point at the moment, but I plan to publish all of the information I have and make available some resources to assist others in similar work.

While I hate to call this activity “hacking” TheBook, if I don't do so at least once most of those people looking for this information on Google won't find it. More seriously, hacking is the new leverage. Any meaning that the word used to have evaporated years ago. What we're doing is modifying (or ideally rewriting) the firmware. As for the legal implications of this project, it is completely above board. Aside from possibly voiding the warranty, there's nothing shady here at all. We will have permission to distribute any resources which we offer locally and nothing will be obtained through questionable channels.

I'd welcome help from anyone who shares the interest. If you want in, register for an account and contact Chris if you want to edit stuff.

Why?

Well, that's a good question. TheBook really doesn't have the battery life to be the greatest book reading device, but the software platform is mostly based on open stuff, and it's an interesting little piece of hardware. The same LCD display that makes it hard on the battery makes it respond more quickly than the E-Ink based readers for things like web browsing and games. It might be nice to adjust the built-in software bundle so that it does more of what it does well. Also, I have one.

Resources

Augen distributed their first new firmware using RapidShare (I'm not kidding) and that's all. I'm hesitant to make the image available for download because there may be some proprietary things in there that I'm not allowed to distribute. That said, at least I can provide you the RapidShare link.

The new firmware image from RapidShare

The MD5Sum on my copy is:

2c900550fe8c30f162d0b1ec0571bf15 firmware/EBA701_V6_0721_-MAC_address.zip

It turns out that Augen do have a firmware image on their site now, here.

thebooksoftwarev1.zip – somewhat different from the Rapidshare download.

The MD5Sum is:

d631b99dff2f97067d1d2ec899121005 firmware/thebooksoftwarev1.zip

Also, if you like they provide instructions which are not really in English.

Specs at MobileRead At some point I'd like to have a local specs page, but here's a remote one for now. Note that the platform is XBurst (MIPS) and not ARM as you might expect.

AIConv is a quick utility that I've written in what ought to be relatively portable C. It will convert the modified CRAMFS and ISO9660 images used in TheBook to standard images and back.

Ingenic's FTP site. The CPU in TheBook appears to be an Ingenic 4755 (MIPS SOC), and the Ingenic site has a number of resources for developers to use with them. They even have sources for a number of Linux related things. In fact it may be that if we can't get Augen's modified source, the Ingenic source can be easily made to work.

Note: For information on the on-going effort to get copies of whatever modified GPL code may be used in TheBook, see Getting the Source.

Documentation

Analysis of the firmware update

Xburst

One of the first things you'll notice once you unpack the firmware upgrade from Augen is that there are no instructions at all. Another thing is that the package's one obvious means of installing the new firmware progonce.bat makes use of a tool called USBBoot. This tool and many others come from the XBurst-tools package. You can get it for windows (obviously) and Linux, and probably other things as well.

The instructions passed to the usbboot tool are in progonce.txt. This is the bulk of the firmware update logic. Assuming that the usbboot has not been modified (and I think that's a fair assumption), you ought to be able to get the firmware upgraded under any supported platform with the usbboot tool for that platform.

The installer executes the following instructions:

boot 0

nprog 0 bootloader.upg 0 0 -n

nprog 1024 kernel.upg 0 0 -n

nprog 2048 root.upg 0 0 -n

nprog 32768 system.upg 0 0 -n

exit
kernel.upg

Ok, so this is the obvious place to start. File tells me the following:

$ file kernel.upg
kernel.upg: u-boot/PPCBoot image

This obviously contains the Linux kernel. Probably you could produce a new firmware based on this kernel without needing to rebuild it. So both kernel.upg and bootloader.upg can be ignored for now, until we decide they need adjustment.

root.upg

Here is where you might start to make some simple modifications. The root filesystem is a cramfs image that's had its header modified so as not to look like a cramfs image. In the root.upg file, the first four bytes have been modified to be 10 02 76 19, but they should be 45 3d cd 28. If you have a hex editor you can fix the image and mount it on any Linux system. I currently suspect that the Augen kernel has a modified linux/magic.h that allows it to mount the busted images properly. The astute reader will note that in this case Augen is bound by the GPL to make their source available to their users. It would also be nice of them if they made the kernel configuration available as well. You should also note that if you build a new image, the modified kernel probably won't mount it as is. You'd need to put the broken cramfs header back in place on your new image.

See the Root Manifest for a list of what's included in this image. It's a rather bare setup with busybox. It starts Qtopia by executing /opt/script/startqpe (See below) from etc/init.d/rcS during boot

See AIConv for a utility that will modify the images for you.

Note: For information on the on-going effort to get copies of whatever modified GPL code may be used in TheBook, see Getting the Source.

system.upg

This image contains the /opt filesystem for the device. Basically all of the user-accessible software is hosted here. The fstab file on root.upg refers to this as an iso9660 volume, but if you look at the one included in the upgrade package, you will notice that it's not a valid iso9660 image. This is probably also intentionally modified to prevent you from doing interesting things with it. Here's how you get it translated to a valid iso9660 image:

If you have a hex editor, find the first string 100DC (hex 31 30 30 44 43) in the file.

In a real iso9660 image, this will be CD001 (that is, hex 43 44 30 30 31)… change it.

Remember to change it back if you want to build a new image for use with the stock Augen kernel.

See the System Manifest for a list of what's included in this image.

See AIConv for a utility that will modify the images for you.

 
start.txt · Last modified: 2011/01/08 23:42 by Chris Smith
 
Except where otherwise noted, content on this wiki is licensed under the following license:Public Domain
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki