pacien / tincapp

Android binding and user interface for the tinc mesh VPN daemon.
https://tincapp.euxane.net
GNU General Public License v3.0
165 stars 31 forks source link

Unable to pass file descriptor to daemon subprocess with target SDK 29 #92

Closed pacien closed 4 years ago

pacien commented 5 years ago

https://github.com/pacien/tincapp/issues/90 reappears on Android 10 when setting the target SDK to >28.

Probable cause might be a stricter SELinux policy. To verify.

pacien commented 5 years ago

Could be due to new shared memory restrictions: https://developer.android.com/about/versions/10/behavior-changes-10#shared-memory

pacien commented 4 years ago

Note: could try working around this by using a Unix domain socket to pass the file descriptor. To test.

duckunix commented 4 years ago

Any movement on this yet? I am getting this issue referred to in #90 and on I am on the latest version of Android 10, Security Patch Level: January 1, 2020.

Thanks!

pacien commented 4 years ago

@duckunix The current release of Tinc App (0.28) has been confirmed to work on earlier versions of Android 10, as it currently runs on compatibility mode by default. Did it broke for you on the latest security patch level?

wolfy1339 commented 4 years ago

Not working for me either. Never worked for me on Android 10 (Oxygen OS; OnePlus)

pacien commented 4 years ago

Tinc patch: https://github.com/gsliepen/tinc/pull/234

pacien commented 4 years ago

This should be solved in release v0.29 v0.30 which is now available.

@duckunix, @wolfy1339: Please let me know if it fixed the issue on your devices.

wolfy1339 commented 4 years ago

Unfortunately, it crashes for me. Though doesn't seem related to this issue.

16:40:47.543 [main] INFO  org.pacien.tincapp.context.App - Starting tinc app 0.29 (release build), running on REL (10)
16:58:14.161 [main] ERROR org.pacien.tincapp.context.App - Fatal application error.
java.lang.ClassNotFoundException: org.apache.commons.logging.impl.NoOpLog
... 23 common frames omitted
Wrapped by: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/commons/logging/impl/NoOpLog;
at org.apache.commons.configuration2.io.ConfigurationLogger.newDummyLogger(ConfigurationLogger.java:115)
at org.apache.commons.configuration2.io.FileSystem.<clinit>(FileSystem.java:37)
at org.apache.commons.configuration2.io.FileLocatorUtils.<clinit>(FileLocatorUtils.java:54)
at org.apache.commons.configuration2.io.FileLocatorUtils.fileLocator(Unknown Source:0)
at org.apache.commons.configuration2.io.FileHandler.emptyFileLocator(FileHandler.java:1516)
at org.apache.commons.configuration2.io.FileHandler.<init>(FileHandler.java:188)
at org.apache.commons.configuration2.io.FileHandler.<init>(FileHandler.java:177)
at org.apache.commons.configuration2.builder.FileBasedBuilderParametersImpl.<init>(FileBasedBuilderParametersImpl.java:92)
at org.apache.commons.configuration2.builder.FileBasedBuilderParametersImpl.<init>(FileBasedBuilderParametersImpl.java:80)
at org.apache.commons.configuration2.builder.fluent.Parameters.fileBased(Parameters.java:186)
at org.apache.commons.configuration2.builder.fluent.Configurations.fileParams(Configurations.java:602)
at org.apache.commons.configuration2.builder.fluent.Configurations.fileParams(Configurations.java:614)
at org.apache.commons.configuration2.builder.fluent.Configurations.fileBasedBuilder(Configurations.java:132)
at org.apache.commons.configuration2.builder.fluent.Configurations.propertiesBuilder(Configurations.java:238)
at org.apache.commons.configuration2.builder.fluent.Configurations.properties(Configurations.java:282)
at org.pacien.tincapp.data.VpnInterfaceConfiguration$Companion.fromInvitation(VpnInterfaceConfiguration.kt:77)
at org.pacien.tincapp.commands.TincApp$generateIfaceCfg$1.invoke(TincApp.kt:56)
at org.pacien.tincapp.commands.TincApp$generateIfaceCfg$1.invoke(TincApp.kt:33)
at org.pacien.tincapp.commands.Executor$sam$java8_util_function_Supplier$0.get(Unknown Source:2)
at java8.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1765)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Wrapped by: java.lang.NoClassDefFoundError: org.apache.commons.configuration2.io.FileLocatorUtils
at org.apache.commons.configuration2.io.FileLocatorUtils.fileLocator(Unknown Source:0)
at org.apache.commons.configuration2.io.FileHandler.emptyFileLocator(FileHandler.java:1516)
at org.apache.commons.configuration2.io.FileHandler.<init>(FileHandler.java:188)
at org.apache.commons.configuration2.io.FileHandler.<init>(FileHandler.java:177)
at org.apache.commons.configuration2.builder.FileBasedBuilderParametersImpl.<init>(FileBasedBuilderParametersImpl.java:92)
at org.apache.commons.configuration2.builder.FileBasedBuilderParametersImpl.<init>(FileBasedBuilderParametersImpl.java:80)
at org.apache.commons.configuration2.builder.fluent.Parameters.fileBased(Parameters.java:186)
at org.apache.commons.configuration2.builder.fluent.Configurations.fileParams(Configurations.java:602)
at org.apache.commons.configuration2.builder.fluent.Configurations.fileParams(Configurations.java:614)
at org.apache.commons.configuration2.builder.fluent.Configurations.fileBasedBuilder(Configurations.java:132)
at org.apache.commons.configuration2.builder.fluent.Configurations.propertiesBuilder(Configurations.java:238)
at org.apache.commons.configuration2.builder.fluent.Configurations.properties(Configurations.java:282)
at org.pacien.tincapp.data.TincConfiguration$Companion.fromTincConfiguration(TincConfiguration.kt:36)
at org.pacien.tincapp.commands.TincApp.listPrivateKeys(TincApp.kt:41)
at org.pacien.tincapp.utils.TincKeyring.needsPassphrase(TincKeyring.kt:32)
at org.pacien.tincapp.activities.start.ConnectionStarter.tryStart(ConnectionStarter.kt:50)
at org.pacien.tincapp.activities.start.ConnectionStarter.tryStart$default(ConnectionStarter.kt:41)
at org.pacien.tincapp.activities.start.StartActivity.continueConnectionStart(StartActivity.kt:95)
at org.pacien.tincapp.activities.start.StartActivity.onActivityResult(StartActivity.kt:90)
at android.app.Activity.dispatchActivityResult(Activity.java:8135)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4955)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5003)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2109)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
16:58:33.539 [main] INFO  org.pacien.tincapp.context.App - Starting tinc app 0.29 (release build), running on REL (10)