diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-02 10:10:14 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-02 10:10:14 +0100 |
| commit | 51b7703c1c5ecfa23cf2730dbad3b02a1ad331c6 (patch) | |
| tree | 1dbbb52652d945a1fa4d7f437cd0a0d7c9f29228 | |
| parent | 1c4d04c2089f719e8344f6c4f5cd8488c2320e9f (diff) | |
| download | HardenedPass-51b7703c1c5ecfa23cf2730dbad3b02a1ad331c6.tar.gz HardenedPass-51b7703c1c5ecfa23cf2730dbad3b02a1ad331c6.zip | |
docs: rewrite README for the fork
Replace the upstream archival notice, badges, donation and community
links with a fork description crediting upstream, a summary of changes,
build instructions, license and the development approach disclosure.
Drop crowdin.yml, whose sync workflow was removed with the other
upstream-only workflows.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
| -rw-r--r-- | README.md | 58 | ||||
| -rw-r--r-- | crowdin.yml | 90 |
2 files changed, 35 insertions, 113 deletions
@@ -1,40 +1,52 @@ -> [!WARNING] -> -> Android Password Store is no longer actively developed. You can find the announcement [here](https://github.com/android-password-store/Android-Password-Store/discussions/3260). - # Password Store -[](https://github.com/android-password-store/Android-Password-Store/actions) -  +An Android client for [pass](https://www.passwordstore.org/), the standard Unix password manager. +Passwords are stored as OpenPGP-encrypted files in a git repository, so the same store works with +`pass` on the desktop and with this app on the phone. + +This is a maintained fork of +[android-password-store/Android-Password-Store](https://github.com/android-password-store/Android-Password-Store), +which was archived in October 2024. All credit for the original work goes to the +Android Password Store authors. -## Download +## Changes from upstream -See https://docs.passwordstore.app/docs/users/release-channels/ +- Decrypts messages GnuPG 2.3+ writes by default (OCB / LibrePGP AEAD), which upstream rejected + as "non-standard AEAD". +- Rejects keys without an encryption-capable subkey on import. +- Bouncy Castle 1.86 and PGPainless 1.7.8, fixing known Bouncy Castle advisories. +- Decrypt screen no longer reachable by other apps with arbitrary file paths. +- No build scans uploaded to third-party services. -## Documentation +## Building -We're in the process of rewriting our documentation from scratch, and the work-in-progress state can be seen [here](https://docs.passwordstore.app). See the [wiki](https://github.com/android-password-store/Android-Password-Store/wiki/) for the old documentation. +Requires JDK 17 and the Android SDK command-line tools. Point Gradle at the SDK with a +`local.properties` file (`sdk.dir=/path/to/Android/Sdk`), then: -## Contributing +``` +./gradlew assembleFreeDebug # APK in app/build/outputs/apk/free/debug/ +./gradlew test -PslimTests # unit tests +``` -Want to contribute? See if you can [find an issue](https://github.com/android-password-store/Android-Password-Store/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) you are interested in, then send a PR. Consult the [contribution](CONTRIBUTING.md) docs +The `free` flavor has no proprietary dependencies. The `nonFree` flavor adds Sentry crash +reporting and Google Play Services SMS OTP autofill. -Interested in helping to translate Password Store? Contribute [here](https://crowdin.com/project/android-password-store)! +## Issues -Wanna test development builds to find bugs and offer feedback? Read the [release channels](https://docs.passwordstore.app/docs/Users/release-channels) documentation to get access! +Report bugs and feature requests on the +[issue tracker](https://github.com/danixland/Android-Password-Store/issues). -## Community +## License -Ways to get in touch: +GPL-3.0-only, see [LICENSE.txt](LICENSE.txt). -* [Github issues](https://github.com/android-password-store/Android-Password-Store/issues): Use it if you have a bug report, or you want to submit a feature request. -* [GitHub Discussions](https://github.com/android-password-store/Android-Password-Store/discussions): Use it if you do not understand something, or want to discuss a feature request in more detail with all community members before pitching it to maintainers. +Copyright © 2014-2024 The Android Password Store Authors. +Modifications Copyright (C) 2026 Danilo M. <danix@danix.xyz>. -## Donations +## Development Approach -The project accepts financial contributions through the following platforms +This project is developed using AI-assisted tools. Code is generated with the help of AI based on human-provided specifications, design decisions, and iterative feedback. -- [GitHub Sponsors](https://github.com/sponsors/android-password-store) -- [OpenCollective](https://opencollective.com/android-password-store) +All contributions are reviewed, tested, and curated by the maintainer before being included in the codebase. AI is used as a productivity and exploration tool, while human oversight remains central to all decisions. -<sub>Google Play and the Google Play logo are trademarks of Google LLC.</sub> +The goal is to combine the flexibility of AI-assisted development with standard open-source practices such as transparency, review, and accountability. diff --git a/crowdin.yml b/crowdin.yml deleted file mode 100644 index 116a2194..00000000 --- a/crowdin.yml +++ /dev/null @@ -1,90 +0,0 @@ -"api_token_env": "CROWDIN_PERSONAL_TOKEN" -"project_id_env": "CROWDIN_PROJECT_ID" -"preserve_hierarchy": true -"files": [ - { - "source": "/app/src/main/res/values/strings.xml", - "dest": "/main_strings.xml", - "translation": "/app/src/main/res/values-%android_code%/strings.xml", - "languages_mapping": &stringmapping { - "android_code": { - "ar": "ar", - "am": "am", - "hy-AM": "hy-rAM", - "az": "az", - "be": "be", - "bn": "bn-rBD", - "bg": "bg", - "ca": "ca", - "cs": "cs", - "da": "da", - "de": "de", - "el": "el", - "es-ES": "es", - "es-AR": "es-rAR", - "es-MX": "es-rMX", - "es-VE": "es-rVE", - "et": "et-rEE", - "eu": "eu-rES", - "fa": "fa", - "fil": "fil", - "fi": "fi", - "fr": "fr", - "gl": "gl-rES", - "hr": "hr", - "hu": "hu", - "is": "is", - "id": "in", - "it": "it", - "he": "iw", - "ja": "ja", - "ka": "ka-rGE", - "km": "km-rKH", - "kn": "kn-rIN", - "ko": "ko", - "ky": "ky-rKG", - "lt": "lt", - "lv": "lv", - "lo": "lo-rLA", - "ms": "ms", - "ml-IN": "ml-rIN", - "mn": "mn-rMN", - "mr": "mr-rIN", - "my": "my-rMM", - "ne-NP": "ne-rNP", - "nl": "nl", - "no": "nb", - "pl": "pl", - "pt-PT": "pt", - "pt-BR": "pt-rBR", - "ro": "ro", - "ru": "ru", - "rm-CH": "rm", - "si-LK": "si-rLK", - "sk": "sk", - "sl": "sl", - "sr": "sr", - "sv-SE": "sv", - "sw": "sw", - "th": "th", - "ta": "ta-rIN", - "te": "te-rIN", - "tr": "tr", - "uk": "uk", - "ur-IN": "ur-rIN", - "uz": "uz", - "vi": "vi", - "zh-CN": "zh-rCN", - "zh-HK": "zh-rHK", - "zh-TW": "zh-rTW", - "zu": "zu" - } - } - }, - { - "source": "/app/src/nonFree/res/values/strings.xml", - "dest": "/nonFree_strings.xml", - "translation": "/app/src/nonFree/res/values-%android_code%/strings.xml", - "languages_mapping": *stringmapping - } -] |
