After debugging this issue today I have discovered that frida-agent-32.so causes zygote to crash for some reason. After zygote crashes Anbox immediately crashes as well.
Because I am lazy, I have decided to look for a workaround instead of fixing this bug. After trial and error I have found that this bug is not present in the 64 bit version of the agent (frida-agent-64.so). Therefore, after disabling 32 bit agent Frida can still inject and execute every 64 bit or libhoudini (arm/arm64) app.
In order to prevent frida-server from injecting the agent to zygote (32 bit) I have simply modified two lines, see the last commit.
If you want to avoid the hassle of compiling frida-server yourself you can just use my compiled version.
Frida core library intended for static linking into bindings.
- Lets you inject your own JavaScript instrumentation code into other processes, optionally with your own C code for performance-sensitive bits.
- Acts as a logistics layer that packages up GumJS into a shared library.
- Provides a two-way communication channel for talking to your scripts, if needed, and later unload them.
- Also lets you enumerate installed apps, running processes, and connected devices.
- Written in Vala, with OS-specific glue code in C/Objective-C/asm.
Typically used through one of the available language bindings:
E.g.:
$ pip install frida-tools # CLI tools
$ pip install frida # Python bindings
$ npm install frida # Node.js bindingsOr, for static linking into your own project written in a C-compatible language, download a devkit from the Frida releases page.
For a higher level view of the internals, check out the architecture diagram and its links to the different parts of the codebase.