Auto-granting the external storage permission does not work in all
cases, so ignore errors:
```
Error: Unknown operation string: MANAGE_EXTERNAL_STORAGE
```
Binary catalogs are more space efficient (total translations disk usage:
14MB instead of 35MB), and easier and faster (roughly 10 times) to load:
no parsing, and less processing (no need to unescape strings).
Not much difference on the Android APK size (a ~600KB reduction), but
other TAR.GZ / ZIP distributions see a reduction of ~3.5MB.
Instead of splitting remove / exclusion of unwanted files in 2-3 places
(`all` rule, `update` rule, and update script in some cases), install
the same files in debug & release builds, and exclude unwanted stuff
when generating the update.
This should finally fix the CI issue with OCR tests (since we don't
remove the `data/dict` & `data/tessdata` directories on release build
anymore).
- fix SDK location: our install has 2 different versions: under
`tools/bin/apkanalyzer` and `cmdline-tools/latest/bin/apkanalyzer`,
but only the later is functional (trying to use the former raise
some classpath exceptions)
- always use the SDK location, don't try to detect it: it's better to
fail with a more explanatory "apkanalyzer: command not found" error
than having the shell try to run a command with the wrong executable
(`manifest …` because `$(APKANALYZER)` is empty)
kobov4 exists solely because there's a dedicated TC for it,
but we don't distribute binaries for it (it doesn't differ enough from
kobo, and experience has taught us that this kind of split was not a
great idea (e.g., kindle5 vs. kindlepw2)).
kobov5 targets a massively updated userland, and requires further
changes, including to the delivery mechanism, so it very much warrants a
dedicated package (re: #12401)
- standalone: no other dependencies than Python (>= 3.7) and adb
(Android >= 4.3 [Jelly Bean])
- filter KOReader's traces, and other processes chatter about KOReader
(e.g. mentions of its application ID or PID)
- show time, PID, TID (when different), tag, priority, and message
- only parse the log (don't rely on `adb shell` commands)
- can be used as a filter, including on its own (uncolored) output
- we can simplify instructions to users when asking for detailed logs
Why not use pidcat?
- project is unmaintained
- does not support Python 3 (need at least one extra patch)
- mangle long lines by wrapping them, even when not outputting to a terminal,
which is a big no-no, IMHO (as it break searching, copy pasting, etc…)
Use `ANDROID_NAME` for last part so setting it as an environment
variable to something like `dev` allows for a stable APK name
across different revisions.
- out-of-tree luajit-launcher build: no leftovers after `make clean`
- use the luajit library compiled by base: no point wasting time
building a second (different, possibly incompatible) version
- forward unknown make targets to base
- add `cmake` and `staging` directories to ignored output artifacts
- drop `package.path` and `package.cpath` luarocks specific entries