Skip to content

Instantly share code, notes, and snippets.

@estysdesu
Last active September 21, 2024 13:11
Show Gist options
  • Save estysdesu/c90478aac75b732820be6720254aeda7 to your computer and use it in GitHub Desktop.
Save estysdesu/c90478aac75b732820be6720254aeda7 to your computer and use it in GitHub Desktop.
[Kindle 4: Jailbreak and SSH] #kindle #ssh #jailbreak

Following this guide: https://wiki.mobileread.com/wiki/Kindle4NTHacking#SSH.
Using Kindle 4.1 and macOS 10.14.

  1. Connect the Kindle. It should be recognized as a USB Mass Storage Device.
  2. Download the jailbreak archive
  3. Copy data.tar.gz, ENABLE_DIAGS, and diagnostic_logs to the Kindle folder.
  4. Restart the Kindle into Diagnostics Mode.
  5. Reboot the Kindle from the Diagnostics Mode. Reboot screen should show jailbroken screensaver.
  1. Download the USBNetwork archive needed to enable SSH over network access.
  2. Edit the usbnet/etc/config file if needed. I changed:
    1. K3_WIFI="true"
    2. USE_OPENSSH="true"
    3. (Optional) K3_WIFI_SSHD_ONLY="true" (only after first time connecting via SSH and setting up auto-enabled USBNetwork)
  3. (Optional) rename usbnet/DISABLED_auto to usbnet/auto to enable USBNetwork Utility start on device startup.
  4. Enable the USBNetwork Utility from the Kindle (enable the keyboard if needed); type:
    1. ;debugOn
    2. ~usbNetwork
    3. ;debugOff
  5. Connect the Kindle again.
  6. Manually configure the device IPv4:
    • IP Address: 192.168.15.201
    • Subnet: 255.255.255.0
  7. Obtain the Kindle root user password:
  8. SSH into the Kindle: ssh [email protected] and enter password from previous step
@Inc0n
Copy link

Inc0n commented Feb 1, 2022

https://phoenixnap.com/kb/ssh-permission-denied-publickey
It might have something to do with the permission of your authorized_keys

@cyrillkuettel
Copy link

USB device name

Just a heads up for anyone in the future: Sometimes, especially on newer systems, the device name is a weird name like enxee4900000000 (instead of usb0). I think this is because of PredictableNetworkInterfaceNames.

Configure Network interface in Ubuntu

For anyone wondering what "Manually configure the device IPv4" exacly means, here the instructions for Ubuntu. (Tested on Ubuntu 22.04)

  • Open your network settings
  • Open "USB Ethernet" settings
  • In the "IPv4" tab:
  • Set "IPv4 Method" to "Manual"
  • Under "Addresses", set "Address" to 192.168.15.201 and "Netmask" to 255.255.255.0
  • Click "Apply"
  • Restart the connection by disabling it and re-enabling it

This assumes the public keys are stored, in OpenSSH format, in usbnet/etc/authorized_keys.

@zenminimalist
Copy link

zenminimalist commented Nov 17, 2022

@cyrillkuettel @Inc0n @equinix5 Yeah, nothing is working for me. I have tried the 4 passwords from the password generator site. It still keeps me asking for a password when trying to ssh into my Kindle PW Sig. Edition.

Any idea what other things to try?

@cyrillkuettel
Copy link

The password tool did not work for me. I had to put my public key in usbnet/etc/authorized_keys, as far as I remember.

Do you have a new(ish) device? They tend to be quit tricky for this stuff. I can highly recommend mobileread threads like this one, they have extensive writeups of information. I can also recommend posting a question there in the Kindle Developer's Corner . These people can help you, they know everything about this sort of stuff.

@zenminimalist
Copy link

@cyrillkuettel Thanks for the quick reply!

Yeah it's Amazon's newest Kindle. I actually had that exact tab from Mobileread open, but couldn't get it to work. I also didn't see authorized_keys folder or files named that on my Kindle.

I'm actually trying to find a solution how to upload files from KOReader to Dropbox (download obviously no problem). One user seems to have developed a quick & dirty solution here on Github.

So since I have no idea how to get his solution up & running I thought I'd try the whole syncthing, which requires USBNetwork hack, SSH and so forth.

@DavidBuchanan314
Copy link

DavidBuchanan314 commented Aug 30, 2024

I'm on a PW5, I enabled SSH and usbnet/auto. I have networking working, but the password doesn't work. From what I read above, I need to drop a pubkey in usbnet/etc/authorized_keys.

However, my device no longer shows up as a USB storage device. How do I make it do that? Am I screwed?

Edit: Ahhh, went into KUAL and turned usb network off again.

@cyrillkuettel
Copy link

cyrillkuettel commented Aug 30, 2024

By the way, you can just use telnet. This is a great trick if anyone has trouble with ssh [email protected],

Telnet is installed [source] from here easier to use:

telnet 192.168.15.244
mntroot rw
cd /mnt/us/usbnet/etc
# just put your public key in authorized_keys, so ssh will work in the future

Edit: And no, telnet doesn't require password :)

@Olzz20
Copy link

Olzz20 commented Sep 21, 2024

please make a video tutorial

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment