briar issueshttps://code.briarproject.org/briar/briar/-/issues2023-02-09T13:48:42Zhttps://code.briarproject.org/briar/briar/-/issues/2384Notification 'Briar mailbox is unvailable' should be dismissed when the user ...2023-02-09T13:48:42ZIvanaNotification 'Briar mailbox is unvailable' should be dismissed when the user taps on itAfter linked mailbox becomes unreachable by Briar for a period of time of 5 hours or more, the Briar shows notification that the Briar mailbox is unavailable... see screenshot.
![Screenshot_20221110_130400](/uploads/f04c1087b46b9d878b5...After linked mailbox becomes unreachable by Briar for a period of time of 5 hours or more, the Briar shows notification that the Briar mailbox is unavailable... see screenshot.
![Screenshot_20221110_130400](/uploads/f04c1087b46b9d878b5eb7afa6edffe4/Screenshot_20221110_130400.png)
If the user taps on notification they are taken to the mailbox status screen - where they can check connection with mailbox and then go through the troubleshooting algoritm. In troubleshooting, user selects - no access to amilbox, and then unlinks the mailbox
![Screenshot_20221110_130530](/uploads/195fe7e9c5f091f82744142cce13490f/Screenshot_20221110_130530.png)
User gets confirmation that the mailbox has been unlinked
But the notification is still there...
![Screenshot_20221110_130951](/uploads/d83653e8bbe70c6b29d286abff1a0058/Screenshot_20221110_130951.png)Mailbox: UnpairingIvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1742Using LoRa frequencies to leverage the reach of briar2023-02-09T00:29:56ZsysterUsing LoRa frequencies to leverage the reach of briar### issue:
Briar is great, but the limitation of bluetooth/wifi for offline meshnet communcation is decreasing its usability.
Example, protest:
When you start using briar, maybe only your friends have it. So the meshnent is rather sma...### issue:
Briar is great, but the limitation of bluetooth/wifi for offline meshnet communcation is decreasing its usability.
Example, protest:
When you start using briar, maybe only your friends have it. So the meshnent is rather small that you will build from it.
The circumstances may require your group to be at different positions (to report movements of adversaries, to do medic support, to hand out leaflets...)
Internet is down. That would be the perfect moment to use briar. But you can't, because the requirements for your group organization is to be further away from each other then Bluetooth can reach. There is no "out-of-the-box-solution" to use briar for this case.
Encrypted walkie-talkies is what people use instead. Issue with that (no meshnet, no wide adoption, relatively expansive)
### example of possibilities:
leveraging the signal from bluethooth/wifi with LoRa (long range) frequencies.
![meshtastic](/uploads/17a4c876056b221f63c418c74f9522d7/meshtastic.png)
A video that presents a **prototype of such technique** (they don't use briar but https://www.meshtastic.org/) **worth to watch**: https://invidious.snopyta.org/watch?v=TY6m6fS8bxUhttps://code.briarproject.org/briar/briar/-/issues/2359Reduce traffic activity by sending BSP VERSIONS Records less often2023-02-07T15:54:53ZThomasReduce traffic activity by sending BSP VERSIONS Records less oftenI am working on a PoC for a LoRa Transport. Even with all messages and acknowledges being exchanged, I see Traffic every X seconds. From a BSP perspective this is being sent: `00 04 00 01 00`
Its basically saying: This is protocol versio...I am working on a PoC for a LoRa Transport. Even with all messages and acknowledges being exchanged, I see Traffic every X seconds. From a BSP perspective this is being sent: `00 04 00 01 00`
Its basically saying: This is protocol version 0, I am supporting only protocol version 0.
I get this same message every X seconds. Yes, the traffic is encrypted (randomized), still I think this makes the traffic easier to categorize using timing-attacks and it takes bandwidth.
I argue this should only be sent:
- during contact exchange
- if it changed and the other contact hasn't acknowledged the change or sent BSP Frames themselves with the new version
Ideally the old Version is still valid and the change doesn't have to be propagated by creating new Streams - the client can transmit it once before it sends another BSP Packet.
This mainly affects Simplex Connections (https://code.briarproject.org/briar/briar/-/blob/master/bramble-core/src/main/java/org/briarproject/bramble/sync/SimplexOutgoingSession.java#L95). It could also be changes on Duplex Connections (https://code.briarproject.org/briar/briar/-/blob/master/bramble-core/src/main/java/org/briarproject/bramble/sync/DuplexOutgoingSession.java#L136) but I don't know the real-life impact there since it won't be regularly re-sent on established connections.
My workaround for the PoC will be to just comment-out this specific line of code.https://code.briarproject.org/briar/briar/-/issues/1282Briar loses Tor connectivity when Orbot's VPN mode is activated2023-02-07T15:11:21ZakwizgranBriar loses Tor connectivity when Orbot's VPN mode is activatedTurning on Orbot's VPN mode causes Briar to lose Tor connections to contacts, but the Tor transport is still shown as active. When VPN mode is turned off, connections to contacts are re-established.Turning on Orbot's VPN mode causes Briar to lose Tor connections to contacts, but the Tor transport is still shown as active. When VPN mode is turned off, connections to contacts are re-established.https://code.briarproject.org/briar/briar/-/issues/2397Misleading error message when testers tried to pair mailbox via add contact s...2023-02-07T12:55:38ZakwizgranMisleading error message when testers tried to pair mailbox via add contact screen> The error message “The QR code you have scanned comes from a newer version of briar” was misleading. Participants believed they needed to upgrade to the latest version, so they asked for new links. After I clarified that they already h...> The error message “The QR code you have scanned comes from a newer version of briar” was misleading. Participants believed they needed to upgrade to the latest version, so they asked for new links. After I clarified that they already have the correct apk and encouraged them to explore other ways to link the devices.Mailbox: Usability testingIvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/2413Show verification status of contacts when inviting them to a forum2023-02-07T10:14:37ZBirgerShow verification status of contacts when inviting them to a forumThe dialog for inviting contacts to a forum currently does not show their verification status (verified/unverified contact). In some cases I might only want to invite verified contacts to a forum. Therefore, the verification status shoul...The dialog for inviting contacts to a forum currently does not show their verification status (verified/unverified contact). In some cases I might only want to invite verified contacts to a forum. Therefore, the verification status should be shown in the contact list when selecting contacts to invite to a forum.https://code.briarproject.org/briar/briar/-/issues/513Verify unverified contacts2023-02-07T08:56:41ZakwizgranVerify unverified contactsContacts who are added via introductions (or via long-distance transports, if we decide to support that) are considered "unverified" due to the possibility of a man-in-the-middle attack against the key exchange protocol. Contacts who are...Contacts who are added via introductions (or via long-distance transports, if we decide to support that) are considered "unverified" due to the possibility of a man-in-the-middle attack against the key exchange protocol. Contacts who are added face-to-face are considered "verified".
Design and implement a protocol and UI for verifying the identity of a previously unverified contact when the user meets the contact face-to-face.https://code.briarproject.org/briar/briar/-/issues/1747Use custom PIN for app lock2023-02-06T14:57:18ZakwizgranUse custom PIN for app lockA user asked to be able to set an app lock PIN that's different from the PIN they use to unlock their phone.A user asked to be able to set an app lock PIN that's different from the PIN they use to unlock their phone.https://code.briarproject.org/briar/briar/-/issues/1445Change app lock password2023-02-06T14:50:21ZakwizgranChange app lock passwordA user asked for the ability to change the app lock password.A user asked for the ability to change the app lock password.https://code.briarproject.org/briar/briar/-/issues/2395Check for Bluetooth timeout setting on stock Android 132023-02-01T14:36:46ZakwizgranCheck for Bluetooth timeout setting on stock Android 13CalyxOS 4.3.0 (based on Android 13) has a "Bluetooth timeout" setting that automatically turns off Bluetooth if no devices are connected for a configurable amount of time (the timeout can also be disabled). This setting could prevent Bri...CalyxOS 4.3.0 (based on Android 13) has a "Bluetooth timeout" setting that automatically turns off Bluetooth if no devices are connected for a configurable amount of time (the timeout can also be disabled). This setting could prevent Briar from connecting to contacts via Bluetooth if the timeout period elapsed with no contact connections.
We should check whether this setting exists upstream (stock Android 13) and whether a timeout is enabled by default.https://code.briarproject.org/briar/briar/-/issues/2408Split big BSP Records2023-01-31T21:44:51ZThomasSplit big BSP RecordsIn #407, the requested feature is to send files with sizes bigger than one BSP Record. The issue is cluttered with user feedback-quotes, therefore I thought I make a new issue to propose an implementation (I don't know if this is the bes...In #407, the requested feature is to send files with sizes bigger than one BSP Record. The issue is cluttered with user feedback-quotes, therefore I thought I make a new issue to propose an implementation (I don't know if this is the best way to handle that ...).
I realized that I basically need the same feature for https://code.briarproject.org/thomas/briar/-/issues/1 (with custom BSP-Record sizes). My thoughts are intended to allow for minimal overhead (saving every byte).
My idea is to introduce message-fragments/slices. I think it is not enough to add a new message-type to BSPv0, I think it will require BSPv1. (the slices will be required also for e.g. the REQUEST-Type)
I imagine to send message fragments like { message-hash, start of slice, slice length, byte-array }.
The message itself is prefixed with its total size (needs only to be transmitted with the first slice; since the message is only composed when all slices are there, it is no problem if the first slice is retransmitted).
The receiver can acknowledge fragments (by hash, start and length). When all fragments are available, the sender internally acknowledges the whole record and the receiver assembles the message. I could also imagine the sender caching which BTP-Frame contains which message-fragments so that the receiver can acknowledge BTP-Frames which might save some space. But it will add additional complexity ...
Having sizes&positions as varints ([an Implementation](https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/util/VarInt.java)) would be awesome.
Btw: Sorry for not replying to https://code.briarproject.org/thomas/briar/-/issues/1 yethttps://code.briarproject.org/briar/briar/-/issues/2376Feature request: ignoring/hiding/excluding users in forums/groups2023-01-31T18:14:44ZAminda SuomalainenFeature request: ignoring/hiding/excluding users in forums/groupsI have been recently added to multiple forums that are probably wider than Briar is intended for, and I have came across hatespeech that I would prefer to not be subjected to.
Lacking moderation features (https://code.briarproject.org/b...I have been recently added to multiple forums that are probably wider than Briar is intended for, and I have came across hatespeech that I would prefer to not be subjected to.
Lacking moderation features (https://code.briarproject.org/briar/briar/-/issues/512), I would like an option to ignore the user in style of IRC that it just hides all posts that person does. Optionally something to soft-hide requiring me to touch the post would make it visible like is possible on negative karma posts on Reddit, while I am not sure I would like that.
I think the best case scenario let me also not redistribute the hate speech to those I share the forums to, while I guess that might break Briar's design.https://code.briarproject.org/briar/briar/-/issues/2378borders around threads in dark view theme have too little contrast2023-01-31T18:14:28ZRubenborders around threads in dark view theme have too little contrastIn dark mode it is hard to recognize the indentions in threads.
The borders around the messages should have more contrastIn dark mode it is hard to recognize the indentions in threads.
The borders around the messages should have more contrasthttps://code.briarproject.org/briar/briar/-/issues/1676Migrate account to new phone2023-01-30T10:57:11ZTorsten GroteMigrate account to new phoneWhen users get a new phone, they will lose all their Briar data as there's no way to backup the account (#110). Since tackling a real backup is hard, we could offer a way to migrate an account, transfer all data and when done remove it f...When users get a new phone, they will lose all their Briar data as there's no way to backup the account (#110). Since tackling a real backup is hard, we could offer a way to migrate an account, transfer all data and when done remove it from the old phone avoiding some of the issues a backup has.https://code.briarproject.org/briar/briar/-/issues/2411Xiaomi device Android 11, API 30 - crash after 'no battery restrictions' sele...2023-01-25T17:23:06ZIvanaXiaomi device Android 11, API 30 - crash after 'no battery restrictions' selectedSteps to reproduce:
- install briar debug (build 0cea137)
- when prompted go to device settings and select 'no battery restirctions'
- Briar crashes(logfile attached)
When restarted after crash, the user is not prompted to go back to ...Steps to reproduce:
- install briar debug (build 0cea137)
- when prompted go to device settings and select 'no battery restirctions'
- Briar crashes(logfile attached)
When restarted after crash, the user is not prompted to go back to battery restriction settings, but the 'Open Security settings', 'Boost speed', then 'Manual'. But when th euser navigates back to the Briar screen (by tapping the back button on the bottom of the screen, Briar crashes (logfile 2)
[Xiaomi_Briar_crash_settings.txt](/uploads/33d9e54f54cb5ccc95d8ad76205b3e91/Xiaomi_Briar_crash_settings.txt)
[Xiaomi_crash_settings_2.txt](/uploads/591436e71141cdfbf35e82c296a11312/Xiaomi_crash_settings_2.txt)https://code.briarproject.org/briar/briar/-/issues/2318Crash on HTC One M9 when switching between the briar app and the settings ap...2023-01-25T17:23:06ZIvanaCrash on HTC One M9 when switching between the briar app and the settings app in the foregroundSteps to reproduce
- Install Briar and create a user account
- user is asked to "allow connections" (ie allow battery optimisation to be switched off)
- before tapping the "allow connections" button, go to settings app and verify that...Steps to reproduce
- Install Briar and create a user account
- user is asked to "allow connections" (ie allow battery optimisation to be switched off)
- before tapping the "allow connections" button, go to settings app and verify that the battery optimisation is 'on' (although probabky not relevant for this crash)
- then bring briar app back into the foreground tap the "allow connections"
- go to settings
- bring briar back into the foreground -> crash.
This as reproduced 2 times on HTC One M9 (android 7) and it doesn't have when the user performs the same steps with mailbox app.
Logfiles are attached
@akwizgran analysed and here are his comments (from MM)
looks like this is the stacktrace of the crash:
org.briarproject.briar.android.account.SetupActivity}: java.lang.RuntimeException: Parcel android.os.Parcel@7c94038: Unmarshalling unknown type code 6881391 at offset 684
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2729)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2790)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1505)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:938)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:828)
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@7c94038: Unmarshalling unknown type code 6881391 at offset 684
at android.os.Parcel.readValue(Parcel.java:2452)
at android.os.Parcel.readSparseArrayInternal(Parcel.java:2807)
at android.os.Parcel.readSparseArray(Parcel.java:2076)
at android.os.Parcel.readValue(Parcel.java:2430)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2726)
at android.os.BaseBundle.unparcel(BaseBundle.java:269)
at android.os.Bundle.getSparseParcelableArray(Bundle.java:910)
at androidx.fragment.app.FragmentStateManager.restoreState(FragmentStateManager.java:405)
at androidx.fragment.app.FragmentManager.restoreSaveState(FragmentManager.java:2735)
at androidx.fragment.app.FragmentController.restoreSaveState(FragmentController.java:198)
at androidx.fragment.app.FragmentActivity$2.onContextAvailable(FragmentActivity.java:149)
at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:99)
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:297)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:273)
at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:115)
at org.briarproject.briar.android.activity.BaseActivity.onCreate(BaseActivity.java:92)
at org.briarproject.briar.android.account.SetupActivity.onCreate(SetupActivity.java:52)
at android.app.Activity.performCreate(Activity.java:6673)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2682)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2790)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1505)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:938)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:828) [Briar_crash_11_May_2022_reproduced.txt](/uploads/ddad5db164d4d61b49a3ac11b70d9394/Briar_crash_11_May_2022_reproduced.txt)
[Briar_crash_11_May_2022.txt](/uploads/920b2d55e162d999725a2f03d704348a/Briar_crash_11_May_2022.txt)https://code.briarproject.org/briar/briar/-/issues/1854Provide Tor/obfsproxy arm binaries for Linux2023-01-25T11:44:13ZNicoProvide Tor/obfsproxy arm binaries for Linux_Let's properly document all the ARM binary stuff for Briar Headless._
Briar Headless currently only includes binaries for `linux-x86_64`. While Briar Android works on ARM, we need a special binary for (plain) Linux systems and [enable ..._Let's properly document all the ARM binary stuff for Briar Headless._
Briar Headless currently only includes binaries for `linux-x86_64`. While Briar Android works on ARM, we need a special binary for (plain) Linux systems and [enable them in code](https://code.briarproject.org/briar/briar/-/blob/8d735b30237aaf8212bb42d37783134a56d6e9b6/bramble-java/src/main/java/org/briarproject/bramble/plugin/tor/UnixTorPluginFactory.java#L99).
Here is a table with required flags for specified target devices:
| command | `-march=` | other flags | target devices |
| ------ | ------ | ------ | ------ |
| `arm-linux-gnueabi-gcc` | `armv6` | `-marm` | Raspberry Pi Model B Rev 2 |
| `arm-linux-gnueabi-gcc` | `armv6zk` | `-marm` | Raspberry Pi Model B Rev 2 |
| `arm-linux-gnueabi-gcc` | `armv6zk+fp` | `-marm` | Raspberry Pi Model B Rev 2 |
| `arm-linux-gnueabihf-gcc` | `armv7-a+fp` | `-mmusl` | Google Nexus 5 (postmarketOS) |
| `arm-linux-gnueabihf-gcc` | `armv7ve+simd` | `-marm` | Raspberry Pi 2 Model B (not tested) |
| `arm-linux-gnueabihf-gcc` | unknown | unknown | Raspberry Pi Model 3 (not tested) |
| `aarch64-linux-gnu-gcc` | `armv8-a+crc+simd` | `-marm` | Raspberry Pi 4 Model B (not tested) |
| `aarch64-linux-gnu-gcc` | `armv8-a+crypto+crc` | - | Purism Librem 5 (not tested) |
To add information on another device, the following commands are helpful:
```bash
cat /proc/cpuinfo
gcc -c -Q -march=native --help=target
gcc -v
```
Python also gives interesting information (enter these commands after starting `python3`; you can exit with ctrl + d):
```python
import platform
platform.architecture()
platform.machine()
```
For detecting your device properly, we depend on Java to tell us which is it:
```java
public class Arch {
public static void main(String[] args) {
System.out.println(System.getProperty("os.arch"));
}
}
```
Please compile it with `javac Arch.java` and post the output of `java Arch`.
Once you have that information, feel free to post the output to this issues. Your work will help getting Briar run on your device.
You can further help by trying to do a test compile. Using the following `briar.c`...
```c
#include <stdio.h>
int main() {
float a = 3.33 + 6.66;
printf("Briar rocks, %f!", a);
return 0;
}
```
...you can compile the program using e.g. `arm-linux-gnueabi-gcc test.c -o test.out -march=armv6zk+fp -marm`. Under Debian, there are `gcc-arm-linux-gnueabihf` and `gcc-arm-linux-gnueabi` available as cross-compilers. Please compile the program on your desktop device using the right compiler flags, copy the _test.out_ binary to your target device and try to execute it there. If it works, you can additionally provide the exact compile command that worked for you.NicoNicohttps://code.briarproject.org/briar/briar/-/issues/1897Groups/forums/blogs are shown as "already sharing" if initial connection to c...2023-01-20T14:33:34ZakwizgranGroups/forums/blogs are shown as "already sharing" if initial connection to contact is lostIf the initial connection to a contact is lost before client versioning messages are exchanged, any group/forum/blog we try to share with the contact will be shown as "already sharing".If the initial connection to a contact is lost before client versioning messages are exchanged, any group/forum/blog we try to share with the contact will be shown as "already sharing".Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/90Handle Hyperlinks (Clickable Links)2023-01-20T13:47:10ZakwizgranHandle Hyperlinks (Clickable Links)Users asked for the ability to include clickable links in messages and forum posts.
We need to think about how to handle this safely: hyperlinks can be used to identify forum subscribers ("barium"), or to spread malware.
A warning ...Users asked for the ability to include clickable links in messages and forum posts.
We need to think about how to handle this safely: hyperlinks can be used to identify forum subscribers ("barium"), or to spread malware.
A warning dialog could be shown before opening a hyperlink from an unknown source, but users would probably learn to ignore it. Perhaps hyperlinks should be allowed in private messages but scrubbed from forum posts?https://code.briarproject.org/briar/briar/-/issues/2363Mailbox unreachable screen on Briar side - landscape - Samsung 6810 (small sc...2023-01-19T13:07:05ZIvanaMailbox unreachable screen on Briar side - landscape - Samsung 6810 (small screen) links overwriting each otherOn Samsung 6810 when the mailbox is not reachable, the screen looks like this - links overwriting each other
![Screenshot_20220907_164841](/uploads/d38b4a87b6ae1d09611f0f99d02fd193/Screenshot_20220907_164841.png)On Samsung 6810 when the mailbox is not reachable, the screen looks like this - links overwriting each other
![Screenshot_20220907_164841](/uploads/d38b4a87b6ae1d09611f0f99d02fd193/Screenshot_20220907_164841.png)IvanaIvana