Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Readers > Amazon Kindle > Kindle Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 08-24-2019, 11:39 AM   #61
knc1
Going Viral
knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.knc1 ought to be getting tired of karma fortunes by now.
 
knc1's Avatar
 
Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
Quote:
Originally Posted by WaseemAlkurdi View Post
So upon finding a certain updater package on a certain device, the firmware would burn (as in "destroy") the first 8 KB, which is the header? Pretty neat. A sort of blacklist.

To counter that, and provided that U-Boot isn't checking signatures or anything fancy, a single Kindle has to be manually flashed (aka write to eMMC) with manually jailbroken firmware to see what are system daemons, etc doing. Now, who's going to donate their Kindle?
Kindle not required.

Cliff's Notes version:
  • Get Amazon update of your choice.
  • Unpackage (to standard archive) using KindleTool
  • From that archive, copy out the rootfs.img file
  • Under Linux, create mount point of your choice.
  • Mount the rootfs.img under that mount point.
  • Add qemu static to the top layer (mnt point level) of the rootfs.img.
  • chroot to the mnt point.
  • Your X86/AMD64 will, with some Linux kernel magic, (see: bin-format-misc setup) run the ARM code.
  • Which you can diddle with as you want.
Note: You often have to add-in the QEMU package provided by your distribution to get the above to work.

Note: It is also possible to run the Kindle kernel, on the Kindle, but referring to a network boot of that file system image. This note can remain as a student exercise (you will be the first to post the details here).

Last edited by knc1; 08-24-2019 at 11:45 AM.
knc1 is offline   Reply With Quote
Old 08-24-2019, 06:32 PM   #62
WaseemAlkurdi
Zealot
WaseemAlkurdi began at the beginning.
 
Posts: 147
Karma: 20
Join Date: Jul 2019
Device: Kindle Touch (K5) Wi-Fi x 2, Kindle (7th Gen, KT2), Paperwhite 3rd Gen
Quote:
Originally Posted by knc1 View Post
Kindle not required.

Cliff's Notes version:
  • Get Amazon update of your choice.
  • Unpackage (to standard archive) using KindleTool
  • From that archive, copy out the rootfs.img file
  • Under Linux, create mount point of your choice.
  • Mount the rootfs.img under that mount point.
  • Add qemu static to the top layer (mnt point level) of the rootfs.img.
  • chroot to the mnt point.
  • Your X86/AMD64 will, with some Linux kernel magic, (see: bin-format-misc setup) run the ARM code.
  • Which you can diddle with as you want.
Note: You often have to add-in the QEMU package provided by your distribution to get the above to work.

Note: It is also possible to run the Kindle kernel, on the Kindle, but referring to a network boot of that file system image. This note can remain as a student exercise (you will be the first to post the details here).
Ah, you've beaten me to something similar I have been thinking about: running the Kindle firmware in full QEMU (qemu-system-arm, that is, not qemu-arm*). I have been waiting to get my Kindle fixed and finish my first goal of porting 5.6.x to the Kindle Touch before embarking on this endeavor and bringing the topic up, but not anymore, it seems.
- But the first issue, after building U-Boot by hand, is that QEMU doesn't "officially" support emulating a i.MX508 or i.MX6SL board. For the curious, it could only emulate these i.MX boards:
Code:
$ ./qemu-system-arm -M help | grep 'MX'
imx25-pdk            ARM i.MX25 PDK board (ARM926)
mcimx6ul-evk         Freescale i.MX6UL Evaluation Kit (Cortex A7)
mcimx7d-sabre        Freescale i.MX7 DUAL SABRE (Cortex A7)
sabrelite            Freescale i.MX6 Quad SABRE Lite Board (Cortex A9)
The last board is definitely out (Cortex-A9), and so is the first board (whatever that chip is called). That leaves us with the i.MX6UL and i.MX7. I'd test the former first, since it's the closest to an i.MX6SL.

- The next issue is that the Kindle has those little idme variables. But I imagine that a U-Boot that is compiled by hand from Amazon sources would have support for defining them.
- After that, one has to remember that QEMU doesn't emulate an e-paper display controller (as far as I know). This means that we either use the serial port (via serial console) "blindly", or we hope that it still retains VGA/LCD support in the kernel (and not lock up hard when it doesn't find an EPDC).
I've done the first five steps before (for the aforementioned attempt at a port of 5.6.x), but not the rest, and I'm seriously contemplating giving it a spin until my newer Kindles arrive.
Note that if we're talking about running in userspace, a "Virtual Kindle" should be easy. Even X could be possibly brought up if we use Xephyr or something. (I know that you might find a Virtual Kindle to be useless, but I want to do it just for the sake of doing it).
- Hoping it would somewhat magically work, I tried this command when I had written this post:
Code:
$ ./qemu-system-arm -M mcimx6ul-evk -monitor stdio -kernel /path/to/diagkern.bin -drive file=/path/to/diagsys.bin
Alas, it didn't. It stared at me blankly, with a QEMU monitor redirected to my terminal and a black, blank serial console. I know I did something wrong. Is it that I haven't built U-Boot? But shouldn't it at least move a muscle without U-Boot?

Quote:
Note: You often have to add-in the QEMU package provided by your distribution to get the above to work.
Distro versions of QEMU, however, tend to be very old (at least it's that way on Ubuntu, and should be even older on Debian). I compile my own QEMU builds from mainline to work around that issue.
Quote:
Note: It is also possible to run the Kindle kernel, on the Kindle, but referring to a network boot of that file system image. This note can remain as a student exercise (you will be the first to post the details here).
Ah, the holy grail of Kindle. But this requires a serial cable for U-Boot access as to pull that trick off, so until I find a damned serial cable, I'm out.

Last edited by WaseemAlkurdi; 08-24-2019 at 06:47 PM.
WaseemAlkurdi is offline   Reply With Quote
Advert
Old 05-08-2020, 11:18 AM   #63
arooni
Addict
arooni began at the beginning.
 
Posts: 315
Karma: 26
Join Date: Jul 2012
Device: Kindle Paperwhite 4 (2018)
Looks like the oasis are locked down for good. Is this the end of new jailbreaks existing for the kindle ? Is the paper white 4 the last kindle model Jail breakable ?
arooni is offline   Reply With Quote
Reply


Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
KOA2 KOA2 jail break knc1 Kindle Developer's Corner 470 07-03-2020 01:28 AM
Jail Break For PW3 5.11.1.1? freeman37373 Kindle Developer's Corner 2 04-20-2019 08:04 AM
KOA2 KOA2 jail break research knc1 Kindle Developer's Corner 29 04-28-2018 09:48 AM
Is there a jail break for 5.7.2.1? jjokocha Kindle Developer's Corner 13 03-16-2016 02:50 AM
Why Jail Break? daffy4u Apple Devices 46 09-18-2009 11:24 AM


All times are GMT -4. The time now is 02:31 AM.


MobileRead.com is a privately owned, operated and funded community.