Skip to content

Releases: plateaukao/koreader

KOReader for iReader devices (touch fix)

Choose a tag to compare

@plateaukao plateaukao released this 07 Aug 10:52

KOReader build with working touch for iReader / 掌阅 e-readers (Ocean 2, Ocean3 / Ocean3 Plus, Smart series).

The problem this fixes

iReader's SmartOS firmware reports the touchscreen as ACONFIGURATION_TOUCHSCREEN_NOTOUCH, so stock KOReader never registers any touch zones in the reading view — touch works in the file browser but taps/swipes/long-press do nothing once a book is open (koreader#9071, koreader#9154, koreader#10293, koreader#11014). This build adds a per-device quirk (same pattern as the upstream Mobiscribe Wave fix) that forces touch on for the whole iReader family.

Which APK

  • koreader-android-arm64-*.apk — try this first (newer devices, e.g. Ocean3 Plus)
  • koreader-android-arm-*.apk — 32-bit fallback if the arm64 one refuses to install (e.g. Ocean 2)

Signed with a debug certificate — uninstall any existing KOReader with a different signature first.

If touch is still dead in the reader

The device match is intentionally broad, but the SmartOS build fingerprint is undocumented. If the quirk misses your model, connect via USB/MTP, edit koreader/settings.reader.lua and add:

["android_force_touch_device"] = true,

then restart KOReader. Please also share your koreader/crash.log (it contains the device's MANUFACTURER/BRAND/MODEL dump) so the match can be tightened.

Supernote eink stylus v2 — pen/eraser long-press toggle

Choose a tag to compare

@plateaukao plateaukao released this 19 Jun 11:59

KOReader fork with Supernote Manta / Nomad (Ratta A5X2 family) eink stylus support, built into the APK. Builds on supernote-eink-v1 — see that release for the base stylus-ink architecture.

New in v2

  • Pen/eraser toggle in the hold-pen-still picker. Hold the stylus still (~0.5 s) on a blank spot to open the picker; a new bottom row shows a filled square (pen) and a hollow square (eraser) — tap to switch tools.
  • Available in both pen and eraser mode, so you can get back to the pen with the stylus alone, no menu or side button needed.
  • Tool switch shows the top-right corner badge (filled = pen, hollow = eraser), matching the finger double-tap toggle — no center toast.
  • On by default; disable under Tools → Pencil → (experimental) → Pen/eraser toggle.
  • The same hold-still picker still offers pen color / stroke width when those experimental options are enabled (colors/widths are hidden in eraser mode).

Everything from v1 carries over: bundled pencil.koplugin, default-on, finger double-tap-left toggle, palm rejection, and the firmware service_myservice ink path.

Install

The attached APK was built before tagging, so its filename/version string still reads v1-10-g7515870aa — it is the v2 build (commit 7515870a).

adb install -r koreader-android-arm64-supernote-eink-v1-10-g7515870aa_2026-06-19.apk

If a previous KOReader is signed with a different cert (e.g. the official build), adb uninstall org.koreader.launcher first (user data under /sdcard/koreader survives).

Tested on

  • Supernote Nomad (A5X2 firmware family) — works

Source

  • Branch supernote_ink, tag supernote-eink-v2, commit 7515870a

Huawei MatePad Paper stylus annotation — v1

Choose a tag to compare

@plateaukao plateaukao released this 26 Jun 17:41

KOReader with stylus annotation (pencil.koplugin) for the Huawei MatePad Paper (HMW-W09, Kirin 820E, arm64), Android 10.

What works

  • Firmware ink (Auto-HandWrite): strokes appear under the pen tip at hardware speed via Huawei's android.eink framework — the same path the built-in Notes app uses. No root required.
  • Persistence: strokes are captured and saved to the book's .sdr sidecar.
  • Eraser: switch to the eraser to delete strokes (firmware ink auto-pauses in eraser mode).
  • No ghosting: the firmware shows the live ink; KOReader does one clean refresh after you pause, instead of a partial refresh per stroke.
  • Long-press picker: hold the pen still on a blank spot to open the pen/eraser toggle + width + color picker. Hold time defaults to 300 ms and is adjustable under Tools → Pencil → "Long-press hold time" (150–1500 ms).

Install

  1. Allow installs from unknown sources, then install the APK below.
  2. Open a book, then Tools → Pencil to enable and configure.

Notes

  • Device-specific build off the supernote_ink branch. Debug-signed; if updating over an existing KOReader signed with a different key, uninstall first.

Supernote eink stylus v1 (pencil.koplugin bundled)

Choose a tag to compare

@plateaukao plateaukao released this 01 Jun 12:36

KOReader fork with Supernote Manta / Nomad (Ratta A5X2 family) eink stylus support, built into the APK.

What's in this build

  • Bundled pencil.koplugin — no longer a separate adb push step. Pencil annotation lights up out of the box.
  • Default ON — pencil works on first launch with no setting toggle.
  • Finger double-tap left ⇒ toggle pencil/eraser (new default gesture). Configurable under Tools → Pencil.
  • Stylus ink runs at sub-frame latency via the firmware's service_myservice binder. Stylus side button switches to highlighter, eraser end works for both freehand strokes and native KOReader text highlights.
  • Palm rejection: while the pen is on the screen (and for 1 s after lift), finger gestures are consumed so a resting palm can't flip pages.

Install

adb install -r koreader-android-arm64-supernote-eink-v1-pencil_2026-06-01.apk

If a previous KOReader is signed with a different cert (e.g. official build), adb uninstall org.koreader.launcher first.

Architecture

See the ADR at ~/src/ADR/koreader-supernote-stylus-ink.md (in the author's working tree) for the full six-layer design, sequence diagrams, and the rationale for why the all-Lua plugin variant didn't ship.

Tested on

  • Supernote Nomad (A5X2 firmware family) — works
  • Should also work on Supernote Manta (same firmware family) — untested

Source

  • KOReader fork: this repo, branch supernote_ink, tag supernote-eink-v1
  • Submodules pinned: plateaukao/koreader-base and plateaukao/android-luajit-launcher on sony-stylus branch (Sony DPT changes are also bundled for the cross-device launcher)

Sony DPT-CP1 stylus annotation — v1

Choose a tag to compare

@plateaukao plateaukao released this 31 May 09:34

First release of this fork for the Sony DPT-CP1 (and likely other Sony Marvell EPDC devices). Brings KOReader's annotation workflow to feature-parity with Sony's own NoteCreator on-screen latency.

What's new vs upstream KOReader

  • Kernel-fast ink under the pen. Uses Sony's Direct Handwriting (DHW) kernel path — the digitizer driver paints stylus pixels straight to /dev/graphics/fb0 with near-zero perceptual lag.
  • Userspace overlay in DU mode. Stacked above KOReader's native page surface so strokes survive SurfaceFlinger composites (`NOCONVERT_DU + SP1_IGNORE` waveform).
  • Coalescing render thread. Decouples touch-event rate (~100 Hz) from EPD-waveform rate (~8 Hz). No more stutter after fast multi-stroke writing.
  • `pencil.koplugin` bundled. Annotate documents with the stylus: pen, eraser (tip + side button), highlight, color picker. No manual install on `/sdcard/koreader/plugins/` needed.
  • Eraser button works. Side-button-held stylus events promote to eraser through both the JNI overlay path and the evdev cook path.
  • Save-on-lifecycle policy. Strokes persist on page change / document close, not during writing — no disk I/O on the input thread.
  • Menu position. `Pencil` is the first entry in Tools in both Reader and File Manager menus.

Install

```bash
adb install -r koreader-android-arm-v2026.03-143-gd03a090ce_2026-05-30.apk
```

If upgrading from a build signed with a different certificate, `adb uninstall org.koreader.launcher` first.

Build

```bash
git clone --recursive https://github.com/plateaukao/koreader.git
cd koreader
docker run --rm --platform linux/amd64 \
-v "$PWD:/home/ko/koreader" -w /home/ko/koreader \
--entrypoint bash koreader/koandroid:0.9.7-22.04 \
-lc './kodev release android-arm'
```

Architecture write-up

Full ADR with sequence diagrams: plateaukao.github.io/ADR/#koreader-sony-stylus-debug-and-refactor.md

Tested on

  • Sony DPT-CP1 (Android 5.1, firmware 1.6.50.14130)

Other Sony Marvell EPDC devices (DPT-RP1, etc.) should work but are untested.