An older Kindle can still be a useful reading device. With KOReader, it can open EPUBs directly, display PDFs and offer an alternative interface for your own document library. The application supports Kindle and several other e-reader platforms. KOReader project

This guide starts with an unmodified Kindle in its normal factory setup. First, identify the model and firmware and select a compatible jailbreak. Then install the reader and its launcher. The detailed installation example covers a Kindle Paperwhite 2 on firmware 5.12.2.2; a bonus chapter explains how third-party plugins work, using RSS Reader as an example.

Changelog

DateChange
2026-10-25Initial version: Stock-Kindle setup, a tested PW2/WatchThis installation route and an RSS plugin example.

1. Understand the three parts

A Kindle installation normally involves three separate pieces:

ComponentPurpose
JailbreakAllows third-party code to run on the Kindle
LauncherStarts applications, for example through KUAL
KOReaderThe reading application itself

The Kindle operating system remains underneath. A jailbreak opens the device to additional software; KOReader is not a replacement firmware image that you flash over the complete system. KindleModding introduction

The jailbreak method depends on both the hardware and its firmware. A procedure for a Paperwhite 2 is not automatically suitable for a Paperwhite 3, a Kindle Keyboard or a newer Paperwhite.

2. Prerequisites and compatibility

You need:

  • A charged Kindle and a working USB data cable.
  • A computer for downloading and extracting archives; the commands here use Linux.
  • A backup of anything you want to retain.
  • The exact Kindle model and installed firmware version.
⚠️ READ BEFORE CHANGING THE DEVICE

Some jailbreak procedures require a factory reset and erase local data. Do not update the Amazon firmware just to prepare for a jailbreak: that can change which methods are available. Keep Wi-Fi off while identifying the correct route. Read the current instructions for that route before starting.

On the Kindle, look for Settings → Device Info. Older interfaces may place Device Info inside the menu shown while Settings is open. Use the serial-number prefix to distinguish similar models; the MobileRead identification table documents the relevant prefixes.

Then consult KindleModding’s jailbreak selector. If it selects a different method, follow that method’s own jailbreak and post-installation steps before continuing to KOReader.

The concrete example used below

ComponentTested version
HardwareKindle Paperwhite 2, released in 2013; sixth-generation Kindle hardware
Serial prefixB0D4, a PW2 Wi-Fi variant
Amazon firmware5.12.2.2
JailbreakWatchThis r03
Package installerMRPI 1.7.N-r19303
LauncherKUAL coplate c6ac782-20250419
ReaderKOReader 2026.07.1, kindlepw2 package

Sections 3–6 describe that PW2/firmware combination. WatchThis explicitly supports it and requires its matching payload. For another Kindle, the model-specific jailbreak instructions take precedence. WatchThis compatibility and setup

3. Prepare the stock Kindle for WatchThis

For the PW2 example, complete the factory setup using English → United Kingdom and skip wireless setup and Amazon registration. If the device already has personal data or a completed setup, back up your files and follow WatchThis’s factory-reset prerequisite before beginning. Do not reset an already jailbroken reader as a routine installation step.

The demo mode in this chapter is a temporary part of the exploit procedure. You deliberately enable it on an otherwise normal Kindle; the reader does not need to be a shop demonstration unit.

On the home screen, enter this command into the Kindle search bar, then submit it:

;enter_demo

There may be no immediate visible response. Hold the power button until the power menu appears, choose Restart and let the reader boot.

During the demo setup:

  1. Skip wireless configuration.
  2. Enter placeholder store information, such as Test.
  3. Skip searching for demo content.
  4. Select the Standard demo type.
  5. At the first Demo Mode: Add Content screen, choose Done without copying any jailbreak files.

Now use the demo bypass gesture to reach the home screen:

  1. Briefly tap the bottom-right display area with two fingers simultaneously.
  2. Lift both.
  3. Immediately swipe one finger from right to left across the lower third of the display.

The two-finger tap and one-finger swipe are separate movements, performed in quick succession. Repeat carefully if needed. The WatchThis walkthrough includes a gesture demonstration.

Finally, search for ;demo, choose Sideload Content, and connect USB. Do not press Done yet. This second visit to the content screen is the payload-copying stage.

Access the Kindle storage on Linux

Use your file manager to mount the Kindle volume. These commands can help identify it:

lsusb -d 1949:
lsblk -o NAME,MODEL,SERIAL,SIZE,FSTYPE,LABEL,MOUNTPOINTS

If the Kindle is detected but does not export usable storage, disconnect USB, submit ;uzb in the Kindle search bar and reconnect. That command restores USB export in the documented WatchThis workflow.

For the following examples, set KINDLE to the existing mountpoint of the actual reader. A common Linux desktop path is:

KINDLE="/run/media/$USER/Kindle"
findmnt --mountpoint "$KINDLE"
cat "$KINDLE/system/version.txt"

Check the device behind the mount and the firmware output. Do not create that directory as a substitute for mounting the Kindle, and do not format the reader.

4. Copy and trigger the jailbreak

Download watchthis-jailbreak-r03.zip from the link in the author’s release post. Extract it on the computer.

For this specific example, locate:

watchthis-release/PW2/PW2-5.12.2.2/

Copy its PW2-5.12.2.2.zip and matching demo.json into a directory named .demo at the Kindle’s root. Do not extract the inner device-specific ZIP. Add an empty goodreads directory:

Kindle USB root/
└── .demo/
    ├── PW2-5.12.2.2.zip
    ├── demo.json
    └── goodreads/                 ← empty

If your terminal is inside the extracted watchthis-release directory:

mkdir -p "$KINDLE/.demo/goodreads"
cp PW2/PW2-5.12.2.2/PW2-5.12.2.2.zip "$KINDLE/.demo/"
cp PW2/PW2-5.12.2.2/demo.json "$KINDLE/.demo/"

Wait for copying to finish, safely unmount the volume and disconnect USB. On the Kindle:

  1. Press Done on the content screen.
  2. Leave the demo menu.
  3. Select the Store/shopping-cart icon on the home screen.

The Store icon is the PW2-specific trigger. The device should restart and display jailbreak messages. Let it finish, including the boot progress bar. Returning to demo mode at this stage does not complete the process: the custom hotfix comes next. PW2 trigger and post-jailbreak sequence

If an Application Error interrupts the menu

The upstream instructions describe a recovery for this stage:

  1. Leave USB disconnected and restart the Kindle with the power button.
  2. Reach the home screen with the bypass gesture if needed.
  3. Open ;demo again.
  4. Choose Sideload Content → Done, without reconnecting USB or copying the payload again.
  5. Leave the menu and use the Store icon.

A long power-button hold can force a restart if the normal menu is unavailable. Do not replace a recoverable application error with repeated factory resets. WatchThis troubleshooting

5. Apply the WatchThis-specific hotfix

Use the file Update_hotfix_watchthis_custom.bin included in the WatchThis archive. This is a separate step from running the exploit, and it removes demo mode as part of completing this jailbreak.

  1. Reach the home screen, using the gesture if necessary.
  2. Submit ;uzb, reconnect USB and mount the volume.
  3. Copy the hotfix into the root of the Kindle storage, beside documents.
  4. Safely eject and disconnect USB.
  5. Search for ;dsts to open Settings.
  6. Open the settings menu and choose Update Your Kindle.
  7. Confirm and leave the reader undisturbed through the update and reboot.
Kindle USB root/
├── documents/
├── system/
└── Update_hotfix_watchthis_custom.bin

Use this jailbreak’s custom hotfix before following later application-installation steps. Do not substitute a generic hotfix simply because its name looks similar. WatchThis hotfix instructions

6. Install MRPI and KUAL

This legacy route uses MRPI, the MobileRead Package Installer, to install KUAL Booklet. Other jailbreaks may provide a different launcher or package manager already; use their corresponding post-jailbreak instructions.

From NiLuJe’s snapshot thread, obtain:

  • MR Package Installer: the tested archive was kual-mrinstaller-1.7.N-r19303.tar.xz.
  • KUAL coplate: the tested archive was KUAL-c6ac782-20250419.tar.xz.

Extract both on the computer. Copy MRPI’s extensions and mrpackages directories to the Kindle root. Place the two KUAL install packages in mrpackages; leave the uninstall package on the computer:

Kindle USB root/
├── extensions/
│   └── MRInstaller/
└── mrpackages/
    ├── Update_KUALBooklet_c6ac782_install.bin
    └── Update_KUALBooklet_hotfix_c6ac782_install.bin

Retain the complete MRPI directory structure, including its architecture-specific resources. After ejecting and unplugging, enter the following into the Kindle search bar:

;log mrpi

Let installation finish. KUAL should then appear in the Kindle library. The MRPI project documentation describes package placement and installer operation.

7. Choose the correct KOReader package

Download KOReader from its official GitHub releases. The package family matters:

Kindle family / firmwareKOReader package family
Firmware 5.16.3 or newerkindlehf
PW2 and later touchscreen models on older supported firmwarekindlepw2
Kindle 4, Kindle Touch and original Paperwhitekindle
Older keyboard models, including Kindle 2, DX and Kindle 3kindle-legacy

Check the current package-selection notes for exceptions and the release’s actual filenames. For PW2 on 5.12.2.2, the verified asset was:

koreader-kindlepw2-v2026.07.1.zip

For that exact 2026.07.1 release asset, the SHA-256 checksum was:

ea1f575c54492a2c679d128b7f3210fd7d6a87e5f5a1ff1f7a7fe2080ff68f86

Verify it with:

sha256sum koreader-kindlepw2-v2026.07.1.zip

A different release needs its own publisher-supplied checksum.

Copy the application and launch it

Connect and mount the Kindle, then extract the KOReader archive into its root. Merge extensions with the existing directory. The result should include:

Kindle USB root/
├── documents/
├── extensions/
│   ├── MRInstaller/
│   └── koreader/
└── koreader/

Do not put the application inside documents or create an extra nested koreader/koreader directory. Wait for all files to transfer, eject and unplug, then open KUAL → KOReader → Start KOReader.

A successful first launch can display the Quickstart Guide. Test page turning and tap the upper display edge to open the menu. Open an EPUB or PDF from the file browser to check your own reading workflow. DRM-protected books and KFX are unsupported. KOReader’s Kindle installation guide

8. Transfer books and prepare for wireless use

For ordinary USB transfers:

  1. Exit KOReader to the stock Kindle interface.
  2. Connect the computer and copy books into documents, or a folder you choose.
  3. Safely eject the volume and disconnect.
  4. Launch KOReader again.

Switching a Kindle into USB mass-storage mode while KOReader is running is unsupported and can crash the application or the underlying system. A wall charger can supply power while KOReader stays open. Official USB notes

Before turning Wi-Fi back on

Keep Airplane Mode enabled until the jailbreak, hotfix and the appropriate update protection are complete. KOReader’s application updates and Amazon’s firmware updates are different mechanisms.

For the legacy KUAL route, consult the instructions for a compatible OTA blocker, such as hius07’s Rename OTA Binaries extension. Check the current compatibility discussion and follow its installation and verification instructions before enabling Wi-Fi. Blocking Amazon updates can also disable Update Your Kindle; restore that functionality through the blocker before deliberately installing future update packages. Hotfix/update-blocker interaction

Do not treat the old update.bin.tmp.partial directory trick as universal update protection. If you only read USB-loaded books, leaving Wi-Fi off is a straightforward option. The legacy post-jailbreak overview explains the offline precaution.

9. Bonus: Install an RSS Reader plugin

KOReader plugins extend the application itself. They belong inside koreader/plugins/, rather than KUAL’s extensions directory. KOReader’s plugin notes also distinguish third-party additions from the core application.

As an example, omer-faruq’s RSS Reader provides direct feed subscriptions and integrations with RSS services such as FreshRSS and Miniflux. The example below uses a local account, so no aggregator login is needed. Here, “local” describes where subscriptions are configured; fetching new articles still needs a network connection.

9.1. Copy the plugin directory

Exit KOReader before connecting USB. On the computer:

  1. Download the plugin with Code → Download ZIP from its repository, then extract it.
  2. Rename the extracted rssreader.koplugin-main directory to rssreader.koplugin.
  3. Copy that whole directory into koreader/plugins/ on the mounted Kindle.

The plugin’s entry files must sit directly inside its directory:

Kindle USB root/
└── koreader/
    └── plugins/
        └── rssreader.koplugin/
            ├── _meta.lua
            ├── main.lua
            ├── rssreader_configuration.sample.lua
            ├── rssreader_local_defaults.sample.lua
            └── ... other plugin files and subdirectories

Avoid an extra rssreader.koplugin/rssreader.koplugin-main/ layer. Keep all the supporting modules. The repository’s entry point loads several sibling files.

9.2. Configure one local feed account

Inside the copied plugin directory, copy these two templates to their active filenames:

cp rssreader_configuration.sample.lua rssreader_configuration.lua
cp rssreader_local_defaults.sample.lua rssreader_local_defaults.lua

Run those commands from inside rssreader.koplugin, only when creating a new configuration; do not overwrite an existing account setup.

In rssreader_configuration.lua, replace the accounts list with this local account. Keep the surrounding return { ... } table and the other template sections; leave optional extraction services disabled unless you configure them deliberately:

accounts = {
    { name = "My feeds", type = "local", active = true },
},

The fields follow the project’s account-configuration template. You can add server-backed accounts later using its appropriate template.

In rssreader_local_defaults.lua, define a feed for the same account name:

return {
    accounts = {
        ["My feeds"] = {
            feeds = {
                {
                    title = "Example feed",
                    url = "https://example.org/feed.xml",
                },
            },
        },
    },
}

Replace the example URL with a real RSS feed URL. The ["My feeds"] key must match the account’s name exactly. This structure comes from the plugin’s local-feed template; feeds can also be organised into groups.

9.3. Restart, open the plugin and fetch a feed

Eject, disconnect and start KOReader again so it loads the new plugin. Open RSS Reader in the main menu’s Search section, then select My feeds and your configured feed. The plugin README documents that menu location and its reading actions.

After completing update protection, connect Wi-Fi to retrieve articles. Save or download the articles you want before returning to Airplane Mode; a configured feed URL by itself is not an offline copy.

If the plugin does not appear, check the directory nesting and complete file set first. If accounts are missing, check the active filenames, Lua syntax and matching account names. Consult the plugin’s current documentation and KOReader logs for compatibility errors rather than assuming that copying succeeded means it loaded.

9.4. Updating and removing plugins

Back up your active configuration before replacing plugin files with a newer revision. Exit KOReader before every USB change. To remove this plugin, move rssreader.koplugin out of koreader/plugins and restart KOReader; retain a copy of the configuration if you want to restore the setup later.

Third-party plugins run code on the reader. Install them from a source you trust, and keep private credentials out of shared configuration examples. The RSS section documents the upstream configuration format; compatibility and live feed retrieval still need checking on the particular KOReader/plugin versions you choose.

Sources

The PW2 installation route was verified with KOReader 2026.07.1. The optional RSS chapter was checked against the upstream documentation and templates; it is not a claim of a completed RSS runtime test on that reader.