briar issueshttps://code.briarproject.org/groups/briar/-/issues2023-08-28T16:03:01Zhttps://code.briarproject.org/briar/public-mesh-research/-/issues/20Investigate whether background location permission is needed for advertising/...2023-08-28T16:03:01ZakwizgranInvestigate whether background location permission is needed for advertising/discoveryFor all APIs that require location permissions (eg BLE, WFD), investigate the effect of starting advertising and discovery in the foreground, then moving the app to the background. Does advertising continue to work without the background...For all APIs that require location permissions (eg BLE, WFD), investigate the effect of starting advertising and discovery in the foreground, then moving the app to the background. Does advertising continue to work without the background location permission? Does discovery still work?
(This is important from a UX point of view because on Android 10, using the background location permission causes a scary "Foo got your location in the background" notification after about 24 hours, which may give the impression that the app is tracking the user.)Public mesh researchpaulpaulhttps://code.briarproject.org/briar/briar/-/issues/2394Research how Tumblr and Twitter handle comments/reblogs for previously seen p...2023-03-15T12:34:52ZakwizgranResearch how Tumblr and Twitter handle comments/reblogs for previously seen postsWhen a Briar blog post receives a comment or reblog from someone whose blog we subscribe to, a duplicate of the post is added to our combined feed. Research how Tumblr and Twitter handle this, specifically in the case where the comment c...When a Briar blog post receives a comment or reblog from someone whose blog we subscribe to, a duplicate of the post is added to our combined feed. Research how Tumblr and Twitter handle this, specifically in the case where the comment chain forks (for example, Alice comments on the original post and then Bob comments on the original post rather than replying to Alice's comment).Sponsor 6 usability improvementshttps://code.briarproject.org/briar/briar/-/issues/2390Design UX for contextual help2023-03-15T12:34:52ZakwizgranDesign UX for contextual helpDesign a way of making contextual help available throughout the app. It should be possible to draw the user's attention to the fact that help is available in a given context, without interrupting their work.Design a way of making contextual help available throughout the app. It should be possible to draw the user's attention to the fact that help is available in a given context, without interrupting their work.Sponsor 6 usability improvementshttps://code.briarproject.org/briar/briar/-/issues/2389Research how other apps handle read receipts2023-03-15T12:34:52ZakwizgranResearch how other apps handle read receiptsResearch how other messaging apps handle read receipts:
* Is a message displayed differently when sent to a contact who has disabled read receipts, versus a contact who has enabled read receipts but has not read the message?
* Does the u...Research how other messaging apps handle read receipts:
* Is a message displayed differently when sent to a contact who has disabled read receipts, versus a contact who has enabled read receipts but has not read the message?
* Does the user have to allow read receipts to be sent in order to request that contacts send read receipts?
* Is the user informed if a contact allows read receipts to be sent to the user?
* Is the user informed if a contact asks for read receipts to be sent to the contact?
* In a group chat, is it possible to see which users, or how many users, have read a message? What is the UI for this?Sponsor 6 usability improvementshttps://code.briarproject.org/briar/briar/-/issues/2380Include bridge fingerprint in Snowflake params2022-10-28T10:57:09ZakwizgranInclude bridge fingerprint in Snowflake paramsTor Browser includes the bridge fingerprint in the key=value params passed to the Snowflake process, but Briar doesn't. Currently this doesn't matter because the Snowflake binary includes a default fingerprint that's the same as the one ...Tor Browser includes the bridge fingerprint in the key=value params passed to the Snowflake process, but Briar doesn't. Currently this doesn't matter because the Snowflake binary includes a default fingerprint that's the same as the one Tor Browser passes. But we should probably match what Tor Browser is doing so we don't get any surprises if the bridge fingerprint changes.
This would involve adding the fingerprint to the key=value params and removing one of the STUN servers, to keep the total length of the params within the limit.
* https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/40665
* https://gitlab.torproject.org/tpo/anti-censorship/team/-/issues/101https://code.briarproject.org/briar/public-mesh-research/-/issues/16Initial investigations: Google Nearby2023-08-28T16:08:02ZakwizgranInitial investigations: Google NearbyInvestigate the performance of the (closed source) Google Nearby libraries to see whether they perform better on problematic devices than the other options we've identified.
https://developers.google.com/nearby/Investigate the performance of the (closed source) Google Nearby libraries to see whether they perform better on problematic devices than the other options we've identified.
https://developers.google.com/nearby/Public mesh researchhttps://code.briarproject.org/briar/public-mesh-research/-/issues/15Initial investigations: wifi client2023-08-28T16:08:02ZakwizgranInitial investigations: wifi clientInvestigate our options for connecting to a wifi hotspot (which could be a WFD legacy mode hotspot) as a wifi client, rather than by using the WFD API.
The APIs available for connecting to wifi networks have changed a lot over the years...Investigate our options for connecting to a wifi hotspot (which could be a WFD legacy mode hotspot) as a wifi client, rather than by using the WFD API.
The APIs available for connecting to wifi networks have changed a lot over the years, so we'll need to test on a lot of different API versions.
Questions:
* Can we scan for available networks? How often? What permissions are needed? Can we access the SSIDs of the networks?
* Can we request a connection to a network that's not currently in range? If so, do we connect automatically when the network comes in range? What if the client's screen is off? Is the connection kept if the network doesn't have internet access?
* If two or more devices are providing hotspots with the same SSID and password, can a client roam from one to the other?
* If a client has previously connected to a hotspot and accepted the dialog that warns about no internet access, is the dialog shown again when reconnecting to the same hotspot? Is it shown again when connecting to a different device's hotspot that uses the same SSID and password?
Subtask of #1. Related to #5.Public mesh researchakwizgranakwizgranhttps://code.briarproject.org/briar/public-mesh-research/-/issues/14Initial investigations: companion device pairing2023-08-28T16:08:02ZakwizgranInitial investigations: companion device pairinghttps://developer.android.com/guide/topics/connectivity/companion-device-pairinghttps://developer.android.com/guide/topics/connectivity/companion-device-pairingPublic mesh researchSebastianSebastianhttps://code.briarproject.org/briar/public-mesh-research/-/issues/13Evaluate testing libraries for automating mesh experiments2023-08-28T16:08:02ZakwizgranEvaluate testing libraries for automating mesh experimentsEvaluate libraries designed for automated on-device testing to see whether any of them would be suitable for automating mesh experiments that need to run on real devices.
* https://www.softwaretestingmagazine.com/tools/open-source-andro...Evaluate libraries designed for automated on-device testing to see whether any of them would be suitable for automating mesh experiments that need to run on real devices.
* https://www.softwaretestingmagazine.com/tools/open-source-android-testing-tools/
* https://android.googlesource.com/platform/tools/test/connectivity/+/master/acts
* https://source.android.com/docs/core/connect/acts
* https://source.android.com/docs/core/connect/acts-advanced-guide
* https://android.googlesource.com/platform/external/sl4a/+/master/README.md
* https://github.com/google/mobly
* https://github.com/google/mobly/issues/666Public mesh researchSebastianSebastianhttps://code.briarproject.org/briar/public-mesh-research/-/issues/11Initial investigations: LAN peer discovery2023-08-28T16:08:02ZakwizgranInitial investigations: LAN peer discoveryPort the LAN peer discovery code from the Disco app to the public mesh testbed, bring it up to date, wire it up to the UI, and see whether we can use wake locks, wifi locks and/or multicast locks to solve the issues reported [here](https...Port the LAN peer discovery code from the Disco app to the public mesh testbed, bring it up to date, wire it up to the UI, and see whether we can use wake locks, wifi locks and/or multicast locks to solve the issues reported [here](https://code.briarproject.org/briar/briar/-/issues/28#note_32217) with the success rate dropping when the screen is turned off. We also need to test on newer API levels and work out what permissions are required on each API level.
It would be useful to know whether LAN peer discovery typically works for devices connected to a wifi hotspot (created manually via the system settings app) and/or a Wi-Fi Direct legacy mode hotspot (we could use the Offline Hotspot app for testing this).
Subtask of #1. Related to briar#28.Public mesh researchakwizgranakwizgranhttps://code.briarproject.org/briar/briar-mailbox/-/issues/149Send feedback and crash reports via Tor2023-08-28T16:00:11ZakwizgranSend feedback and crash reports via TorSubtask of #82Subtask of #82Mailboxhttps://code.briarproject.org/briar/briar-mailbox/-/issues/147Research accessibility testing2023-08-28T16:00:09ZakwizgranResearch accessibility testingFind out what would be involved in testing the Mailbox app for accessibility, and what resources are available to help with this testing.Find out what would be involved in testing the Mailbox app for accessibility, and what resources are available to help with this testing.https://code.briarproject.org/briar/briar-mailbox/-/issues/124Handle Huawei and Xiaomi auto-start restrictions2023-08-28T16:01:38ZTorsten GroteHandle Huawei and Xiaomi auto-start restrictionsHuawei has a `StartupManager` where the user needs to allow the app to start: https://stackoverflow.com/a/43914328/4856311
For Xiaomi MIUI there's even a library to check autostart permissions: https://github.com/XomaDev/MIUI-autostart ...Huawei has a `StartupManager` where the user needs to allow the app to start: https://stackoverflow.com/a/43914328/4856311
For Xiaomi MIUI there's even a library to check autostart permissions: https://github.com/XomaDev/MIUI-autostart It seems to use pre-built jars though
If the library isn't helpful, maybe we can bring the user as close to the right screen as possible.
The other vendors preventing auto-start have way smaller market share, maybe not worth dealing with those as well?https://code.briarproject.org/briar/briar/-/issues/2300Show more information about startup failures2022-04-08T12:33:12ZakwizgranShow more information about startup failuresRecently we've had several reports of corrupt databases (StartResult#DB_ERROR). Because these errors prevent the app from starting, we can't use crash reports or user feedback to learn about the cause.
We should expose more information ...Recently we've had several reports of corrupt databases (StartResult#DB_ERROR). Because these errors prevent the app from starting, we can't use crash reports or user feedback to learn about the cause.
We should expose more information about startup failures in the UI. This will involve returning the information from LifecycleManager#startService() and then attaching it to the intent that launches StartupFailureActivity. StartupFailureActivity should allow the user to copy the information so they can send it to us.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2288Check whether Tor complains about absence of ec_nistp_64_gcc_128 optimisation...2022-03-18T14:56:41ZakwizgranCheck whether Tor complains about absence of ec_nistp_64_gcc_128 optimisation on Android x86_64On Windows and Linux x64_64, Tor complains if the `ec_nistp_64_gcc_128` optimisation wasn't enabled at compile time. Check whether this also needs to be enabled on Android x86_64.On Windows and Linux x64_64, Tor complains if the `ec_nistp_64_gcc_128` optimisation wasn't enabled at compile time. Check whether this also needs to be enabled on Android x86_64.https://code.briarproject.org/briar/tor-reproducer/-/issues/12Investigate whether we can use --enable-static-tor2022-03-10T14:24:04ZakwizgranInvestigate whether we can use --enable-static-torWhen configuring the Tor build, the `--enable-static-tor` flag sets two flags we're not currently using on all platforms: `--enable-static-zlib` and `-static`.
We had some issues with `--enable-static-zlib` on Android, and `-static` may...When configuring the Tor build, the `--enable-static-tor` flag sets two flags we're not currently using on all platforms: `--enable-static-zlib` and `-static`.
We had some issues with `--enable-static-zlib` on Android, and `-static` may cause portability issues with glibc and NSS on Linux. Find out more about these issues and decide whether we should use `--enable-static-tor` on each platform.https://code.briarproject.org/briar/tor-reproducer/-/issues/10Share more code between platforms2022-03-10T14:07:20ZakwizgranShare more code between platformsRefactor the code to share more code between platforms, perhaps through inheritance. Depends on #9.Refactor the code to share more code between platforms, perhaps through inheritance. Depends on #9.https://code.briarproject.org/briar/tor-reproducer/-/issues/9Extract code from Android Makefile2022-03-10T14:07:20ZakwizgranExtract code from Android MakefileConvert some of the code in the Android Makefile to Python so we more easily compare the Android, Linux and Windows builds and share code between them.Convert some of the code in the Android Makefile to Python so we more easily compare the Android, Linux and Windows builds and share code between them.https://code.briarproject.org/briar/briar/-/issues/2282iOS feasibility study2022-03-03T17:03:06ZakwizgraniOS feasibility studyTo know whether Briar can be viable on iOS we need to answer the following questions.
Online:
* Can the app run a Tor hidden service on iOS? (Bearing in mind that this requires a wake lock on Android to prevent Tor's circuits from timin...To know whether Briar can be viable on iOS we need to answer the following questions.
Online:
* Can the app run a Tor hidden service on iOS? (Bearing in mind that this requires a wake lock on Android to prevent Tor's circuits from timing out when the CPU sleeps.)
* Can the hidden service keep running for a limited time when the app goes into the background?
* Can the app wake periodically while running in the background, connect to a mailbox via Tor and check for messages?
* If the app finds messages when checking the mailbox, can it (a) store the messages in the local database, (b) show a notification?
Offline:
* Can the app advertise a UUID/other info via BLE such that nearby iOS/Android devices can discover it?
* Can the app scan for UUIDs/other info advertised via BLE by nearby iOS/Android devices?
* Can the app make/receive GATT connections to/from iOS/Android devices?
* Can the app make/receive L2CAP-CoC connections to/from iOS/Android devices?
* Can the app provide a wifi hotspot (without internet access)? Can it make/receive TCP connections to/from devices connected to the hotspot?
* Can the app connect to a wifi hotspot (without internet access) provided by another device? Can it make/receive TCP connections to/from other devices connected to the hotspot?
For all of the above we need to know:
* Differences between foreground and background behaviour
* API limits such as rate limits, number of UUIDs that can be scanned for
* Any other circumstances that could affect the behaviour, such as screen being off, low battery, device reboot, user not bringing the app to the foreground for a long time
* Whether user interaction is neededhttps://code.briarproject.org/briar/public-mesh-research/-/issues/7Initial investigations: Bluetooth LE2023-08-28T16:08:02ZakwizgranInitial investigations: Bluetooth LESubtask of #1. Related to briar#28, briar#303, briar#1147, briar#1546.
Investigate BLE advertising and scanning (including larger advertisement packets in BT 5), L2CAP connections, and coded PHY.
https://www.bluetooth.com/wp-content/up...Subtask of #1. Related to briar#28, briar#303, briar#1147, briar#1546.
Investigate BLE advertising and scanning (including larger advertisement packets in BT 5), L2CAP connections, and coded PHY.
https://www.bluetooth.com/wp-content/uploads/2022/05/Bluetooth_LE_Primer_Paper.pdfPublic mesh researchakwizgranakwizgran