View Single Post
Old 12-11-2012, 01:27 AM   #89
cypherpunk
Junior Member
cypherpunk is a jewel in the roughcypherpunk is a jewel in the roughcypherpunk is a jewel in the roughcypherpunk is a jewel in the roughcypherpunk is a jewel in the roughcypherpunk is a jewel in the roughcypherpunk is a jewel in the roughcypherpunk is a jewel in the roughcypherpunk is a jewel in the roughcypherpunk is a jewel in the roughcypherpunk is a jewel in the rough
 
Posts: 1
Karma: 7338
Join Date: Dec 2012
Device: kobo mini
I won a Kobo mini as a prize at a corporate Christmas party today, so this is a bit of a brain dump of the first hour of playing with it. I am a Mac user, but pretty much everything should be the same for Linux users as well. Please forgive me, if I posted in the wrong thread.

For what it's worth, current (2012.12.10) firmware for English (Canadian) kobo mini, is 2.1.5, and the download link is:
Code:
http://download.kobobooks.com/firmwares/kobo4/brodeur/kobo-update-2.1.5.zip
(Wrapping in "code" tags, so that entire URL would show)


Kobo.app (on a Mac OS 10.7), sends the following User-Agent (no idea if there is a User-Agent check on the site, but probably best to send it, so that they don't find anything amiss):
Code:
Mozilla/5.0 (Macintosh; Intel Mac OS X10_7) AppleWebKit/534.34 (KHTML, like Gecko) Kobo Desktop Edition Safari/534.34
A Linux/MacOS command to download the update, that works for me is:
Code:
curl -o kobo-update-2.1.5.zip -A "Mozilla/5.0 (Macintosh; Intel Mac OS X10_7) AppleWebKit/534.34 (KHTML, like Gecko) Kobo Desktop Edition Safari/534.34" http://download.kobobooks.com/firmwares/kobo4/brodeur/kobo-update-2.1.5.zip
You can force re-download of the OS update by Kobo.app by editing
.kobo/version on the device.

It should look something like:
Code:
N7052A3001234,2.6.35.3,2.1.2,2.6.35.3,2.6.35.3,00000000-0000-0000-0000-000000000340
the third value, in the above case 2.1.2, is the current firmware on the device.

If you edit that value, to read something lower then current firmware, Kobo.app will re-download. Firmware that Kobo.app downloads gets saved to ~/Library/Application Support/Kobo/Kobo Desktop Edition/ and gets deleted once it gets copied to .kobo/ folder
Best way to preserve it (on Linux or MacOS), is place a hard link to the file as it is being downloaded.
Code:
ln kobo-update-2.1.5.zip kobo-update-2.1.5-mini.zip
(substitute names as appropriate, of course) Kobo.app will delete the original file, but you will still have it thanks to the hard link.

You can use tcpdump to capture the process of checking the connection to the mothership, and thus extract the download link. Note that I haven't figured out what file Kobo.app checks on download.kobobooks.com to see if update is necessary. It is, probably, worthy of investigation.

To do the packet capture, I run the following as root (my network device was WiFi, en1):
Code:
tcpdump -i en1 -s 1500 -w /tmp/capture.pcap
then run Kobo.app

Above tcpdump command would write all network traffic to the log file in /tmp/capture.pcap Once Kobo.app started downloading update, just ^C the tcpdump comand, and parse the .pcap file.

Windows users can attempt to do the packet capture using a program called "Winpcap". I don't have much experience with it, so you will need to read up on it yourself.

While the .pcap file is standard, and trivial to parse using tools such as EtherShark, you can simply run something like
Code:
strings /tmp/capture.pcap | grep update | less
to figure out the download link (Again, Windows users will need either EtherShark, or cygwin installed. Sorry).

As far as I can tell, the following activates Kobo mini without need for Kobo.app, as expected (substitute where you mount the Kobo disk as appropriate)
Code:
$ sqlite3 /Volumes/KOBOeReader/.kobo/KoboReader.sqlite
sqlite> INSERT INTO "user" VALUES('foo','bar','baz','hoge','piyo'); 
sqlite>^D
If you already used Kobo.app (say, to download the update), but still want to activate manually, chances are, that the above sqlite3 command will return an error, saying that the table 'user' has 7 fields. In that case, use the following padded INSERT statement instead:
Code:
INSERT INTO "user" VALUES('foo','bar','baz','hoge','piyo','','');
Once again, sorry, if this is a bit disorganized, and I hope that this is somewhat useful to anyone with a new mini. I haven't yet looked into what is required to mod the firmware updates for mini yet.

Update: KoboRoot-telnet-ftp.tgz upgrade package from here happily installs on Kobo mini with 2.1.5 firmware. It enables telnet without any problems. I haven't tested if FTP works, but with working telnet it can't be that hard to fix if it's broken.

Last edited by cypherpunk; 12-11-2012 at 07:34 PM. Reason: (missed a / in one of the paths, and added bit about enabling telent)
cypherpunk is offline   Reply With Quote