View Single Post
Old 10-31-2012, 04:52 PM   #1
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 4,908
Karma: 4492229
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW & PW2
Smile Kindle Touch/PaperWhite ScreenSavers Hack

Hi

You'll find here the K5 (Touch/PaperWhite [1 & 2]) port of the ScreenSavers hack, along with a Python 2.7.6 package .

What Does It Do?:

This will allow you to customize the screensavers (or sleep screens) used by your Kindle, replacing them either with your choice of images, the cover of the last book you opened or a simple unobtrusive overlay .

Latest Updates (04/11/2014):

ScreenSavers v0.17.N (Updated binaries), Python v0.10.N (Updated binaries).

IMPORTANT NOTE REGARDING UPDATES:
Spoiler:

Here are general update instructions for these hacks:
  • No need to run the Update_*_uninstall.bin updates, ever.
  • You simply have to apply the latest Update_*_install.bin updates, one by one.


INSTALL:

ScreenSavers:
Spoiler:


Note for Kindle Special Offers Users:

This doesn't, and won't ever, help you bypass something you agreed to (screensaver ads), so please stop asking.

If you still have questions, please read this post.

That said, you can unsubscribe to Special Offers at any point of the process with no ill effect.
Do note that the "Swipe to Unlock" behavior is a particularity of the Special Offers screensavers that this hack will not replicate (this is in particular good to know if you happen to own a magnetic cover, since those severely limit the effective amount of time you'll actually see a screensaver).

First of all, make sure your device is JailBroken.

If you intend to use the cover feature:

It will use the cover of the last book opened as the current screensaver.
You'll need to first install the Python package attached to this post.
Download the kindle-python-0.10.N.zip file, and unpack it. In here, you'll find a couple of .bin files, and a couple of directories (src & build).

First, upload the appropriate install .bin file for your device (Update_python_0.10.N_install_pw2.bin for a PW2, the other one for a Touch or a PW1) to the root directory of your Kindle.

Now, eject & unplug your Kindle, and go to [HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle. It should take a couple dozen of seconds.

Download the attached kindle-linkss-0.17.N.zip file, and unpack it. In here, you'll find a couple of .bin files, and a couple of directories (src & build).

First, upload the appropriate install .bin file for your device (Update_linkss_0.17.N_install_pw2.bin for a PW2, the other one for a Touch or a PW1) to the root directory of your Kindle.

Now, eject & unplug your Kindle, and go to [HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle. It should take a couple dozen of seconds.

Once your device has finished rebooting, check that everything went fine by putting your Kindle to sleep: on a fresh install, you should now see a special screensaver to confirm that the installation was successful . Carry on if you do, otherwise, check the FAQ at the bottom of this message.

You now have a couple of choices to make:

Do you want to use the cover of the last book opened as a screensaver? Make sure you've installed the Python package first, then just drop a blank file named cover in the linkss folder. Restart your Kindle ([HOME] -> [MENU] > Settings -> [MENU] > Restart), and you're done .

Dou you prefer to just show the last thing that was on screen, with an overlay indicating when the device's alseep? Just drop a blank file named last in the linkss folder. Restart your Kindle ([HOME] -> [MENU] > Settings -> [MENU] > Restart), and you're done .

A couple of things to note on these two modes: the cover mode will always take precedence (so, yeah, enabling both last & cover really doesn't make much sense).
The autoreboot feature is probably useless to you in these two modes, so you should also delete the autoreboot file in the linkss folder if you still have autoreboot enabled.

If you simply want to use a set of custom screensavers, like usual, keep on reading .

To change your custom screensavers, plug your Kindle to your computer via USB, and upload them to the linkss/screensavers folder that has been created by the hack. You'll have to restart your Kindle in order to take your new screensavers into account and prevent the framework from going crazy. To that effect, you can either use the framework restart KUAL button, the autoreboot feature, or simply do a full restart of your Kindle.

A small reminder of the file format & size you have to use:
One the Touch: PNG files, 600x800. Grayscale if possible, but color works too (you can even play with an alpha channel if you like).
One the PaperWhite: PNG files, 758x1024. Grayscale if possible, but color works too (you can even play with an alpha channel if you like).
You NEED to follow these directives: non-PNG files will be discarded by the hack, and broken files or files in the wrong resolution will confuse the framework and trigger weird issues.

To use the autoreboot feature: Once it's enabled & active, just drop a blank file named reboot in the linkss folder (by copying and renaming the already existing "autoreboot" blank file, for example), and your Kindle will do a quick reboot 10s after you've unplugged it (there's minimal visual feedback during that time, just wait until your list of books reappear)!

If you want to randomize the sequence in which your screensavers will be shown, create a blank file named random in the linkss folder (right alongside the "auto" file), and then do a full restart of your Kindle! This will shuffle your screensavers around on each boot.

In addition to this, you can also shuffle your screensavers each time a framework restart is triggered through the autoreboot feature. Be advised that this may significantly (a few dozen of seconds) delay the framework restart procedure, depending on the number of screensavers you're using. To enable this feature, create a blank file named shuffle in the linkss folder (right alongside the "auto" file), and then restart your Kindle (either through the framework restart KUAL button, the autoreboot feature, or a full restart).

Since v0.8.N: All of these settings are now available in a friendly KUAL menu . Running at least KUAL 2.1 is recommended for the best user experience. On the PW2, you'll need KUAL 2.3 (barring that, a recent enough snapshot).


NOTES & TROUBLESHOOTING:
Spoiler:

Don't try to force a custom update by rebooting your Kindle. You should always install custom hacks via the Settings page. If the 'Update Your Kindle' link is greyed out, you did something wrong, or you have an unknown Kindle model (in which case, contact me!). Don't try to force an install by rebooting. It'll, at best, fail.

If the cover mode seems to be behaving strangely, make sure the date and time is properly set on your device (check that, when sorting your Home screen by 'Recent', you get consistent & accurate results) and that the books you're using actually have a cover properly tagged & embedded. One other thing to keep in mind is that the switch is not done immediately on the opening of a book, but only a few seconds later, and that, when opening a book for the first time, the parsing & processing of the cover can take a noticeable amount of time (usually between 30s and a minute, depending on the CPU load).

In the classic 'image cycle' mode, if your Kindle simply goes to sleep on the last thing shown on the screen (the light going dark on the PW is a good indication that the device is asleep), it most likely means one of your custom images is broken (wrong format, weird encoding issue, weird size issue, or any number of fun & interesting ways to make the Kindle unhappy). Once you've identified the file(s) causing the issue, remove them from the screensaver folder, and restart your device.

If the cover processing seems to take an inordinate amount of time (>30s), try to go back to the Home screen for a while after opening a new book, and/or consider enabling the lowmem mode.

Another thing: every time I mention rebooting or restarting your device, you need to do it with the device completely *unplugged*. It may sound weird, but it affects a number of things in weird and interesting ways .


FAQs:
Spoiler:

Here's list of the most common issues & their cause, as a kind of self-diagnostic you can do yourself to see if you missed something .

* In cycle mode (ie. not cover or last):

Q. Got the SO screensavers?
A. Tough luck, it's an SO device, unsubscribe (See the 'Manage Your Devices' section in the 'Manage Your Kindle' page @ Amazon) .

Q. Got the default screensavers?
A. The install failed (which should be easy to catch during the install process itself), or the hack disabled itself for some reason (that should trigger a warning at the bottom of the screen, and in cycle mode, that's usually because the screensavers folder is empty, or was emptied by the hack because none of the stuff in it remotely looked like a valid image file (on FW 5.x, that means a png file, lowercase).

If you think you did things correctly, and yet still get the default screensavers, check the fourth answer below: make sure you don't boot your device while it's plugged to something.

Q. Get the default 'Hi, I'm the screensavers hack' screen?
A. There are no custom files in your linkss/screensavers folder .

Q. Get the last thing shown on screen (or a blank screen on FW 2/3/4) in cycle mode, either straight-away or after a few working custom images?
A. One of the files in your screensaver pool upset the Kindle firmware . That rarely happens on FW 2/3/4 (you're much more likely to see a corrupted image, rather than breaking the whole thing, which is what happens on FW 5.x: once it fails in this way, only a reboot will make the framework try again, even if the next file in the cycle is okay, the framework just appears to give up on screensavers), but on FW 5.x, that means checking the size, format, resolution of each and every file in your pool, to see if it matches the device, and really is a PNG8 (optionally properly dithered down to 16 colors).

Another likely way to trigger that issue is to boot (which also means restart, which is what happens right at the end of an update on FW 5.x) while the device is plugged to something (especially a computer: a wall charger should be fine, but just in case…) . I'm guessing this also impacts the last mode, but the cover mode should be fine (although you're still exposing yourself to all the vanilla things that can go wrong when you boot a Kindle like this ).
TL;DR: Unplug your device.

* Optionally, in shuffled cycle mode, if something specifically breaks after an autoreboot, it means I messed up .

* In last mode:

It's so simple that I can't think of anything wrong ever happening ^^.

* In cover mode:

Q. Get the default 'Hi, I'm the ScreenSavers Hack, I'm in cover mode'?
A. Either you didn't wait long enough after opening a new book before letting the Kindle sleep, or the book format isn't supported (PDF, Topaz (+ dictionaries on FW 5.x)), or the book doesn't have a cover properly flagged in its metadata (might happen with some weird, old prc files, haven't really checked), in which case a warning is triggered on screen (in verbose mode).

Q. Get the cover of the next to last book you opened, not the last?
A. Same answer as before . (On FW 2/3/4, that might still happen for the first sleep cycle after a book switch, there's an (ugly) workaround available in the settings for that).

Q. Get the cover of a seemingly random book?
A. Check that the date/time on your device is sane .

Q. I want truly dynamic screensavers, even when the device is asleep!
A. Then take a look at this !



ChangeLog:
Spoiler:
  • ScreenSavers:
    • v0.1.N:
      • First release .
    • v0.2.N:
      • Some more safety checks to disable the hack in case we can't use any of the screensavers provided by the user
      • Drop a specific file to help third-party tools ID the Kindle model
      • Enable the autoreboot feature by default
      • Implement a new setting: use the cover of the last book opened as the screensaver! (Drop a blank cover file in the linkss folder to enable this mode)
      • Implement a new setting: use the last page/menu shown as the screensaver (with a minimal overlay indicating that the device is asleep). (Drop a blank last file in the linkss folder to enable this mode)
    • v0.3.N:
      • Fix a few minor bugs
      • Allow users to choose not to conserve aspect ratio when in cover mode (Drop a blank stretch file in the linkss folder)
    • v0.4.N:
      • Resync our trimmed down Mobi Unpack stuff with v0.59
    • v0.5.N:
      • Updated binaries (updated tc, coreutils)
    • v0.6.N:
      • Tweak the processing settings in cover mode to generate higher quality images (sharper upscaling algo, better dithering).
    • v0.7.N:
      • Tweak the processing settings in cover mode to generate smaller files.
      • Implement a new cover mode setting: black letterboxing borders. (Drop a blank black file in the linkss folder to enable this mode)
      • Implement a new cover mode setting: a small banner with your personal infos at the bottom of the screen. (Drop a blank pinfo file in the linkss folder to enable this mode)
      • Implement a new cover mode setting: automatically crop the borders, to end up with a full screen cover. (Drop a blank autocrop file in the linkss folder to enable this mode)
      • Experimental support for overriding FW 5.3's custom screensavers (Drop a blank beta file in the linkss folder)
      • Updated binaries (updated tc, coreutils)
    • v0.8.N:
      • New KUAL extension (at the time of release, requires the development version of KUAL)
      • Tweaked the processing settings a bit to play nice with the new ImageMagick build. Possibly a bit faster.
      • Updated binaries (updated tc, everything)
    • v0.9.N:
      • Made the default & fallback image in cover mode a bit more helpful than a blank screen .
    • v0.10.N:
      • Tweaked the KUAL menu a bit.
      • Optimized cover & last mode behavior, IO wise.
    • v0.11.N:
      • Updated binaries (updated tc)
      • Tweaked how the cover images are dithered down (now properly use the eInk palette of 16 shades of grey).
      • Reduced memory consumption of the cover processing, now less likely to blow up the framework on PW devices .
      • In the same spirit, added more settings to control the dithering process (none/FloydSteinberg/Riemersma).
    • v0.12.N:
      • Disable autoreboot by default (if you're updating, consider disabling it yourself). Use the new KUAL button instead!
      • Updated binaries (updated tc)
    • v0.13.N:
      • Tweak the cover extraction process to try harder to pull something out of some mobi/prc files (without the CoverOffset EXTH metadata)
      • Slightly prettier verbose mode
      • Updated binaries (updated tc)
    • v0.14.N:
      • Fix a tiny part of the cover extraction fixes from v0.13.N… -_-"
      • Add a KUAL button to preview the current active cover in cover mode (in the Tools submenu)
    • v0.15.N:
      • Updated binaries (updated tc)
    • v0.16.N:
      • PW2 support.
      • Updated binaries (updated tc, im)
    • v0.17.N:
      • Updated binaries (updated tc, im)
      • Optionally handle periodicals in cover mode
      • Better pinfo handling (thanks to dsmid)
  • Python:
    • v0.1.N:
      • First release .
    • v0.2.N:
      • Updated binaries (updated tc)
    • v0.3.N:
      • Updated binaries (updated tc)
    • v0.4.N:
      • Updated binaries (updated tc, update to Python 2.7.5)
    • v0.5.N:
      • Updated binaries (updated tc, updated Python 2.7.5 patchset to fix potential issues with the re module)
    • v0.6.N:
      • Updated binaries (updated tc, fixed ssl & pyexpat modules)
    • v0.7.N:
      • Updated binaries (updated tc)
    • v0.8.N:
      • Updated binaries (updated tc)
    • v0.9.N:
      • PW2 support.
      • Updated binaries (updated tc, update to Python 2.7.6)
    • v0.10.N:
      • Updated binaries (updated tc)
  • Doc: $Id: SS_MR_THREAD 10706 2014-07-11 03:05:37Z NiLuJe $
Attached Files
File Type: zip kindle-python-0.10.N.zip (15.84 MB, 4327 views)
File Type: zip kindle-linkss-0.17.N.zip (4.62 MB, 4577 views)

Last edited by NiLuJe; 07-10-2014 at 11:02 PM. Reason: Python 0.10.N, ScreenSavers 0.17.N :)
NiLuJe is offline   Reply With Quote