briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-02-07T09:46:52Zhttps://code.briarproject.org/briar/briar-mailbox/-/issues/25Activate ktlint on core and cli modules2022-02-07T09:46:52ZSebastianActivate ktlint on core and cli modulesMailboxTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2149Wifi plugin is inactive when phone is providing a hotspot on Android 112021-08-27T11:39:37ZakwizgranWifi plugin is inactive when phone is providing a hotspot on Android 11A user reported that on Android 11, when the phone is providing a hotspot configured through the system settings, Briar doesn't detect that a wifi network is available. I can reproduce this on the Pixel 2.A user reported that on Android 11, when the phone is providing a hotspot configured through the system settings, Briar doesn't detect that a wifi network is available. I can reproduce this on the Pixel 2.Android 1.3akwizgranakwizgranhttps://code.briarproject.org/briar/briar-mailbox/-/issues/24Add TorPlugin to mailbox2022-02-07T09:46:52ZTorsten GroteAdd TorPlugin to mailboxfor now copy and pasting the bits we need
Subtask of #3for now copy and pasting the bits we need
Subtask of #3MailboxTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2147Maximum briar limit for hotspot2021-10-26T10:40:26Zsinek asiMaximum briar limit for hotspotWhat is the maximum briar user limit when communicating via hotspot?What is the maximum briar user limit when communicating via hotspot?https://code.briarproject.org/briar/briar/-/issues/2146Contact list - add symbols for unsent, sent and acknowledged messages next to...2021-08-16T14:08:59ZIvanaContact list - add symbols for unsent, sent and acknowledged messages next to the time stampWith the possibility now to export unsent messages onto a removable medium, the user may have some unsent to be exported messages in some conversations, whereas in other conversations they may have already exported all unsent messages, e...With the possibility now to export unsent messages onto a removable medium, the user may have some unsent to be exported messages in some conversations, whereas in other conversations they may have already exported all unsent messages, etc.
To make it easier for the user to see in which conversations there are unsent, sent or acknowledged messages, maybe the appropriate symbols can be added next to the timestamp for each contact in the contact list.
If done similarly as can be seen on the screenshot below, then the user would know that in the conversation with Belle, there are still messages that are not sent and some that are not acknowledged. ![device-2021-08-10-105617](/uploads/7c5ab2017b728eeba8415f0ad9ca1656/device-2021-08-10-105617.png)https://code.briarproject.org/briar/briar/-/issues/2145Timestamps in contact list aren't updated when returning from conversation sc...2021-11-25T17:30:01ZakwizgranTimestamps in contact list aren't updated when returning from conversation screenhttps://code.briarproject.org/briar/briar-mailbox/-/issues/23Add Gradle witness (or something similar)2023-03-01T12:15:22ZSebastianAdd Gradle witness (or something similar)We could use the gradle witness plugin as in briar or maybe use the checksum-dependency plugin which has already been discussed here: https://code.briarproject.org/briar/briar/-/merge_requests/1175We could use the gradle witness plugin as in briar or maybe use the checksum-dependency plugin which has already been discussed here: https://code.briarproject.org/briar/briar/-/merge_requests/1175MailboxTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-mailbox/-/issues/22Add lifecycle component2022-02-07T09:46:52ZSebastianAdd lifecycle componentpart of #1part of #1MailboxSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/21Convert to multi-module project2022-02-07T09:46:51ZSebastianConvert to multi-module projectRename current module to `mailbox-android` and add modules for common code as well as the command line interfaceRename current module to `mailbox-android` and add modules for common code as well as the command line interfaceMailboxSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/20Upgrade to ktlint 0.42.02022-02-07T09:46:50ZSebastianUpgrade to ktlint 0.42.0and remove `"indent"` from the disabled rulesand remove `"indent"` from the disabled rulesMailboxTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2143SecurityException: Permission Denial when opening image2022-04-20T14:53:08ZakwizgranSecurityException: Permission Denial when opening image* Android version: 4.4.2
* Phone model: Samsung GT-I9301I (s3ve3gxx)
* Briar version: 1.3.6 (445ef08)
Stacktrace:
```
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/...* Android version: 4.4.2
* Phone model: Samsung GT-I9301I (s3ve3gxx)
* Briar version: 1.3.6 (445ef08)
Stacktrace:
```
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/835 from pid=28044, uid=10227 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1472)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:148)
at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:682)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1066)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:907)
at android.content.ContentResolver.openInputStream(ContentResolver.java:632)
at org.briarproject.briar.android.settings.SettingsViewModel.trySetAvatar(SettingsViewModel.java:230)
at org.briarproject.briar.android.settings.SettingsViewModel.lambda$setAvatar$2(SettingsViewModel.java:214)
at org.briarproject.briar.android.settings.SettingsViewModel.lambda$setAvatar$2$SettingsViewModel(SettingsViewModel.java)
at org.briarproject.briar.android.settings.-$$Lambda$SettingsViewModel$nVOlNd9texPikn4W8A-1eS1Xxu4.run(lambda)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
```
I'm not sure whether we need to request READ_EXTERNAL_STORAGE on API 19, or whether this is caused by a bug in the app supplying the image and we just need to handle the exception cleanly.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar-mailbox/-/issues/18Upgrade dependencies2023-01-19T13:04:36ZSebastianUpgrade dependenciesMailboxSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/17First integration test2022-02-07T09:46:52ZTorsten GroteFirst integration testinitial integration test that hits an HTTP endpoint that just returns 200 or something
could be without tor, but with database setupinitial integration test that hits an HTTP endpoint that just returns 200 or something
could be without tor, but with database setupMailboxTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-mailbox/-/issues/16Research and decide database library2022-02-07T09:46:51ZTorsten GroteResearch and decide database libraryCould be a sqlite wrapper library (with encryption ideally).
## Extensions
| Name | URL & Summary | Encryption | Platforms | Notes |
|-------------------------|---------------------------------------------------------------------------...Could be a sqlite wrapper library (with encryption ideally).
## Extensions
| Name | URL & Summary | Encryption | Platforms | Notes |
|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **SQLCipher** | https://www.zetetic.net/sqlcipher/ | yes | Android | depends on `androidx.sqlite:sqlite`. Using this library "would probably require forking sqlite-jdbc and adapting it to work with SQLCipher rather than plain SQLite" |
| | SQLCipher is an open source library that provides transparent, secure 256-bit AES encryption of SQLite database files. | | | While the Android AAR package is available for free, the JDBC driver for the JVM is only available in the Enterprise plan from Zetetic |
| **SQLite Multiple Ciphers** | https://github.com/utelle/SQLite3MultipleCiphers https://utelle.github.io/SQLite3MultipleCiphers/ | yes | C | This project is Work In Progress. As of May 2021, the code base is now rather stable, however, further major code modifications and/or reorganizations may still occur. |
| | The project SQLite3 Multiple Ciphers implements an encryption extension for SQLite with support for multiple ciphers. In the past the encryption extension was bundled with the project wxSQLite3, which provides a thin SQLite3 database wrapper for wxWidgets. | | | |
| **SQLite JDBC Crypt** | https://github.com/Willena/sqlite-jdbc-crypt | yes | Android+JVM via bundled native code (Utelle) | Based on SQLite Multiple Ciphers (see row above) |
| | SQLite JDBC is a library for accessing and creating SQLite database files in Java. | | | Looks promising. Got it to work on Linux without problems; got it to work on Android, too, but not directly because the native code bundled in the JAR is not accessible on Android with the approach of native library loading they use and even when the `*.so` files are copied into the project, they do not work because the seem to compiled for `glibc` not `musl`. Still, got it working by copying Java and native code into the project and compiling using NDK. Will probably require some work to get this to work properly. We can try compiling the native code ourselves as we do with Tor. Also it would be possible to create AAR packages from an `android-library` project. |
| **SQLeet** | https://github.com/resilar/sqleet | yes | C | "sqleet does not have an out-of-the-box support for Android. However, SQLite Android Bindings project provides an easy way to bundle a custom SQLite3 version (such as sqleet) into an Android application with the standard Android interface android.database.sqlite." We would still need a way to have a unified JVM/Android interface. In combination with SQLDroid (see below) we could potentially use this using a unified JDBC API, however we'd also need a JVM JDBC driver that uses SQLeet for which support is not mentioned on the project page |
| | sqleet is an encryption extension for SQLite3. The encryption is transparent (on-the-fly) and based on modern cryptographic algorithms designed for high performance in software and robust side-channel resistance. The compilation of sqleet is easy because there are no external dependencies, which simplifies cross-compiling and cross-platform development. | | | |
## Drivers
| Name | URL & Summary | Encryption | Platforms | Notes |
|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| **SQLite JDBC** | https://github.com/xerial/sqlite-jdbc | no | JVM | |
| | JDBC driver for SQLite using JNA instead of JNI to make it easy to deploy (if you already have SQLite installed). (…) The main goal of this library is to allow users to encrypt databases they are producing | | | |
| **SQLite JNA** | https://github.com/gwenn/sqlite-jna | no | | |
| | | | | |
| **SQLDroid** | https://github.com/SQLDroid/SQLDroid | no | | Probably makes it possible to use the same DB code for JavaSE and Android as both can then rely on JDBC. Be wary: https://stackoverflow.com/a/55567547 |
| | SQLDroid is a JDBC driver for Android's sqlite database (android.database.sqlite.SQLiteDatabase) | | | |
## Abstractions
| Name | URL & Summary | Encryption | Platforms | Notes |
|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|-----------|---------------------------------------------------------------------------------------------|
| **SQLDelight** | https://github.com/cashapp/sqldelight | no | Kotlin | Has Android drivers based on androidx.sqlite and JVM drivers based on xerial's JDBC drivers |
| | SQLDelight generates typesafe kotlin APIs from your SQL statements. It verifies your schema, statements, and migrations at compile-time and provides IDE features like autocomplete and refactoring which make writing and maintaining SQL simple. | | | |
## Pure Java
| Name | URL & Summary | Encryption | Platforms | Notes |
|------------------|-----------------------------|------------|-----------|-------|
| **H2** | http://www.h2database.com/ | yes | JVM | |
| | | | | |
| **HSQLDB** | http://www.hsqldb.org/ | yes | JVM | |
| | | | | |
| **Apache Derby** | http://db.apache.org/derby/ | yes | JVM | |
| | | | | |
| **SQLJet** | https://sqljet.com/ | no | JVM | |
| | SQLJet is an independent pure Java implementation of a popular SQLite database management system. SQLJet is a software library that provides API that enables Java application to read and modify SQLite databases. SQLJet does not support SQL queries; there is an API to work with the database on a lower level. | | | |
## Pure Java Non-SQL
| Name | URL & Summary | Encryption | Platforms | Notes |
|---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|-----------|-------|
| **Berkeley DB Java Edition** | https://docs.oracle.com/cd/E17277_02/html/index.html | | | |
| | JE is a general-purpose, transaction-protected, embedded database written in 100% Java (JE makes no JNI calls). As such, it offers the Java developer safe and efficient in-process storage and management of arbitrary data. | | | |
| **Berkeley DB Direct Persistence Layer** | https://docs.oracle.com/cd/E17277_02/html/java/index.html?com/sleepycat/persist/package-summary.html | | | |
| | The Direct Persistence Layer (DPL) adds a persistent object model to the Berkeley DB transactional engine. | | | |
| | | | | |
| **Perst** | https://www.mcobject.com/perst/ | | | |Mailbox: DatabaseSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/15Decide about database library2022-02-07T09:46:51ZSebastianDecide about database libraryMailbox: Databasehttps://code.briarproject.org/briar/briar/-/issues/2141Private group crash after re-adding contact2021-10-26T10:41:07ZGhost UserPrivate group crash after re-adding contactHello, recently I was testing private groups in Briar and I encountered a bug.
Both accounts were just created and here are the steps to reproduce the bug:
1. Person A and Person B add each other to contacts.
2. Person A created the grou...Hello, recently I was testing private groups in Briar and I encountered a bug.
Both accounts were just created and here are the steps to reproduce the bug:
1. Person A and Person B add each other to contacts.
2. Person A created the group.
3. Person B joins the group.
4. Person A and Person B remove each other from contacts.
5. Person A and Person B add each other to contacts again.
6. Person A clicks on "share" button in the group.
7. Person A device crashes.
I also sent Briar Crash Report (with description: "issue #2141") with following informations attached:
- Basic information
- Stacktrace
- Build configuration
- App log
I didn't want to include all device informations but these may be useful:
- AndroidApi: 29
- AndroidVersion: 10
- Product: lineage_tissot (LineageOS 17.1 27.07.2021)
If any additional informations are needed then let me know.
EDIT:
I noticed that for some reason Person A still sees that Person B is in the group even after Person B left which in my opinion is some problem with synchronization because Person B had no contacts in the group at the time of leaving.
EDIT 2:
I removed unecessary step because Person B doesn't have to leave the group to reproduce the crash.https://code.briarproject.org/briar/briar/-/issues/2140Briar REST API - error 4012021-08-27T11:45:13ZMaxim Kopylovichmaxim380k@mail.ruBriar REST API - error 401the server starts but returns a 401 error from something.![Безымянный](/uploads/184ba3404958ad54cd1414cf489cc9b1/Безымянный.jpg)the server starts but returns a 401 error from something.![Безымянный](/uploads/184ba3404958ad54cd1414cf489cc9b1/Безымянный.jpg)https://code.briarproject.org/briar/briar-desktop/-/issues/9Show basic contact list2021-12-06T14:25:50ZNicoShow basic contact listSince Briar's core is running in here, we can now connect the dots with a simple contact list like the one created by @sebkur in [compose-playground](https://code.briarproject.org/briar-staging/compose-playground).Since Briar's core is running in here, we can now connect the dots with a simple contact list like the one created by @sebkur in [compose-playground](https://code.briarproject.org/briar-staging/compose-playground).Desktop 0.1.0SebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/8Add CI config with code-style checking2021-12-06T14:25:50ZNicoAdd CI config with code-style checkingSimilar to https://code.briarproject.org/briar/briar-mailbox/-/merge_requests/3Similar to https://code.briarproject.org/briar/briar-mailbox/-/merge_requests/3Desktop 0.1.0SebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/7Allow time travel in integration tests2021-12-06T14:25:49ZNicoAllow time travel in integration testsFor letting things work with briar's current `master`, we also need to inject time as in https://code.briarproject.org/briar/briar/-/merge_requests/1345.For letting things work with briar's current `master`, we also need to inject time as in https://code.briarproject.org/briar/briar/-/merge_requests/1345.Desktop 0.1.0Mikolai GütschowMikolai Gütschow