mer-hybris / libgbinder

GLib-style interface to binder
BSD 3-Clause "New" or "Revised" License
50 stars 42 forks source link

Cannot add services to vndservicemanager #111

Open aleasto opened 1 year ago

aleasto commented 1 year ago

On a HALIUM device i'm unable to register services to /dev/vndbinder. My device is a Volla Phone 22, HALIUM 11, running either SailfishOS or Ubuntu Touch

Using the python bindings i can reproduce with this snippet:

import gbinder
serviceManager = gbinder.ServiceManager("/dev/vndbinder")
response = serviceManager.new_local_object("org.foo.bar", lambda x,y,z: print(x,y,z))
serviceManager.add_service_sync("foobar", response)

On my desktop running the vndservicemanager from Waydroid I can register services just fine. But on the Volla Phone 22 using vndservicemanager from Waydroid doesn't help.

aleasto commented 1 year ago

This appears to come down to VNDK vs VNDK-lite. With full VNDK it expects 'VNDR' in the header https://github.com/mer-hybris/libgbinder/blob/885d27c12c52eab96cf8155636bf2d3d0fca05f5/src/gbinder_rpc_protocol.c#L191

It works with Waydroid on my desktop because Waydroid runs as vndk-lite except on HALIUM