What are the Trusted devices?
Looking at this page, the only meaningful explanation for the Trusted property is in the semi-unrelated void Disconnect() method:
For non-trusted devices connected over LE bearer calling this method will disable incoming connections until Connect method is called again.
In KDE Bluetooth KCM (system settings page) we have a checkbox for the Trusted property.
However, we find it hard to present an explanation hint for it in layman's terms. "LE bearer" is too technical of a jargon.
What do developers of BlueZ thing about it?
I have the same question. Can't figure out from the documentation what it means. I experimented a bit but it doesn't seem to do anything....at least, not that I could notice.
Apparently we check if the device is Trusted to branch in at least one place in KDE:
~/kde/src/bluedevil/src/kded/receivefilejob.cpp:
102 switch (FileReceiverSettings::self()->autoAccept()) {
103 case 0: // Never auto-accept transfers
104 showNotification();
105 break;
106
107: case 1: // Auto-accept only from trusted devices
108: if (device->isTrusted()) {
109: qCDebug(BLUEDEVIL_KDED_LOG) << "Auto-accepting transfer for trusted device";
110 slotAccept();
111 } else {
112 showNotification();
113 }
114 break;
Trusted devices are allowed to do things like connect and use bluetooth services exposed by the local host, without requiring explicit confirmation from user (technically the confirmations go through org.bluez.Agent1 dbus interface, maybe KDE/blueman/etc support it and show popups; bluetoothctl will show yes/no prompts).
For example, if you untrust your earbuds, they can't connect A2DP/HFP automatically any more when powered on and do not automatically appear as audio device despite still being paired and powered on. Conversely, if you set your earbuds as trusted, they automatically connect and appear as audio device when taken out from the case. (Most earbuds automatically connect to the device they were last used with.)
The "LE Bearer" stuff above has similar meaning, if device is not trusted, it can't initiate autoconnection to local host, unless the local host explicitly connects first (and hasn't explicitly disconnected afterward). There are some technical differences in how this works in LE vs. Classic bluetooth, but maybe these are of little interest in your tooltip, as the idea is similar to the above.
So are you saying that trusting allows for autoconnecting of devices? I only do LE stuff but I can guarantee you that no autoconnection will take place if I trust a device....
No, I'm saying trusting generally allows the device to use local services (without going through org.bluez.Agent1), and that according to the snippet quoted above also whether the remote device is allowed to initiate LE connections itself.
But if the device is paired already, why wouldn't a connection be allowed? Is pairing only uni-directional?
BlueZ asks for authorization when connecting services (apparently, for some services like a2dp it does ask, but this is not done in all of the services), trusted means it will be granted directly.
For the question of LE connections, the source code says this:
static DBusMessage *dev_disconnect(DBusConnection *conn, DBusMessage *msg,
void *user_data)
{
struct btd_device *device = user_data;
/*
* If device is not trusted disable connections through passive
* scanning until Device1.Connect is called
*/
if (device->auto_connect && !device->trusted) {
device->disable_auto_connect = TRUE;
device_set_auto_connect(device, FALSE);
}
I think here the setting controls whether host will try to autoconnect. I guess you can just read the sources to find out exactly what it is does.
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.