Skip to content

v1.4.1

Latest

Choose a tag to compare

@kaikozlov kaikozlov released this 13 Jul 00:24

KOReader Plugin

New Features

  • Built-in troubleshooting: A new "Troubleshooting" menu walks you through common problems. "Check LocalSend" inspects Wi-Fi, the receiver, your save folder, and network access, then suggests a next step. Additional guided helpers cover "Can't find a device?" and "Transfer failed?" — plus a one-tap support report generator to make filing useful bug reports easier.
  • Quick actions and gestures: "Send file" and "Send current book" can now be assigned to KOReader gestures, profiles, and quick-menu actions.
  • About menu: A dedicated "About LocalSend" dialog shows the installed version, device architecture, and project link.
  • Compound extension routing: Route tagged files such as document.safari.pdf separately from ordinary .pdf files. When no compound rule exists, routing falls back to the normal file extension.

Improvements

  • Better update experience: Updates now have a dedicated menu with full release notes, an available-update indicator, optional background checks, and the ability to reinstall the current version when recovering a damaged installation.
  • Scan again from the device picker: Refresh nearby devices without leaving the selection dialog or restarting the send flow.
  • Graceful server shutdown: The receiver stops more cleanly during KOReader exit and suspend, reducing leftover processes and port conflicts.
  • Cleaner uninstall: KOReader's plugin management can now remove LocalSend settings, certificates, routing configuration, and temporary state when deleting the plugin.

CLI Changes

New Features

  • Discovery self-test: The new nettest command checks multicast loopback, LocalSend announcements, HTTP registration responses, and visible network interfaces. Human-readable and JSON output are available.

Improvements

  • Updated networking stack: Updated Fiber, Pion WebRTC, DTLS, FastHTTP, and other Go dependencies to their latest compatible releases.

Bug Fixes

  • Reliable LAN discovery: The scan and recv discovery backend now listens across all eligible network interfaces, improving discovery on e-readers, constrained hardware, and multi-interface networks.
  • Stable WebRTC transfers: Hardened the WebRTC send queue, file pipeline, and shutdown synchronization to prevent transfer desynchronization, partial-file handling errors, and shutdown hangs.

Security

  • Atomic session admission: Receive-session checks and creation are now performed atomically, preventing concurrent transfers from bypassing the single-session limit.
  • Mandatory V3 nonce exchange: V3 HTTP uploads must complete the nonce exchange before preparing a transfer, preventing replay of stale handshake state.
  • Hardened WebRTC validation: Incoming file headers, tokens, declared sizes, checksums, control messages, and signaling payloads now receive stricter validation.
  • Bounded request handling: File uploads are streamed instead of buffered in memory, while JSON metadata and control messages have explicit size limits to reduce denial-of-service risk.

Installation

  1. Download the zip for your device's architecture:

    • armv7 — Kindle (all models), Kobo, reMarkable 2, PocketBook
    • arm64 — reMarkable Paper Pro
    • arm-legacy — Kindle 3, Kindle DX, older 32-bit ARM devices

    Not sure? Try armv7 first. Use arm-legacy only if armv7 doesn't work on older hardware.

  2. Extract localsend.koplugin to your KOReader plugins directory:

    • Kindle: /mnt/us/koreader/plugins/
    • Kobo: /.adds/koreader/plugins/
    • reMarkable: /home/root/koreader/plugins/
  3. Restart KOReader

See README for usage instructions.