briar issueshttps://code.briarproject.org/briar/briar/-/issues2020-11-18T22:29:19Zhttps://code.briarproject.org/briar/briar/-/issues/1206Install validation2020-11-18T22:29:19ZPratiwirInstall validationThere have been discussions about hardware db keys but these security features of course assume that users have the correct original software on their devices. If this isn't the case then messages could be leaking.
Some general backgrou...There have been discussions about hardware db keys but these security features of course assume that users have the correct original software on their devices. If this isn't the case then messages could be leaking.
Some general background.
Play store, so far as I know, isn't solely located in jurisdictions free of secret court orders, although there are servers for different regions. Distributed software sometimes does vary, depending on the ip address from which it is requested. I have experienced this when doing md5 checks myself.
Play store also has a serious weakness, it works by using google account login, so even if you download over tor you can't be completely anonymous and you will have difficulty creating any google account using tor.
So Play Store might not be advisable if you think you may have been adversely profiled.
In addition there is also the possibility that https can be intercepted and compromised.
https://www.eff.org/deeplinks/2011/10/how-secure-https-today
Either issue might affect users targeted by ip address and not using tor.
Downloading as an apk file at least gives the possibility to check the hash sum. Also downloading over tor will make it difficult for individual users to be targeted.
So, given these considerations, and that apk files may be used frequently I think it is probably important to have file hashes readily available on a website. Will this be the case?
I am also wondering if there is a way to do an application integrity check from a console as root? Perhaps a small script could be available for this purpose? System file checks can be a good added level of security. I would like to think the application could do this automatically for all users, but it seems this might be difficult to guarantee, and the only really secure way would be via the console. Has anyone any ideas on this?https://code.briarproject.org/briar/briar/-/issues/1205Check that registration methods aren't called after startup2020-11-18T22:30:29ZakwizgranCheck that registration methods aren't called after startupVarious registration methods are meant to be called at injection time, before `LifecycleManager#startServices()` is called. Add checks to ensure they aren't called later in the lifecycle (e.g. due to a singleton being created lazily).Various registration methods are meant to be called at injection time, before `LifecycleManager#startServices()` is called. Add checks to ensure they aren't called later in the lifecycle (e.g. due to a singleton being created lazily).https://code.briarproject.org/briar/briar/-/issues/1204Device pipes2020-11-18T22:31:15ZPratiwirDevice pipesI would like a feature where it is possible to send a data stream from one device to another. This would be useful for relaying local internet of things data, current ip address, etc. Perhaps briar could receive and send data between oth...I would like a feature where it is possible to send a data stream from one device to another. This would be useful for relaying local internet of things data, current ip address, etc. Perhaps briar could receive and send data between other programs running on each device, to a particular pipe session that could be set up between users. The linux pipe system might be possible to use.
https://unix.stackexchange.com/questions/342787/how-to-use-pipe-to-apply-a-text-to-a-program
Tor has the unique ability to be immune to dynamic ip address changes, set up vpn etc, but it may be possible to extend briar to enable easily set up data links, if so then it would be easier for the end user and attractive for geeks.https://code.briarproject.org/briar/briar/-/issues/1202Minimise long messages in UI2020-11-18T22:32:22ZakwizgranMinimise long messages in UIUser feedback: "It would be nice to be able to minimize very long text bubbles. This is a standard feature on many computer notebook environments."User feedback: "It would be nice to be able to minimize very long text bubbles. This is a standard feature on many computer notebook environments."https://code.briarproject.org/briar/briar/-/issues/1200Menu options to jump to start/end of conversation2020-11-18T22:34:04ZakwizgranMenu options to jump to start/end of conversationUser feedback: "We should be able to go to the start or end of the chat."User feedback: "We should be able to go to the start or end of the chat."https://code.briarproject.org/briar/briar/-/issues/1198Briar crashes or restarts on Samsung GT-I90822020-11-18T22:44:40ZakwizgranBriar crashes or restarts on Samsung GT-I9082@Pratiwir reported that Briar repeatedly crashes or restarts when switching between foreground apps on the Samsung GT-I9082.
Unfortunately the logs are too short to show anything that happened before Briar restarted. They just show the ...@Pratiwir reported that Briar repeatedly crashes or restarts when switching between foreground apps on the Samsung GT-I9082.
Unfortunately the logs are too short to show anything that happened before Briar restarted. They just show the later stages of Briar starting up.
Maybe we should change the ACRA config to increase the amount of logcat data attached to the feedback.
* Android version: 4.1.2
* Phone Model: Samsung GT-I9082 (baffinxx)
* Briar version: 0.16.20 (89f50bb)https://code.briarproject.org/briar/briar/-/issues/1192Chat resets to top not bottom.2022-05-14T16:34:26ZPratiwirChat resets to top not bottom.In a briar beta chat if I send an emoticon smiley then hit the keyboard symbol to use characters the chat resets to the top and I have to scroll all the way down to the end. It should be positioned at the end after using the keyboard sym...In a briar beta chat if I send an emoticon smiley then hit the keyboard symbol to use characters the chat resets to the top and I have to scroll all the way down to the end. It should be positioned at the end after using the keyboard symbol.https://code.briarproject.org/briar/briar/-/issues/1191Cannot add contact on Android 8.1/LineageOS2019-02-28T17:17:33ZakwizgranCannot add contact on Android 8.1/LineageOS* Android version: 8.1.0
* Briar version: 0.16.19
* Phone model: LeEco LEX720 (ZL1_CN)
* User feedback: "Adding a first contact fails."
The log shows that the camera is receiving preview frames and decoding them quickly, but no QR code ...* Android version: 8.1.0
* Briar version: 0.16.19
* Phone model: LeEco LEX720 (ZL1_CN)
* User feedback: "Adding a first contact fails."
The log shows that the camera is receiving preview frames and decoding them quickly, but no QR code is found. Probably a one-off, but I'm recording this in case it indicates a problem (e.g. selecting the wrong camera or cropping the wrong part of the preview image).https://code.briarproject.org/briar/briar/-/issues/1183Key manager blocks startup by holding DB lock2020-11-18T22:40:15ZakwizgranKey manager blocks startup by holding DB lock`KeyManagerImpl#startService()` uses a read-write transaction to load contacts, store transports, and start key rotation. When there are many contacts this transaction can hold the DB lock for several seconds, preventing the contact list...`KeyManagerImpl#startService()` uses a read-write transaction to load contacts, store transports, and start key rotation. When there are many contacts this transaction can hold the DB lock for several seconds, preventing the contact list from being loaded.
Move the transaction off the critical path, and if possible break it up into smaller transactions.https://code.briarproject.org/briar/briar/-/issues/1179Handshake protocol2020-11-18T22:39:28ZakwizgranHandshake protocolTo enable account backups (#110) and simplify the introduction protocol (#474) it would be useful to have a way of bootstrapping from static keys, suitable for storing in a backup or exchanging in an introduction, to forward secret trans...To enable account backups (#110) and simplify the introduction protocol (#474) it would be useful to have a way of bootstrapping from static keys, suitable for storing in a backup or exchanging in an introduction, to forward secret transport keys.https://code.briarproject.org/briar/briar/-/issues/1175Delete private group messages2020-11-18T22:38:48ZakwizgranDelete private group messagesUser feedback: "Will be good if you make function "delete message" and "delete message for all" into group chat. Its really important."
Related to #68, #85.User feedback: "Will be good if you make function "delete message" and "delete message for all" into group chat. Its really important."
Related to #68, #85.https://code.briarproject.org/briar/briar/-/issues/1172Briar doesn't use Tor when connected via Bluetooth dial-up networking2020-11-18T22:38:10ZakwizgranBriar doesn't use Tor when connected via Bluetooth dial-up networkingUser feedback: "On my Android device I use dial up network (DUN) via a BlueTooth connection to a phone. With no mobile network and no WiFi, Briar doesn't find the internet connection and doesn't use it for Tor, while all other apps inclu...User feedback: "On my Android device I use dial up network (DUN) via a BlueTooth connection to a phone. With no mobile network and no WiFi, Briar doesn't find the internet connection and doesn't use it for Tor, while all other apps including OrBot do."https://code.briarproject.org/briar/briar/-/issues/1170IllegalArgumentException when reloading activity2022-06-13T15:08:29ZakwizgranIllegalArgumentException when reloading activity* Android version: 7.0
* Phone model: Motorola Moto G (4) (athene)
* Briar version: 0.16.17 (347c2f2)
* User feedback: "Received new message notification. Tried to view it, and got white screen, instead of prior message list loading, als...* Android version: 7.0
* Phone model: Motorola Moto G (4) (athene)
* Briar version: 0.16.17 (347c2f2)
* User feedback: "Received new message notification. Tried to view it, and got white screen, instead of prior message list loading, also at bottom of screen was a place to type message... I've noticed it takes longer and longer for old message list to load."
Stacktrace:
```
java.lang.IllegalArgumentException: reportSizeConfigurations: ActivityRecord not found for: Token{c80ad01 ActivityRecord{dc4d2e8 u0 org.briarproject.briar.beta/org.briarproject.briar.android.contact.ConversationActivity t2562 f}}
at android.os.Parcel.readException(Parcel.java:1687)
at android.os.Parcel.readException(Parcel.java:1636)
at android.app.ActivityManagerProxy.reportSizeConfigurations(ActivityManagerNative.java:6982)
at android.app.ActivityThread.reportSizeConfigurations(ActivityThread.java:2789)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2728)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4524)
at android.app.ActivityThread.-wrap19(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1479)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
```
Log extract:
```
02-09 16:24:47.098 I/Adreno (30469): DequeueBuffer: dequeueBuffer failed
02-09 16:24:47.099 I/Adreno (30469): DequeueBuffer: dequeueBuffer failed
02-09 16:24:47.099 I/Adreno (30469): DequeueBuffer: dequeueBuffer failed
02-09 16:24:47.099 I/Adreno (30469): DequeueBuffer: dequeueBuffer failed
02-09 16:24:47.103 W/OpenGLRenderer(30469): swapBuffers encountered EGL error 12301 on 0xa48967c0, halting rendering...
02-09 16:24:47.116 I/BriarRecyclerView(30469): Adding Handler Callback
02-09 16:24:47.116 I/ConversationActivity(30469): Loading contact took 0 ms
02-09 16:24:47.121 I/BriarRecyclerView(30469): Removing Handler Callback
02-09 16:24:47.171 I/BriarRecyclerView(30469): Adding Handler Callback
02-09 16:24:47.195 E/ACRA (30469): ACRA caught a IllegalArgumentException for org.briarproject.briar.beta
```
Looks like the activity may have failed to load due to an OpenGL error, and the crash happened when Android tried to relaunch the activity.https://code.briarproject.org/briar/briar/-/issues/1167Non-ASCII characters in RSS post are rendered wrongly2020-11-18T22:36:02ZakwizgranNon-ASCII characters in RSS post are rendered wrongly![device-2018-02-19-174413](/uploads/4b42bb8e8a3dda0c0c5ddc6df24b20eb/device-2018-02-19-174413.png)![device-2018-02-19-174413](/uploads/4b42bb8e8a3dda0c0c5ddc6df24b20eb/device-2018-02-19-174413.png)https://code.briarproject.org/briar/briar/-/issues/1165Optionally send message by pressing enter2020-11-19T04:34:07ZakwizgranOptionally send message by pressing enterA user asked for a setting to send messages when the enter key is pressed, which is possible in other apps.A user asked for a setting to send messages when the enter key is pressed, which is possible in other apps.https://code.briarproject.org/briar/briar/-/issues/1161Don't trigger notifications every two seconds when syncing a lot of messages2020-11-19T04:34:55ZakwizgranDon't trigger notifications every two seconds when syncing a lot of messagesWhile syncing a forum with 100+ posts, which takes a few minutes, a notification is triggered every two seconds. This gets annoying pretty quickly. We should consider using a longer interval and/or some kind of backoff.While syncing a forum with 100+ posts, which takes a few minutes, a notification is triggered every two seconds. This gets annoying pretty quickly. We should consider using a longer interval and/or some kind of backoff.https://code.briarproject.org/briar/briar/-/issues/1158FLAG_SECURE not applying to settings dialogs (when Chromecasted)2020-11-19T04:35:35ZakwizgranFLAG_SECURE not applying to settings dialogs (when Chromecasted)User feedback: "Setting popups are still seen in mirrored screen, the rest is black but the popup where you can select 1 of the 2 options is still mirrored."User feedback: "Setting popups are still seen in mirrored screen, the rest is black but the popup where you can select 1 of the 2 options is still mirrored."https://code.briarproject.org/briar/briar/-/issues/1155NPE when selecting text with Xposed Framework2020-11-19T04:35:57ZakwizgranNPE when selecting text with Xposed FrameworkA user reported this crash when selecting text. The stacktrace doesn't show any Briar classes but shows some Xposed Framework classes, so it may not be our bug.
```
java.lang.NullPointerException: Attempt to invoke virtual method 'void ...A user reported this crash when selecting text. The stacktrace doesn't show any Briar classes but shows some Xposed Framework classes, so it may not be our bug.
```
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Editor$SelectionStartHandleView.showAtLocation(int)' on a null
object reference
at android.widget.Editor$SelectionModifierCursorController.onTouchEvent(Editor.java:5084)
at android.widget.Editor.onTouchEvent(Editor.java:1389)
at android.widget.TextView.onTouchEvent(TextView.java:8305)
at android.view.View.dispatchTouchEvent(View.java:9377)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2410)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1744)
at android.app.Activity.dispatchTouchEvent(Activity.java:2805)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:68)
at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:68)
at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2371)
at android.view.View.dispatchPointerEvent(View.java:9597)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4234)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4100)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3646)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3699)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3665)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3791)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3673)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3848)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3646)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3699)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3665)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3673)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3646)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5926)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5900)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5861)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6029)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:331)
at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:334)
at android.os.MessageQueue.next(<Xposed>)
at android.os.Looper.loop(Looper.java:218)
at android.app.ActivityThread.main(ActivityThread.java:5526)
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)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:102)
```
* Android version: 6.0.1
* Phone model: Sony D6633
* Briar version: 0.16.16 (459538e)
* User feedback: "Copied long base64 encoded string into forum send box, tried selecting text again, Briar crashed."https://code.briarproject.org/briar/briar/-/issues/1153Messages export.2022-02-17T19:28:24ZSearosoMessages export.Feature request.
Copy is limited to one message. Need to paste a conversation. Should be possible to copy any piece of chat, and paste it with names and time codes.
Thank you!!Feature request.
Copy is limited to one message. Need to paste a conversation. Should be possible to copy any piece of chat, and paste it with names and time codes.
Thank you!!https://code.briarproject.org/briar/briar/-/issues/1147Support Bluetooth discovery for adding contacts2022-01-26T13:50:35ZakwizgranSupport Bluetooth discovery for adding contactsThe local Bluetooth address is no longer available on the Nexus 5X running Android 8.1. `BluetoothAdapter#getAddress()` returns the fake address 02:00:00:00:00:00, and `Settings.Secure.getString(ctx, "bluetooth_address")` returns null.
...The local Bluetooth address is no longer available on the Nexus 5X running Android 8.1. `BluetoothAdapter#getAddress()` returns the fake address 02:00:00:00:00:00, and `Settings.Secure.getString(ctx, "bluetooth_address")` returns null.
This means we can no longer include our Bluetooth address in the QR code when adding a contact. Instead we'll need to make the device temporarily discoverable, and indicate in the QR code that the contact should use discovery to find us. The contact will need the ACCESS_COARSE_LOCATION permission for discovery.
The contact will need to store our Bluetooth address for future connection attempts. We don't currently have a way for plugins to store local per-contact information, but we can add one.