Those who have spoken to me in the past few days would know I spent around five days of my life jailbreaking and homebrewing a Kindle recently. Those same people (except Ayden who thought it was cool) probably thought this was a really stupid and pointless use of my time. They were right, but I don't regret doing it.
And before we begin: no, Ronald DeSantis is not going to come after me for doing some stupid and needless shit like flashing a custom BIOS to my Kindle Fire.
First and foremost: I was bored.
More seriously though, it began the same way most of the things I do begin; with an easily solvable issue. I wanted to read a PDF of a book. Anyone who has had a conversation with me about books for an extended period of time probably knows that I can't stand reading books at night. I love the feeling of a page, the weight of a book, and; most imortantly; the ability to read at night without blinding myself. But, for the first time, the book I wanted to read was not commercially available in english in physical. It is a fan translation of a book series that has been out of print in its original language for a while. The only company that ever attempted to officially translate it imploded before ever releasing a single volume. So physical was not an option.
That left me with only the PDF and EPUB files. I deleted the EPUB files immediately because EPUB files are dumb. At first I started off reading the PDF on my laptop. I realized this sucked rather quickly, so I stopped reading. I spent some time thinking about a way to read these books that didn't suck, and I finally remembered an old fancy of mine. An e-reader, something that could (kinda) solve two of my three issues with not reading books physically. The screen was not backlit, so reading at night with a lamp was no problem; and some e-readers are heavy enough to have the prefered heft to them on their own, while others could simply have a weight shoved in whatever case gets put on them. So I headed to Facebook Marketplace and grabbed myself a cheap, non-backlit kindle.
Immediately upon checking this kindle, I noticed something. Whenever the device was turned off, the screen wouldn't just go blank. Instead the screen would be flashed with an image pulled from a randomized order of screen savers stored in the Kindle. Naturally, I assumed, "Oh, okay. I'll just change the screensaver when I get home." Later, I looked through the settings, and to my surprise, there was no option to change the screen saver. I looked it up, and sure enough, it just wasn't possible. This was really stupid, as there was OBVIOUSLY just a hidden folder of some kind storing these screen savers. I was just about to give up when suddenly, I found a single forum post on a forum I had never seen before.
The post was titled "Kindle screen savers hack" and with that, I was sold. I immediately looked up how to jailbreak my model only to find that there was a way that was only posted about a year ago. Sadly, most of the popular hacks had not been "officially" ported, but there was a small list of ones that were tested to work anyway, and one of them was the screensavers hack. I downloaded the necessary files and didn't look back.
Five days later, here I am. I have a jailbroken Kindle running a brute forced screen saver hack. I have no idea why, but the jailbreak was a pain in the ass, and it didn't even fully work correctly. I followed the instructions over and over, and I'm lucky I didn't brick the damn thing, but eventually, it worked. The next issue I had was the screen savers themselves. They have to be in one of three very specific formats to work, and which format you choose depends on the machine. However, because my Kindle was not "officially" supported, I was not able to use the help document to figure out to use. So I ended up converting the same image to all three formats (in retrospect it would have been smarter to use three different images, but whatever) and uploading all three to check which one didn't fuck everything up. To my surprise, none of them worked. I then read over the documentation one more time, and found that the images also couldn't have embedded ICC profiles. So I researched how to strip images of their ICC profiles, found a cli tool that worked, and painstakingly stripped every one of the three images. I reuploaded them again, and I got a screensaver that worked, but was too large. So, I got rid of the largest picture and tried again. I did this over until I had one file left, ande that one was the correct file format. A png8 image, at exactly 600x800 pixels, with no ICC profile, and some other specifications I already forgot.
So now, armed with a Kindle sporting a picture of former president Ronald Reagan as a screen saver, surely I could read right?
well...
I uploaded those PDFs from earlier and... they worked. They were formatted well, they were readable, it was great. Except that the Kindle just refused to show the covers. I looked into it and yeah, Kindles do not show covers for PDF books. So I pulled those EPUB files from earlier out of the trash, dusted them off, and sent them to the Kindle. Kindles can't read EPUB files. I converted them to a readable format and reuploaded them. No cover. I checked the original EPUB files. They didn't have a cover embedded. So, I downloaded a tool for managing e-books, added covers (and metadata while I was at it because the translators forgot that too), and converted to the Kindle friendly format again. No covers. I still, even now do not know why this happened. The only reason I stopped trying to make it work was beacause I looked at the original EPUB files and they were horribly formatted, so I just decided the PDF was a better option. I think it was probably a "works on my machine" kind of situation, assuming that is even possible for EPUB files, and I guess that's what you get for expecting a bunch of amateur nerds to do a good job at translating and formatting book files.
All of this work was a really fun experience. This was the first time I've set up and used USB networking tools on a device, and it was a good way to learn. I'd still like to set up ssh to this little fucker, just because I think it would be cool. I think the main thing I've learned from a lot of this though, is to check my files before uploading them. I hope this inspired someobody reading to do some dumbass project just for the hell of it though, and I really hope that project wasn't this one.
See you next post // Forks signing off.