https://github.com/pgaskin/lithiumpatch
Adds additional functionality to the Lithium EPUB Reader Android app.
https://github.com/pgaskin/lithiumpatch
android apk apktool epub smali
Last synced: 11 months ago
JSON representation
Adds additional functionality to the Lithium EPUB Reader Android app.
- Host: GitHub
- URL: https://github.com/pgaskin/lithiumpatch
- Owner: pgaskin
- License: mit
- Created: 2022-03-21T09:53:58.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2025-04-04T04:55:53.000Z (about 1 year ago)
- Last Synced: 2025-04-15T05:47:12.512Z (about 1 year ago)
- Topics: android, apk, apktool, epub, smali
- Language: Go
- Homepage:
- Size: 57.1 MB
- Stars: 64
- Watchers: 5
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lithiumpatch
Adds additional functionality to the Lithium EPUB Reader Android app.
## Features
- Requires Android Oreo (8) or higher.
- Latest WebView (at least ~73) required for full functionality.
- Custom icon color.
- Monochrome adaptive icon support.
- Dynamic grid view cover width and custom aspect ratio.
- Optional cover-only grid view.
- Debuggable reader webview.
- Dictionary (works offline).
- Custom fonts.
- Additional font script support (e.g., Thai).
- Smaller minimum font size.
- Additional information in the reader footer.
- Series metadata support.
- Series section in library drawer.
- Increased number of visible actions for the reader toolbar.
- Support for inverted portrait/landscape rotation.
- Expand display settings popup by default.
- Support for hyphenation.
- Additional built-in themes.
- Material You colors on Android 12+.
- Full-bleed background in fullscreen mode on devices with a notch.
- Option to disable page turn animations (e.g., for e-ink screens).
- Option to invert the color of images or the entire page.
## Usage
1. Install JRE 1.8 or newer.
2. Install Go 1.21 or newer.
3. Install zipalign (part of the Android build tools).
4. Optionally run `go generate ./dict/edgedict` to download additional dictionaries.
5. Optionally download additional fonts into the `fonts` directory to add additional fonts (to limit them to a single language, put them in a subdirectory named `latin`/`cyrillic`/`greek`/`thai`).
6. Run `go generate ./app` from the root of the repository to download the APK. If this does not work, you can manually download the Lithium 0.24.5 APK from [here](https://www.apkmirror.com/apk/faultexception/lithium-epub-reader/lithium-epub-reader-0-24-5-release/lithium-epub-reader-0-24-5-android-apk-download/) or extract it from your device.
7. Run `go run . app/Lithium_0.24.5.apk` from the root of the repository. Use `--help` to see additional options including using a custom keystore, setting the tool paths, and adding fonts from an external directory.
8. For Google Drive support, specify a custom keystore with `--keystore whatever.jks`, and create a new Google APIs project with access to the Drive API for the signing key's signature to enable sync.
```
usage: lithiumpatch [options] APK_PATH
options:
-k, --keystore string Path to keystore for signing (will be created if does not exist) (default "keystore.jks")
--keystore-alias string Keystore alias (default "default")
--keystore-passphrase string Keystore passphrase (default "default")
-o, --output string Output APK path (default: {basename}.patched.resigned.apk)
-d, --diff string Write diff to the specified file (default: disabled)
--add-fonts strings Add extra TTF fonts from a directory (Regular/Roman, Bold, Italic, and BoldItalic variants should be provided) (can be specified multiple times)
--apktool string Path to apktool.jar (2.8.1) (default "lib/apktool-2.8.1.jar")
--apksigner string Path to apksigner.jar (0.9 or later) (default "lib/apksigner-0.9.jar")
--zipalign string zipalign executable (will search PATH) (default "zipalign")
--keytool string keytool executable (will search PATH) (default "keytool")
-q, --quiet Do not show the diff
--help Show this help text
```
**Note:** If you get an error from apktool about `No resource identifier found for attribute 'preserveLegacyExternalStorage'`, run `java -jar lib/apktool-2.8.1.jar empty-framework-dir`.