Home / Devices / Kindle Paperwhite 2

Kindle Paperwhite 2

The first one. Jailbroken with WinterBreak2, a LuaJIT client on the Kindle, about 200 ms from tap to app.

Status
verified
Made by
Amazon, 2013
Screen
e-ink
Input
touch
Method
jailbreak
Computers
macOS, Linux
Tap to action
200 ms
Updated
2026-11-09
Read the recipe

The sixth generation Paperwhite, Wi-Fi only. This project started with one: it sits next to a monitor and runs a Mac mini and an Ubuntu PC, switching between them with two launchers in the library.

What worked

Firmware 5.12.2.1.1 (Amazon only offers 5.12.2.2 for this model now)
Jailbreak WinterBreak2, following kindlemodding.org (October 2026). It blocks over-the-air updates as part of the process.
Shell KOReader’s kindlepw2 build: its dropbear on port 2222, key-only, started from a launcher in the library
Client deck.sh (pauses and restores the Kindle UI) and deck.lua (the loop) from reference/kindle/, on KOReader’s LuaJIT with FFI
Drawing The jailbreak’s FBInk; KOReader’s build has no image support
Screen 758 x 1024, 8 bits per pixel, 212 dpi
Touch /dev/input/event1 (cyttsp4_mt), multitouch type B, X 0 to 757 and Y 0 to 1023, 1:1 with pixels
Speed From a tap to the Mac’s answer, 70 to 209 ms in the Kindle’s log (median 139 ms over 21 taps). Then on the Mac, apps open in 89 to 362 ms, play/pause in Spotify takes 155 to 408 ms, and key presses 207 to 282 ms, or up to 1.7 s while dictation is recording.

Gotchas

  • Stopping only the window manager (awesome) isn’t enough: X clients repaint over the panel. Stop Xorg too, and continue both on exit.
  • Reset preventScreenSaver to 0 when the panel closes, or the power button stops putting the Kindle to sleep.
  • The touch controller sometimes splits one tap into two contacts 60 to 150 ms apart. A half-second debounce per button fixes it.
  • The Kindle drops ping. Use TCP to check that it’s alive.
  • 256 MB of RAM with about 80 free, and kernel 3.0.35. If you compile Go for it, use Go 1.23 or older.
  • UDP discovery works when the Kindle sends to the subnet’s broadcast address (like 192.168.1.255), not to 255.255.255.255.
  • Right after waking up, the Wi-Fi takes a moment: the first try at the computer’s address can fail. UDP discovery found it on its second try.
  • On the Mac, key presses go through a small helper app that holds the Accessibility permission. Python launched by launchd never got it to stick.

Contributors: @enzovalley9. Something wrong or missing? Edit this page on GitHub.

Decks built on this

The Kindle's e-ink screen with a grid of big buttons, among them Brave, Claude, Codex, WhatsApp, Spotify, Play/Pause, Screenshot and Exit.
A Mac mini's new control panelKindle Paperwhite 2 (2013) driving macOS. By Enzo Valley.