KernelSU App Crash in FydeOS (ChromeOS ARCVM) Environment

Please check before submitting an issue

  • [x] I have searched the issues and haven't found anything relevant
  • [x] I will upload bugreport file in KernelSU Manager - Settings - Report log
  • [x] I know how to reproduce the issue which may not be specific to my device

Describe the bug

KernelSU 2.x switched from /proc/kernelsu to /dev/kernelsu device communication. However, under FydeOS (ChromeOS ARCVM) environment, Android runs inside a full KVM-based VM whose /dev namespace is isolated from the host kernel. As a result, /dev/kernelsu is created in the host device tree but invisible in ARCVM user-space. KernelSU App fails to open this device and crashes immediately, while ksud and modules remain functional.

To Reproduce

  1. Replace ARCVM kernel with a KernelSU-enabled image:

    sudo cp /path/to/kernelsu/bzImage /opt/google/vms/android/vmlinux
  2. Boot FydeOS (ARCVM automatically starts Android VM).
  3. In adb shell:

    su -v

Output: 2.0.0:KernelSU

  • → Root and LSPosed modules work normally.
  • Launch KernelSU App → App immediately crashes before showing UI.
  • Check /dev inside ARCVM Android:

    ls -l /dev | grep kernelsu

Expected behavior

KernelSU App should detect and connect to KernelSU daemon even when /dev/kernelsu is not visible in ARCVM. Ideally, App should fallback to communicating via /data/adb/ksu/bin/ksud (CLI) when /dev/kernelsu is inaccessible.

Screenshots

  • No response

Logs

Device info

  • System: FydeOS (ChromeOS ARCVM architecture)
  • KernelSU Version: 2.0.0
  • Kernel Version: 5.10.239-android12-9-g63c600405d85
  • Architecture: x86_64
  • Root Verified: su -v → 2.0.0:KernelSU
  • CLI Binary Path: /data/adb/ksu/bin/ksud
  • Device Type: ARCVM (Android Virtual Machine running inside ChromeOS/FydeOS)

Additional context

  • No response

Conclusion

The issue seems to be related to the visibility of /dev/kernelsu in the ARCVM environment. The KernelSU App is unable to communicate with the daemon when this device is not accessible, leading to a crash. A potential solution could involve implementing a fallback mechanism in the KernelSU App to use the CLI (ksud) for communication when the /dev/kernelsu device is not available. This would ensure that the App remains functional even in environments where the device communication path has been altered or isolated.