0

I am trying to run an Android app on a Debian laptop (Storytel).

I installed Waydroid from their repository, but it fails to initialise:

root@x1v5:/etc/apt# waydroid init
[23:15:43] ERROR: Binder node "vndbinder" for waydroid not found
[23:15:43] See also: <https://github.com/waydroid>
Run 'waydroid log' for details.

Waydroid log looks as follows:

root@x1v5:/etc/apt# waydroid log
(021820) [23:09:48] % modprobe binder_linux devices="anbox-vndbinder,anbox-hwbinder"
(021820) [23:09:48] ERROR: Binder node "vndbinder" for waydroid not found
(021820) [23:09:48] See also: <https://github.com/waydroid>
(021820) [23:09:48] Traceback (most recent call last):
  File "/usr/lib/waydroid/tools/__init__.py", line 64, in main
    actions.init(args)
  File "/usr/lib/waydroid/tools/actions/initializer.py", line 110, in init
    setup_config(args)
  File "/usr/lib/waydroid/tools/actions/initializer.py", line 97, in setup_config
    helpers.drivers.setupBinderNodes(args)
  File "/usr/lib/waydroid/tools/helpers/drivers.py", line 141, in setupBinderNodes
    raise OSError('Binder node "vndbinder" for waydroid not found')
OSError: Binder node "vndbinder" for waydroid not found

(021826) [23:10:28] % modprobe binder_linux devices="anbox-vndbinder,anbox-hwbinder"
(021826) [23:10:28] ERROR: Binder node "vndbinder" for waydroid not found
(021826) [23:10:28] See also: <https://github.com/waydroid>
(021826) [23:10:28] Traceback (most recent call last):
  File "/usr/lib/waydroid/tools/__init__.py", line 64, in main
    actions.init(args)
  File "/usr/lib/waydroid/tools/actions/initializer.py", line 110, in init
    setup_config(args)
  File "/usr/lib/waydroid/tools/actions/initializer.py", line 97, in setup_config
    helpers.drivers.setupBinderNodes(args)
  File "/usr/lib/waydroid/tools/helpers/drivers.py", line 141, in setupBinderNodes
    raise OSError('Binder node "vndbinder" for waydroid not found')
OSError: Binder node "vndbinder" for waydroid not found

(021831) [23:10:48] % modprobe binder_linux devices="anbox-vndbinder,anbox-hwbinder"
(021831) [23:10:48] ERROR: Binder node "vndbinder" for waydroid not found
(021831) [23:10:48] See also: <https://github.com/waydroid>
(021831) [23:10:48] Traceback (most recent call last):
  File "/usr/lib/waydroid/tools/__init__.py", line 64, in main
    actions.init(args)
  File "/usr/lib/waydroid/tools/actions/initializer.py", line 110, in init
    setup_config(args)
  File "/usr/lib/waydroid/tools/actions/initializer.py", line 97, in setup_config
    helpers.drivers.setupBinderNodes(args)
  File "/usr/lib/waydroid/tools/helpers/drivers.py", line 141, in setupBinderNodes
    raise OSError('Binder node "vndbinder" for waydroid not found')
OSError: Binder node "vndbinder" for waydroid not found

(021932) [23:14:28] % tail -n 60 -F /var/lib/waydroid/waydroid.log
(021932) [23:14:28] *** output passed to waydroid stdout, not to this log ***
(021968) [23:15:43] % modprobe binder_linux devices="anbox-vndbinder,anbox-hwbinder"
(021968) [23:15:43] ERROR: Binder node "vndbinder" for waydroid not found
(021968) [23:15:43] See also: <https://github.com/waydroid>
(021968) [23:15:43] Traceback (most recent call last):
  File "/usr/lib/waydroid/tools/__init__.py", line 64, in main
    actions.init(args)
  File "/usr/lib/waydroid/tools/actions/initializer.py", line 110, in init
    setup_config(args)
  File "/usr/lib/waydroid/tools/actions/initializer.py", line 97, in setup_config
    helpers.drivers.setupBinderNodes(args)
  File "/usr/lib/waydroid/tools/helpers/drivers.py", line 141, in setupBinderNodes
    raise OSError('Binder node "vndbinder" for waydroid not found')
OSError: Binder node "vndbinder" for waydroid not found

(022124) [23:20:40] % tail -n 60 -F /var/lib/waydroid/waydroid.log
(022124) [23:20:40] *** output passed to waydroid stdout, not to this log ***

How can I get it working?

2 Answers 2

0

Install these packages on arrangement to enable blinder driver:

libglibutil, libgbinder, python3-gbinder, Waydroid

These packages are on: https://repo.waydro.id/erfan/bookworm/

To ckeck, use this command:

sudo modprobe binder_linux

If you get fatal error, it fails but if you get the prompt again, there is no problem.

Warning:

Waydroid on Debian 12 Bookworm does not require only binder driver but also memfd driver (alternative of ashmem driver).

In the installed final version 12.0 (not the experimental), open "config-6.1.0-9-amd64" in boot folder and search about memfd. The result:

CONFIG_MEMFD_CREATE=y (y means yes)

To use Waydroid 17.1 because it has not the proprietary libhoudini.so (in opposite of Waydroid 18.1 with libhoudini), download the two images:

'system.img' and 'vendor.img'.

These images are on:

https://sourceforge.net/projects/blissos-dev/files/waydroid/lineage/

In root of 'system.img' in Waydroid 17.1, open 'init.rc' and search about memfd. The result:

sys.memfd_use set to false by default, which keeps it disabled

until it is confirmed that apps and vendor processes don't make

IOCTLs on ashmem fds any more.

setprop sys.use_memfd false

You must change 'false' to 'true'.

3
  • Sorry, 17.1 and 18.1 are editions of Lineagea and not editions of Waydroid). Waydroid is based on Lineage. Commented Jun 26, 2023 at 23:15
  • How can I check the edition of Lineagea? Waydroid is in version 1.4.1, everything you mentioned up to CONFIG_MEMFD_CREATE=y (including) was already set. Commented Jul 5, 2023 at 16:49
  • Are these the drivers I am missing: github.com/waydroid/waydroid/blob/main/tools/helpers/… ? Commented Jul 5, 2023 at 16:56
0

BE In the comment on the answer: "How can I check the edition of Lineagea?"

To know edition of lineage, open system.img with any archiver without extracting or mount it. The image is in "var/lib/images" or "usr/share/waydroid-extra". Anyhow, the current Waydroid is based on two editions: Lineage 17.1 (based on Android 10) and Lineage 18.1 (based on Android 11 which has Intel proprietary).

Of course, there is no Waydroid based on Lineage 19.1 (based on Android 12 which has restriction on using memory to save age of battery). Android 12 is good for only mobiles and small tablets.

About "CONFIG_MEMFD_CREATE=y", it is included in Debian Bookworm and some linux distributions with kernel 5.18+. It shows the confliction between system.img (Android 10 or 11) of Waydroid and new Linux editions.

images of Waydroid are compressed and protected (not modifiable even at root) in

https://sourceforge.net/projects/waydroid/files/images/

You can download different images here to modify it:

https://sourceforge.net/projects/blissos-dev/files/waydroid/lineage/lineage-17.1

To modify it as root according to these steps:

  1. Extract it to get "system.img" and "vendor.img".

  2. Install any operating system "OS" on Virtualbox as an isolated environment and then install etcher (https://github.com/balena-io/etcher) in the guest OS.

  3. Connect this guest with 2 GB dynamic virtual disk (vdi, vhd, vmdk) through virtual USB controller (If it is static, you cannot modify "init.rc"). In Virtualbox 6.x, use USB 1.1 (It is not slow because it is not real). Otherwise, use Virtualbox 7.x, with USB 2 or 3 because patents of virtual USB are expired or cancelled without need to Virtualbox extension which keeps other functions. Use etcher to write "system.img" to the dynamic virtual disk. After writing, use nemo (file manager with ability to open folder as root with right-click) to choose "init.rc" and then with right-click open it with any text editor to search about the line: "setprop sys.use_memfd false" where "false" must be modified to "true". If you forgot root rights, the file will not be saved or has faked saved (turned to empty).

  4. In the host OS, convert the dynamic virtual disk to raw image with any method (if the new extension is raw, rename it to img).

Now, you have patched "system.img" (without recompiling) which supports memfd driver in Debian Bookworm instead of ashmem driver.

1
  • From few monthes, Waydroid did not update its images but today 23 july it made some image based on Lineage 18.1 (based on Android 11) and I mounted it without installation. The proprietary "libhoudini" is removed but I cannot verify if the new image supports the new Linux Kernel 5.18+ which require memfd instead of ashmem. Please, try it. I expect that the new waited image is better. (sourceforge.net/projects/waydroid/files/images) Commented Jul 23, 2023 at 11:23

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.