How to Migrate Kobo eReader Books & Annotations to a New Device
And probably not even brick it
Note: this post is largely a footnote improving on the technique described in this lucid mobileread thread, and hopefully making it easier to find.
I am immensely pleased to have successful migrated years worth of highlights, annotations, and books from my defunct Kobo Aura ONE to a new-old Kobo Sage that I scored (untested) on Ebay for $9.99 CAD + shipping.
Prerequisites:
- Be okay with bricking your new device.
- Take a complete backup of the content of your old eReader, including (most importantly) the hidden files and folders such as .kobo
- Make sure your new device is running the same firmware version as the old device. (In my case, all three devices — Touch, Aura ONE, and Sage — were running the latest firmware, so this wasn’t an issue.)
- Take a complete backup of the (lack of) content on your new device
Now we’re ready to begin.
Let it be resolved: just copying all the content over to a new device with no changes is a bad idea. I tried this. I restored the content of my Aura ONE onto an ancient $12 Kobo Touch (my canary device in case I bricked it). This did not go well. At first, it looked like it had worked. But it threw an ominous error message. Fortunately, it would still mount, so I restored its own content and did more research.
The mobileread post says to copy of the entire (only) row in the “user” table. I squinted at the fields, and decided that the only thing that seemed cruicial was the “DeviceID”.
I grepped through my backup for anything that had the device name (“Aura ONE”) or number (“N709”), and found nothing much ... other than the “device.xml” file in the .adobe-digital-editions folder. I wasn’t using adobe digital editions. I also grepped through the database for any records that seemed device-specific (sqlite3 KoboReader.sqlite .dump | grep 'N709' etc).
So here’s how to do what I did:
- Make a copy of your backup, which you will be modifying. From now on this copy is referred to as “your backup”, but there should be a backup of the backup that you’re modifying :)
- Open “.kobo/KoboReader.sqlite” FROM YOUR BACKUP in “DB Browser for SQLite” (if your’re running Linux), or whatever app you use for interacting with SQLite the lazy way if you’re on a
lesserdifferent operating system. - Open “.kobo/KoboReader.sqlite” FROM YOUR NEW DEVICE in “DB Browser for SQLite”
- Copy the DeviceID value from the user table of the NEW device.
- Click on the DeviceID field from your backup, paste the value from the new device, click apply, and then write the changes to the DB.
- Replace the content of “device.xml” in your backup with the content of the “device.xml” file from your new device. (This is probably only neccessary if you’re using adobe digital editions, but I did it anyway.)
- Load the (modified) backup onto the new device & cross your fingers very hard.
After that, all my books and annotations seemed to be intact, and I could sync my ereader and everything. Just to be sure, I ran a diff between the Sage (post-sync) and the old backup to see if anything seemed dodgy, but aside from the expected changes (including a lot of e-note and handwriting-recognition related cruft), and some changes to the kepub folder that I didn’t quite understand, everything seemed hunky-dory.
Two other kobo mods you might be interested in: disabling some of the creepy built-in telemetry, and a way to use a device without signing up for a kobo account. I might write posts about those next.