## using your Kindle as an e-ink monitor demo: https://x.com/adtac_/status/1820127470613622950 (3.5 fps, Paperwhite 3) ### step 1: jailbreak your Kindle [mobileread.com](https://www.mobileread.com/forums) is your best resource here, follow the instructions from [the LanguageBreak thread](https://www.mobileread.com/forums/showthread.php?t=356872) I didn't really follow the LanguageBreak instructions because I didn't care about most of the features + I was curious to do it myself, but the LanguageBreak github repo was invaluable for debugging it doesn't matter how you jailbreak your device as long as you get to a root shell somehow ### step 2: listener server on the Kindle I wrote a Go program to receive files on port 8000 and then invoke `eips`, which is Kindle's built-in utility to draw images on the screen for example, if the Go program received a JPG file and saved it under /tmp/img.jpg, the following command would draw the image with a partial update (full update looks awful): ```sh eips -g /tmp/img.jpg -w gc16 -x 128 -y 0 ``` read the [eips wiki](https://wiki.mobileread.com/wiki/Eips) for details on what the flags mean you may want to clear the screen with a `eips -c` before the first frame unfortunately I lost the Go source code, but it was pretty simple, like under 30 lines ### step 3: screencapture + imagemagick I wrote a script to use `screencapture` on macOS to repeatedly capture the screen into a png file, which is then converted into a shape, size and color the Kindle likes using imagemagick, and then transferred over usbnet using netcat ```sh /usr/sbin/screencapture -C -x /tmp/orig.png convert /tmp/orig.png -rotate 270 -resize '810x1448!' -type GrayScale -depth 8 -colors 256 /tmp/gray.jpg cat /tmp/gray.jpg | nc -w 0 192.168.15.244 8000 ``` change the resolution to match your device and port to match the listener server ### step 4: ??? I hacked this together last night for fun and obviously there's a lot of room for improvement here, both in terms of performance and usability it's super wasteful to send a full jpeg file for each frame when the delta between consecutive frames is mostly going to be empty and very compressible (like when you're using a text editor) without reinventing codecs like h.264 and protocols like vnc, it should be possible to quickly improve this with just the tools we already have have fun! ### other useful resources https://www.sixfoisneuf.fr/posts/kindle-hacking-deeper-dive-internals/ https://github.com/NiLuJe/KindleTool https://www.mobileread.com/forums/showthread.php?t=356766 - the vulnerability that makes LanguageBreak possible