briar issueshttps://code.briarproject.org/briar/briar/-/issues2020-11-21T19:07:47Zhttps://code.briarproject.org/briar/briar/-/issues/323Send encrypted crash reports through Briar2020-11-21T19:07:47Zstr4dSend encrypted crash reports through Briar#123 covered encrypted crash reports sent over Tor. This issue covers the extension of sending them through Briar.
The app should import the encrypted report, post it to a crash report channel and delete it from the disk.
Messages in t...#123 covered encrypted crash reports sent over Tor. This issue covers the extension of sending them through Briar.
The app should import the encrypted report, post it to a crash report channel and delete it from the disk.
Messages in the crash report channel should be synced with contacts, but no further. We'll need to add a special contact that's only reachable via Tor for delivering reports to the developers. To prevent the special contact from being a single point where Briar users can be enumerated, it should only be contacted when there are crash reports to deliver.
Users should be able to opt out of delivering crash reports for their contacts.https://code.briarproject.org/briar/briar/-/issues/319Distinguish between transient, recoverable and permanent DB exceptions2020-11-21T19:08:20ZakwizgranDistinguish between transient, recoverable and permanent DB exceptionsThis would be useful for message delivery hooks and any other operation that should be retried if the failure is temporary, or cancelled if it's permanent.This would be useful for message delivery hooks and any other operation that should be retried if the failure is temporary, or cancelled if it's permanent.https://code.briarproject.org/briar/briar/-/issues/315"About privacy" section2021-01-13T14:54:43ZMegalox"About privacy" sectionadd an "about privacy" view where we explain the advantages and limitations of serverless messaging.
Explain the perils of "reveal relationship" for private groups; connect this paragraph to the "more info" button in the "options" dialog...add an "about privacy" view where we explain the advantages and limitations of serverless messaging.
Explain the perils of "reveal relationship" for private groups; connect this paragraph to the "more info" button in the "options" dialog for join messages.https://code.briarproject.org/briar/briar/-/issues/304Block path algorithms for BSP2022-06-15T12:02:16ZakwizgranBlock path algorithms for BSPDescribe how to calculate which hashes belong to a block's path, given the block number and message length.
Subtask of #249.Describe how to calculate which hashes belong to a block's path, given the block number and message length.
Subtask of #249.Multi-block messagesakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/303Use Bluetooth LE for peer discovery2022-01-26T13:50:35ZakwizgranUse Bluetooth LE for peer discoverySome newer Android devices support Bluetooth LE peripheral mode, which allows them to send beacons advertising their presence. This could be used as a low-energy and privacy-preserving alternative to polling for device pairs that support...Some newer Android devices support Bluetooth LE peripheral mode, which allows them to send beacons advertising their presence. This could be used as a low-energy and privacy-preserving alternative to polling for device pairs that support it.
https://altbeacon.github.io/android-beacon-library/beacon-transmitter-devices.html
Related to #44, #62.https://code.briarproject.org/briar/briar/-/issues/301Replace jars with Gradle dependencies2020-11-21T19:23:37ZakwizgranReplace jars with Gradle dependencies* ~~weupnp: https://bintray.com/bintray/jcenter/org.bitlet%3Aweupnp/view (upgrade from 0.1.3-SNAPSHOT to 0.1.4)~~
* bluecove and bluecove-gpl: https://bintray.com/bintray/jcenter/net.sf.bluecove%3Abluecove/view (downgrade from 2.1.1-SNAP...* ~~weupnp: https://bintray.com/bintray/jcenter/org.bitlet%3Aweupnp/view (upgrade from 0.1.3-SNAPSHOT to 0.1.4)~~
* bluecove and bluecove-gpl: https://bintray.com/bintray/jcenter/net.sf.bluecove%3Abluecove/view (downgrade from 2.1.1-SNAPSHOT to 2.1.0, check whether Briar patch is still needed)
* ~~jna: https://bintray.com/bintray/jcenter/net.java.dev.jna%3Ajna/view and https://bintray.com/bintray/jcenter/net.java.dev.jna%3Ajna-platform/view~~
* jssc: https://bintray.com/bintray/jcenter/org.scream3r%3Ajssc/view (upgrade from 0.9, see #64)
* ~~jsocks: no suitable artifact available, see #228~~
* jtorctl: no suitable artifact available, patch required until merged upstream, see https://github.com/guardianproject/jtorctl/pulls
* jnotify: no suitable artifact available, patch required, see #25https://code.briarproject.org/briar/briar/-/issues/299Bluetooth remains active after adding contact2020-11-21T19:24:26ZErnir ErlingssonBluetooth remains active after adding contactAfter adding a contact Bluetooth remains on indefinitely. We should rather only enable it temporarily.After adding a contact Bluetooth remains on indefinitely. We should rather only enable it temporarily.https://code.briarproject.org/briar/briar/-/issues/291Resetting the password/database results in a Strict Mode violation2020-11-21T19:24:47Zstr4dResetting the password/database results in a Strict Mode violationEncountered on Nexus 6P, Android 6.0.1, commit 7c687736d while resetting the Briar database after some incompatible change:
```
04-13 17:12:00.354 17497-17497/org.briarproject I/BriarService: Created
04-13 17:12:00.359 17497-17929/org.b...Encountered on Nexus 6P, Android 6.0.1, commit 7c687736d while resetting the Briar database after some incompatible change:
```
04-13 17:12:00.354 17497-17497/org.briarproject I/BriarService: Created
04-13 17:12:00.359 17497-17929/org.briarproject I/LifecycleManagerImpl: Starting services
04-13 17:12:00.627 17497-17929/org.briarproject W/LifecycleManagerImpl: org.briarproject.api.db.DbException
org.briarproject.api.db.DbException
at org.briarproject.db.JdbcDatabase.open(JdbcDatabase.java:256)
at org.briarproject.db.H2Database.open(H2Database.java:41)
at org.briarproject.db.DatabaseComponentImpl.open(DatabaseComponentImpl.java:106)
at org.briarproject.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:79)
at org.briarproject.android.BriarService$1.run(BriarService.java:92)
04-13 17:12:00.627 17497-17929/org.briarproject W/BriarService: Startup failed: DB_ERROR
04-13 17:12:00.641 17497-17497/org.briarproject I/BriarService: Destroyed
04-13 17:12:00.659 17497-17497/org.briarproject I/NavDrawerActivity: Exiting
04-13 17:12:00.660 17497-17497/org.briarproject I/art: System.exit called, status: 0
04-13 17:12:00.660 17497-17497/org.briarproject I/AndroidRuntime: VM exiting with result code 0, cleanup skipped.
04-13 17:12:15.832 18152-18223/org.briarproject W/FileUtils: Failed to chmod(/data/user/0/org.briarproject/shared_prefs/db.xml): android.system.ErrnoException: chmod failed: ENOENT (No such file or directory)
04-13 17:12:15.846 18152-18152/org.briarproject D/StrictMode: StrictMode policy violation; ~duration=33 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=65567 violation=2
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1263)
at libcore.io.BlockGuardOs.stat(BlockGuardOs.java:292)
at java.io.File.isFile(File.java:537)
at org.briarproject.util.FileUtils.deleteFileOrDir(FileUtils.java:8)
at org.briarproject.android.util.AndroidUtils.deleteAppData(AndroidUtils.java:83)
at org.briarproject.android.PasswordActivity.clearSharedPrefsAndDeleteEverything(PasswordActivity.java:107)
at org.briarproject.android.PasswordActivity.access$400(PasswordActivity.java:35)
at org.briarproject.android.PasswordActivity$3.onClick(PasswordActivity.java:127)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:163)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
04-13 17:12:15.846 18152-18152/org.briarproject D/StrictMode: StrictMode policy violation; ~duration=32 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=65567 violation=2
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1263)
at libcore.io.BlockGuardOs.stat(BlockGuardOs.java:292)
at java.io.File.isDirectory(File.java:522)
at org.briarproject.util.FileUtils.deleteFileOrDir(FileUtils.java:10)
at org.briarproject.android.util.AndroidUtils.deleteAppData(AndroidUtils.java:83)
at org.briarproject.android.PasswordActivity.clearSharedPrefsAndDeleteEverything(PasswordActivity.java:107)
at org.briarproject.android.PasswordActivity.access$400(PasswordActivity.java:35)
at org.briarproject.android.PasswordActivity$3.onClick(PasswordActivity.java:127)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:163)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
04-13 17:12:15.846 18152-18152/org.briarproject D/StrictMode: StrictMode policy violation; ~duration=32 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=65567 violation=2
at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1263)
at libcore.io.BlockGuardOs.stat(BlockGuardOs.java:292)
at java.io.File.isFile(File.java:537)
at org.briarproject.util.FileUtils.deleteFileOrDir(FileUtils.java:8)
at org.briarproject.util.FileUtils.deleteFileOrDir(FileUtils.java:13)
at org.briarproject.android.util.AndroidUtils.deleteAppData(AndroidUtils.java:83)
at org.briarproject.android.PasswordActivity.clearSharedPrefsAndDeleteEverything(PasswordActivity.java:107)
at org.briarproject.android.PasswordActivity.access$400(PasswordActivity.java:35)
at org.briarproject.android.PasswordActivity$3.onClick(PasswordActivity.java:127)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:163)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
04-13 17:12:15.846 18152-18152/org.briarproject D/StrictMode: StrictMode policy violation; ~duration=31 ms: android.os.StrictMode$StrictModeDiskWriteViolation: policy=65567 violation=1
at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:1223)
at libcore.io.BlockGuardOs.remove(BlockGuardOs.java:254)
at java.io.File.delete(File.java:311)
at org.briarproject.util.FileUtils.deleteFileOrDir(FileUtils.java:9)
at org.briarproject.util.FileUtils.deleteFileOrDir(FileUtils.java:13)
at org.briarproject.android.util.AndroidUtils.deleteAppData(AndroidUtils.java:83)
at org.briarproject.android.PasswordActivity.clearSharedPrefsAndDeleteEverything(PasswordActivity.java:107)
at org.briarproject.android.PasswordActivity.access$400(PasswordActivity.java:35)
at org.briarproject.android.PasswordActivity$3.onClick(PasswordActivity.java:127)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:163)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
```https://code.briarproject.org/briar/briar/-/issues/289Improve UX for notifications2020-11-21T19:26:17ZakwizgranImprove UX for notificationshttps://code.briarproject.org/briar/briar/-/issues/288QR RuntimeException: Fail to connect to camera service2020-11-21T19:26:39ZTorsten GroteQR RuntimeException: Fail to connect to camera serviceToday, for the first time, I am unable to add contacts with two devices. One device just doesn't want to focus on the QR code. I am still trying to get it to work (because I need to test something else) and then managed to crash Briar:
...Today, for the first time, I am unable to add contacts with two devices. One device just doesn't want to focus on the QR code. I am still trying to get it to work (because I need to test something else) and then managed to crash Briar:
```
04-06 17:48:10.855 W/ShowQrCodeFragment: Error opening camera
java.lang.RuntimeException: Fail to connect to camera service
at android.hardware.Camera.native_setup(Native Method)
at android.hardware.Camera.<init>(Camera.java:323)
at android.hardware.Camera.open(Camera.java:298)
at org.briarproject.android.keyagreement.ShowQrCodeFragment$3.doInBackground(ShowQrCodeFragment.java:212)
at org.briarproject.android.keyagreement.ShowQrCodeFragment$3.doInBackground(ShowQrCodeFragment.java:196)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
```
IMHO this error should be handled more graceful.https://code.briarproject.org/briar/briar/-/issues/282Pairing request when adding contact via QR code2020-11-21T19:27:22ZakwizgranPairing request when adding contact via QR codeWhen adding contacts between the Moto G 4G (Android 5.1) and the Galaxy Nexus (Android 4.4.4 CM), the Moto G shows a pairing request notification (sometimes twice, presumably once for the incoming connection and once for the outgoing con...When adding contacts between the Moto G 4G (Android 5.1) and the Galaxy Nexus (Android 4.4.4 CM), the Moto G shows a pairing request notification (sometimes twice, presumably once for the incoming connection and once for the outgoing connection). Even if the pairing request is accepted, the connection fails.
This is an intermittent failure - after backing out of the add contact process and retrying, the connection sometimes succeeds.https://code.briarproject.org/briar/briar/-/issues/267Touching persistent notification doesn't bring app to foreground2020-11-21T19:28:40ZakwizgranTouching persistent notification doesn't bring app to foregroundThe persistent notification says 'Touch to show the dashboard' but touching it has no effect.The persistent notification says 'Touch to show the dashboard' but touching it has no effect.https://code.briarproject.org/briar/briar/-/issues/265Fuzzing tests for message validators2021-02-10T15:10:26ZakwizgranFuzzing tests for message validatorsUse fuzzing to ensure the message validators reject invalid messages without crashing. Record any messages that trigger crashes.
We can either look for a suitable fuzzing library or write our own fuzzer, starting from valid messages and...Use fuzzing to ensure the message validators reject invalid messages without crashing. Record any messages that trigger crashes.
We can either look for a suitable fuzzing library or write our own fuzzer, starting from valid messages and applying random mutations (delete/replace/repeat).https://code.briarproject.org/briar/briar/-/issues/261Add Other Means to Add Contacts2021-09-27T21:10:34ZxavierAdd Other Means to Add Contactsi like the p2p and secure concept of briar.
even if simpler on android, resource consumption is much more controlled than tox and so usable.
local contact addition by bluetooth only is a bit too strict.
i see the discussion about QR co...i like the p2p and secure concept of briar.
even if simpler on android, resource consumption is much more controlled than tox and so usable.
local contact addition by bluetooth only is a bit too strict.
i see the discussion about QR codes with direct exchange #117
but it seems it is also a direct contact
contact recommendation can be nice
but i would like a standard contact invitation by email, phone call, or sms.
i know this is less secure but for people we do not see regularly this is better than keeping with normal app.
maybe sharing an invitation key with any kind of prefered app is the easier thinghttps://code.briarproject.org/briar/briar/-/issues/240Murmur interferes with Bluetooth discovery2020-11-21T19:32:55ZakwizgranMurmur interferes with Bluetooth discoveryWhen Murmur (https://github.com/casific/murmur) has previously run on a device, it continues to run in the background and starts a background service on boot.
The background service seems to interfere with Briar's ability to discover ot...When Murmur (https://github.com/casific/murmur) has previously run on a device, it continues to run in the background and starts a background service on boot.
The background service seems to interfere with Briar's ability to discover other devices via Bluetooth. Log output shows that devices are sometimes discovered, but more slowly, causing Briar to time out before a connection is made.
Stopping Murmur's background service or uninstalling Murmur solves the problem.https://code.briarproject.org/briar/briar/-/issues/232Improve unread message highlight2020-11-21T19:33:28ZErnir ErlingssonImprove unread message highlightRight now unread messages are displayed in red-ish chat bubbles in the private chat window with a contact. These are a bit hard to read and there was a suggestion of changing their color.
What about highlighting the chat bubbles for a ...Right now unread messages are displayed in red-ish chat bubbles in the private chat window with a contact. These are a bit hard to read and there was a suggestion of changing their color.
What about highlighting the chat bubbles for a few seconds and then letting the color fade away? We should also use the same color somewhere in a contact list element where we display unread messages.
Are there maybe some other suggestions how we do this ?https://code.briarproject.org/briar/briar/-/issues/219Use builder pattern for factories with optional/default arguments2020-11-21T19:35:25ZakwizgranUse builder pattern for factories with optional/default argumentshttps://code.briarproject.org/briar/briar/-/issues/212PanicKit Response: Send Message(s)2020-11-21T19:35:45ZTorsten GrotePanicKit Response: Send Message(s)It is possible to not only purge all data (#210), but also to send messages in a panic event to preselected contacts. The message text needs to be specified at setup time.
Bonus points for allowing the user's location to be included in ...It is possible to not only purge all data (#210), but also to send messages in a panic event to preselected contacts. The message text needs to be specified at setup time.
Bonus points for allowing the user's location to be included in the message. Since we might not want to ask for the location permission, it would be nice if the Panic Trigger App could provide that in the trigger intent.https://code.briarproject.org/briar/briar/-/issues/192Failure to open Bluetooth listening socket2020-11-21T19:37:01ZakwizgranFailure to open Bluetooth listening socketGot this stacktrace on the Sony Xperia Tipo (Android 4.0.4) when Bluetooth was enabled to add a contact. The device has been running for several days and making Bluetooth connections. Perhaps some kind of resource leak? Should we be rele...Got this stacktrace on the Sony Xperia Tipo (Android 4.0.4) when Bluetooth was enabled to add a contact. The device has been running for several days and making Bluetooth connections. Perhaps some kind of resource leak? Should we be releasing sockets differently to avoid this?
The Bluetooth adapter is enabled, but the attempt to add a contact fails immediately.
```
12-18 13:22:37.116 25207-26268/org.briarproject W/DroidtoothPlugin: java.io.IOException: No available channels
java.io.IOException: No available channels
at android.bluetooth.BluetoothAdapter.createNewRfcommSocketAndRecord(BluetoothAdapter.java:1119)
at android.bluetooth.BluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord(BluetoothAdapter.java:1067)
at org.briarproject.plugins.droidtooth.InsecureBluetooth.listen(InsecureBluetooth.java:35)
at org.briarproject.plugins.droidtooth.DroidtoothPlugin$2.run(DroidtoothPlugin.java:163)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
```https://code.briarproject.org/briar/briar/-/issues/187Implement I2P plugin2021-12-09T00:18:37Zstr4dImplement I2P plugin@akwizgran expressed a keen interest in this happening eventually. The basic idea is to add I2P as a transport, so that contacts can choose to communicate over I2P if they wish. It should be similar to the Tor plugin, and will probably b...@akwizgran expressed a keen interest in this happening eventually. The basic idea is to add I2P as a transport, so that contacts can choose to communicate over I2P if they wish. It should be similar to the Tor plugin, and will probably be easier to implement (because I2P has a native Java API).