Reputation: 21
I am getting this error -
A/libc: Fatal signal 31 (SIGSYS), code 1 in tid 4168 (m.messagingdapp)
When I upgrade my app from API 24 to 26 (have to do to get java.nio.file features). It is the only error that I can see in my logcat. It works fine when running with API 24. It gets the error when accessing an API I'm using called go-ethereum on this line -
String f = this.getFilesDir() + "/.ethereum";
Long n = Geth.LightScryptN;
Long p = Geth.LightScryptP;
AccountManager am = Geth.newAccountManager(f, n, p); //HERE
There seem to be lots of other errors on different parts of the logcat in the drop down menu i.e system_process. However, I am new to android and don't really know what I am looking for (I have googled all of them separately but have gotten no fix). Thanks.
Full lolcat -
07-25 22:17:14.774 9625-9625/? I/zygote: Not late-enabling -Xcheck:jni
(already on)
07-25 22:17:14.825 9625-9625/? W/zygote: Unexpected CPU variant for X86
using defaults: x86
07-25 22:17:15.181 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
Class android.support.v4.util.SimpleArrayMap failed lock verification
and will run slower.
07-25 22:17:15.181 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
Common causes for lock verification issues are non-optimized dex code
07-25 22:17:15.181 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
and incorrect proguard optimizations.
07-25 22:17:15.184 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
Class cz.msebera.android.httpclient.conn.util.PublicSuffixMatcherLoader
failed lock verification and will run slower.
07-25 22:17:15.191 9625-9625/benkrarup.ethereum.messagingdapp
D/NetworkSecurityConfig: No Network Security Config specified, using
platform default
07-25 22:17:15.216 9625-9625/benkrarup.ethereum.messagingdapp
W/Java7Support: Unable to load JDK7 types (annotations,
java.nio.file.Path): no Java7 support added
07-25 22:17:15.596 9625-9657/benkrarup.ethereum.messagingdapp A/libc:
Fatal signal 31 (SIGSYS), code 1 in tid 9657 (m.messagingdapp)
Upvotes: 0
Views: 3952
Reputation: 1204
Android 8 O (SDK 26) limits which system calls are allowed for security reasons by enabling a feature called secure computing in the Linux kernel.
This means only whitelisted calls can be executed and that any other call will result in signal 31 (SIGSYS), code 1 (SYS_SECCOMP)
, like you are experiencing. You will need to examine the stack trace of this signal to find out which system call was not allowed (which was not listed completely in your question).
You can find a list of allowed calls here. Any other call is not allowed.
You can find what Google wrote about this here.
Upvotes: 4