Skip to content

[nativeaot] SYS_SECCOMP signal on Android 9.0 and below #92196

@exelix11

Description

@exelix11

Description

I am porting a project to android using native aot and dotnet SDK 8.0.100-rc.1
One user reported a crash on his Blackview Max 1 running android 8.0, the CPU of the device is a MediaTek Helio P23 (arm64).
I compiled an hello world console application and asked them to run it in termux, it crashes with the same error.

I don't have a device to personally reproduce the issue.

Reproduction Steps

Create an hello world project following the native aot docs and try to run on a mediatek CPU

dotnet new console --aot
dotnet publish -r linux-bionic-arm64 -p:DisableUnsupportedError=true -p:PublishAotUsingRuntimePack=true

This is the exact binary i used for this test: helloandroid.zip

Expected behavior

The application prints hello world.

Actual behavior

The application is terminated with

Fatal signal 31 (SIGSYS), code 1 in tid 7752 (helloandroid), pid 7752 (helloandroid)

Full logcat output

Build fingerprint: 'Blackview/MAX1_EEA/MAX1:8.1.0/O11019/1566373453:user/release-keys'
09-17 16:58:26.530 F/DEBUG   ( 7755): Revision: '0'
09-17 16:58:26.530 F/DEBUG   ( 7755): ABI: 'arm64'
09-17 16:58:26.530 F/DEBUG   ( 7755): pid: 7752, tid: 7752, name: helloandroid  >>> ./helloandroid <<<
09-17 16:58:26.530 F/DEBUG   ( 7755): signal 31 (SIGSYS), code 1 (SYS_SECCOMP), fault addr --------
09-17 16:58:26.530 F/DEBUG   ( 7755): Cause: seccomp prevented call to disallowed arm64 system call 0
09-17 16:58:26.530 F/DEBUG   ( 7755):     x0   0000000000000000  x1   0000000000000000  x2   000000000000001d  x3   0000000000000032
09-17 16:58:26.530 F/DEBUG   ( 7755):     x4   8080808080808080  x5   fefefefefefefeff  x6   fefefefefefefeff  x7   7f7f7f7f7f7f7f7f

09-17 16:58:26.530 F/DEBUG   ( 7755):     x8   000000000000011b  x9   bdc23b16125e035d  x10  0000000000000032  x11  0000000000000000
09-17 16:58:26.530 F/DEBUG   ( 7755):     x12  0000000000000001  x13  0000000000000000  x14  0000000000000000  x15  0000007f05200000
09-17 16:58:26.530 F/DEBUG   ( 7755):     x16  0000005654385aa8  x17  0000007f056ad510  x18  0000007f05766000  x19  0000007f05a14a40
09-17 16:58:26.530 F/DEBUG   ( 7755):     x20  0000005654395000  x21  0000000000000001  x22  0000007f05a14a40  x23  0000000000000000
09-17 16:58:26.530 F/DEBUG   ( 7755):     x24  0000000000000000  x25  0000000000000000  x26  0000000000000000  x27  0000000000000000
09-17 16:58:26.530 F/DEBUG   ( 7755):     x28  0000000000000000  x29  0000007fe6e29160  x30  00000056542fefe0
09-17 16:58:26.531 F/DEBUG   ( 7755):     sp   0000007fe6e290d0  pc   0000007f056ad530  pstate 0000000000000000

09-17 16:58:26.530 W/crash_dump64( 7755): type=1400 audit(0.0:140): avc: denied { search } for name="com.termux" dev="dm-2" ino=508640 scontext=u:r:crash_dump:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
09-17 16:58:26.532 F/DEBUG   ( 7755): 
09-17 16:58:26.532 F/DEBUG   ( 7755): backtrace:
09-17 16:58:26.532 F/DEBUG   ( 7755):     #00 pc 000000000001d530  /system/lib64/libc.so (syscall+32)
09-17 16:58:26.532 F/DEBUG   ( 7755):     #01 pc 000000000003ffdc  /data/data/com.termux/files/home/helloandroid (offset 0x85000)

I can't seem to make sense out of this stack trace since pc for the stack frame 01 doesn't even seem to point to .text but i'm not an android developer.

I can run the same binary on several snapdragon devices and it works as expected.

Regression?

No response

Known Workarounds

No response

Configuration

  • Built on linux x64 using SDK 8.0.100-rc.1 and ndk 25.0.8775105
  • Attempted to run on a Blackview Max 1
    • MediaTek Helio P23 MT6763T
    • Android 8.0
    • Stock rom
  • Seems to be specific to this configuration

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions