briar issueshttps://code.briarproject.org/briar/briar/-/issues2018-04-30T15:55:35Zhttps://code.briarproject.org/briar/briar/-/issues/37Optionally disable Tor when using mobile data2018-04-30T15:55:35ZakwizgranOptionally disable Tor when using mobile dataUsers may want to save bandwidth and battery by disabling Tor when they're using mobile data. We can detect this using the same events that we use to detect loss of connectivity.Users may want to save bandwidth and battery by disabling Tor when they're using mobile data. We can detect this using the same events that we use to detect loss of connectivity.Milestone ASantiago Torres-AriasSantiago Torres-Ariashttps://code.briarproject.org/briar/briar/-/issues/314TorPlugin socket timeout2018-04-30T15:55:34ZErnir ErlingssonTorPlugin socket timeoutThere is a socket timeout in the Tor plugin, after 30 seconds of inactivity, that prevents user from communicating more than once over the mobile network. Connection between the devices is not re-established.
Reproduce:
1. Two devi...There is a socket timeout in the Tor plugin, after 30 seconds of inactivity, that prevents user from communicating more than once over the mobile network. Connection between the devices is not re-established.
Reproduce:
1. Two devices with connected contacts, A and B
2. Using only the mobile network, A chats with B and vice versa.
3. Close Briar and "lock" both devices by pressing the power button (don't turn off).
4. Unlock both devices after ~60 seconds (I think the timeout is set at 30 seconds) and try to chat with both A and B. Notice that no messages will be received by the other user and the "clock" symbol remains indefinitely in place.
You can re-establish connection by turning on WiFi on both devices or bluetooth and notice that then the messages are sent instantly.
Following is the error message that I got:
`
java.net.SocketTimeoutException
at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488)
at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:37)
at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:237)
at org.briarproject.crypto.StreamDecrypterImpl.readFrame(StreamDecrypterImpl.java:57)
at org.briarproject.transport.StreamReaderImpl.readFrame(StreamReaderImpl.java:61)
at org.briarproject.transport.StreamReaderImpl.read(StreamReaderImpl.java:49)
at org.briarproject.sync.PacketReaderImpl.readPacket(PacketReaderImpl.java:54)
at org.briarproject.sync.PacketReaderImpl.eof(PacketReaderImpl.java:78)
at org.briarproject.sync.IncomingSession.run(IncomingSession.java:56)
at org.briarproject.plugins.ConnectionManagerImpl$ManageIncomingDuplexConnection.run(ConnectionManagerImpl.java:267)
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:818)
`Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/769Test whether wake lock is still needed with Tor 0.2.82017-12-18T07:40:27ZakwizgranTest whether wake lock is still needed with Tor 0.2.8Test whether Tor 0.2.8 still needs a wake lock in order to keep the hidden service available when the device is idle. The wake lock is a major source of battery drain.
Related to #44, #574.Test whether Tor 0.2.8 still needs a wake lock in order to keep the hidden service available when the device is idle. The wake lock is a major source of battery drain.
Related to #44, #574.Milestone Fakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1137Poller keeps polling disabled transport-plugins2018-03-15T14:18:31ZJulian DehmPoller keeps polling disabled transport-pluginsLooking at our Poller code it seems to me that we don't react to transport state changes ? We listen to any TransportEnabled events and enable polling but we don't listen to TransportStateDisabled events (and remove the PollerTask). If I...Looking at our Poller code it seems to me that we don't react to transport state changes ? We listen to any TransportEnabled events and enable polling but we don't listen to TransportStateDisabled events (and remove the PollerTask). If I enable bluetooth it starts polling and even continues after I disabled it again. This could push the backoff to wrong values ?Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1092Investigate performance of metadata queries2018-02-22T17:16:00ZakwizgranInvestigate performance of metadata queriesInvestigate the performance of the following DB calls to see which indexes are being used, and whether adding new indexes would improve performance:
* Database#getGroupMetadata(T, GroupId)
* Database#getMessageMetadata(T, GroupId)
* Dat...Investigate the performance of the following DB calls to see which indexes are being used, and whether adding new indexes would improve performance:
* Database#getGroupMetadata(T, GroupId)
* Database#getMessageMetadata(T, GroupId)
* Database#getMessageMetadata(T, GroupId, Metadata)
* Database#getMessageMetadata(T, MessageId)
* Database#getMessageMetadataForValidator(T, MessageId)
http://www.h2database.com/html/performance.html#explain_planAndroid 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1088Setup Wizard page for Huawei's power manager(s)2019-01-30T11:03:55ZJulian DehmSetup Wizard page for Huawei's power manager(s)To prevent Huawei's power manager from killing Briar we need to add it to the list of protected apps.
There doesn't seem to be a direct way but we can open the corresponding activity at least:
``com.huawei.systemmanager/.optimize.proces...To prevent Huawei's power manager from killing Briar we need to add it to the list of protected apps.
There doesn't seem to be a direct way but we can open the corresponding activity at least:
``com.huawei.systemmanager/.optimize.process.ProtectActivity``
related: #992 Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1087Research how to deal with Huawei's Powergenie2017-11-24T17:00:15ZJulian DehmResearch how to deal with Huawei's PowergenieIn addition to androids power management, some vendors ship an additional pm to make our life harder.
Because one is just not enough.... :drum_with_drumsticks: ...Huawei comes with two :tada:
Powergenie (pid = 3920 in the log below) ...In addition to androids power management, some vendors ship an additional pm to make our life harder.
Because one is just not enough.... :drum_with_drumsticks: ...Huawei comes with two :tada:
Powergenie (pid = 3920 in the log below) seems to kill Briar now and then:
```
I/ActivityManager: Force stopping org.briarproject.briar.beta.debug appid=10113 user=0: from pid 3920by app
I/ActivityManager: Killing 31369:org.briarproject.briar.beta.debug/u0a113 (adj 2): stop org.briarproject.briar.beta.debugfrom pid 3920by app
```
From @Wikinaut and my observations this happens when the wifi connection is lost while Briar is in the background and the screen is off.
I was able to reproduce this a couple of times:
1. Start Briar
2. Turn off wifi
3. Wait for some timeAndroid Beta 2Julian DehmJulian Dehmhttps://code.briarproject.org/briar/briar/-/issues/545Find out why DB lookups are so slow2018-03-29T12:29:31ZakwizgranFind out why DB lookups are so slowAsynchronously looking up small amounts of data from the database takes longer than it should, even when the same data has been looked up recently. Work out which part of the process is the bottleneck, and how much performance would be i...Asynchronously looking up small amounts of data from the database takes longer than it should, even when the same data has been looked up recently. Work out which part of the process is the bottleneck, and how much performance would be improved if we spent some time improving that part of the process.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/542Don't poll for retransmission2018-03-08T15:59:11ZakwizgranDon't poll for retransmissionOutgoing sync sessions poll the database periodically for messages that have reached their send times and can be sent or offered again. This requires a thread to wake up periodically for each open session, even when there's nothing to se...Outgoing sync sessions poll the database periodically for messages that have reached their send times and can be sent or offered again. This requires a thread to wake up periodically for each open session, even when there's nothing to send.
The sync layer should keep track of the earliest send time of any message in the DB, and either broadcast an event when the send time is reached or provide a method that blocks until the earliest send time is reached.
Related to #44.Android Beta 2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2009Give instructions during setup for protecting app from Xiaomi/Redmi power man...2021-07-06T10:02:52ZakwizgranGive instructions during setup for protecting app from Xiaomi/Redmi power managementWhile working on #1743 I found that the [Snooze app](https://code.briarproject.org/akwizgran/snooze) was killed when running overnight on the Redmi Note 7. [Locking the app to the recent apps list](https://code.briarproject.org/briar/bri...While working on #1743 I found that the [Snooze app](https://code.briarproject.org/akwizgran/snooze) was killed when running overnight on the Redmi Note 7. [Locking the app to the recent apps list](https://code.briarproject.org/briar/briar/-/issues/1743#note_49341) prevented this from happening. We should recommend this during account setup, as we do for Huawei's protected apps and app launch settings.
(The user can also [change the app's background setting to "No restrictions"](https://code.briarproject.org/briar/briar/-/issues/1743#note_49269), which is recommended in various places but didn't help in the case of the Snooze app.)Adapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/1824Adapt to power management restrictions2021-04-30T13:42:29ZakwizgranAdapt to power management restrictionsAdapt to changes in the Android platform2021-04-30https://code.briarproject.org/briar/briar/-/issues/1743Research whether our wake lock tags are still effective2021-09-01T10:10:21ZakwizgranResearch whether our wake lock tags are still effectiveLeave Briar running on devices with recent versions of Huawei PowerGenie and Evenwell PowerMonitor to see whether our wake lock tags still protect us from being killed.Leave Briar running on devices with recent versions of Huawei PowerGenie and Evenwell PowerMonitor to see whether our wake lock tags still protect us from being killed.Adapt to changes in the Android platformakwizgranakwizgran2021-04-30https://code.briarproject.org/briar/briar/-/issues/2454Honor 70 Lite is seen as offline by contacts shortly after screen turns off2023-11-08T18:00:23ZakwizgranHonor 70 Lite is seen as offline by contacts shortly after screen turns offWhen the Honor 70 Lite is connected to a contact via Tor or wifi, the contact sees the Honor going offline a short time after the Honor's screen turns off. Sometimes the connection is lost and then quickly restored, only to be lost again...When the Honor 70 Lite is connected to a contact via Tor or wifi, the contact sees the Honor going offline a short time after the Honor's screen turns off. Sometimes the connection is lost and then quickly restored, only to be lost again.
The connection is quickly restored when the Honor's screen is turned on again.
This is probably some new power management hijinks from Huawei/Honor.https://code.briarproject.org/briar/briar/-/issues/2303Power management setup doesn't work on some Huawei devices2022-04-14T11:53:29ZakwizgranPower management setup doesn't work on some Huawei devicesSome Huawei devices running Android 10 throw a SecurityException when we try to open the App Launch settings (#2270).
!1602 fixed the crash by catching the exception, but we need to update the UI so that it shows instructions for openin...Some Huawei devices running Android 10 throw a SecurityException when we try to open the App Launch settings (#2270).
!1602 fixed the crash by catching the exception, but we need to update the UI so that it shows instructions for opening the App Launch settings manually.
These instructions will involve several steps and may be hard for users to follow. Unfortunately this means on affected Huawei devices, users are unlikely to succeed in protecting Briar from being killed.
Affected devices:
* Huawei P40 Pro without Google apps
* Huawei P30 Pro
* Huawei Mate 20 X
* Huawei Mate 20
Not affected:
* Huawei Y6P
* Honor 8Ahttps://code.briarproject.org/briar/briar/-/issues/2270Crash during power management setup on Huawei device2022-04-13T10:20:05ZakwizgranCrash during power management setup on Huawei deviceA user reported that Briar crashes during power management setup on a Huawei device. It's not clear whether the crash happened when requesting doze exemption or when opening the battery settings screen (or perhaps even the protected apps...A user reported that Briar crashes during power management setup on a Huawei device. It's not clear whether the crash happened when requesting doze exemption or when opening the battery settings screen (or perhaps even the protected apps list, if it was an old phone).
https://quietplace.xyz/notes/8xa865dc3rAndroid 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2247Always connect to the Internet while Briar is put to foreground2022-11-02T18:30:20ZNorbert 80Always connect to the Internet while Briar is put to foregroundHello all,
Users who use the setting "Connect to the Internet only when charging" have to change this setting every time they want to bring Briar online in the meantime without the charger connected. This is very annoying and inconvenie...Hello all,
Users who use the setting "Connect to the Internet only when charging" have to change this setting every time they want to bring Briar online in the meantime without the charger connected. This is very annoying and inconvenient. In addition, it generally seems senseless to have the app in the foreground while it is offline.
For these reasons, I suggest the following behaviour of Briar while "Connect to the Internet only when charging" is activated:
1. When Briar is brought to the foreground, it should automatically switch to online.
2. When Briar is brought back to the background, it should maintain the internet connection for another 3 minutes. After the 3 minutes, Briar will automatically go offline. This 3 minute delay is to avoid excessive online/offline intervals.
(This is needed for example when the user wants to share texts from another app).https://code.briarproject.org/briar/briar/-/issues/2159Power management setup instructions for Tecno phones2022-04-13T10:20:48ZakwizgranPower management setup instructions for Tecno phonesSome Tecno phones have a [padlock button in the recent apps list](https://code.briarproject.org/briar/briar/-/issues/1743#note_49393) that prevents apps from being [killed when the recent apps list is cleared](https://code.briarproject.o...Some Tecno phones have a [padlock button in the recent apps list](https://code.briarproject.org/briar/briar/-/issues/1743#note_49393) that prevents apps from being [killed when the recent apps list is cleared](https://code.briarproject.org/briar/briar/-/issues/992#note_44605). We should find out which phones have this feature and add setup instructions asking the user to lock Briar to the recent apps list.https://code.briarproject.org/briar/briar/-/issues/2158Apps can't be locked to recent apps list in MIUI 12.52022-06-13T13:40:38ZakwizgranApps can't be locked to recent apps list in MIUI 12.5The Redmi Note 7 received an update from MIUI 12.0.1 to 12.5.1, and now the instructions for locking an app to the recent apps list no longer work. In MIUI 12.0, long-pressing an app in the recent apps list showed a set of actions, inclu...The Redmi Note 7 received an update from MIUI 12.0.1 to 12.5.1, and now the instructions for locking an app to the recent apps list no longer work. In MIUI 12.0, long-pressing an app in the recent apps list showed a set of actions, including a lock/unlock action. In MIUI 12.5, long-pressing shows the app info screen instead.
This means we don't have a way of protecting Briar against Xiaomi/Redmi's power management on MIUI 12.5, and the instructions we're showing during account creation can't be followed.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2157Power management instructions for Xiaomi/Redmi are wrong2022-06-13T13:40:52ZakwizgranPower management instructions for Xiaomi/Redmi are wrongThe power management setup instructions for Xiaomi/Redmi devices say "If the padlock is not locked, tap to lock it".
But the button shows the effect of the action (tap to lock) rather than the current state (locked). So if the padlock i...The power management setup instructions for Xiaomi/Redmi devices say "If the padlock is not locked, tap to lock it".
But the button shows the effect of the action (tap to lock) rather than the current state (locked). So if the padlock is **already** locked, the user should tap it.
New instructions:
1. Open the recent apps list (also called the app switcher)
2. If Briar has a small padlock next to its name then you don't need to do anything
3. If there's no padlock, press and hold the image of Briar until the padlock button appears, then tap it
We also need to check whether the instructions for MIUI < 10 need to be updated.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2132Power-save battery issues on Xiaomi MIUI 122022-06-08T15:48:17ZTorsten GrotePower-save battery issues on Xiaomi MIUI 12On my Redmi Note 10 5G device running Xiaomi MIUI 12 (Android 11), the system **doze white-listing dialog** is simply not appearing. During initial setup, pressing the obligatory button does nothing, but gives us the green check-mark. Th...On my Redmi Note 10 5G device running Xiaomi MIUI 12 (Android 11), the system **doze white-listing dialog** is simply not appearing. During initial setup, pressing the obligatory button does nothing, but gives us the green check-mark. Then after initial setup, our doze warning dialog pops up immediately, but pressing FIX also does nothing (uses same `ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS` intent).
Our special Xiaomi instructions are appearing during initial setup, but they don't apply to MIUI 12 it seems. Instead, there's a dedicated system activity we can launch and ask the user to click on "no restrictions" there.
```
adb shell am start-activity -n com.miui.powerkeeper/com.miui.powerkeeper.ui.HiddenAppsConfigActivity --es package_name org.briarproject.briar.android.debug
```
This library could either be used directly or as a knowledge source for tricks like this:
https://github.com/thelittlefireman/AppKillerManager