Updated File Manager and Sync (markdown)

Jérémy JAMET
2022-01-06 23:36:02 +01:00
parent f6fa9782e2
commit 3535154b7e

@@ -30,16 +30,6 @@ In order to have the most complete visibility of the file services that work wit
Related issues : [#342](https://github.com/Kunzisoft/KeePassDX/issues/342), [#897](https://github.com/Kunzisoft/KeePassDX/issues/897)
*The creation of a file app fully compatible with open protocols and cloud clients is under study. Feel free to mention tools that would facilitate its construction, or file managers that keep KeePass links.*
## Synchronization application
In addition, there are applications that synchronize files on a continuous basis. This allows you to retrieve and send files transparently in the background when a file is updated. Very useful if your file manager does not have this feature.
| Sync app | Pros | Cons | Officially tested
| --- | --- | --- | --- |
| [Syncthing](https://play.google.com/store/apps/details?id=com.nutomic.syncthingandroid) | Widely used open source application that allows decentralized synchronization. _Warning: some users have noticed corruptions when Syncthing was synchronized at the same time as a data save because the URI stream is cuts by the sync. Please make sure that the two actions are not done at the same time, you can disable the automatic save and remember to make regular manual backups._ Tutorial : https://peterbabic.dev/blog/sync-keepass-passwords-between-computer-phone/ | - | No
# Explanation
It is not planned to integrate the cloud APIs directly in KeePassDX, because it would be necessary to integrate each client one-by-one (incidentally this could cause security breaches and is not necessarily compatible with the libre licensed code-base).
@@ -61,8 +51,6 @@ If the URI is not the same, the biometric recognition will have to be reconfigur
## Why disparate compatibility?
**Important : Since Android 11, third-party apps can no longer be the client for requests to open and create files, so only the default "Files" app is usable and the "Intent action" section with [ACTION_OPEN_DOCUMENT](https://developer.android.com/reference/android/content/Intent#ACTION_OPEN_DOCUMENT) and [ACTION_CREATE_DOCUMENT](https://developer.android.com/reference/android/content/Intent#ACTION_CREATE_DOCUMENT) is no longer relevant. You will have to either go through the third party app directly, or go through its implementation in "Files" already integrated in your device. https://developer.android.com/about/versions/11/privacy/storage**
File managers content providers must keep the links active with the flag [FLAG_GRANT_PERSISTABLE_URI_PERMISSION](https://developer.android.com/reference/android/content/Intent#FLAG_GRANT_PERSISTABLE_URI_PERMISSION) to be fully functional.
**These methods are standardized and provided in the official documentation of Android, so it is not the fault of KeePassDX if your preferred file manager does not use these method.**
@@ -77,5 +65,23 @@ By making a simple click on the `OPEN EXISTING DATABASE` button, you make a requ
By making a long click on the `OPEN EXISTING DATABASE` button, you are requesting an `ACTION_GET_CONTENT` intent.
## Native synchronization
Native synchronization of KeePass files makes it possible to update the data of the same file opened and modified from two places at the same time. Unfortunately, this functionality is not yet implemented because it requires an in-depth study on the recording of concurrent data (but is planned). It is therefore recommended, at the moment, to reload the database with the specified button if an external modification to the file has been made.
**Important : Since Android 11, third-party apps can no longer be the client for requests to open and create files, so only the default "Files" app is usable and the "Intent action" section with [ACTION_OPEN_DOCUMENT](https://developer.android.com/reference/android/content/Intent#ACTION_OPEN_DOCUMENT) and [ACTION_CREATE_DOCUMENT](https://developer.android.com/reference/android/content/Intent#ACTION_CREATE_DOCUMENT) is no longer relevant. You will have to either go through the third party app directly, or go through its implementation in "Files" already integrated in your device. https://developer.android.com/about/versions/11/privacy/storage**
# Native synchronization
Native synchronization of KeePass files makes it possible to update the data of the same file opened and modified from two places at the same time.
Synchronization can therefore be seen as a two-step action:
- **Data recovery from a predefined shared location.** It is not up to KeePassDX to handle this step, because the architecture of the Android system is built in such a way that a dedicated application manages to send and receive the files and then propose them through a URI. Here, KeePassDX is only an editor compared to its computer counterpart. *The creation of a new file app fully compatible with open protocols and cloud clients is under study.*
- **The merge of the updated data.** When the URI provides new data, KeePassDX will be able to merge with the currently open data and the retrieved data.
For more information on data merge: https://github.com/Kunzisoft/KeePassDX/issues/840
**It is therefore recommended, at the moment, to reload the database with the specified button if an external modification to the file has been made.**
## Synchronization application
In addition, there are applications that synchronize files on a continuous basis. This allows you to retrieve and send files transparently in the background when a file is updated. Very useful if your file manager does not have this feature.
| Sync app | Pros | Cons | Officially tested
| --- | --- | --- | --- |
| [Syncthing](https://play.google.com/store/apps/details?id=com.nutomic.syncthingandroid) | Widely used open source application that allows decentralized synchronization. _Warning: some users have noticed corruptions when Syncthing was synchronized at the same time as a data save because the URI stream is cuts by the sync. Please make sure that the two actions are not done at the same time, you can disable the automatic save and remember to make regular manual backups._ Tutorial : https://peterbabic.dev/blog/sync-keepass-passwords-between-computer-phone/ | - | No