org.bluez...leManager(5)
β¨ NAME β¨
ok so this page is org.bluez.ProfileManager(5) β it's the BlueZ D-Bus ProfileManager API documentation, bestie π and yes it lives in the Linux System Administration manual, section 5. Buckle up, we're registering profiles today π
π INTERFACE π
Here's the whole vibe check of where everything lives:
- Service β
org.bluez - Interface β
org.bluez.ProfileManager1 - Object path β
/org/bluez
πΈ Methods πΈ
β¨ void RegisterProfile(object profile, string uuid, dict options)
okay so this one registers a profile agent π«Ά literally what it says on the tin.
The object path defines the path of the profile that will be called when there is a connection and it must implement the org.bluez.Profile(5) interface. no exceptions, that's the whole deal π
heads up: if an application disconnects from the bus, all its registered profiles get removed. all of them. gone. periodt β¨
π¦ Possible uuid values π¦
"0000111f-0000-1000-8000-00805f9b34fb"β HFP AG. default profile Version is1.7, profile Features is0b001001and RFCOMM channel is13. Authentication is required π₯"0000111e-0000-1000-8000-00805f9b34fb"β HFP HS. default profile Version is1.7, profile Features is0b000000and RFCOMM channel is7. Authentication is required π₯"00001112-0000-1000-8000-00805f9b34fb"β HSP AG. default profile Version is1.2, RFCOMM channel is12and Authentication is required. Does not support any Features β that option is literally ignored π"00001108-0000-1000-8000-00805f9b34fb"β HSP HS. default profile Version is1.2, profile Features is0b0and RFCOMM channel is6. Authentication is required.
Features is one bit value β it specifies capability of Remote Audio Volume Control (which is, by default, turned off) π
"<vendor UUID>"β Vendor defined UUID. no defaults, so you must set options. no shortcuts, bestie π
π Possible options values π
string Nameβ human readable name for the profile. cute label, no cap πstring Serviceβ the primary service class UUID (if different from the actual profile UUID).string Roleβ for asymmetric profiles that do not have UUIDs available to uniquely identify each side, this parameter lets you specify the precise local role.
Possible values:
"client""server"
uint16 Channelβ the RFCOMM channel number used for client and server UUIDs.
If applicable it will be used in the SDP record as well.
uint16 PSMβ the PSM number used for client and server UUIDs.
If applicable it will be used in the SDP record as well.
boolean RequireAuthenticationβ pairing is required before connections will be established.
No devices will be connected if not paired. like, at all π«Ά
boolean RequireAuthorizationβ request authorization before any connection will be established.boolean AutoConnectβ in case of a client UUID, this will force connection of the RFCOMM or L2CAP channels when a remote device is connected.string ServiceRecordβ provide a manual SDP record.uint16 Versionβ profile version (for SDP record).uint16 Featuresβ profile features (for SDP record).
π Possible errors
org.bluez.Error.InvalidArgumentsorg.bluez.Error.AlreadyExists
π void UnregisterProfile(object profile)
unregisters a profile object that has been previously registered using RegisterProfile. spring cleaning energy π§
The object path parameter must match the same value that has been used on registration β same value, same path, no improvising β¨
π Possible errors
org.bluez.Error.DoesNotExist
okay that's the whole page, you ate that π stay iconic, go register some profiles responsibly ππ¦
sign-off: this gorgeous little doc is from BlueZ, dated October 2023 β and the manpage itself answers to the name org.bluez...leManager(5). mwah π
π¦ where this page comes from
- arch rolling: bluez-utils 5.87-2 Β· GPL-2.0-only
- nixpkgs unstable: bluez 5.87
- ubuntu stonking: bluez 5.87-4 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms