3.5 fps, Paperwhite 3
@adtac_
mobileread.com is your best resource here, follow the instructions from the LanguageBreak thread
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
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):
eips -g /tmp/img.jpg -w gc16 -x 128 -y 0
read the eips wiki 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
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
/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
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!
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
I experimented with bsdiff deltas of PNGs and PBM/PGM monochrome and grayscale images in baskerville/plato#316 and found that it wasn't really faster or more bandwidth-efficient than compressed full frames. It may still be better for decoding speed on a Kobo or Kindle. I ultimately moved to full JPEG XL frames for best compression over MQTT, and I always use lossless because it seems faster to decode, but still pretty slow overall.