From 76396cbf7f9d38fbe5dcf7ff7fc56f60f09b79c9 Mon Sep 17 00:00:00 2001
From: Nico Verbruggen
Date: Sun, 22 Mar 2026 19:06:34 +0100
Subject: [PATCH] Updated footer
---
web/build.mjs | 6 +--
web/eslint.config.mjs | 1 +
web/src/index.html | 75 ++++++++++++++---------------------
web/src/js/nickelmenu-flow.js | 6 +++
4 files changed, 40 insertions(+), 48 deletions(-)
diff --git a/web/build.mjs b/web/build.mjs
index dccc884..c6f177d 100644
--- a/web/build.mjs
+++ b/web/build.mjs
@@ -135,10 +135,10 @@ async function build() {
);
// Inject version string and link
- html = html.replace('', `${versionStr}`);
+ html = html.replace('', `Version ${versionStr}`);
html = html.replace(
- 'href="https://github.com/nicoverbruggen/kobopatch-webui"',
- `href="${versionLink}"`
+ 'id="commit-link" class="site-footer-link" href="https://github.com/nicoverbruggen/kobopatch-webui"',
+ `id="commit-link" class="site-footer-link" href="${versionLink}"`
);
writeFileSync(join(distDir, 'index.html'), html);
diff --git a/web/eslint.config.mjs b/web/eslint.config.mjs
index ca771e1..86676a1 100644
--- a/web/eslint.config.mjs
+++ b/web/eslint.config.mjs
@@ -22,6 +22,7 @@ export default [
Worker: 'readonly',
requestAnimationFrame: 'readonly',
location: 'readonly',
+ navigator: 'readonly',
// JSZip loaded via script tag
JSZip: 'readonly',
},
diff --git a/web/src/index.html b/web/src/index.html
index 2373587..48f99b4 100644
--- a/web/src/index.html
+++ b/web/src/index.html
@@ -352,6 +352,10 @@
·
·
+
+ ·
+
+ ·
KoboPatch Web UI is a fully client-side web application for customising
- Kobo e-readers. Nothing is uploaded to a server — everything runs in your browser.
+ Kobo e-readers. The actual patching and archive creation (or transfer to your device) runs in your browser.
NickelMenu
-
- NickelMenu adds custom menu items
- and tweaks to your Kobo. This tool can install NickelMenu along with an optional curated
- configuration (custom menus, fonts, screensavers) or remove it. NickelMenu works with
- most Kobo devices and includes a failsafe that automatically uninstalls itself if
- something goes wrong.
-
+
NickelMenu is a custom menu that hooks into the existing operating system to add extra features.
+
+ - NickelMenu adds custom menu items and tweaks to your Kobo, depending on the configuration file on your device.
+ - This tool can install NickelMenu with an optional curated configuration (custom menus, fonts, screensavers) or remove it.
+ - Works with most Kobo devices, and is generally considered to be safer than custom patches.
+ - Includes a failsafe that ensures NickelMenu automatically uninstalls itself if something goes wrong. This makes it so that future versions of the software that are incompatible with NickelMenu cannot cause problems.
+
-
Custom patches
-
- - Device selection — On Chromium-based browsers (Chrome, Edge), the app can
- auto-detect your Kobo via the File System Access API when connected over USB.
- On other browsers, you manually select your model and software version.
- - Patch configuration — You choose which
- kobopatch patches
- to enable or disable. Patches in the same group are mutually exclusive.
- The patches themselves are community-contributed via the
- MobileRead forums.
- - Build — The correct software update is downloaded directly from Kobo's servers
- (
ereaderfiles.kobo.com). The patcher, compiled from Go to WebAssembly, runs
- inside a Web Worker so the UI stays responsive. It extracts
- KoboRoot.tgz, applies your selected patches as in-place byte replacements
- to the ELF binaries, validates the results (ELF headers, file sizes, archive consistency),
- and produces a new KoboRoot.tgz.
- - Install — On Chromium, the patched file is written directly to the
-
.kobo folder on the device. On other browsers, you download the file
- and copy it manually. After safely ejecting, the Kobo reboots and applies the update.
-
-
-
Restoring original software
-
- You can also use this tool to restore the original unpatched software. In that case,
- no patches are applied — the original KoboRoot.tgz is extracted
- from the software update as-is.
-
+
Custom Patches
+
The practice of taking the operating system and applying specific known modifications to the prebuilt binaries.
+
+ - Device selection — auto-detected via the File System Access API on Chromium (Chrome, Edge), or manually selected on other browsers.
+ - Patch configuration — enable or disable community-contributed kobopatch patches from the MobileRead forums.
+ - Build — the software update is downloaded from Kobo's servers and patched client-side using WebAssembly. Patched binaries are validated (ELF headers, file sizes, archive integrity) before output.
+ - Install — written directly to the device on Chromium, or downloaded as a file for manual installation on other browsers.
+ - Restore — you can also restore the original unpatched software. No patches are applied — the original
KoboRoot.tgz is used as-is.
+
Safety
-
- NickelMenu includes a built-in failsafe mechanism. For custom patches, each patched binary
- is validated before being included in the output: ELF magic bytes,
- 32-bit ARM architecture, file size (must match the original), and archive integrity are
- all checked. If anything looks wrong, the build fails with an error. That said, both
- NickelMenu and custom patches modify system files, so you should know how to
- manually reset your Kobo
- if needed.
-
+
+ - NickelMenu is a very small modification. It also includes a built-in failsafe mechanism, as noted in the section above.
+ - Custom patches are validated in various ways before being included in the output, and patching must succeed before the patch can be downloaded or transferred to your device.
+ - Both methods modify system files. While as many possible precautions are taken to avoid anything goes wrong, you should still know how to manually reset your Kobo if needed, as there are always risks involved with these types of modifications. You apply them at your own risk.
+
+
If you would like to better understand how these various components work, I recommend reading through the README files of this project, NickelMenu and kobopatch, all of which are linked in the footer.
@@ -445,7 +428,9 @@