Hello
I'm trying to revive the 'ubtd' app (Bluetooth file transfer) initially written by Michael Zanetti and Ian L., but I've hit a roadblock and I could use some guidance.
I'm currently targetting UT 20.04 on a Pixel 3a.
By default, the OBEX daemon doesn't run on the phone. A 'systemd' unit file is supposed to start it (/usr/lib/systemd/user/dbus-org.bluez.obex.service), but it is reported as "loaded / inactive (dead)" by 'systemctl' -- I'm not sure why as I was unable to find relevant log entries.
I can manually start the OBEX daemon using the following command:
$ systemctl --user start obex.service
In this case, the 'obexd' daemon keeps running and uses the same command-line parameters as those specified for the D-Bus related service (obexd -P ftp,irmc,mas,pcsuite -r /home/phablet).
Nonetheless, after pairing the phone with my laptop, when I start my app (the one that is supposed to receive incoming file transfers), I see the following messages in its log:
[03/01/2026 12:25] creating agent on dbus
[03/01/2026 12:25] registering agent
[03/01/2026 12:25] registering agent on obexd-server
[03/01/2026 12:25] Error registering agent for the default adapter: QDBusError("org.freedesktop.DBus.Error.ServiceUnknown", "The name org.bluez.obex was not provided by any .service files")
For information, the obex.service unit file does expose "org.bluez.obex" as BusName, not as Name -- not sure how relevant that is.
On its side, the OBEX daemon logs the following:
[03/01/2026 12:25] CONNECT(0x0), <unknown>(0xff)
[03/01/2026 12:25] CONNECT(0x0), <unknown>(0x0)
[03/01/2026 12:25] PUT(0x2), <unknown>(0xff)
[03/01/2026 12:25] PUT(0x2), Forbidden(0x43)
[03/01/2026 12:25] DISCONNECT(0x1), <unknown>(0xff)
[03/01/2026 12:25] DISCONNECT(0x1), Success(0x20)
[03/01/2026 12:25] disconnected: Transport got disconnected
So 'obexd' seems to receive the file sent by the laptop (from the point of view of the laptop, the transfer succeeds), but fails to hand it over to my app, which I guess makes sense as it failed to register itself with the daemon.
Can anyone suggest a fix, further ways to troubleshoot or point me to relevant documentation?
Thanks in advance.