Tolino Epos hacking
Disclaimer: This article was not written by me (and I certainly didn't do any of the clever technical stuff to find out how to do it, or to modify the boot image) but is based on my translation of a German website. It is far from a direct translation. Aside from any minor linguistic adjustments, I've changed the Windows-centric details to Linux ones, simply because I have no interest in the irony of hacking an Android device using Windows. Note that in nearly all cases, the use of the personal pronoun "I" in the text that follows refers to the original author of the German article.
Background
The Tolino Epos (as with all the other Tolino eReaders, as far as I know) is supplied running Android 4.4.2 (the CPU spec prevents it being able to run anything higher), and is able to be put into Fastboot mode. This mode allows a modified image to be run at boot time in order to enable ADB and USB-debugging. From here, the Android operating system can then be accessed via ADB, and settings can be changed, additional apps can be installed, and, for example, an app launcher can be run on the device.
The following instructions describe how to modify your Tolino to achieve this. I've tried to avoid complicated descriptions, and the whole process is kept sufficiently simple that anyone should be able to follow it, even without much familiarity with Android, embedded systems in general, or debugging Android devices in particular.
The instructions were tested with, and assume that you have, the following hardware:
- A Tolino Epos 1 with a fully-charged battery and the latest software installed
- A PC or laptop running 64-bit Linux (I'm assuming Debian or Devuan here, but any distro should be usable so long as you can get Fastboot and ADB installed on it)
- A USB A-to-microUSB cable
You'll also need a few programs installed and files downloaded in order to make the change:
- The modified Boot Image boot.img
- This is a boot.img file, which we shall load onto the eReader and use to enable ADB and USB debugging
- ADB and Fastboot
- On Debian and derivatives, these are in the packages android-tools-adb and android-tools-fastboot (Debian 8 Jessie), and adb and fastboot (Debian 9 Stretch and later). Install them with apt-get or aptitude in the usual way.
- Just in case something goes wrong with the upload or reboot, have a copy of the current Tolino Epos firmware handy.
- A launcher for Android, in order to provide access to settings and additional apps. I've chosen to use the Nova launcher, because it is very stable, and supports a large number of configuration settings, especially for an E-ink based device.
Summary
Before diving into the detailed instructions, a few words regarding the result we're aiming for:
With the following change it becomes possible to start the Epos into the Launcher, which then provides access to device settings and any newly-installed apps, as well as the apps already pre-installed on the Epos (for example, the Tolino e-book reader app)
When you launch the Tolino app, you're effectively returning to the standard Tolino software (after all, it is the standard Tolino software), and the device operates exactly as it used to. The reader, the smart light, the Tolino shop, wireless networking and so on all operate as normal. There is no difference in the Tolino software itself from previously.
The following instructions also explain how to install additional apps and how to run them on the device. It's even possible to install a Store app. I haven't tested whether Google's PlayStore app works, but I would expect it to have problems. If you want to install additional apps, I recommend the Shop app from APKPure. You can also get a File Manager from there in order to install apps using .apk files.
The modification described here does not "root" the Epos. In my opinion this is not necessary in order to get additional apps installed and running on the device. If you really do want to root your device, you can try doing it with, for example, the KingRoot app.
[ Translator's notes:
- I tried installing the Google PlayStore app, and it appears to succeed, but then running it does nothing - the screen goes dark and a few seconds later the app stops and you return to the Nova Launcher. So, yes, that does seem to have problems as the original author suspected :)
- it appears that APKPure now have an app called APKPure, which can be used to download and install apps on your device. I've included this in the instructions below, to avoid the tedium of connecting a USB cable and running Fastboot / ADB every time you want to get something added to your Epos. ]
Details
So, with that said, let's get going :)
- Make sure your Epos has a fully-charged battery.
- Download the boot.img file and place it in a convenient directory. Also download the current version 5 of the Nova Launcher and put it into the same directory. Do not download any version 6.x or higher, as this requires Android 5.0+, which does not run on the Tolino Epos. Download the APKPure app installer to the same directory.
- Connect the Epos to your computer with the USB cable. The Epos will switch on, if it wasn't already.
- Wait until you see the familiar screen with the message "Your tolino is now connected to your computer via USB", long-press the power button at the top of the device, and select "Switch off" from the menu, then wait until the device is turned off and the screen goes dark and blank.
- Get the Epos into Fastboot mode. First press the "backlight" button towards the right of the top edge of the device, hold it down, then press and hold the power button just to the left of it.
- Depending on which version of software your Tolino is currently running, the Home button on the Epos will either illuminate briefly, go out, and then come on for a longer time (early software) or will simply come on and stay on for a long time (later versions). Once it stays on for a longer time, release both buttons, and the device is in Fastboot mode. The screen should remain dark and blank, and the Home light should remain illuminated.
- Sometimes this doesn't work at the first attempt. Check the USB device manager (in Debian, this is a USB logo which appears in the system tray) and see whether a Linux File-CD Gadget is attached. If it is, then your Epos is not in Fastboot mode.
- You can also use the lsusb command to check the device ID and name. In standard mode, it shows up as 1f85:6053 and in Fastboot mode it shows as 18d1:0d02 Google Inc.
- If you look at /var/log/syslog (you'll need to be root to do this) as the device connects, in standard mode the USB device ID is 1f85:6053, the Product is tolino and the Manufacturer is Rakuten Kobo Inc. In Fastboot mode, these are, respectively, 18d1:0d02, i.mx6sl NTX Smart Device and Freescale.
- If it doesn't work on the first attempt, simply press both buttons again as described, wait until the Home button comes on for a longer time, and check whether it has now worked.
- Enter the command fastboot devices in a shell (as a normal user; you don't need root privilege), and you should see a response of the form:
90027151,ca793109172a410286918934416d1096 fastboot
where 90027151 is the serial number of the device (as shown on the "Information and help" screen from the standard Tolino menu). I have no idea what the rest means, but it seems to be hardware-based and has nothing to do with the installed firmware.
- Next upload the boot.img file to the device using the command fastboot flash boot boot.img (using an appropriate path to the boot.img file if it is not in the current directory)
- You should see the output:
sending 'boot' (4316 KB)... OKAY [ 0.148s] writing 'boot'... OKAY [ 0.399s] finished. total time: 0.547s
- Finally restart the device with the command fastboot reboot. The home button should go dark, the screen should flicker a couple of times, and then the device should start up normally.
- Once the device has started, check the USB devices again with lsusb and you should now find that the device ID has changed from 1f85:6053 to 1f85:6052 This means that the device is in USB Debugging mode, and can be connected to with ADB (the Android debugger). The device can also be used completely normally in this mode.
- Type adb devices to see whether it is detected - you should get output similar to:
List of devices attached * daemon not running. starting it now on port 5037 * * daemon started successfully * 90027151,ca793109172a410286918934416d1096 device
You can now run a shell on the device in order to run commands on the Epos itself. adb shell
shell@ntx_6sl:/ $
- If you get the above prompt, launch the Android settings app with the command am start -n com.android.settings/.Settings$WirelessSettingsActivity
- The display of the Epos should change to show a Settings menu and you can now exit the ADB shell with the command exit.
- Install the Nova Launcher with the command adb install "Nova Launcher_5.5.4.apk" (adjusting if you got a more recent version of course). After a few seconds you should see
[100%] /data/local/tmp/Nova Launcher_5.5.4.apk pkg: /data/local/tmp/Nova Launcher_5.5.4.apk Success
- Install the APKPure app installer with the command adb install APKPure_v3.16.5_apkpure.com.apk (adjusting for version again). You should get:
[100%] /data/local/tmp/APKPure_v3.16.5_apkpure.com.apk pkg: /data/local/tmp/APKPure_v3.16.5_apkpure.com.apk Success
- On the Epos (which is still showing the Settings app), select Apps under the Device section, and you should see Nova Launcher listed. Select this, and the screen should show the Nova Launcher.
- Disconnect the USB cable and restart the Epos (long press the power button, then select Restart).
- You should get a menu asking you to Select a home app, with two buttons underneath showing Always and Just once. Select the Nova Launcher and press the Always button. Note that if you start the Epos with the Nova Launcher as the home app, you can easily get into the standard Tolino software when you want to (although you do need to do a Restart to get back to the Nova launcher). If you start the Epos with the Tolino software, there's no way from there to switch to the Nova Launcher without running the adb shell command above.
Oh, and by the way, if Tolino releases an update to the software for the Epos (it's at 13.2.1 at the time of writing this article), feel free to go ahead and install it in the usual way. It won't undo any of the hard work you've done here - it only updates the reader app.
Further update some months later: Tolino have now released firmware 14.0.1 and I've just installed it with no ill effects on the Android system. The reader update got downloaded and installed, the device rebooted, and returned to the Nova Launcher screen. From there I could get into the new version of the reader app in the normal way (as well as everything else I had installed).
More months later: Tolino have now released firmware 14.1.0 and the same process worked splendidly once again. It is, after all, only upgrading the reader app - the underlying Android system stays the same.
If you're interested in what else you can do with ADB, https://developer.android.com/studio/command-line/adb and https://gist.github.com/Pulimet/5013acf2cd5b28e55036c82c91bd56d8 are good starting points.
Viel Spaß (have fun)…
Commentary on the above article
[ Note: this is not part of the original German article; these are my own (translator's) opinions and comments. ]
I think the main question almost anyone would ask about this is: what can you do with standard Android, and being able to install additional apps, on an eBook reader?
Obviously, there are two pretty severe limitations when trying to run standard apps on an eReader:
- the CPU is very slow
- the display - it's monochrome / greyscale, and is very slow to update
Additional limitations, which may be important depending on what you might think of doing with it:
- no Bluetooth
- no sound
- no sensors such as accelerometer, GPS, magnetic field, NFC
- no camera
- UTB OTG cables do not enable you to connect an external keyboard or mouse (unless there's something about providing power which I just haven't discovered yet)
However, the device does have WiFi, and for example WiFi Analyzer works quite well.
You can use a browser (after all, the Tolino range include a browser as part of the standard software), but bear in mind many features of modern websites will be affected by the slow CPU and the monochrome display.
You can certainly play text adventure games, although anything with built-in graphics (such as some of the Level9 games, for example) will be slower than a purely-text version. This generally depends on the version of the game itself which you download, however, rather than the interpreter you use to play it.
I've just purchased a phone/tablet stylus to try using graphical input apps such as Squid and Google's Handwriting Input (both of which clearly work, but are difficult to use with a fingertip - for me, anyway). Update: I don't think I've bought a rubbish stylus (because it does work on the Epos, and it works well on a Samsung Galaxy phone), but it's really not usable on the Epos - handwriting input is out of the question, and even keyboard pen-typing (or whatever you call it) is less good than using a fingertip.
One aspect which such apps illustrate quite impressively is the "buffering" of screen touches, where whatever you're drawing appears on screen quite some time (a second or so) after you've drawn it, but what you drew does get accurately represented (in other words the touch screen is far more responsive than the display).
If it all goes horribly wrong...
If, for some reason, in some way, you manage to get your Tolino in a state where it's unusable, either because something went wrong with the above instructions, or possibly later on (in my case it was after setting a PIN security code to start the device, and then finding out it didn't work, and I was unable to get past the "enter your PIN" screen), you can always reset the reader to factory settings. You will lose everything you've installed on it, but at least it'll work again.
- Make sure the reader is turned OFF
- Press and hold the backlight button at the top right of the Epos
- Press the power button next to it until the home button illuminates and then release the power button, keeping the backlight button pressed
- You can release the backlight button once the light on the power button starts flashing (did you even know that light was there?)
- You will get into a menu with three options (in a very small font):
- Start the system
- Wipe data (all of your files and settings will be deleted)
- Recover the system (all of your files and settings will be deleted)
- Press the backlight button, or the home button at the bottom of the reader, to step through the menu to "Recover the system" and press the power button briefly
- You'll get a confirmation screen reminding you that all data will be cleared, and a menu with multiple Cancel options, and a single Yes, Restore System! option
- Step through the menu in the same way and press the power button to confirm
Note that this may well re-install an earlier version of the software on your device - I'm not quite sure where the recovery image is stored; it might be a version that's installed at the factory, so you would go back to that version every time you follow this procedure, or it might be something installed as part of each update. In my case the device had been running 13.2.1 and the system restore took it back to 11.2.3 (whereas the earliest release version for the Epos is 11.0.0).
I tested downgrading the device to 11.1.0 (which is the earliest I know of which can be downloaded) and then performing the system restore again, and this time it re-installed 11.1.0, so it's clearly not something installed at the factory.
Go up
Return to main index.