-
Notifications
You must be signed in to change notification settings - Fork 17
Description
Summary
The Pop!_OS kernel ships with CONFIG_ANDROID_BINDER_IPC disabled, forcing Waydroid users to rely on the out-of-tree anbox-binder DKMS module (choff/anbox-modules). This module causes a kernel NULL pointer dereference on 6.18.7-76061807-generic, panicking the system. The crash is 100% reproducible.
Enabling the mainline in-tree binder driver (CONFIG_ANDROID_BINDER_IPC=m, CONFIG_ANDROID_BINDERFS=y) would eliminate the need for this broken out-of-tree module entirely.
Crash details
Environment:
- Pop!_OS 24.04 LTS
- Kernel:
6.18.7-76061807-generic - Waydroid: 1.6.1
- Binder module:
anbox-binderDKMS version 1 (out-of-tree)
Reproducibility: 100% — kernel panics within ~13 seconds of Waydroid container boot, every attempt.
Crash sequence from journalctl -b -1 -k:
-
binder_linuxloads and taints the kernel:binder_linux: loading out-of-tree module taints kernel. binder_linux: module verification failed: signature and/or required key missing - tainting kernel -
Every binder ioctl immediately fails with EINVAL:
binder_linux: 27651:27651 ioctl 40046210 7ffc29c82660 returned -22(50+ of these in ~2 seconds)
-
Binder buffer allocator runs out of address space:
binder_linux: 26631: binder_alloc_buf size 1056768 failed, no address space binder_linux: 26243:26457 transaction failed 29201/-28, size 1056768-0 line 3181 -
Kernel panics:
BUG: kernel NULL pointer dereference, address: 0000000000000000
Root cause: The DKMS module uses kallsyms_lookup_name via kprobes to resolve unexported kernel symbols at runtime (self-described "very dirty hack" in its deps.c). On kernel 6.18, one or more lookups returns NULL, and the code calls through the NULL function pointer without checking.
Current kernel config
# CONFIG_ANDROID_BINDER_IPC is not set
Requested change
CONFIG_ANDROID_BINDER_IPC=m
CONFIG_ANDROID_BINDERFS=y
The in-tree binder driver is maintained by Google and has been in mainline Linux for years. Other distributions already enable it: Arch Linux (linux-zen), Fedora, postmarketOS, and XanMod kernels. The Waydroid maintainers' official position (waydroid/waydroid#1904) is that distributions should enable the upstream binder rather than relying on out-of-tree DKMS modules.