Datetimes are some of the hardest data to work on. Formats are incompatible, poorly documented, and inconsistent across systems and programming languages. Fortunately, data serialization to the rescue! Frameworks like Thrift, Protocol Buffers, JSON-RPC, Fudge Messaging, MessagePack, Avro, and Etch generalize your data, so that an int is an int is an int, across your whole enterprise.
None of these frameworks have a datetime data type. #epicfail
If you ever wanted to do this, rooting is for you. This exhaustive tutorial documents the precise instructions for rooting the old e-Ink Kindles, such as Kindle Keyboard 3. A MOBI version of this tutorial is available for download, in case your Internet connection cuts out.
- Kindle Keyboard v3 or lower. Kindle Fire and other devices have their own root tutorials.
- Kindle battery should be at least 1/2 charged, for applying updates.
- A WiFi access point, such as a home router, for connecting to the SSH server that will run on the Kindle.
- Desktop SSH client such as OpenSSH or PuTTY.
- A Python installation, for running the root password recovery script.
- Some familiarity with running command line instructions
- A reliable Internet connection for Googling troubleshooting articles
- Backing up your ebooks, on your desktop computer, online, or elsewhere; in case your Kindle is bricked.
Step 1: Jailbreaking
Jailbreaking allows custom utilities to be installed on the Kindle, running as if they were officially supported background services.
- Download and extract the zipped jailbreak files.
- Write down your Kindle serial number and firmware number, available in Menu -> Settings -> Device Info.
- Match your serial number to your Kindle model name and version.
- Match your firmware version to an update… .bin file.
- Connect your Kindle to your desktop computer with a micro USB to USB cable.
- Drag & drop the update… .bin file onto the Kindle drive. The file should be placed in the main drive directory, not inside a folder.
- Apply the update with Menu -> Settings -> Update Your Kindle.
- The device will reboot and attempt to install the jailbreak update. If the update fails, double-check your firmware version and consider using a different update… .bin file.
- If your Kindle ever receives an official Amazon firmware update, you will need to repeat the jailbreaking process all over again.
Step 2: Install Kite
Kite is an application launcher that creates shortcuts on the Kindle home screen, used in Step 4: Install a Home Screen App (“Kindlet”).
- Apply the kite update just as you applied the jailbreak update.
- Kite will create home screen launchers for any shell scripts placed in YOURKINDLEDEVICE/kite/. Launchers will appear as ordinary PDF books, but kite will ensure that they actually open as apps.
- Shell scripts should be ASCII-encoded, with Unix (LF) line endings, have executable (chmod a+x somescript.sh) and prefaced with a standard shebang (#!/bin/sh).
Step 3: Setup the SSH server
An SSH server allows you to run commands and transfer files remotely onto your Kindle from another computer.
The usbnet update hack enables a secret debugging mode that treats the Search bar as a debugging console for entering commands. A brief ~usbNetwork command starts a Dropbear SSH server running on the Kindle, allowing for remote root shells. While the search bar allows root commands to be run with ~exec, typing potentially dangerous commands on an e-Ink screen is less than ideal, so we use SSH.
Note that the debugging console is mutually exclusive with the Kindle operating as a removable USB drive; you can’t do both at the same time.
- Apply a usbnetwork update just as you applied the jailbreak update.
- When the device finishes rebooting, open YOURKINDLEDEVICE/usbnet/etc/config for editing with a text editor.
- Replace the line K3_WIFI=”false” with K3_WIFI=”true”. This enables the SSH server over WiFi, much easier to use than SSH over USB. Save the changes to the config file.
- Reboot the Kindle for the changes to take effect.
Once the SSH server is configured this way, it can be enabled and disabled at will:
Enabling the SSH Server
- Connect the Kindle to the same WiFi network as the SSH client will be using.
- Write down the Kindle’s IP address. The IP Address is listed in the secret 711 menu, accessed by Settings -> 711 (or Alt+U Alt+Q Alt+Q). The IP address is on the second page (Next Page Button).
- You may want to test the network connection between your desktop computer and your Kindle. The Kindle blocks ping requests, but it does respond normally to arping. For example, in Mac OS X:
$ brew install arping
$ sudo arping YOUR.KINDLE.IP.HERE
60 bytes from 90:a4:de:da:18:fb (192.168.1.74): index=0 time=65.683 msec
60 bytes from 90:a4:de:da:18:fb (192.168.1.74): index=1 time=89.113 msec
60 bytes from 90:a4:de:da:18:fb (192.168.1.74): index=2 time=118.289 msec
- On the Kindle, turn on the special debug mode by typing ;debugOn in the Search box and pressing the Enter key. To confirm that everything is working at this point, you can type ~help (or `help on Kindle 2 and below) to see a list of debugging commands. Assume Kindle 2’s always use backtick (`) instead of tilde (~).
- Switch from USB drive mode to USB debug mode by typing ~usbNetwork and pressing Enter.
- Determine your root password via kindle-root-password.py. Example:
$ python kindle-root-password.py A0A0A0A0B0B0B0B0C0C0
- On your desktop computer, connect to the Kindle SSH server.
$ ssh root@YOUR.KINDLE.IP.HERE
Welcome to Kindle!
# N O T I C E * N O T I C E * N O T I C E #
Rootfs is mounted read-only. Invoke mntroot rw to
switch back to a writable rootfs.
- Enter mntroot rw to enable read-write support.
- Use scp or pscp to copy over apps. Kindle programs are typically installed in /mnt/us.
Disabling the SSH Server
- Entering ~usbNetwork in the Kindle Search bar will toggle the SSH server back off, as well as restoring normal USB file transfer ability.
- Enter ;debugOff to turn off the debugging commands for now.
Step 4: Install a Home Screen App (“Kindlet”)
Once kite and usbnet/ssh are setup, installing a new application and configuring a home screen shortcut are as easy as editing shell script files.
- For example, use scp to copy fbgnuboy into /mnt/us/.
- Copy a rom such as pokemon-yellow.gb (you’re on your own) to /mnt/us/.
- Create a shell script pokemon-yellow.sh with executable permissions and either drag & drop into the kite/ folder (remember to toggle ~usbNetwork back off to restore USB file transfer).
/usr/bin/killall -stop cvm
/usr/bin/killall -cont cvm
- kite will automatically create a dummy PDF book called pokemon-yellow.sh.pdf on the home screen. When opened, the “book” automatically runs the shell script, starting Pokemon Yellow.
Currently, there is no sound support in the emulator. But it’s still pretty amazing that this is even possible. Feel free to reply to the MobileRead Game Boy forum thread if you have any questions or comments.
Posted in Uncategorized
Tagged 3, 3.4, 3g, doc, docs, firmware, guide, jailbreak, jailbreaking, kindle, root, rooting, tutorial, us, usa
Command line editors such as nano and vim may have trouble opening properly in Windows, either showing spurious text or quitting with a message like “Error opening terminal: dumb.”
Try setting %TERM% to “cygwin”.
If clicking on search results often yields spurious results, your computer is likely infected with a virus.
- Verifying that your DNS server is not set to a manual address for a fake DNS server.
- Verifying that your browser is not using a proxy address for a fake proxy server.
- Verifying that your nonplug-and-play device drivers does not include TDSServ.sys.
- Scanning your computer for infections using Malware Bytes.
- Restoring your master boot record using fixmbr (found on Windows installation CDs, as well as the third-party ms-sys package for Debian/Ubuntu).
If all of the above fail to remove the virus, try ComboFix. The user interface isn’t great; it restarts your computer three times without even a warning, but it did fix the problem for me.
If you’re using something like Windows 7 x64 Professional on a MacBook Pro, and you’re having audio problems, you’ll want to update your Boot Camp drivers.
- Sound only works 50% of the time, for any application (e.g. YouTube)
- Mic muted 100% of the time (e.g. Skype)
- Have to reinstall sound driver every couple of reboots
First update to Boot Camp 3.0. You’ll have to pirate it; Apple doesn’t even provide it as a download, though it officially comes with every Snow Leopard installation disc. You also have to update incrementally (v2.0 -> v3.0 -> v3.1 -> v3.2 -> v3.3), because the Apple installers don’t work that well.
Continue updating to version 3.1. Install Skype and do an echo test. If that doesn’t fix your audio problems, then update to 3.2, or even 3.3.
Posted in Uncategorized
Tagged 64, 7, apple, audio, bit, boot, bootcamp, camp, driver, drivers, fix, help, macbook, macbookpro, mb, mbp, mute, muted, no, pro, professional, sound, update, updates, win, windows, x64
Control Panel -> Hardware and Sound -> Sound -> Speakers -> Properties -> Advanced -> Uncheck “Allow applications to take exclusive control if this device”