briar issueshttps://code.briarproject.org/groups/briar/-/issues2019-02-05T20:39:46Zhttps://code.briarproject.org/briar/tor-reproducer/-/issues/1Attempt at adding tor 0.3.5.3-alpha2019-02-05T20:39:46ZDan BallardAttempt at adding tor 0.3.5.3-alphaWe are attempting to make use of some new Tor features and follow the cutting edge of tor.
I tried adding to tor-versions.json
```
"0.3.5.3-alpha": {
"tor": "tor-0.3.5.3-alpha",
"libevent": "release-2.0.22-stable",
"openss...We are attempting to make use of some new Tor features and follow the cutting edge of tor.
I tried adding to tor-versions.json
```
"0.3.5.3-alpha": {
"tor": "tor-0.3.5.3-alpha",
"libevent": "release-2.0.22-stable",
"openssl": "OpenSSL_1_0_2p",
"xz": "v5.2.4",
"zlib": "v1.2.11",
"zstd": "v1.3.5",
"tor-android": "e822160b00aaed587965547eacad0566eec7de73",
"tor_android_repo_url": "https://github.com/n8fr8/tor-android",
"ndk": {
"url": "https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zip",
"revision": "18.1.5063045",
"sha256": "4f61cbe4bbf6406aa5ef2ae871def78010eed6271af72de83f8bd0b07a9fd3fd"
}
},
```
but when I ran `docker run briar/tor-reproducer:latest ./build-tor.py 0.3.5.3-alpha` (after building a new docker image)
it crashed with:
```
checking for arm-linux-androideabi-gcc... /opt/tor-reproducer/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/opt/tor-reproducer/android-ndk/platforms/android-16/arch-arm
checking whether the C compiler works... no
configure: error: in `/opt/tor-reproducer/tor-android/external/xz':
configure: error: C compiler cannot create executables
See `config.log' for more details
make: *** [xz/Makefile] Error 77
Makefile:200: recipe for target 'xz/Makefile' failed
make: Leaving directory '/opt/tor-reproducer/tor-android/external'
Building Tor tor-0.3.5.3-alpha
Downloading Android NDK...
Unpacking Android NDK...
Checking out tor: tor-0.3.5.3-alpha
Checking out libevent: release-2.0.22-stable
Checking out openssl: OpenSSL_1_0_2p
Checking out xz: v5.2.4
Checking out zlib: v1.2.11
Checking out zstd: v1.3.5
Sha256 hash of tor before zipping tor_linux-x86_64.zip: 3d27eb29ac2d609bb1894d59f09f7ad9d3246a12af85d29f2a595edfcf33fadf
Traceback (most recent call last):
File "./build-tor.py", line 276, in <module>
main()
File "./build-tor.py", line 30, in main
build_android()
File "./build-tor.py", line 148, in build_android
build_android_arch('tor_arm_pie.zip')
File "./build-tor.py", line 168, in build_android_arch
check_call(['make', '-C', 'external', 'clean', 'tor'], cwd=REPO_DIR)
File "/usr/lib/python3.5/subprocess.py", line 271, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['make', '-C', 'external', 'clean', 'tor']' returned non-zero exit status 2
```
I'll probably continue to poke at this but you have much more experience with it, if anything jumps out at you, I'd love to hear. thanks!https://code.briarproject.org/briar/briar/-/issues/1434Implement backend for sending and receiving image attachments2019-11-12T13:45:59ZTorsten GroteImplement backend for sending and receiving image attachments### Receiving Image Attachments
Private message headers will include a list of attachments, and there will be a `MessagingManager` method for loading an attachment, which will include the attachment data as a `ByteBuffer`, later to be c...### Receiving Image Attachments
Private message headers will include a list of attachments, and there will be a `MessagingManager` method for loading an attachment, which will include the attachment data as a `ByteBuffer`, later to be converted to an `InputStream` if we find that loading images into ByteBuffers won't scale.
This implies that private message headers (in the sense of headers belonging to the private messaging client) will no longer correspond to the root class `PrivateMessageHeader` (from which all one-to-one headers currently inherit). The root class may need to be renamed, and some refactoring of the code that handles that hierarchy will be needed.
### Sending Image Attachments
*TODO*: MessagingManager API for creating local messages with optional attachmentsAndroid 1.3Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1433BdfReaderImpl has undefined behaviour for strings with illegal byte sequences2018-10-30T13:58:53ZakwizgranBdfReaderImpl has undefined behaviour for strings with illegal byte sequencesBdfReaderImpl uses the `String(byte[] bytes, int offset, int length, String charsetName)` constructor to convert UTF-8 byte arrays into strings. The [javadoc](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#String-byte:A-...BdfReaderImpl uses the `String(byte[] bytes, int offset, int length, String charsetName)` constructor to convert UTF-8 byte arrays into strings. The [javadoc](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#String-byte:A-int-int-java.lang.String-) says "The behavior of this constructor when the given bytes are not valid in the given charset is unspecified. The CharsetDecoder class should be used when more control over the decoding process is required."
We have a `StringUtils.toUtf8(byte[] bytes)` method with well-defined behaviour for this situation (illegal byte sequences are ignored), which we should probably be using here (and fuzz-testing).Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1432Headless integration tests2020-11-18T17:04:10ZTorsten GroteHeadless integration testsWe should add some integration tests for the REST API endpoints to catch breakage.We should add some integration tests for the REST API endpoints to catch breakage.Headless MVPhttps://code.briarproject.org/briar/briar/-/issues/1431Try not to show languages with unsupported scripts2020-11-15T19:55:56ZakwizgranTry not to show languages with unsupported scriptsThe language selector should try to exclude languages with scripts that aren't supported by the device.
We still want to offer languages that aren't supported by the device, as long as the script is supported (e.g. Occitan, Asturian).
...The language selector should try to exclude languages with scripts that aren't supported by the device.
We still want to offer languages that aren't supported by the device, as long as the script is supported (e.g. Occitan, Asturian).
One possibility would be to have a list of exceptions, containing languages with scripts that are likely to be supported on all devices. Only languages that are supported by the device or included in the list of exceptions should be shown in the language selector.https://code.briarproject.org/briar/briar/-/issues/1430Restrict access to Tor's SOCKS port2023-10-23T14:08:41ZakwizgranRestrict access to Tor's SOCKS portAny process on localhost can connect to the SOCKS port of our Tor process and use it to make connections via Tor. Without having any specific attack in mind, I guess malicious apps running on localhost (which are within our threat model ...Any process on localhost can connect to the SOCKS port of our Tor process and use it to make connections via Tor. Without having any specific attack in mind, I guess malicious apps running on localhost (which are within our threat model on Android) might be able to use this to undermine the user's anonymity.
Tor uses the SOCKS username and password for circuit isolation, so if we wanted to password-protect the SOCKS port we'd have to add a config option to treat the password as a credential, perhaps keeping the username for circuit isolation.
Tor already has password-hashing code for the control port, which we might be able to reuse for the SOCKS port.
If this feature request passes the smell test let's open a ticket upstream.https://code.briarproject.org/briar/briar/-/issues/1429Configure Animal Sniffer to allow try-with-resources2021-08-09T12:30:08ZakwizgranConfigure Animal Sniffer to allow try-with-resourcesThe Animal Sniffer plugin, which we use to check that our code is compatible with the Java 6 API provided by older Android devices, rejects the try-with-resources statement added in Java 7. This is unfortunate, as Android's desugar prepr...The Animal Sniffer plugin, which we use to check that our code is compatible with the Java 6 API provided by older Android devices, rejects the try-with-resources statement added in Java 7. This is unfortunate, as Android's desugar preprocessor converts the statement to Java 6-compatible bytecode, so it's usable on older devices.
We should look for a way to configure Animal Sniffer so the statement isn't rejected.https://code.briarproject.org/briar/briar/-/issues/1428Log messages with level FINE aren't recorded in Android's system log2019-10-09T12:17:59ZakwizgranLog messages with level FINE aren't recorded in Android's system logLog messages with level FINE (such as timing measurements) aren't being recorded in Android's system log. These messages should be recorded on debug and beta builds, where the root logger's log level is set to FINE.
The messages are rec...Log messages with level FINE (such as timing measurements) aren't being recorded in Android's system log. These messages should be recorded on debug and beta builds, where the root logger's log level is set to FINE.
The messages are recorded in our own internal log, as expected, so they're included in crash reports and feedback from debug and beta builds.Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1427Keep a changelog2018-11-22T11:35:24ZRobert PollakKeep a changelogPlease keep a changelog, to make it easier for users to see what notable changes have been made, before installing a new Briar version.
F-Droid can then link to this changelog on the app page.Please keep a changelog, to make it easier for users to see what notable changes have been made, before installing a new Briar version.
F-Droid can then link to this changelog on the app page.Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1426Feedback data is hard to read in preview screen2019-06-18T16:52:08ZakwizgranFeedback data is hard to read in preview screenSince [upgrading ACRA](https://code.briarproject.org/briar/briar/commit/b972d1fc13570fa6258048d5e8a429f9882b8ef6) the contents of crash reports and feedback are shown in the preview as blobs of JSON rather than key-value pairs, which mak...Since [upgrading ACRA](https://code.briarproject.org/briar/briar/commit/b972d1fc13570fa6258048d5e8a429f9882b8ef6) the contents of crash reports and feedback are shown in the preview as blobs of JSON rather than key-value pairs, which makes them harder to read.
There also seems to be an issue with the scroll view cutting off the bottom of the content.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1424Prompted to 'allow unknown sources' when trying to install briar via its f-dr...2020-11-15T19:59:13ZlazzPrompted to 'allow unknown sources' when trying to install briar via its f-droid repository despite the privileged extension being installedWhen trying to install briar through its third party f-droid repository I get prompted to 'allow unknown sources' by android despite f-droid's privileged extension being installed and working with the main repo as well as other third par...When trying to install briar through its third party f-droid repository I get prompted to 'allow unknown sources' by android despite f-droid's privileged extension being installed and working with the main repo as well as other third party repos.
It has been hinted that this might be due to the briar project not using the current master of fdroid, where issues of that kind have been solved.
It was suggested that you look at https://gitlab.com/fdroid/admin/issues/65 for reference and check whether some of the problematic setup sounds familiar to you and applies to your setup.
Using the latest fdroid tools should solve this issue.https://code.briarproject.org/briar/briar/-/issues/1423IllegalStateException when key agreement fails2021-01-13T16:12:06ZakwizgranIllegalStateException when key agreement fails* Android version: 5.1.1
* Briar version: 1.1.1 (9476782)
* Phone model: Samsung SM-J200G (j2ltedd)
Stacktrace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app...* Android version: 5.1.1
* Briar version: 1.1.1 (9476782)
* Phone model: Samsung SM-J200G (j2ltedd)
Stacktrace:
```
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:2053)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2079)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:678)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:632)
at org.briarproject.briar.android.activity.BaseActivity.showNextFragment(BaseActivity.java:147)
at org.briarproject.briar.android.keyagreement.KeyAgreementActivity.showErrorFragment(KeyAgreementActivity.java:193)
at org.briarproject.briar.android.keyagreement.ContactExchangeActivity.keyAgreementFailed(ContactExchangeActivity.java:107)
at org.briarproject.briar.android.keyagreement.KeyAgreementFragment.lambda$keyAgreementFailed$2$KeyAgreementFragment(KeyAgreementFragment.java:283)
at org.briarproject.briar.android.keyagreement.KeyAgreementFragment$$Lambda$2.run(Unknown Source)
at org.briarproject.briar.android.fragment.BaseFragment.lambda$runOnUiThreadUnlessDestroyed$0$BaseFragment(BaseFragment.java:90)
at org.briarproject.briar.android.fragment.BaseFragment$$Lambda$0.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6946)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
```
Looks like we should check the lifecycle state in `BaseActivity#showNextFragment()` or `KeyAgreementActivity#showErrorFragment()`.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1422ActivityRecord not found for ConversationActivity2022-06-13T15:11:23ZakwizgranActivityRecord not found for ConversationActivity* Android version: 8.1.0
* Briar version: 1.1.1 (9476782)
* Phone model: Samsung SM-J727A (j7popelteuc)
* User feedback: "It would not open any more."
Stacktrace:
```
java.lang.IllegalArgumentException: reportSizeConfigurations: Activit...* Android version: 8.1.0
* Briar version: 1.1.1 (9476782)
* Phone model: Samsung SM-J727A (j7popelteuc)
* User feedback: "It would not open any more."
Stacktrace:
```
java.lang.IllegalArgumentException: reportSizeConfigurations: ActivityRecord not found for: Token{72da83 ActivityRecord{c281601 u0 org.briarproject.briar.android/.contact.ConversationActivity t-1 f}}
at android.os.Parcel.readException(Parcel.java:2025)
at android.os.Parcel.readException(Parcel.java:1967)
at android.app.IActivityManager$Stub$Proxy.reportSizeConfigurations(IActivityManager.java:9838)
at android.app.ActivityThread.reportSizeConfigurations(ActivityThread.java:3102)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1711)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6958)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
```
Log:
```
10-08 10:37:18.003 I/AndroidAccountManager: No database key in preferences
10-08 10:37:18.005 I/AccountManagerImpl: Found database key in primary file
10-08 10:37:18.005 I/SplashScreenActivity: Account exists
10-08 10:37:18.403 I/AndroidAccountManager: No database key in preferences
10-08 10:37:18.403 I/AccountManagerImpl: Found database key in primary file
10-08 10:37:28.469 I/AndroidAccountManager: No database key in preferences
10-08 10:37:28.470 I/AccountManagerImpl: Found database key in primary file
10-08 10:37:29.093 I/BriarService: Created
10-08 10:37:29.114 I/LifecycleManagerImpl: Starting services
10-08 10:37:49.668 I/IdentityManagerImpl: No local author to store
10-08 10:37:49.671 I/IdentityManagerImpl: Local author loaded
10-08 10:37:49.679 I/AndroidNetworkManager: Received broadcast android.net.conn.CONNECTIVITY_CHANGE
10-08 10:37:55.291 I/PluginManagerImpl: Starting poller
10-08 10:37:55.292 I/PluginManagerImpl: Starting simplex plugins
10-08 10:37:55.292 I/PluginManagerImpl: Starting duplex plugins
10-08 10:37:55.308 I/AndroidLanTcpPlugin: Not connected to wifi
10-08 10:37:55.309 I/TorPlugin: Starting Tor
10-08 10:37:55.401 I/BluetoothPlugin: Local address null
10-08 10:37:55.452 I/BriarRecyclerView: Adding Handler Callback
10-08 10:37:57.166 I/TorPlugin: Oct 08 06:37:57.161 [notice] Tor 0.2.9.16 (git-645ef2e2854b2225) running on Linux with Libevent 2.0.22-stable, OpenSSL 1.0.2o and Zlib 1.2.8.
10-08 10:37:57.213 I/TorPlugin: Oct 08 06:37:57.165 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
10-08 10:37:57.214 I/TorPlugin: Oct 08 06:37:57.167 [notice] Read configuration file \"/data/user/0/org.briarproject.briar.android/app_tor/torrc\".
10-08 10:37:57.214 I/TorPlugin: Oct 08 06:37:57.191 [notice] Opening Control listener on 127.0.0.1:59051
10-08 10:37:57.214 I/TorPlugin: Oct 08 06:37:57.191 [notice] DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
10-08 10:37:57.216 I/TorPlugin: Auth cookie created
10-08 10:37:58.718 I/BriarRecyclerView: Adding Handler Callback
10-08 10:37:59.346 I/BriarRecyclerView: Removing Handler Callback
10-08 10:38:00.017 I/KeyboardAwareLinearLayout: onKeyboardOpen(542)
10-08 10:38:00.628 I/TorPlugin: Online: true, wifi: false
10-08 10:38:00.628 I/TorPlugin: Country code: US
10-08 10:38:00.628 I/TorPlugin: Enabling network, not using bridges
10-08 10:38:00.646 I/TorPlugin: NOTICE DisableNetwork is set. Tor will not make or accept non-control network connections. Shutting down all existing connections.
10-08 10:38:00.646 I/RenewableWakeLock: Acquiring wake lock LocationManagerService
10-08 10:38:00.667 I/TorPlugin: NOTICE Opening Socks listener on 127.0.0.1:59050
10-08 10:38:01.703 I/TorPlugin: NOTICE Bootstrapped 80%: Connecting to the Tor network
10-08 10:38:01.704 I/TorPlugin: OR connection LAUNCHED $7AA7FC80E3E0D32E929D2CC094EACF529C95264C~steinpilz
10-08 10:38:01.705 I/TorPlugin: OR connection LAUNCHED $1E17564CDD5A6B70A6F73C053A479BC5EE2D0A89~Unnamed
10-08 10:38:01.930 I/TorPlugin: NOTICE Bootstrapped 85%: Finishing handshake with first hop
10-08 10:38:02.641 I/TorPlugin: OR connection CONNECTED $1E17564CDD5A6B70A6F73C053A479BC5EE2D0A89~Unnamed
10-08 10:38:02.660 I/TorPlugin: NOTICE Bootstrapped 90%: Establishing a Tor circuit
10-08 10:38:02.660 I/TorPlugin: OR connection CONNECTED $7AA7FC80E3E0D32E929D2CC094EACF529C95264C~steinpilz
10-08 10:38:02.934 I/TorPlugin: First circuit built
10-08 10:38:03.696 I/TorPlugin: NOTICE Tor has successfully opened a circuit. Looks like client functionality is working.
10-08 10:38:03.696 I/TorPlugin: NOTICE Bootstrapped 100%: Done
10-08 10:38:03.697 I/FeedManagerImpl: Tor started, scheduling RSS feed fetcher
10-08 10:38:03.698 I/Poller: Polling plugin org.briarproject.bramble.tor
10-08 10:38:24.455 I/BriarRecyclerView: Removing Handler Callback
10-08 10:38:25.001 I/TorPlugin: Creating hidden service
10-08 10:38:25.028 I/TorPlugin: Hidden service tsb[scrubbed]
10-08 10:38:25.078 I/TorPlugin: Connecting to vye[scrubbed]
10-08 10:38:34.140 I/TorPlugin: Connected to vye[scrubbed]
10-08 10:38:35.400 I/DuplexOutgoingSession: Generated ack: false
10-08 10:38:35.446 I/DuplexOutgoingSession: Next send time decreased
10-08 10:38:35.446 I/DuplexOutgoingSession: Checking for retransmittable messages
10-08 10:38:35.446 I/DuplexOutgoingSession: Generated batch: false
10-08 10:38:35.485 I/ConnectionRegistryImpl: Outgoing connection registered: org.briarproject.bramble.tor
10-08 10:38:35.485 I/ConnectionRegistryImpl: Contact connected
10-08 10:38:35.533 I/DuplexOutgoingSession: Next send time decreased
10-08 10:38:35.591 I/DuplexOutgoingSession: Generated offer: true
10-08 10:38:35.592 I/DuplexOutgoingSession: Sent offer
10-08 10:38:35.592 I/DuplexOutgoingSession: Generated request: false
10-08 10:38:35.634 I/DuplexOutgoingSession: Generated batch: false
10-08 10:38:35.684 I/DuplexOutgoingSession: Generated offer: false
10-08 10:38:35.962 I/DuplexOutgoingSession: Generated request: true
10-08 10:38:35.962 I/DuplexOutgoingSession: Sent request
10-08 10:38:35.963 I/DuplexOutgoingSession: Generated request: false
10-08 10:38:37.048 I/DuplexOutgoingSession: Generated batch: true
10-08 10:38:37.048 I/DuplexOutgoingSession: Sent batch
10-08 10:38:37.091 I/DuplexOutgoingSession: Generated batch: false
10-08 10:38:37.619 I/DuplexOutgoingSession: Generated ack: true
10-08 10:38:37.619 I/DuplexOutgoingSession: Sent ack
10-08 10:38:37.786 I/DuplexOutgoingSession: Generated ack: false
10-08 10:38:45.493 I/Poller: Polling plugin org.briarproject.bramble.tor
10-08 10:38:45.496 I/ConnectionRegistryImpl: 1 contacts connected: org.briarproject.bramble.tor
10-08 10:38:50.421 I/BriarRecyclerView: Adding Handler Callback
10-08 10:39:00.649 I/RenewableWakeLock: Renewing wake lock LocationManagerService
10-08 10:39:03.698 I/FeedManagerImpl: Updating RSS feeds...
10-08 10:39:03.785 I/FeedManagerImpl: Done updating RSS feeds
10-08 10:39:05.679 I/TorPlugin: Descriptor uploaded
10-08 10:39:05.849 I/TorPlugin: Descriptor uploaded
10-08 10:39:07.478 I/TorPlugin: Descriptor uploaded
10-08 10:39:07.619 I/DuplexOutgoingSession: Sending keepalive
10-08 10:39:07.738 I/TorPlugin: Descriptor uploaded
10-08 10:39:08.159 I/TorPlugin: Descriptor uploaded
10-08 10:39:10.053 I/TorPlugin: Descriptor uploaded
10-08 10:39:11.885 I/DuplexOutgoingSession: Generated request: true
10-08 10:39:11.886 I/DuplexOutgoingSession: Sent request
10-08 10:39:11.886 I/DuplexOutgoingSession: Generated request: false
10-08 10:39:13.477 I/DuplexOutgoingSession: Generated ack: true
10-08 10:39:13.477 I/DuplexOutgoingSession: Sent ack
10-08 10:39:13.638 I/ConversationActivity: Message received, adding
10-08 10:39:13.660 I/DuplexOutgoingSession: Generated ack: false
10-08 10:39:36.968 I/DuplexOutgoingSession: Checking for retransmittable messages
10-08 10:39:37.036 I/DuplexOutgoingSession: Generated batch: false
10-08 10:39:37.081 I/DuplexOutgoingSession: Generated offer: false
10-08 10:39:43.478 I/DuplexOutgoingSession: Sending keepalive
10-08 10:39:45.494 I/Poller: Polling plugin org.briarproject.bramble.tor
10-08 10:39:45.498 I/ConnectionRegistryImpl: 1 contacts connected: org.briarproject.bramble.tor
10-08 10:40:00.651 I/RenewableWakeLock: Renewing wake lock LocationManagerService
10-08 10:40:08.417 I/BriarRecyclerView: Adding Handler Callback
```
From the log, it looks like the crash happened soon after startup, after sending and receiving private messages. The last line of the log suggests a transition between activities was in progress.
(Incidentally, when reading logs I often rely on the BriarRecyclerView's messages about its handler callback to make guesses about what's happening to the UI. Maybe we should just log the name of each activity when it starts and stops?)Android 1.4https://code.briarproject.org/briar/briar/-/issues/1421Contact list is shown when opening app during DB migration2022-05-26T15:44:20ZakwizgranContact list is shown when opening app during DB migrationSteps to reproduce:
* Use the long-migration branch, which adds a fake 60-second DB migration at every startup
* Sign into Briar
* While the fake migration is running, send Briar to the background or turn the screen off
* Relaunch Briar...Steps to reproduce:
* Use the long-migration branch, which adds a fake 60-second DB migration at every startup
* Sign into Briar
* While the fake migration is running, send Briar to the background or turn the screen off
* Relaunch Briar from the status bar or lock screen notification (on some Android versions this requires opening the notification drawer)
* Expected: The migration screen is shown
* Actual: The contact list is shown with a progress wheel. The nav drawer can be opened. Backing out of the contact list or signing out via the nav drawer shows the migration screen againAndroid 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1420TorPlugin not updating status when changing setting2018-10-15T13:04:37ZTorsten GroteTorPlugin not updating status when changing settingThe TorPlugin is not updating its status when bridges are enabled or disabled - the icon still shows the plugin as being connected. We should reset the status when enabling/disabling bridges and wait for Tor to reconnect.The TorPlugin is not updating its status when bridges are enabled or disabled - the icon still shows the plugin as being connected. We should reset the status when enabling/disabling bridges and wait for Tor to reconnect.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1419Online status in contact list can be confused with radio button2020-11-16T10:31:13ZTorsten GroteOnline status in contact list can be confused with radio buttonThe circle on the right of the avatar gives you an impression of a select radio button instead of online status.
![Online_1](/uploads/05ec34f3580ae8f05846fd807b516e9f/Online_1.png)
Placing the green circle on the corner of the avatar m...The circle on the right of the avatar gives you an impression of a select radio button instead of online status.
![Online_1](/uploads/05ec34f3580ae8f05846fd807b516e9f/Online_1.png)
Placing the green circle on the corner of the avatar might be more understandable:
![online](/uploads/055feea1e3c6de24587eb05c75b10f78/online.png)https://code.briarproject.org/briar/briar/-/issues/1418Managing pluggable transports2019-02-19T17:38:04ZTorsten GroteManaging pluggable transportsThis ticket is to write code for installing the transport, starting if it necessary, activate it based on the user's location, etc.This ticket is to write code for installing the transport, starting if it necessary, activate it based on the user's location, etc.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1417Integrate pluggable transport binaries into Briar2018-12-19T12:23:55ZTorsten GroteIntegrate pluggable transport binaries into BriarThe artifact generated by #1416 should be integrated in Briar, so obfs4 bridges can be used whenever needed by the user's location.The artifact generated by #1416 should be integrated in Briar, so obfs4 bridges can be used whenever needed by the user's location.Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1416Build pluggable transport binaries for Android2018-10-26T12:52:22ZTorsten GroteBuild pluggable transport binaries for AndroidWe would focus on **obfs4** as it should still work in countries like Iran or China (if the bridge host itself is not blocked via TCP). Also, obfs2 and 3 are obsolete, and scramblesuit has no advantages over obfs4 that we know of.
The f...We would focus on **obfs4** as it should still work in countries like Iran or China (if the bridge host itself is not blocked via TCP). Also, obfs2 and 3 are obsolete, and scramblesuit has no advantages over obfs4 that we know of.
The first task is to work out whether we need a standalone obfs4 executable or a go library. If we use the library, do we also need the dispatcher so tor can control the transport? Then we'll know whether our upstream is [yawning's obfs4](https://gitweb.torproject.org/pluggable-transports/obfs4.git/) or [the shapeshifter-transports library](https://github.com/OperatorFoundation/shapeshifter-transports).
There's also Guardian Project's [Android Pluggable Transports](https://github.com/guardianproject/AndroidPluggableTransports) and OpenPriv's [Android Go Mobile Builder](https://github.com/OpenPriv/android-go-mobile) that might be relevant.
The extra artifact that gets added to Briar should be reproducible: How to [Reproduce Go binaries byte-by-byte](https://blog.filippo.io/reproducing-go-binaries-byte-by-byte/)Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1415Develop scripts to use the OONI API to find locations where pluggable transpo...2020-11-15T20:02:27ZTorsten GroteDevelop scripts to use the OONI API to find locations where pluggable transports are needed