Hermes' D-Bus client library allows Chrome to make API calls to Hermes, ChromeOS' eSIM configuration manager.
This document describes the various D-Bus clients that utilize Hermes' D-Bus interfaces, the Manager Client, EUICC Client, and Profile Client.
The D-Bus clients are initialized in the order of Profile client, EUICC client, then Manager client when Ash D-Bus clients are initialized after Chrome's early initialization.
For extensions, the clients are initialized after the Shell Browser's main message loop is created.
The clients are shutdown with the rest of the Ash D-Bus clients after Chrome destroys its threads.
Success and error codes, along with helpful utility functions related to these codes can be found in hermes_response_status.h.
There are also several constants which are shared between the D-Bus clients to implement a consistent timeout for D-Bus calls.
The HermesManagerClient
class provides an interface for interacting with available EUICCs on a device. This client can be used to:
For detailed documentation on the Hermes Manager DBus API, please refer to org.chromium.Hermes.Manager.xml.
The HermesManagerClient::TestInterface
allows you to add fake EUICC entries for ChromeOS unit testing purposes. This interface is implemented in the FakeHermesManagerClient
.
The EUICC is an embedded UICC which seeks to rectify the physical SIM shortcomings by allowing both for the storage of multiple profiles and for the remote provisioning of profiles. The HermesEuiccClient
class provides an interface for interacting with the Hermes EUICC objects. This client can be used to:
For detailed documentation on the Hermes EUICC DBus API, please refer to org.chromium.Hermes.Euicc.xml.
The HermesEuiccClient::TestInterface
also provides a number of different APIs for interacting with fake Hermes EUICC service for testing purposes.
HermesEuiccClient::InstallProfileFromActivationCode()
The HermesEuiccClient::TestInterface
interface is implemented by FakeHermesEuiccClient
.
The HermesProfileClient
class provides an interface for interacting with the to Hermes profile objects. This client can be used to:
For detailed documentation on the Hermes EUICC DBus API, please refer to org.chromium.Hermes.Profile.xml.
The HermesProfileClient::TestInterface
allows you to add fake profile entries for ChromeOS unit testing purposes. This interface is implemented in the FakeHermesProfileClient
.