summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/hardware/audio_amplifier.h2
-rw-r--r--include/hardware/bluetooth.h14
-rw-r--r--include/hardware/keymaster1.h49
-rw-r--r--include/hardware/keymaster_defs.h21
-rw-r--r--include/hardware/power.h10
5 files changed, 94 insertions, 2 deletions
diff --git a/include/hardware/audio_amplifier.h b/include/hardware/audio_amplifier.h
index 4305094..e3477d5 100644
--- a/include/hardware/audio_amplifier.h
+++ b/include/hardware/audio_amplifier.h
@@ -38,6 +38,8 @@ __BEGIN_DECLS
#define AMPLIFIER_DEVICE_API_VERSION_2_0 HARDWARE_DEVICE_API_VERSION(2, 0)
#define AMPLIFIER_DEVICE_API_VERSION_CURRENT AMPLIFIER_DEVICE_API_VERSION_2_0
+struct str_parms;
+
typedef struct amplifier_device {
/**
* Common methods of the amplifier device. This *must* be the first member
diff --git a/include/hardware/bluetooth.h b/include/hardware/bluetooth.h
index 2cba754..5e8b468 100644
--- a/include/hardware/bluetooth.h
+++ b/include/hardware/bluetooth.h
@@ -445,7 +445,7 @@ typedef struct {
int (*init)(bt_callbacks_t* callbacks );
/** Enable Bluetooth. */
- int (*enable)(void);
+ int (*enable)(bool guest_mode);
/** Disable Bluetooth. */
int (*disable)(void);
@@ -564,6 +564,18 @@ typedef struct {
/** BT stack Test interface */
const void* (*get_testapp_interface)(int test_app_profile);
+
+ /**
+ * Clear (reset) the dynamic portion of the device interoperability database.
+ */
+ void (*interop_database_clear)(void);
+
+ /**
+ * Add a new device interoperability workaround for a remote device whose
+ * first |len| bytes of the its device address match |addr|.
+ * NOTE: |feature| has to match an item defined in interop_feature_t (interop.h).
+ */
+ void (*interop_database_add)(uint16_t feature, const bt_bdaddr_t *addr, size_t len);
} bt_interface_t;
/** TODO: Need to add APIs for Service Discovery, Service authorization and
diff --git a/include/hardware/keymaster1.h b/include/hardware/keymaster1.h
index afd202c..ac2cc2b 100644
--- a/include/hardware/keymaster1.h
+++ b/include/hardware/keymaster1.h
@@ -530,6 +530,55 @@ struct keymaster1_device {
*/
keymaster_error_t (*abort)(const struct keymaster1_device* dev,
keymaster_operation_handle_t operation_handle);
+
+ /**
+ * Generates a pair of ATTK defined in SOTER. Save the private key into RPMB.
+ * Note that the ATTK generated will never be touched outside the keymaster.
+ *
+ * \param[in] dev The keymaster device structure.
+ *
+ * \param[in] copy_num The number of copies that will be saved in the RPMB.
+ */
+ keymaster_error_t (*generate_attk_key_pair)(const struct keymaster1_device* dev,
+ const uint8_t copy_num);
+
+ /**
+ * Verify the existance ATTK defined in SOTER.
+ *
+ * \param[in] dev The keymaster device structure.
+ *
+ * Returns: 0 if the ATTK exists.
+ */
+ keymaster_error_t (*verify_attk_key_pair)(const struct keymaster1_device* dev);
+
+ /**
+ * Export the public key of ATTK in PEM format.
+ *
+ * \param[in] dev The keymaster device structure.
+ *
+ * \param[out] pub_key_data The public key data in X.509v3 format PEM encoded
+ *
+ * \param[out] pub_key_data_length The length of the public key data.
+ */
+ keymaster_error_t (*export_attk_public_key)(const struct keymaster1_device* dev,
+ const uint8_t* pub_key_data,
+ const size_t pub_key_data_length);
+
+ /**
+ * Get Unique device ID.
+ *
+ * \param[in] dev The keymaster device structure.
+ *
+ * \param[out] device_id The unique id for each device, format as below:
+ * 1.bytes 0-3: Identify each silicon provider id.
+ * 2.bytes 4-7: SoC model ID, defined by each silicon provider
+ * 3.bytes 8-15: Public Chip Serial *Number of SoC, defined by each silicon provider
+ *
+ * \param[out] device_id_length The length of the device id.
+ */
+ keymaster_error_t (*get_device_id)(const struct keymaster1_device* dev,
+ const uint8_t* device_id,
+ const size_t device_id_length);
};
typedef struct keymaster1_device keymaster1_device_t;
diff --git a/include/hardware/keymaster_defs.h b/include/hardware/keymaster_defs.h
index 5be956d..1a723c9 100644
--- a/include/hardware/keymaster_defs.h
+++ b/include/hardware/keymaster_defs.h
@@ -124,6 +124,27 @@ typedef enum {
authentication has been performed. Structure
defined in hw_auth_token_t in hw_auth_token.h. */
KM_TAG_MAC_LENGTH = KM_UINT | 1003, /* MAC or AEAD authentication tag length in bits. */
+
+ /* Tags used only for SOTER */
+ /* Tags used only to check if the key is for SOTER */
+ KM_TAG_SOTER_IS_FROM_SOTER = KM_BOOL | 11000,
+ /* Attach signature signed with ATTK[pri] while exporting public key */
+ KM_TAG_SOTER_IS_AUTO_SIGNED_WITH_ATTK_WHEN_GET_PUBLIC_KEY = KM_BOOL | 11001,
+ /* Attach signature signed with specified private key while exporting public key */
+ KM_TAG_SOTER_IS_AUTO_SIGNED_WITH_COMMON_KEY_WHEN_GET_PUBLIC_KEY = KM_BOOL | 11002,
+ /* keyalias for the keypair of KM_TAG_SOTER_IS_AUTO_SIGNED_WITH_COMMON_KEY_WHEN_GET_PUBLIC_KEY */
+ KM_TAG_SOTER_AUTO_SIGNED_COMMON_KEY_WHEN_GET_PUBLIC_KEY = KM_BYTES | 11003,
+ /* Attach counter while exporting publick key */
+ KM_TAG_SOTER_AUTO_ADD_COUNTER_WHEN_GET_PUBLIC_KEY = KM_BOOL | 11004,
+ /* Attach secmsg(TEE_Name, TEE_Version, Fingerprint_Sensor_Name, Fingerprint_Sensor_Version)
+ fingerprint_id and counter while signing */
+ KM_TAG_SOTER_IS_SECMSG_FID_COUNTER_SIGNED_WHEN_SIGN = KM_BOOL | 11005,
+ /* use and set ATTK index to next backup ATTK */
+ KM_TAG_SOTER_USE_NEXT_ATTK = KM_BOOL | 11006,
+ /* attach soter uid */
+ KM_TAG_SOTER_UID = KM_UINT | 11007,
+ /* attach key blob of KM_TAG_SOTER_AUTO_SIGNED_COMMON_KEY_WHEN_GET_PUBLIC_KEY if needed */
+ KM_TAG_SOTER_AUTO_SIGNED_COMMON_KEY_WHEN_GET_PUBLIC_KEY_BLOB = KM_BYTES | 11008,
} keymaster_tag_t;
/**
diff --git a/include/hardware/power.h b/include/hardware/power.h
index c266d8b..2eb98fe 100644
--- a/include/hardware/power.h
+++ b/include/hardware/power.h
@@ -62,6 +62,15 @@ typedef enum {
} feature_t;
/**
+ * Process info, passed as an opaque handle when
+ * using POWER_HINT_LAUNCH_BOOST.
+ */
+typedef struct launch_boost_info {
+ pid_t pid;
+ const char* packageName;
+} launch_boost_info_t;
+
+/**
* Every hardware module must have a data structure named HAL_MODULE_INFO_SYM
* and the fields of this data structure must begin with hw_module_t
* followed by module specific information.
@@ -170,7 +179,6 @@ typedef struct power_module {
} power_module_t;
-
__END_DECLS
#endif // ANDROID_INCLUDE_HARDWARE_POWER_H