2.7 KiB
Android Build
Build the APK with:
make apk
Build the release-signed APK with:
make apk-release
make apk uses a local Java 25 install when JAVA_HOME points to one.
If the host does not have a working Java 25 install, it falls back to the
repo-managed Docker image in packaging/docker/android-apk/, which also builds
with Java 25.
make apk remains a developer build path and may use Gio's default debug or
ephemeral signing behavior if no explicit signing key is provided.
make apk-release is the production-signing path and fails unless a dedicated
release keystore and password file are present.
Environment:
ANDROID_SDK_ROOTdefaults to/opt/android-sdk.ANDROID_NDK_ROOTdefaults to/opt/android-ndk.JAVA_HOMEdefaults to/usr/lib/jvm/java-25-openjdk.APK_BUILD_IMAGEoverrides the Docker image name used bymake apk-container.APP_IDoverrides the Android application id.APP_VERSIONoverrides the version shown inside KeePassGO itself.APK_OUToverrides the output path.APK_VERSIONoverrides the packaged app version.ANDROID_MIN_SDKoverrides the minimum supported Android SDK.ANDROID_TARGET_SDKoverrides the target Android SDK.RELEASE_SIGNKEYoverrides the release keystore path used bymake apk-release.RELEASE_SIGNPASS_FILEoverrides the password file path used bymake apk-release.
Default release-signing paths:
~/.config/keepassgo/android-release.keystore~/.config/keepassgo/android-release.pass
Installed machine prerequisites expected by this repo:
android-sdk-cmdline-tools-latestandroid-sdk-build-toolsandroid-platform-35android-sdk-platform-tools- a working Java 25 JDK install for
make apk-local, or Docker formake apk
The repo tracks gogio as a Go tool, and the local build runs through:
go tool gogio -target android ./cmd/keepassgo ...
The release target wraps make apk and injects explicit signing credentials so
local release builds and CI use the same stable key.
The Android build uses the branded icon asset at:
internal/assets/keepassgo-icon.png
Note:
- KeePassGO's documented Android build uses Java 25 locally.
- If that host setup is unavailable,
make apkfalls back to the Docker image so the build still runs under Java 25 instead of encoding a newer host JDK as a requirement. - Android runtime testing on the
KeepassGoAPI35emulator showed a black-screen regression withgioui.org v0.9.0while a stock Gio example and KeePassGO both rendered correctly withgioui.org v0.8.0on the same emulator and SDK/JDK pipeline. KeePassGO is pinned to the working Gio line until that regression is understood upstream.