Link Search Menu Expand Document

D-Bus APIs

D-Bus APIs provided by Sailfish OS. Some of the APIs are not available on all hardware due to different enabled features, installed packages or hardware differences.

System bus services

NamePurposeAccessActivation
com.jolla.apkdIntegration with Androidâ„¢ AppSupport. Manages service state and installtion/removal of Android application packages.Unrestricted, with exceptions for special package installationsYes
com.meego.usb_modedControls the USB states.TBANo
com.nokia.diskmonitorMonitor for free space on filesystems.TBANo
com.nokia.dsmeDevice State Management Entity; e.g. battery empty notification and requesting reboot.TBANo
com.nokia.location.odnpdHERE location servicesTBAYes
com.nokia.location.slpgwdHERE location servicesTBAYes
com.nokia.mceMode Control Entity; e.g. battery level notification and display state management.TBANo
com.nokia.NonGraphicFeedback1.BackendTBATBANo
com.nokia.SensorServiceRead sensors for ambient light, orientation or proximity.UnrestrictedNo
com.nokia.thermalmanagerRead temperature sensors.UnrestrictedNo
com.nokia.timeAlarm and time settings.TBANo
com.nokia.timed.backupTBATBANo
fi.w1.wpa_supplicant1Wifi management.TBAYes
net.connmanInternet connection management.TBANo
net.connman.vpnTBATBAYes
org.bluezBluetooth daemonTBAYes
org.freedesktop.DBusD-Bus managementTBANo
org.freedesktop.hostname1Query or change system hostname.PolkitYes
org.freedesktop.login1Logind daemonPolkitYes
org.freedesktop.ohmOpen Hardware ManagerTBAYes
org.freedesktop.PackageKitPackage management.PolkitYes
org.freedesktop.PolicyKit1User authorization and authentication.PolkitYes
org.freedesktop.systemd1Systemd daemon control.PolkitYes
org.freedesktop.UDisks2Partition and filesystem management.PolkitYes
org.maemo.resource.managerTBATBANo
org.neardNFCTBANo
org.nemomobile.compositorTBATBANo
org.nemomobile.devicelockInteract with device lock to authenticate and authorize. Query and get signals of device lock state.TBANo
org.nemomobile.lipstickHome ScreenTBANo
org.nemomobile.MmsEngineMMSTBAYes
org.nemomobile.MmsHandlerMMSTBANo
org.nemomobile.provisioningCellular data connection management.TBAYes
org.nemomobile.Route.ManagerOHM route management.TBANo
org.nemo.passwordmanagerDeveloper mode password management.TBAYes
org.nemo.ssuTBAsystemYes
org.ofonoPhone calls and messaging.privileged, UnrestrictedNo
org.ofono.SmartMessagingAgentTBATBANo
org.pacrunnerProxy configuration for connman.TBAYes
org.sailfishos.abootsettingsTBATBANo
org.sailfishos.EncryptionServiceEncrypts home partition on request.privilegedYes
org.sailfishos.system_nfcTBATBANo

Session bus services

NamePurposeAccessActivation
ca.desrt.dconfdconf, low-level key/value database designed for environment settings.TBAYes
com.google.code.AccountsSSO.SingleSignOnSingle Sign On frameworkTBAYes
com.jolla.ambiencedAmbience management.TBAYes
com.jolla.apkd.interactionInteraction with ApkdTBAYes
com.jolla.BluetoothTBATBAYes
com.jolla.cameraCamera applicationTBAYes
com.jolla.clockClock applicationTBAYes
com.jolla.ConnectiondTBATBAYes
com.jolla.contacts.uiContacts applicationTBAYes
com.jolla.csdTBATBAYes
com.jolla.email.uiEmail applicationTBAYes
com.jolla.galleryGallery applicationTBAYes
com.jolla.jollastoreStore applicationTBAYes
com.jolla.keyboardGet on-screen keyboard server socket address.UnrestrictedNo
com.jolla.lipstickHome screenTBANo
com.jolla.lipstick.ConnectionSelectorTBATBANo
com.jolla.mediaplayerMediaplayer applicationTBAYes
com.jolla.notesNotes applicationTBAYes
com.jolla.obexTBATBAYes
com.jolla.ObexCallDataTBATBAYes
com.jolla.PinQueryTBATBANo
com.jolla.settingsSettings UITBAYes
com.jolla.settings.system.flashlightControl flashlight.UnrestrictedYes
com.jolla.voicecall.uiDialer applicationTBAYes
com.jolla.weatherWeather applicationTBAYes
com.jolla.windowpromptWindow prompts to inform user.privilegedYes
com.meego.msyncdButeo sync daemon.TBANo
com.nokia.contactsdTelepathy and QtContacts bridge for contacts.TBANo
com.nokia.CrashReporter.AutoUploaderUpload crash reports from Crash Reporter.TBAYes
com.nokia.CrashReporter.DaemonTBATBAYes
com.nokia.policy.telephonyTBATBANo
com.nokia.profiledTBATBAYes
com.nokia.SingleSignOn.BackupTBATBAYes
com.nokia.singlesignonuiTBATBAYes
com.nokia.telephony.callhistoryTBATBANo
com.nokia.volandTBATBAYes
com.sailfish.easdaemonTBATBAYes
org.bluez.obexBluetooth OBject EXchangeTBAYes
org.freedesktop.DBusD-Bus managementTBANo
org.freedesktop.Geoclue.MasterTBATBAYes
org.freedesktop.Geoclue.Providers.HereTBATBAYes
org.freedesktop.Geoclue.Providers.HybrisTBATBAYes
org.freedesktop.Geoclue.Providers.MlsdbTBATBAYes
org.freedesktop.NotificationsDesktop notificationsTBANo
org.freedesktop.ohm_session_agentTBATBAYes
org.freedesktop.systemd1Systemd user session daemon control.TBAYes
org.freedesktop.Telepathy.AccountManagerTBATBAYes
org.freedesktop.Telepathy.ChannelDispatcherTBATBANo
org.freedesktop.Telepathy.Client.CommHistoryTBATBANo
org.freedesktop.Telepathy.Client.qmlmessagesTBATBAYes
org.freedesktop.Telepathy.Client.SaslSignonAuthTBATBAYes
org.freedesktop.Telepathy.Client.voicecallTBATBANo
org.freedesktop.Telepathy.ConnectionManager.gabbleTBATBAYes
org.freedesktop.Telepathy.ConnectionManager.ringTBATBAYes
org.freedesktop.Telepathy.Connection.ring.tel.<ID>TBATBANo
org.freedesktop.Telepathy.MissionControl5TBATBAYes
org.freedesktop.Tracker1Tracker object and metadata database, search tool and indexer.TBAYes
org.freedesktop.Tracker1.Miner.ExtractTracker indexerTBAYes
org.freedesktop.Tracker1.Miner.FilesTracker indexerTBAYes
org.freedesktop.Tracker1.Miner.Files.IndexTracker indexerTBANo
org.freedesktop.Tracker1.WritebackTracker indexerTBAYes
org.maemo.Playback.ManagerTBATBANo
org.maliit.serverGet on-screen keyboard server socket address.UnrestrictedYes
org.nemomobile.AccountPresenceTBATBANo
org.nemomobile.calendardataserviceTBATBAYes
org.nemomobile.ClassZeroSmsNotificationTBATBAYes
org.nemomobile.CommHistoryTBATBANo
org.nemomobile.DevicePresenceTBATBANo
org.nemomobile.FileOperationsFilemanager pluginTBAYes
org.nemomobile.lipstickHome ScreenTBANo
org.nemomobile.qmlmessagesTBATBAYes
org.nemomobile.ThumbnailerSimple service to generate thumbnails.TBAYes
org.nemomobile.voicecallVoicecall daemon for dialer.TBANo
org.nemo.transferengineTransfer Engine for uploading media content and tracking transfers.TBAYes
org.PulseAudio1Pulse AudioTBANo
org.pulseaudio.ServerPulse AudioTBANo
org.sailfish.officeDocuments applicationTBAYes
org.sailfishos.archiveTBATBAYes
org.sailfishos.browserControl Sailfish OS browser.UnrestrictedYes
org.sailfishos.browser.uiControl Sailfish OS browser.UnrestrictedYes
org.sailfishos.coveraction.pid<PID>.id<ID>TBAprivilegedNo
org.sailfishos.installationhandlerInstall and remove RPM packages.privilegedYes
org.sailfishos.osupdateQuery and download OS updates.privilegedYes
org.sailfish.simkitTBATBANo

Access levels

  • Unrestricted means that any client can connect and use the APIs.
  • Polkit means that accesses are verified from polkit when needed. I.e. user may be prompted for authorization.
  • Any lower case word means that processes need to have that effective group to use the API.
  • If API provides interfaces with differing levels of access, they are listed separated by comma (,).
  • If API provides interfaces with alternating levels of access, they are listed separated by slash (/), i.e. more than one user group can access the API.
  • In general root can access all APIs without restrictions.

How to query for D-Bus APIs

D-Bus provides introspection that can query for available services, their paths and interfaces.

Listing names of running services on the bus:

  • Service: org.freedesktop.DBus
  • Path: /org/freedesktop/DBus
  • Interface: org.freedesktop.DBus
  • Method: ListNames()

Listing activatable names on the bus:

  • Service: org.freedesktop.DBus
  • Path: /org/freedesktop/DBus
  • Interface: org.freedesktop.DBus
  • Method: ListActivatableNames()

Also every service and path in D-Bus should provide org.freedesktop.DBus.Introspectable.Introspect which can be used to gather paths and interfaces.

qdbus command

Introspection is easiest with qdbus command. That command is found on Sailfish OS from qt5-qttools-qdbus at /usr/lib/qt5/bin/qdbus.

List all services currently running on system bus:

/usr/lib/qt5/bin/qdbus --system | grep -v '^:'

List D-Bus activated services including those that are not running:

/usr/lib/qt5/bin/qdbus --system org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListActivatableNames

List paths of com.nokia.SensorService:

/usr/lib/qt5/bin/qdbus --system com.nokia.SensorService

List interfaces at path /SensorManager/orientationsensor of com.nokia.SensorService:

/usr/lib/qt5/bin/qdbus --system com.nokia.SensorService /SensorManager/orientationsensor

For session bus you should omit --system and run the commands as user defaultuser.

dbus-send command

dbus-send can also be used to introspect services using normal org.freedesktop.DBus Introspection APIs.

List D-Bus services running:

dbus-send --system --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListNames

List activeable D-Bus services:

dbus-send --system --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.LisActivatableNames

Replace --system with --session if introspecting session bus.

D-Bus activated services

D-Bus activated services must have a D-Bus service file in /usr/share/dbus-1/system-service/ or /usr/share/dbus-1/service/ directory depending on whether it is system bus or session bus service.