Skip to content

CoolReader 1.0.4 — Firmware API compatibility (reissued)

Choose a tag to compare

@dderugin dderugin released this 05 Nov 11:05

CoolReader 1.0.4 has been reissued with KOReader-style firmware API compatibility. The version number remains 1.0.4; the package revision is 1.0.4-api.

Firmware detection and updates

  • Recognizes the four registered models: Touch HD 3 / PB632, Verse Pro / PB634, Era / PB700 and InkPad 4 / PB743G.
  • Parses the numeric major/minor/build suffix independently of the model prefix, including U743g and U743G.
  • Selects the highest known compatible API level at or below the installed firmware (currently 6.10 or 6.11). Different patch/build numbers are no longer rejected just because they differ from a tested snapshot.
  • Applies the same API-level policy before OTA download and independently while unpacking the archive. The revised client uses a V2 API-rule channel; the original shared V1 channel remains available for older clients and points to the same package.
  • Rejects unknown models, malformed version strings, firmware below API 6.10, wrong package families and updates requiring an API the client does not support.

This port uses common SDK 6.10 interfaces checked on the pinned 6.10/6.11 runtimes. It does not include KOReader's complete FFI declaration catalog. Compatible system libraries and the soft-float ARM Linux ABI remain necessary; passing the API check does not prove compatibility with untested firmware libraries or hardware.

Install this reissue

If the original 1.0.4 is already installed, reinstall the current ZIP over USB. An unchanged version number does not trigger an OTA upgrade. Back up the current installation, close CoolReader, merge system and applications into USB storage, safely eject, then open Applications → CoolReader.

Shared 1.0.3 clients can use their existing OTA channel on the firmware versions they already accept. If an older client cannot start or rejects its firmware, use USB. The revised client uses the API-level policy for subsequent updates.

Retained startup improvements

The process-local glibc.rtld.execstack=2 workaround follows KOReader's PocketBook fix. Its entry point remains inside the OTA payload, preserving older outer launchers, user settings, reading history, custom assets and rollback. The ZIP still contains one ARM executable for all four models, with support documents stored under system/.

Firmware snapshots used for verification

Device Firmware tested
Touch HD 3 / PB632 U632.6.11.2001
Verse Pro / PB634 U634.6.10.3425
Era / PB700 U700.6.10.3209
InkPad 4 / PB743G U743g.6.11.1683

These snapshots are validation evidence, not an exact-version allowlist. All 16 primary ARM/QEMU regression groups, 13 software probes on each additional runtime, production startup probes on all four runtimes, and package checks passed. Regression coverage includes changed firmware build numbers, API selection, alphanumeric prefixes, unsupported APIs, V1/V2 OTA handling, legacy launcher permissions and rollback. Source, test evidence, checksums and debug symbols match this package.

The original InkPad 4 report had no firmware details or logs; resolution of that specific hardware report remains unconfirmed. Physical controls, battery behavior and complete on-device OTA acceptance remain pending.

The original package and its sources are retained in the original 1.0.4 archive and the v1.0.4-original source tag.

Installation guide · Downloads