pgaskin / lithiumpatch

Adds additional functionality to the Lithium EPUB Reader Android app.
MIT License
44 stars 2 forks source link
android apk apktool epub smali

lithiumpatch

Adds additional functionality to the Lithium EPUB Reader Android app.

Features

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 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.