Repository navigation
CoolReader 1.0.4 — Firmware API compatibility (reissued)
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
U743gandU743G. - 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.