The Android app kept a pending browser sign-in in a thread inside the login screen. Android often kills the process while the browser is in front, so the approval reached the server but nothing collected it, and the app came back signed out with nothing saved. The pending device code is now kept in Prefs and collected whenever the login screen resumes. The app passes return_url=keeporg://device-approved when it starts the sign-in, and the server's approval page, after a password or single sign-on, links back to it. Only the keeporg: scheme is accepted. Against a server older than 0.9, which rejects the field, the app retries without it. Verified on an Android 15 emulator: approval collected after the process was killed, and the fallback against the 0.8 server. Server 0.9.0, Android 0.3.0 (versionCode 3). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
64 lines
2.0 KiB
YAML
64 lines
2.0 KiB
YAML
# F-Droid metadata for the private repository.
|
|
# Publish with: make android-publish (copies this file to the metadata
|
|
# directory and the unsigned APK to the unsigned directory).
|
|
Categories:
|
|
- Security
|
|
License: AGPL-3.0-or-later
|
|
AuthorName: tiredsysadmin
|
|
SourceCode: https://garage.rcmd.space/keeporg
|
|
IssueTracker: https://garage.rcmd.space/keeporg/issues
|
|
|
|
Name: KeepOrg
|
|
Summary: Collaborative sync adapter for KeePass databases
|
|
Description: |-
|
|
KeepOrg mirrors the KDBX databases a KeepOrg server has assigned to you and
|
|
publishes them to every file picker on the device, so KeePassDX or
|
|
Keepass2Android opens them as ordinary files.
|
|
|
|
Each save is pushed to the server, and changes other people push are applied
|
|
here. When two people save at once, a merge vault has both edits folded
|
|
together by the server; on any other setting the database's conflict
|
|
strategy decides, and the losing copy is kept beside the file so nothing is
|
|
lost silently.
|
|
|
|
The app itself never opens a database and never sees a master password. It
|
|
moves encrypted bytes and nothing else. Note that merging requires the
|
|
server to hold that vault's key, which is a choice made per vault when it
|
|
is created.
|
|
|
|
Sign in with a password and the server's built-in time-based second factor,
|
|
or approve the device in a browser, which is also how single sign-on works.
|
|
|
|
RepoType: git
|
|
Repo: https://garage.rcmd.space/keeporg.git
|
|
|
|
Builds:
|
|
- versionName: 0.1.0
|
|
versionCode: 1
|
|
commit: v0.1.0-android
|
|
subdir: android/app
|
|
gradle:
|
|
- yes
|
|
output: android/app/build/outputs/apk/release/app-release-unsigned.apk
|
|
|
|
- versionName: 0.2.0
|
|
versionCode: 2
|
|
commit: v0.2.0-android
|
|
subdir: android/app
|
|
gradle:
|
|
- yes
|
|
output: android/app/build/outputs/apk/release/app-release-unsigned.apk
|
|
|
|
- versionName: 0.3.0
|
|
versionCode: 3
|
|
commit: v0.3.0-android
|
|
subdir: android/app
|
|
gradle:
|
|
- yes
|
|
output: android/app/build/outputs/apk/release/app-release-unsigned.apk
|
|
|
|
AutoUpdateMode: None
|
|
UpdateCheckMode: Tags
|
|
CurrentVersion: 0.3.0
|
|
CurrentVersionCode: 3
|