Rather surprisingly, it just started working! All you need to have is a valid keystore at /var/local/java/keystore/developer.keystore with at least three keys in it. The aliases of the three keys must start with "dk", "di", and "dn" followed by some other string to distinguish one set of keys from another. You can have multiple sets of developer keys in the same keystore as long as they have unique aliases.
The prefixes indicate "kindle", "kindleinteractive", and "kindlenetwork" privileges respectively. You simply sign the jar with each key in order to grant each privilege group. There is no checking that the developer keys are signed as I erroneously speculated in my last post. However, modifying the policy files should allow one to grant more and less privileges to kindlets (e.g. to call external programs etc).
The script here will create a suitable developer keystore.
The script here will sign a jar with all three keys given a jar and a keystore.
And the source to my demo kindlet is here.
The jars you want from the device to develop against are:
- /opt/amazon/ebook/lib/Kindlet-1.1.jar
- /opt/amazon/ebook/sdk/lib/*
Finally, as a demo, the zip here contains my signed kindlet and a keystore made with the above scripts. You will need to have rooted your kindle (see here) and have access to a shell prompt to install the developer key. I’m in the middle of developing a proper app for the kindle, and I’ll have an easier method to install the key when I release that.
To install:
- Copy the developer.keystore to /var/local/java/keystore
- Copy ktest.azw2 to /mnt/us/documents (do this by mounting as a USB storage device so the rescan of the documents folder is triggered properly).
- Wait for it to show up in the Home screen.
- Click!