|
|
#1 |
|
Junior Member
![]() Posts: 5
Karma: 10
Join Date: Sep 2026
Device: Kobo Clara Colour
|
This post documents my work on the boot process of modern Kobo e-readers based on the MediaTek MT8113 SoC.
I have developed two things that may be useful for anyone experimenting with custom firmware on these devices:
The boot chain The most recent Kobo devices use the MediaTek MT8113 SoC. The boot chain is roughly: BROM → Little Kernel (LK) → U-Boot → Linux There may be other components in the chain, such as TEE, but they were not relevant to this work. U-Boot verifies the hash and signature of the Linux FIT image. Likewise, LK verifies the hash and signature of the U-Boot FIT image. However, BROM checks the integrity of LK but does not verify its signature. As a result, a modified LK can load a modified U-Boot, which can in turn load a modified Linux image, breaking the chain of trust from LK onward. Read/write to eMMC In order to investigate the boot process, a way to recover devices from potential bricks was needed. MediaTek SoCs can boot in two different modes:
DA mode allows uploading a custom payload over USB. The back cover must be opened to access the Download and Reset pads required to enter DA mode. The protective coating covering the pads must also be scraped away. Follow the instructions in the README of this modified version of mtkclient to enter DA mode and read from or write to the eMMC. The procedure involves shorting Download and briefly shorting Reset while keeping Download shorted, allowing mtkclient to upload its payload over USB. This modified version of mtkclient adds write support and improves transfer speeds by using eMMC commands CMD18/READ_MULTIPLE_BLOCK and CMD25/WRITE_MULTIPLE_BLOCK. Writing the entire 16 GB User Data Area on the Clara Colour takes around three hours. For a first test, I recommend starting with the second Boot Area Partition, as it is unused and zero-filled. Bypass secure boot Bypassing secure boot requires disabling signature verification in both LK and U-Boot. While the source code for Kobo's vendor versions of U-Boot and Linux is available in the Kobo-Reader repository, the source code for its vendor version of LK is not publicly available. With the source available, disabling signature verification in U-Boot is straightforward. See how this is done in kos or Quill-OS. For LK, the binary itself must be patched. After extensive reverse engineering and trial and error, I was able to load a modified LK. This required replacing the hash verified by BROM with the hash corresponding to the modified binary. Once this was achieved, patching the signature verification performed by LK was relatively easy. I wrote a Python script that automates the process by disabling both the integrity and signature checks (although only the latter is needed) and updating the hash verified by BROM. This is also the approach used by kos to bypass secure boot. Credits
Tools
|
|
|
|
![]() |
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Kobo Libra 2 (N418) stuck in SDP mode - looking for u-boot.imx / eMMC image | nicoden81 | Kobo Developer's Corner | 2 | 06-01-2026 12:46 PM |
| KOA KOA 8th (2016) How to flash the kernel after clearing the EMMC | uuer | Kindle Developer's Corner | 2 | 05-28-2025 11:19 AM |
| Kobo Libra Colour is using Secure Boot | NiMa | Kobo Developer's Corner | 15 | 08-21-2024 07:59 AM |
| Source code for Secure Boot and Fastboot lockdown features | katadelos | Kindle Developer's Corner | 9 | 01-18-2022 04:11 AM |
| Boot/flash Custom recovery | ziamrziamr | Onyx Boox | 0 | 11-08-2014 04:32 AM |