briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-01-07T10:13:20Zhttps://code.briarproject.org/briar/briar/-/issues/1886Quotation from text in the chat2021-01-07T10:13:20ZGhost UserQuotation from text in the chatHi,
i have a feature request. I wish me the possibility to quote text within a 1:1 chat. As far as i know almost every android messenger has this function and it makes chatting much easier if you write about different topics with your c...Hi,
i have a feature request. I wish me the possibility to quote text within a 1:1 chat. As far as i know almost every android messenger has this function and it makes chatting much easier if you write about different topics with your chat partner.
Thanks in advance for implementation.https://code.briarproject.org/briar/briar/-/issues/1884Why keep a chat history?2022-02-25T15:04:46ZWuukoWhy keep a chat history?Why history appears?Why history appears?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/1850Import Blog RSS Feed from hidden service (.onion address)2022-04-18T11:59:44ZMarcin OssowskiImport Blog RSS Feed from hidden service (.onion address)Hi!
It would be AWESOME if Briar could import RSS Feeds over Tor network, using a hidden service (the .onion address). This would allow for very private publishing using a feed over hidden service!
I just tested with recent Briar on A...Hi!
It would be AWESOME if Briar could import RSS Feeds over Tor network, using a hidden service (the .onion address). This would allow for very private publishing using a feed over hidden service!
I just tested with recent Briar on Android, and it is not possible - a generic failure message is displayed.https://code.briarproject.org/briar/briar/-/issues/1849Upgrade Tor to 0.3.5.122020-11-16T16:52:46ZakwizgranUpgrade Tor to 0.3.5.12Tor 0.3.5.12 is out. This release has a security fix that could affect anonymity, and an updated list of fallback directories, which might improve bootstrapping.
https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.5.12Tor 0.3.5.12 is out. This release has a security fix that could affect anonymity, and an updated list of fallback directories, which might improve bootstrapping.
https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.5.12Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1841NavDrawerActivityTest fails with InitializationError on API 162020-11-11T16:56:24ZakwizgranNavDrawerActivityTest fails with InitializationError on API 16NavDrawerActivityTest fails on the API 16 emulator because it can't find javax.inject.Inject.
```
java.lang.RuntimeException: Delegate runner 'androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner' for AndroidJUnit4 could not be...NavDrawerActivityTest fails on the API 16 emulator because it can't find javax.inject.Inject.
```
java.lang.RuntimeException: Delegate runner 'androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner' for AndroidJUnit4 could not be loaded.
at androidx.test.ext.junit.runners.AndroidJUnit4.throwInitializationError(AndroidJUnit4.java:92)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:82)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:51)
at androidx.test.ext.junit.runners.AndroidJUnit4.<init>(AndroidJUnit4.java:46)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at androidx.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:63)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at androidx.test.internal.runner.AndroidRunnerBuilder.runnerForClass(AndroidRunnerBuilder.java:153)
at androidx.test.internal.runner.TestLoader$ScanningRunnerBuilder.runnerForClass(TestLoader.java:143)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at androidx.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:73)
at androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:104)
at androidx.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:793)
at androidx.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:547)
at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:390)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:72)
... 18 more
Caused by: java.lang.NoClassDefFoundError: javax/inject/Inject
at java.lang.reflect.Field.getDeclaredAnnotations(Native Method)
at java.lang.reflect.Field.getDeclaredAnnotations(Field.java:204)
at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:138)
at org.junit.runners.model.FrameworkField.getAnnotations(FrameworkField.java:31)
at org.junit.runners.model.TestClass.addToAnnotationLists(TestClass.java:84)
at org.junit.runners.model.TestClass.scanAnnotatedMembers(TestClass.java:71)
at org.junit.runners.model.TestClass.<init>(TestClass.java:57)
at org.junit.runners.ParentRunner.createTestClass(ParentRunner.java:88)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:83)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:43)
at androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:48)
... 21 more
Caused by: java.lang.ClassNotFoundException: javax.inject.Inject
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
... 33 more
```Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1825Unspecific 500 Server Error when adding already existing pending contact2021-05-05T16:15:44ZNicoUnspecific 500 Server Error when adding already existing pending contact@grote found https://code.briarproject.org/briar/python-briar-wrapper/-/issues/19 where he encountered problems when re-adding an already existing pending contact.
I tried to somehow handle those error in _briar_wrapper_, but the respon...@grote found https://code.briarproject.org/briar/python-briar-wrapper/-/issues/19 where he encountered problems when re-adding an already existing pending contact.
I tried to somehow handle those error in _briar_wrapper_, but the response by Briar Headless is always just `500: Internal server error`. I get this when adding a pending contact after
* it has already been added seconds before and the peer is offline
* it has already been added more than 4 days before (manually changed system time) and the peer was offline all the time
* the pending contact got already added days before and left the pending state
* the link is invalid (I think so, just changed some characters)
* and for sure there are more errors
The problem is that [in this line](https://code.briarproject.org/briar/briar/-/blob/01a146ba71743e3709bd6e56052558da95abfbed/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt#L96) `contactManager.addPendingContact` gets called without catching its exceptions. Looking [at its implementation](https://code.briarproject.org/briar/briar/-/blob/01a146ba71743e3709bd6e56052558da95abfbed/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java#L136), there are at least `DbException, FormatException, GeneralSecurityException` that get thrown.NicoNicohttps://code.briarproject.org/briar/briar/-/issues/1820Use briar-debug alongside briar: tor socket already in use2022-02-25T15:05:47ZToni MarschallUse briar-debug alongside briar: tor socket already in useHello,
is it somehow possible to run briar-debug alongside briar?
Both are installed on my device but only the first startup app got an internet connection. The status on the second app is "Your phone has Internet access via Wi-Fi. Bri...Hello,
is it somehow possible to run briar-debug alongside briar?
Both are installed on my device but only the first startup app got an internet connection. The status on the second app is "Your phone has Internet access via Wi-Fi. Briar can't connect to the Internet". In the debug log i can read that a server socket is already bound and a connection to some local ips in not possible (tor?).
Is there a workaround?
```
...
2020-10-30 10:09:28.762 6449-9468/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.49.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.1.80 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.1.78 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.1.48 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.0.253 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.0.82 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 10.0.0.10 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.0.175 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.43.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.43.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9457/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.49.1 is not connectable from 192.168.8.113
2020-10-30 10:09:28.763 6449-9456/org.briarproject.briar.android.debug I/TcpPlugin: 192.168.49.1 is not connectable from 192.168.8.113
...
2020-10-30 10:09:29.009 6449-9464/org.briarproject.briar.android.debug I/TcpPlugin: Server socket already bound
...
```
My home network is 192.168.8.x
Thankshttps://code.briarproject.org/briar/briar/-/issues/1816Research multi-hop communication via social mesh2023-09-15T16:49:27ZakwizgranResearch multi-hop communication via social meshIdentify one or more possible solutions for propagating end-to-end encrypted data over the "social mesh" of connections between Briar users, by allowing devices to relay data they don't subscribe to.
Identify and evaluate any risks of p...Identify one or more possible solutions for propagating end-to-end encrypted data over the "social mesh" of connections between Briar users, by allowing devices to relay data they don't subscribe to.
Identify and evaluate any risks of passive information leaks or active attacks. Evaluate performance (e.g. fraction of messages delivered, delivery latency, bandwidth and battery use) taking the current single-hop sync as a baseline. Recommend whether any of the solutions should be incorporated into Briar.2022-12-31https://code.briarproject.org/briar/briar/-/issues/1812Update own mailbox's contact list when contacts are added or removed2022-08-12T12:44:40ZakwizgranUpdate own mailbox's contact list when contacts are added or removedWhen a contact is added, updated or deleted, queue an update on any open connections to the user's own mailbox.
Related to briar-mailbox#4, #2188. Depends on #2182, #2183, #2187, #2184.When a contact is added, updated or deleted, queue an update on any open connections to the user's own mailbox.
Related to briar-mailbox#4, #2188. Depends on #2182, #2183, #2187, #2184.Mailbox: Contact management API2022-10-31https://code.briarproject.org/briar/briar/-/issues/1803User research exercise to understand communication needs during Internet shut...2023-03-15T12:37:59ZakwizgranUser research exercise to understand communication needs during Internet shutdownsDetails of this will depend on Covid restrictions.Details of this will depend on Covid restrictions.2021-08-31https://code.briarproject.org/briar/briar/-/issues/1795Show when messages were sent and received2020-11-15T18:43:45ZakwizgranShow when messages were sent and receivedA Google Play user asked for messages to show two timestamps: the time sent (on one side of the message bubble) and the time received/acked (on the other side).A Google Play user asked for messages to show two timestamps: the time sent (on one side of the message bubble) and the time received/acked (on the other side).https://code.briarproject.org/briar/briar/-/issues/1794No internet connection on IPv6-only network2020-12-11T10:33:06ZpegazNo internet connection on IPv6-only networkHi there,
I've got a big red message at the bottom of my screen saying "no internet connection" when i try to add my first contact, just connected to data of my phone.
I known my phone provider use only ipv6, is that a possible issue?
...Hi there,
I've got a big red message at the bottom of my screen saying "no internet connection" when i try to add my first contact, just connected to data of my phone.
I known my phone provider use only ipv6, is that a possible issue?
Thanks for the job done!Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1785NPE when no Bluetooth Adapter available2020-11-16T10:36:01ZTorsten GroteNPE when no Bluetooth Adapter available```ruby
'java.lang.String android.bluetooth.BluetoothAdapter.getAddress()' on a null object reference
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddressAndMethod(AndroidUtils.java:55)
at org.briarpr...```ruby
'java.lang.String android.bluetooth.BluetoothAdapter.getAddress()' on a null object reference
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddressAndMethod(AndroidUtils.java:55)
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddress(AndroidUtils.java:48)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.getBluetoothAddress(AndroidBluetoothPlugin.java:138)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.updateProperties(BluetoothPlugin.java:216)
````Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1783Switching "language & region" to English does not switch the settings language2021-05-05T16:17:22ZRobert PollakSwitching "language & region" to English does not switch the settings languageI am using version 1.2.7 from F-Droid.
When I try to switch the interface language from my system standard (which is my native language) to "English (United States), and open the settings after restart, the page title has appropriately c...I am using version 1.2.7 from F-Droid.
When I try to switch the interface language from my system standard (which is my native language) to "English (United States), and open the settings after restart, the page title has appropriately changed to the English "settings", but all the entries are still in my native language.Android 1.2SebastianSebastianhttps://code.briarproject.org/briar/briar/-/issues/1782Add method to delete all private messages to REST API2020-11-16T10:35:16ZNicoAdd method to delete all private messages to REST APINeeded for https://code.briarproject.org/briar/briar-gtk/-/issues/11.Needed for https://code.briarproject.org/briar/briar-gtk/-/issues/11.NicoNicohttps://code.briarproject.org/briar/briar/-/issues/1781Add method to change contact alias to REST API2020-11-16T10:35:09ZNicoAdd method to change contact alias to REST APINeeded for https://code.briarproject.org/briar/briar-gtk/-/issues/14 and https://code.briarproject.org/briar/python-briar-wrapper/-/issues/6.Needed for https://code.briarproject.org/briar/briar-gtk/-/issues/14 and https://code.briarproject.org/briar/python-briar-wrapper/-/issues/6.NicoNicohttps://code.briarproject.org/briar/briar/-/issues/1780Add method to mark message as read to REST API2020-11-16T10:35:24ZNicoAdd method to mark message as read to REST APIWhen exposing unread messages counters in https://code.briarproject.org/briar/briar/-/merge_requests/1283, I noticed that they were never set to 0. I propose the following HTTP method:
##### Marking messages as read
`POST /v1/messages/...When exposing unread messages counters in https://code.briarproject.org/briar/briar/-/merge_requests/1283, I noticed that they were never set to 0. I propose the following HTTP method:
##### Marking messages as read
`POST /v1/messages/read/{contactId}`
The `messageId` of the message to be marked as read
needs to be provided in the request body as follows:
```json
{
"messageId": "+AIMMgOCPFF8HDEhiEHYjbfKrg7v0G94inKxjvjYzA8="
}
```NicoNicohttps://code.briarproject.org/briar/briar/-/issues/1779Expose message delivery state changes to websockets API2022-02-25T15:06:16ZNicoExpose message delivery state changes to websockets APIWe already indicate whether a message was sent/acked, but we don't inform about updates.
Needed for https://code.briarproject.org/briar/briar-gtk/-/issues/69.We already indicate whether a message was sent/acked, but we don't inform about updates.
Needed for https://code.briarproject.org/briar/briar-gtk/-/issues/69.NicoNicohttps://code.briarproject.org/briar/briar/-/issues/1777IllegalStateException when BriarService is recreated after startup2022-07-13T14:35:00ZakwizgranIllegalStateException when BriarService is recreated after startup* Android version: 5.1.1
* Phone model: Samsung SM-J320M (j3xlteub)
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.lang.IllegalStateException
at org.briarproject.bramble.network.AndroidNetworkManager.startService(AndroidN...* Android version: 5.1.1
* Phone model: Samsung SM-J320M (j3xlteub)
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.lang.IllegalStateException
at org.briarproject.bramble.network.AndroidNetworkManager.startService(AndroidNetworkManager.java:71)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:130)
at org.briarproject.briar.android.BriarService.lambda$onCreate$0$BriarService(BriarService.java:133)
at org.briarproject.briar.android.-$$Lambda$BriarService$Ihm6XxaER2EMRlAKzUA1GpEtxZU.run(lambda)
at java.lang.Thread.run(Thread.java:818)
```
Edited log:
```
06-04 12:25:55.414 I/TorPlugin: First circuit built
06-04 12:25:55.424 I/PollerImpl: Polling plugin org.briarproject.bramble.tor
06-04 12:25:55.428 I/TorPlugin: Connecting to sak[scrubbed]
06-04 12:26:25.431 I/TorPlugin: Could not connect to sak[scrubbed]: java.net.SocketTimeoutException
06-04 12:26:27.252 I/BaseActivity: Starting NavDrawerActivity
06-04 12:26:27.266 I/BriarService: Created
06-04 12:26:27.273 I/LifecycleManagerImpl: Opening database
06-04 12:26:27.299 I/H2Database: Reopening DB: true
06-04 12:26:27.306 I/JdbcDatabase: 2217908857 ms since last compaction
06-04 12:26:27.328 I/LifecycleManagerImpl: Starting services
```
The exception is a canary that's meant to warn us about singletons being reused in violation of their expected lifecycle.
The log shows that TorPlugin and PollerImpl were already running before BriarService was created. The database must have been open too, as the poller was able to load a contact's transport properties.
It looks like a new BriarService instance was created when one already existed, or used to exist. The BriarService instance also has a canary to check for reuse, so this must be a new instance.Android 1.4akwizgranakwizgran