Skip to content

NickelReadingStats v0.2.1

Choose a tag to compare

@dkuester dkuester released this 21 Oct 12:03
· 20 commits to main since this release

Privacy hotfix. Everyone on v0.2.0 or v0.1.0 should update.

Deutsch, kurz: In v0.1.0 und v0.2.0 lief auf dem Tolino Kobos Google-Analytics-Erfassung mit. Lese-Ereignisse wie Buch öffnen und schließen, die Buch-ID, Akkustand und Schriftart wurden in .kobo/Kobo/Analytics.conf gesammelt und bei WLAN an Google übertragen. v0.2.1 legt das vollständig still und löscht noch nicht übertragene Einträge beim nächsten Start. Bereits übertragene Daten lassen sich nicht zurückholen. Installation wie bisher: Kobo.tgz nach .kobo/ kopieren und neu starten.

What was wrong

To record reading sessions and page turns on a Tolino, the mod has to let Kobo's EventEngine initialise. That also creates Kobo's Google Analytics client. v0.2.0 already dropped the events that go through Nickel's own analytics table, but the Google Analytics client has its own queue (.kobo/Kobo/Analytics.conf) and sends it to ssl.google-analytics.com. On a test Tolino the queue held 52 entries, including opening and closing books with a book ID, battery level and font settings. A stock Tolino never creates this client.

Fixes

  • Google Analytics silenced on Tolino: no new entries, nothing uploaded. The stored queue is not loaded at startup, so the next save empties it. On a Kobo nothing changes.
  • Narrower Kobo mode: isTolino() now answers "not Tolino" only to the five Kobo reading-life functions that need it, recognised by the calling address. Everything they call further down sees the real device, for example the store affiliation (Thalia vs. Kobo). This closes the remaining risk behind the tester report in which a Tolino showed Kobo menus and lost its Thalia account (mainly fixed in v0.2.0).

Tested

On a Tolino with firmware 5.18.264769:

  • The Google Analytics queue went from 52 to 0 with Wi-Fi off (cleared, not sent) and stays empty with Wi-Fi on and a sync.
  • The per-book stats page, Activity (hours, minutes per session, pages per minute) and page counting work.
  • The Thalia account, sync and book downloads work; no Kobo menus.

Built against Qt 6.5.2. Host tests and the firmware symbol/ABI checks pass, including new checks for the functions that are allowed to see "not Tolino".

Known limitations

Unchanged from v0.2.0:

  • The "time remaining" estimate can read too low until the reading speed has been learned.
  • Fixed-layout content and image-only books are excluded.
  • Firmware 5.18+ (Qt 6) only. Kobo devices on 5.x are expected to work but have not been verified yet.

Install

  1. Download Kobo.tgz from the assets below.
  2. Copy it to .kobo/ on the device.
  3. Eject and restart.

To uninstall, place an empty file readingstats_uninstall in the device root and restart.

SHA-256 of Kobo.tgz:
c896532b743bf7d2c194cf53f6c7ac498583e4daabc7727f46be16ab18d505f4

Notes

Reverse-engineered with AI assistance; full credits and attribution are in the README. Licensed under MIT.


Originally released on Codeberg on 2026-10-21.