Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6,378 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoolReader Next

Build and verification License: GPL-2.0-or-later Android API 21+

CoolReader logo

CoolReader Next is a security-focused downstream fork of CoolReader, the fast, highly customizable open-source ebook reader for Android, Linux, Windows, macOS and E-Ink devices.

It keeps the proven C++ rendering engine and broad ebook format support while modernizing Android storage, network security, build reproducibility and hostile document handling. Supported formats include EPUB, FB2/FB3, MOBI, TXT, RTF, HTML, CHM, PDB and more.

Project status: active development preview. The source and CI are ready for contributors, but no stable downstream APK release is published yet.

Why this fork

Focus What is already implemented
Modern Android API 35 build, API 21 minimum, pinned toolchain, SAF library roots and no broad storage permission
Privacy and security Normal TLS validation, HTTPS-only LitRes flows, bounded responses, hardened XML parsing and plaintext credential cleanup
Untrusted ebooks ZIP, image and document resource budgets plus native safety regression tests
Reliability Database schema 35 repair, Android unit tests, native CTest and Linux/macOS/Android CI
Upstream compatibility Explicit downstream delta tracking and a documented upstream-sync process

The complete modernization program is in MASTER_PLAN.md. Implemented differences from upstream are tracked in FORK_DELTA.md.

Build and verify

Android

Requirements: JDK 17, Android SDK 35 and the NDK version declared in android/app/build.gradle.

cd android
./gradlew assembleDebug lintDebug testDebugUnitTest

The debug APK is written to android/app/build/outputs/apk/debug/. Books outside app-private storage are opened through Android's document picker or a persisted SAF library root; the app does not request legacy broad access to shared storage.

Production signing uses an external keystore and the guarded :app:bundleSignedRelease task; see docs/ANDROID_SIGNING.md.

The optional LitRes integration is consumption-only on Android: it can browse the catalog, download trials, and download books already owned by a signed-in user, but it does not create accounts or offer purchases.

Release preparation documents: listing draft, privacy policy draft, Data safety worksheet, Play test plan, and identity/asset decisions. Dependency licensing and SPDX generation are documented in docs/DEPENDENCY_POLICY.md. Release performance thresholds and reproducible synthetic fixtures are documented in docs/PERFORMANCE_BUDGETS.md. The shared Android/desktop version scheme is documented in docs/VERSIONING.md. The tag-to-draft workflow, artifact set, rollback and hotfix gates are in docs/RELEASE_CHECKLIST.md. The two-clean-runner reproducibility contract and its explicit boundary are in docs/REPRODUCIBLE_BUILDS.md. Pull request fork classification and delta-ledger rules are documented in docs/PR_GOVERNANCE.md. Prepared minimal upstream contributions and verification evidence are listed in docs/UPSTREAM_CONTRIBUTIONS.md. The enforced default of local crash redaction without telemetry is documented in docs/TELEMETRY_POLICY.md. Active Android document and dictionary result flows use lifecycle-aware Activity Result launchers and preserve pending SAF state across recreation. The foreground-service, media-notification and receiver contract plus the remaining API 34–36 runtime matrix are documented in docs/ANDROID_14_16_COMPAT.md.

Support matrix

Target Current status Verified environment
Android Actively verified preview API 21 minimum, API 35 target, JDK 17, pinned NDK
Native engine/tools Actively verified Ubuntu and macOS CI, C++17, CMake
Qt desktop Actively verified Qt 6 on Ubuntu CI; Qt 5 best effort through 2026
wxWidgets, Windows and E-Ink frontends Community-tested No blocking CI yet

“Best effort” means the code is retained and fixes are welcome, but every commit is not currently tested on that target. Stable downstream binaries have not yet been released.

Native engine smoke tests

cmake -S . -B build -DGUI=FB2PROPS -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON
cmake --build build --parallel
ctest --test-dir build --output-on-failure

Contributing

Bug reports, reproducible ebook samples, device compatibility results and focused pull requests are welcome. Start with CONTRIBUTING.md and use the issue and pull request templates. User-visible changes belong in CHANGELOG.md.

If a maintained, privacy-conscious Android and E-Ink ebook reader is useful to you, starring the repository is the simplest way to help other readers discover it.

Fork relationship and license

CoolReader Next is not presented as the original CoolReader distribution. It is a downstream fork based on buggins/coolreader, with full upstream history and attribution retained.

Copyright © Vadim Lopatin and CoolReader contributors, 1998–2026. Downstream changes copyright © their respective contributors.

This project is free software distributed under the GNU General Public License, version 2 or (at your option) any later version. See LICENSE.

Repository layout

Directories

    crengine   - CREngine (DOM/XML/CSS ebook rendering library) sources
    cr3gui     - CR3 with CR3GUI for e-ink devices sources
    cr3qt      - CR3 with Qt based GUI
    cr3wx      - CR3 with wxWidgets based GUI
    thirdparty - third party libraries, to use if not found in system (zlib, libpng, libjpeg, freetype, etc...)
    thirdparty_repo - repository for third party libraries deployments
    thirdparty_unman - unmanaged third party libraries
    tinydict   - small library for .dict file format support
    tools      - miscellaneous configuration files
    android    - Android frontend

External dependencies

    common: zlib, libpng, libjpeg, freetype, harfbuzz, fribidi, libunibreak, utf8proc, zstd
    cr3gui/xcb: libxcb, fontconfig
    cr3gui/nanoX: libnanoX
    cr3/Qt: fontconfig, qt5-base, qt5-tools
    cr3/wx: fontconfig, wxWidgets 3.0

e.g., for Ubuntu you may use

    $ sudo apt install build-essential git cmake curl pkg-config zlib1g-dev libpng-dev libjpeg-dev libfreetype6-dev libfontconfig1-dev libharfbuzz-dev libfribidi-dev libunibreak-dev libzstd-dev libutf8proc-dev

To build Qt frontend:

    $ sudo apt install qtbase5-dev qttools5-dev

To build wxWidgets frontend:

    $ sudo apt install libwxgtk3.0-gtk3-dev

Embedded Third Party Components

Packaging

Debian based packages included to project:

    packages/ubuntu -- debian package for Ubuntu, with Qt frontend
    packages/openinkpot -- debian package for OpenInkpot, with XCB frontend

To build debian package, copy one of package descriptions from packages directory:

    cp -r packages/ubuntu/debian debian
    Then, package can be built using `debuild` command.

Android Build Instructions

  • Deploy/update third party libraries: in terminal call script thirdparty-deploy.sh

In Windows can be used git bash terminal

    $ ./thirdparty-deploy.sh
  • Use Android Studio - open subdirectory "android" as Android Studio project

Ensure that you have Android SDK and NDK installed

QtCreator Build Instructions (Windows)

You will need to download dependencies. Use some bash console, e.g. "Git Bash"

First, clone CoolReader repository:

    $ git clone https://github.com/hafych/coolreader.git
    $ cd coolreader

Now you can download source code for third party dependencies.

    $ ./thirdparty-deploy.sh

Now you can open CoolReader project in QtCreator.

Use File/Open project or file menu item, and choose coolreader root directory.

CMake Build Instructions (Linux)

In case the installed libraries are outdated, run the thirdparty-deploy.sh script to download libraries sources of the recommended versions. In this case, the build system will build static libraries that were not found in the system.

    $ ./thirdparty-deploy.sh

Qt 6 is the primary desktop frontend and is built on every pull request. Install qt6-base-dev, qt6-tools-dev and qt6-tools-dev-tools.

    mkdir qtbuild
    cd qtbuild
    cmake -D GUI=QT6 -D CMAKE_BUILD_TYPE=Release -D MAX_IMAGE_SCALE_MUL=2 -D DOC_DATA_COMPRESSION_LEVEL=3 -D DOC_BUFFER_SIZE=0x1400000 -D CMAKE_INSTALL_PREFIX=/usr ..
    make
    sudo make install

Building the Qt 6 version in DEBUG mode

    mkdir qtbuild
    cd qtbuild
    cmake -D GUI=QT6 -D CMAKE_BUILD_TYPE=Debug -D MAX_IMAGE_SCALE_MUL=2 -D DOC_DATA_COMPRESSION_LEVEL=3 -D DOC_BUFFER_SIZE=0x1400000 -D CMAKE_INSTALL_PREFIX=/usr ..
    make
    sudo make install

Qt 5 remains a best-effort compatibility target through December 31, 2026. Use GUI=QT5 with qtbase5-dev and qttools5-dev. New desktop work targets Qt 6; Qt 5 may be removed in the first release made on or after January 1, 2027.

Building wxWidgets version (libwxgtk3.0-gtk3-dev should be installed)

    mkdir wxbuild
    cd wxbuild
    cmake -D GUI=WX -D CMAKE_BUILD_TYPE=Release -D MAX_IMAGE_SCALE_MUL=2 -D DOC_DATA_COMPRESSION_LEVEL=3 -D DOC_BUFFER_SIZE=0x1400000 -D CMAKE_INSTALL_PREFIX=/usr ..
    make

Qt Build under Windows (Using MSYS2)

Run "MSYS2 MSYS" from start menu

    $ pacman -Sy
    $ pacman -Su

Run "MSYS2 MSYS" from Start menu again.
Update the rest of the base packages:

    $ pacman -Su
  • Install build tools & dependencies:

Run "MSYS2 MSYS" from start menu.
Using pacman package manager install required packages:

    $ pacman -S --needed base-devel mingw-w64-x86_64-toolchain
    $ pacman -S git curl
    $ pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-pkgconf mingw-w64-x86_64-zlib mingw-w64-x86_64-libpng mingw-w64-x86_64-libjpeg-turbo mingw-w64-x86_64-freetype mingw-w64-x86_64-fontconfig mingw-w64-x86_64-harfbuzz mingw-w64-x86_64-fribidi mingw-w64-x86_64-zstd

    To build Qt frontend:

    $ pacman -S mingw-w64-x86_64-qt5
  • Prepare:

Run "MSYS2 MinGW 64-bit" from start menu

    $ git clone https://github.com/hafych/coolreader.git
    $ cd coolreader

Since package libunibreak not exists in MSYS2, we must build static version of this library, to do this, we need to call the script thirdparty-deploy.sh to download sources:

    $ ./thirdparty-deploy.sh

Build system will build static libraries that were not found in the system.

  • Compile:

Now we can build program:

    $ mkdir qtbuild
    $ cd qtbuild
    $ cmake -G "MSYS Makefiles" -D CMAKE_BUILD_TYPE=Release -D GUI=QT5 -D MAX_IMAGE_SCALE_MUL=2 -D DOC_DATA_COMPRESSION_LEVEL=3 -D DOC_BUFFER_SIZE=0x1400000 -D CMAKE_INSTALL_PREFIX=dist ..
    $ make
    $ make install

Now in qtbuild/dist directory we have CoolReader binary & data.
To add Qt runtime libraries, call:

    $ cd dist
    $ windeployqt --compiler-runtime --no-webkit2 --no-angle --no-opengl-sw --no-quick-import .

To add thirdparty runtime libraries, call:

    $ cp -pv /mingw64/bin/{libfontconfig-1.dll,libexpat-1.dll,libfreetype-6.dll,libbz2-1.dll,libbrotlidec.dll,libbrotlicommon.dll,libharfbuzz-0.dll,libglib-2.0-0.dll,libintl-8.dll,libiconv-2.dll,libpcre-1.dll,libgraphite2.dll,libpng16-16.dll,zlib1.dll,libfribidi-0.dll,libjpeg-8.dll,libutf8proc.dll,libzstd.dll,libdouble-conversion.dll,libicuin68.dll,libicuuc68.dll,libicudt68.dll,libpcre2-16-0.dll} .

After updating any library in MSYS 2, this list may need to be corrected. If after that the program does not start with an error about the missing dll, then you need to copy this library from /mingw64/bin/ to qtbuild/dist.

Qt Build under Windows (Using Qt SDK, obsolete)

Using Qt SDK

Environment setup:

  • Download and install Qt SDK, git, cmake, msys
  • Copy contents of git and cmake dirs to QT/mingw/
  • Copy make.exe from msys/bin to QT/mingw/bin

Run Qt SDK / Qt Command Prompt. Execute:

    > sh
    > git clone https://github.com/hafych/coolreader.git
    > cd coolreader
    > mkdir qtbuild
    > cd qtbuild
    > cmake -D GUI=QT -D CMAKE_BUILD_TYPE=Release -G "MSYS Makefiles" -D USE_QT_ZLIB=1 -D CMAKE_INSTALL_PREFIX=dist ..
    > make
    > make install

    cmake -D GUI=QT -D CMAKE_BUILD_TYPE=Release -G "Visual Studio 9 2008" -D USE_QT_ZLIB=1 -D DOC_DATA_COMPRESSION_LEVEL=3 -D DOC_BUFFER_SIZE=0x1500000 -D CMAKE_INSTALL_PREFIX=dist ..
    cmake -D GUI=QT -D CMAKE_BUILD_TYPE=Release -G "Visual Studio 10" -D USE_QT_ZLIB=1  -D MAX_IMAGE_SCALE_MUL=2 -D DOC_DATA_COMPRESSION_LEVEL=3 -D DOC_BUFFER_SIZE=0x1500000 -D CMAKE_INSTALL_PREFIX=dist ..

to disable console, use /SUBSYSTEM:WINDOWS linker option instead of /SUBSYSTEM:CONSOLE

For Qt5, use GUI=QT5 instead of GUI=QT

For building Qt5 app from QtCreator remove -G (generator) parameter:

Release build:

	-D GUI=QT5 -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=dist ..

Debug build:

	-D GUI=QT5 -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=dist ..

It will put built cr3.exe and all necessary distribution files to directory qtbuild/dist.

You need also add following DLLs to this directory in order to get cr3.exe working:

    - mingwm10.dll
    - QtCore4.dll
    - QtGui4.dll
    - libz.dll

CMake Build Instructions (obsolete)

    # Building ARM version on OpenInkpot:
    mkdir armbuild
    cd armbuild
    cmake -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-oi.cmake -D MAX_IMAGE_SCALE_MUL=2 -D CMAKE_BUILD_TYPE=Release -D GUI=CRGUI_XCB -D USE_EXTERNAL_EDICT_DICTIONARY=1 ..
    make

    # Building i386 version, Qt backend V3 simulation:
    mkdir qt-v3
    cd qt-v3
    cmake -D DEVICE_NAME=v3 -D MAX_IMAGE_SCALE_MUL=2 -D CMAKE_BUILD_TYPE=Debug -D USE_STATIC_ZLIB=1 -Wdev -D ENABLE_ANTIWORD=1 -D CMAKE_INSTALL_PREFIX=dest -D GUI=CRGUI_QT -D DOC_DATA_COMPRESSION_LEVEL=1 -D DOC_BUFFER_SIZE=0x500000 ..
    make

    # Building i386 version (for OpenInkpot), V3 simulation:
    mkdir xcb-v3
    cd xcb-v3
    cmake -D DEVICE_NAME=v3 -D MAX_IMAGE_SCALE_MUL=2 -D CMAKE_BUILD_TYPE=Debug -D USE_STATIC_ZLIB=1 -Wdev -D ENABLE_ANTIWORD=1 -D CMAKE_INSTALL_PREFIX=/usr -D GUI=CRGUI_XCB -D DOC_DATA_COMPRESSION_LEVEL=1 -D DOC_BUFFER_SIZE=0x500000 ..
    make

    # Building i386 version (for OpenInkpot), n516/azbooka simulation:
    mkdir xcb-n516
    cd xcb-n516
    cmake -D DEVICE_NAME=n516 -D MAX_IMAGE_SCALE_MUL=2 -D CMAKE_BUILD_TYPE=Debug  -D CMAKE_INSTALL_PREFIX=/usr -D GUI=CRGUI_XCB ..
    make

    # Building Jinke/LBook V3 viewer plugin (libfb2.so):
    mkdir v3build
    cd v3build
    mkdir dest
    cmake -D DEVICE_NAME=v3 -D MAX_IMAGE_SCALE_MUL=2 -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-v3.cmake -D GUI=CRGUI_JINKE_PLUGIN -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=dest ..
    make

    # Building Jinke/LBook V3 viewer plugin (libfb2.so), new SDK:
    mkdir v3build
    cd v3build
    mkdir dest
    cmake -D DEVICE_NAME=v3 -D MAX_IMAGE_SCALE_MUL=2 -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-linux-gnueabi.cmake -D GUI=CRGUI_JINKE_PLUGIN -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=dest ..
    make

    # Building Jinke/LBook V3 fb2props plugin for Bookshelf (libfb2props.so) i386:
    mkdir fb2props386
    cd fb2props386
    mkdir dest
    cmake -D GUI=FB2PROPS -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=dest ..
    make

    # Building Jinke/LBook V3 fb2props plugin for Bookshelf (libfb2props.so):
    mkdir v3fb2propsbuild
    cd v3fb2propsbuild
    mkdir dest
    cmake -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-v3.cmake -D GUI=FB2PROPS -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=dest ..
    make

    # Building Jinke/LBook V3 fb2props plugin for Bookshelf NEW SDK (libfb2props.so):
    mkdir v3newfb2propsbuild
    cd v3newfb2propsbuild
    mkdir dest
    cmake -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-linux-gnueabi.cmake -D GUI=FB2PROPS -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=dest ..
    make

    # Building Jinke/LBook V3 new SDK viewer app (cr3):
    mkdir v3app
    cd v3app
    #cmake -D DEVICE_NAME=v3 -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-linux-gnueabi.cmake -D MAX_IMAGE_SCALE_MUL=2 -D GUI=CRGUI_NANOX -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=dest -D DOC_DATA_COMPRESSION_LEVEL=1 -D DOC_BUFFER_SIZE=0x500000 -D BIG_PAGE_MARGINS=1 ..
    cmake -D DEVICE_NAME=v3 -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-linux-gnueabi.cmake -D MAX_IMAGE_SCALE_MUL=2 -D GUI=CRGUI_NANOX -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=dest -D DOC_DATA_COMPRESSION_LEVEL=1 -D DOC_BUFFER_SIZE=0x500000 ..
    make

    # Building Jinke/LBook V5 viewer app (cr3):
    mkdir v5build
    cd v5build
    cmake -D DEVICE_NAME=v5 -D MAX_IMAGE_SCALE_MUL=2 -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-v5.cmake -D GUI=CRGUI_NANOX -D GRAY_BACKBUFFER_BITS=3 -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=dest -D DOC_DATA_COMPRESSION_LEVEL=1 -D DOC_BUFFER_SIZE=0x580000 ..
    #cmake -D DEVICE_NAME=v5 -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-v5.cmake -D GUI=CRGUI_NANOX -D GRAY_BACKBUFFER_BITS=3 -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=dest ..

    make

    # Building Jinke/LBook V3+ viewer app (cr3):
    mkdir v3abuild
    cd v3abuild
    cmake -D DEVICE_NAME=v3a -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-v5.cmake -D GUI=CRGUI_NANOX -D CR3_PNG=1 -D CR3_JPEG=1 -D CR3_FREETYPE=1 -D GRAY_BACKBUFFER_BITS=4 -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=dest -D RAM_COMPRESSED_BUFFER_ENABLED=0 -D DOC_DATA_COMPRESSION_LEVEL=1 -D DOC_BUFFER_SIZE=0x1000000 ..
    make

    # Building ARM version for PocketBook:
    mkdir pb360
    cd pb360
    cmake -D DEVICE_NAME=pb360 -D CMAKE_INSTALL_PREFIX=/usr/local/pocketbook/mnt/ext1 -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-pocketbook.cmake -D CMAKE_CXX_FLAGS_RELEASE:STRING="-fomit-frame-pointer -O1" -D MAX_IMAGE_SCALE_MUL=2 -D CMAKE_BUILD_TYPE=Release -D GUI=CRGUI_PB -D ENABLE_CHM=1 -D ENABLE_ANTIWORD=1 ..
    make

    # Building ARM version for PocketBook Pro
    mkdir pbPro
    cd pbPro
    cmake -D DEVICE_NAME=pb360 -D CMAKE_INSTALL_PREFIX=/usr/local/pocketbook/mnt/ext1 -D CMAKE_TOOLCHAIN_FILE=../tools/toolchain-arm-gnu-eabi-pocketbook.cmake -D MAX_IMAGE_SCALE_MUL=2 -D CMAKE_BUILD_TYPE=Release -D ENABLE_CHM=1 -D ENABLE_ANTIWORD=1 -D GUI=CRGUI_PB -D POCKETBOOK_PRO=1 ..

    # Building Jinke/LBook V3+ simulator for Win32 (cr3):
    mkdir v3win32
    cd v3win32
    cmake -D DEVICE_NAME=v3a -G "Visual Studio 10" -D MAX_IMAGE_SCALE_MUL=2 -D GUI=CRGUI_WIN32 -D GRAY_BACKBUFFER_BITS=4 -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=dest -D DOC_DATA_COMPRESSION_LEVEL=1 -D DOC_BUFFER_SIZE=0x800000 ..
    make

Qt Build under Mac OSX (obsolete)

    #configure and make Qt as static libraries
    #Inside Qt source root:
    ./configure -prefix /Developer/Qt -opensource -static -release -arch x86 -arch x86_64 \
    -no-accessibility -no-stl -no-qt3support -qt-zlib -no-gif -no-libtiff -qt-libpng -qt-freetype -no-libmng -qt-libjpeg -no-nis -no-cups -no-iconv -no-pch -no-dbus -no-opengl -no-fontconfig \
    -no-xmlpatterns -no-multimedia -no-phonon -no-phonon-backend -no-audio-backend -no-openssl \
    -no-gtkstyle -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative 
    #make Core and GUI libraries
    make sub-src
    #make symlinks from `pad` to /Developer/Qt for bin, include, lib, src dirs

    #inside cr3 directory
    #configure using cmake
    mkdir macbuild
    cd macbuild
    cmake -G "Unix Makefiles" -D GUI=QT -D CMAKE_OSX_ARCHITECTURES="i386 x86_64" -D QT_QMAKE_EXECUTABLE=/Developer/Qt/bin/qmake -D CMAKE_BUILD_TYPE=Release -D MAX_IMAGE_SCALE_MUL=2 -D DOC_DATA_COMPRESSION_LEVEL=3 -D DOC_BUFFER_SIZE=0x1400000 -D CMAKE_INSTALL_PREFIX=cr3.app ..
    make
    make install

About

CoolReader Next — secure, modern open-source EPUB/FB2 ebook reader for Android, desktop and E-Ink. Focused on SAF, TLS and reliability.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages