Files
keeporg/android/metadata/cc.tiredsysadmin.android.keeporg.yml
T
ReactorcoremeltdownandClaude Opus 5.5 318bd68908 Collect Android browser sign-ins after the app was stopped
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>
2026-11-02 13:16:23 +01:00

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