briar issueshttps://code.briarproject.org/groups/briar/-/issues2018-11-15T11:12:12Zhttps://code.briarproject.org/briar/briar/-/issues/1461Conversation UI uses java.util.Objects, which requires API 192018-11-15T11:12:12ZakwizgranConversation UI uses java.util.Objects, which requires API 19ConversationActivity and ConversationViewModel use Objects.requireNonNull(), which was added in Java 7 and requires API 19 on Android.
Strangely, although the tooltip in Android Studio shows the API 19 requirement, the IDE and compiler ...ConversationActivity and ConversationViewModel use Objects.requireNonNull(), which was added in Java 7 and requires API 19 on Android.
Strangely, although the tooltip in Android Studio shows the API 19 requirement, the IDE and compiler don't complain about the missing method. The method works as expected: if null is passed, it throws a NullPointerException. But the stacktrace starts at the caller, not at Objects.requireNonNull().
It seems the method's being inlined at some point, perhaps by ProGuard or desugar. Setting `-dontoptimize` in the ProGuard config, which should disable inlining, doesn't make a difference.
I think we should probably remove calls to this method, as we don't know where it's being inlined, and if it stopped being inlined in the future the app would fail to start on API < 19.Android 1.1Julian DehmJulian Dehmhttps://code.briarproject.org/briar/briar/-/issues/1460Introduction to existing contact shows wrong message2018-11-27T10:00:12ZakwizgranIntroduction to existing contact shows wrong messageWhen an existing contact is introduced, the text of the introduction request doesn't change as it should.When an existing contact is introduced, the text of the introduction request doesn't change as it should.Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1459IllegalArgumentException when activating keys2021-08-27T11:37:48ZakwizgranIllegalArgumentException when activating keys* Android version: 8.0
* Phone model: Huawei P8 Lite 2017 (HWPRA-H)
* Briar version: 1.1.1 and 1.1.3
Google Play has 12 occurrences of this crash across a three-day period: eight crashes on 1.1.3 and four on 1.1.1. The crashes on 1.1.3 ...* Android version: 8.0
* Phone model: Huawei P8 Lite 2017 (HWPRA-H)
* Briar version: 1.1.1 and 1.1.3
Google Play has 12 occurrences of this crash across a three-day period: eight crashes on 1.1.3 and four on 1.1.1. The crashes on 1.1.3 and 1.1.1 are interleaved in time, suggesting they come from two or more devices.
Stacktrace:
```
java.lang.IllegalArgumentException:
at org.briarproject.bramble.transport.TransportKeyManagerImpl.activateKeys (TransportKeyManagerImpl.java:206)
at org.briarproject.bramble.transport.KeyManagerImpl.activateKeys (KeyManagerImpl.java:123)
at org.briarproject.briar.introduction.IntroduceeProtocolEngine.onRemoteActivate (IntroduceeProtocolEngine.java:501)
at org.briarproject.briar.introduction.IntroduceeProtocolEngine.onActivateMessage (IntroduceeProtocolEngine.java:215)
at org.briarproject.briar.introduction.IntroduceeProtocolEngine.onActivateMessage (IntroduceeProtocolEngine.java:53)
at org.briarproject.briar.introduction.IntroductionManagerImpl.handleMessage (IntroductionManagerImpl.java:235)
at org.briarproject.briar.introduction.IntroductionManagerImpl.incomingMessage (IntroductionManagerImpl.java:193)
at org.briarproject.briar.client.BdfIncomingMessageHook.incomingMessage (BdfIncomingMessageHook.java:60)
at org.briarproject.bramble.sync.ValidationManagerImpl.deliverMessage (ValidationManagerImpl.java:334)
at org.briarproject.bramble.sync.ValidationManagerImpl.storeMessageContext (ValidationManagerImpl.java:295)
at org.briarproject.bramble.sync.ValidationManagerImpl.lambda$storeMessageContextAsync$3$ValidationManagerImpl (ValidationManagerImpl.java:259)
at org.briarproject.bramble.sync.ValidationManagerImpl$$Lambda$5.run (Unknown Source:10)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
at java.lang.Thread.run (Thread.java:784)
```Android 1.3akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1456Adaptive icons2020-11-16T10:33:14ZakwizgranAdaptive iconsA user asked us to add support for [adaptive icons](https://www.androidcentral.com/adaptive-icons).A user asked us to add support for [adaptive icons](https://www.androidcentral.com/adaptive-icons).Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1455NPE when getting stream context2018-11-27T10:00:48ZakwizgranNPE when getting stream context* Android version: 8.1.0
* Phone model: Xiaomi Redmi Note 4 (lineage_mido)
* Briar version: 1.1.4 (d02b30e)
Stacktrace:
```
java.lang.NullPointerException
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResul...* Android version: 8.1.0
* Phone model: Xiaomi Redmi Note 4 (lineage_mido)
* Briar version: 1.1.4 (d02b30e)
Stacktrace:
```
java.lang.NullPointerException
at org.briarproject.bramble.db.DatabaseComponentImpl.transactionWithResult(DatabaseComponentImpl.java:187)
at org.briarproject.bramble.transport.KeyManagerImpl.getStreamContext(KeyManagerImpl.java:152)
at org.briarproject.bramble.plugin.ConnectionManagerImpl$ManageIncomingDuplexConnection.run(ConnectionManagerImpl.java:248)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
```Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1454ArrayIndexOutOfBoundsException in SettingsActivity2019-11-06T09:47:05ZakwizgranArrayIndexOutOfBoundsException in SettingsActivityI'm guessing this may be related to removing the system default option for the dark theme.
* Android version: 8.0.0
* Phone model: Samsung SM-G965F (star2ltexx)
* Briar version: 1.1.4
Stacktrace:
```
java.lang.ArrayIndexOutOfBoundsExce...I'm guessing this may be related to removing the system default option for the dark theme.
* Android version: 8.0.0
* Phone model: Samsung SM-G965F (star2ltexx)
* Briar version: 1.1.4
Stacktrace:
```
java.lang.ArrayIndexOutOfBoundsException: length=3; index=3
at android.support.v7.preference.ListPreference.getEntry(ListPreference.java:229)
at android.support.v7.preference.ListPreference.getSummary(ListPreference.java:174)
at android.support.v7.preference.Preference.onBindViewHolder(Preference.java:584)
at android.support.v7.preference.PreferenceGroupAdapter.onBindViewHolder(PreferenceGroupAdapter.java:381)
at android.support.v7.preference.PreferenceGroupAdapter.onBindViewHolder(PreferenceGroupAdapter.java:45)
at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6781)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6823)
at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5752)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6019)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2230)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1557)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3641)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:4194)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:444)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:444)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:944)
at android.view.View.layout(View.java:20822)
at android.view.ViewGroup.layout(ViewGroup.java:6401)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2948)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2635)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1779)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7810)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
```Android 1.2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-manual/-/issues/2the link to the Briar application on Google Play in the user manual is broken2018-11-09T15:57:43ZRoman Beslikme@beroal.in.uathe link to the Briar application on Google Play in the user manual is brokenIn the chapter "Installation". The error message is "URL not found".In the chapter "Installation". The error message is "URL not found".https://code.briarproject.org/briar/briar/-/issues/1453the link to the Briar application on Google Play in the user manual is broken2018-11-27T09:59:45ZRoman Beslikme@beroal.in.uathe link to the Briar application on Google Play in the user manual is brokenIn the chapter "Installation". The error message is "URL not found".In the chapter "Installation". The error message is "URL not found".Android 1.1Roman Beslikme@beroal.in.uaRoman Beslikme@beroal.in.uahttps://code.briarproject.org/briar/briar/-/issues/1452Websocket Authentication2018-11-27T10:00:33ZTorsten GroteWebsocket AuthenticationDespite many (older) claims in the internet that you can establish websocket connections with basic auth, this doesn't seem to be true for javascript libraries running in a recent browser. I managed to do it in Python and assumed it will...Despite many (older) claims in the internet that you can establish websocket connections with basic auth, this doesn't seem to be true for javascript libraries running in a recent browser. I managed to do it in Python and assumed it will just work on browsers as well, but it seems that isn't the case. At least I haven't been able to make this work. The only thing we can send in the upgrade request from a browser is a list of protocols. In absence of a standardized authentication mechanism, there's people using this already to pass auth tokens. I confirmed that we can access this header on the server side and check if there's an auth token in it.
If we don't want that hacky (but easy) solution, I am afraid we need to get into the business of tracking each session's authentication state and require them to send a first message with the token before we start sending stuff to it. Maybe even terminate sessions that haven't authenticated after a timeout.Headless MVPTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1451"All in briar-headless" run configuration runs tests in other modules2018-11-07T17:47:51Zakwizgran"All in briar-headless" run configuration runs tests in other modulesThe "All in briar-headless" run configuration in Android Studio runs tests in other modules as well as briar-headless. It seems to be picking up JUnit 4 tests from all modules.The "All in briar-headless" run configuration in Android Studio runs tests in other modules as well as briar-headless. It seems to be picking up JUnit 4 tests from all modules.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1450"All tests" run confguration doesn't run briar-android tests2018-11-27T10:00:04Zakwizgran"All tests" run confguration doesn't run briar-android testsThe "All tests" run configuration for Android Studio stops after running the briar-headless tests, so the briar-android tests aren't run.The "All tests" run configuration for Android Studio stops after running the briar-headless tests, so the briar-android tests aren't run.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1449Why not migrate to v3 hidden Service address ?2018-11-07T15:09:55ZveraWhy not migrate to v3 hidden Service address ?Why does briar still generate only onion2 address even though the tor-android-binary can work with hidden service v3 now? https://code.briarproject.org/briar/briar/blob/master/bramble-core/src/main/java/org/briarproject/bramble/plugin/to...Why does briar still generate only onion2 address even though the tor-android-binary can work with hidden service v3 now? https://code.briarproject.org/briar/briar/blob/master/bramble-core/src/main/java/org/briarproject/bramble/plugin/tor/TorPlugin.java#L449
And I found the `NEW:BEST` in https://github.com/akwizgran/jtorctl/blob/master/net/freehaven/tor/control/TorControlConnection.java#L763 always generate RSA1024 key, and it should use `NEW:ED25519-V3` to generate ed25519 key.https://code.briarproject.org/briar/briar/-/issues/1446SecurityException when starting TestDataActivity with multiple Briar versions...2018-11-07T09:52:46ZakwizgranSecurityException when starting TestDataActivity with multiple Briar versions installed* Android version: 7.1.2
* Phone model: Motorola Moto G4 (lineage_athene)
* Briar version: 1.1.3 (93090f0, a debug build for testing the remote contact UX)
* Package name: org.briarproject.briar.android.debug.qr
Stack trace:
```
java.la...* Android version: 7.1.2
* Phone model: Motorola Moto G4 (lineage_athene)
* Briar version: 1.1.3 (93090f0, a debug build for testing the remote contact UX)
* Package name: org.briarproject.briar.android.debug.qr
Stack trace:
```
java.lang.SecurityException: Permission Denial: starting Intent { cmp=org.briarproject.briar.android.debug/org.briarproject.briar.android.test.TestDataActivity } from ProcessRecord{81ac00c 16789:org.briarproject.briar.android.debug.qr/u0a88} (pid=16789, uid=10088) not exported from uid 10087
at android.os.Parcel.readException(Parcel.java:1684)
at android.os.Parcel.readException(Parcel.java:1637)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3101)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1520)
at android.app.Activity.startActivityForResult(Activity.java:4229)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
at android.app.Activity.startActivityForResult(Activity.java:4187)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
at android.app.Activity.startActivity(Activity.java:4526)
at android.app.Activity.startActivity(Activity.java:4494)
at android.content.ContextWrapper.startActivity(ContextWrapper.java:356)
at android.support.v7.preference.Preference.performClick(Preference.java:1180)
at android.support.v7.preference.Preference.performClick(Preference.java:1148)
at android.support.v7.preference.Preference$1.onClick(Preference.java:172)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22433)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
```
It looks like the intent is trying to open an activity that belongs to another version of Briar with a different package name (org.briarproject.briar.android.debug rather than org.briarproject.briar.android.debug.qr).
Although this was a debug build, I'm opening a ticket because it suggests something unexpected is happening in the way intents are handled - shouldn't they always be routed to the same app by default if a component is specified?Julian DehmJulian Dehmhttps://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/1442Use v3 hidden service for crash reports and feedback2021-11-17T13:38:12ZakwizgranUse v3 hidden service for crash reports and feedbackVersions of Briar that support v3 hidden services should use a v3 service for crash reports and feedback. The old service can be retired eventually when most users have upgraded.
Creating this here rather than in https://code.briarproje...Versions of Briar that support v3 hidden services should use a v3 service for crash reports and feedback. The old service can be retired eventually when most users have upgraded.
Creating this here rather than in https://code.briarproject.org/briar/admin because it requires some small code changes.https://code.briarproject.org/briar/briar/-/issues/1438Implement UX for sending image attachments2020-11-16T10:11:30ZTorsten GroteImplement UX for sending image attachmentsWhen the message field is empty, there's an image icon to attach an image:
![Image_Attachment_Preselection](/uploads/cfaa2500f2d39f3b4e9c540d8ce46b88/Image_Attachment_Preselection.png)
Clicking it opens the system file selector:
![Ima...When the message field is empty, there's an image icon to attach an image:
![Image_Attachment_Preselection](/uploads/cfaa2500f2d39f3b4e9c540d8ce46b88/Image_Attachment_Preselection.png)
Clicking it opens the system file selector:
![Image_Attachment_Selection__System_](/uploads/97ad63158569fd22d7dc35b28453e6e4/Image_Attachment_Selection__System_.png)
If chosen image is shown as a preview, with an option to cancel the operation and to add an image caption:
![Confirmation](/uploads/621ca864593e0670f654ebdc832fbf48/Confirmation.png)
A seascape image shows a black/grey or color picked from the image on the sides:
![Confirmation_Tall_Image](/uploads/9ca88cffecbed1ee167835ba5efdd167/Confirmation_Tall_Image.png)
Subtask of #1237.Android 1.3Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1437List of recently used emoji is reversed2018-12-19T12:27:05ZTorsten GroteList of recently used emoji is reversedSo I've been eating my own dog food and always had issues finding my emoji until I realized that the emoji I had used last is always at the *end* of the list instead of at the *beginning* where I would expected it.So I've been eating my own dog food and always had issues finding my emoji until I realized that the emoji I had used last is always at the *end* of the list instead of at the *beginning* where I would expected it.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1435[android] Migrate to HtmlCompat2020-08-14T11:32:43ZTorsten Grote[android] Migrate to HtmlCompat`UiUtils#getSpanned()` should use the new HtmlCompat.
https://commonsware.com/blog/2018/05/29/at-last-htmlcompat.html`UiUtils#getSpanned()` should use the new HtmlCompat.
https://commonsware.com/blog/2018/05/29/at-last-htmlcompat.htmlAndroid 1.2https://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 Grote