Merge "Fix up result type for bit-wise or of enum values"
diff --git a/audio/2.0/Android.bp b/audio/2.0/Android.bp
index e833d99..2ded34b 100644
--- a/audio/2.0/Android.bp
+++ b/audio/2.0/Android.bp
@@ -97,5 +97,7 @@
"libhidl",
"libhwbinder",
"libutils",
+ "android.hardware.audio.common@2.0",
+ "android.hardware.audio.effect@2.0",
],
}
diff --git a/audio/common/2.0/vts/types.vts b/audio/common/2.0/vts/types.vts
index 42b97f3..9c79611 100644
--- a/audio/common/2.0/vts/types.vts
+++ b/audio/common/2.0/vts/types.vts
@@ -193,6 +193,7 @@
}
enumerator: "CNT"
scalar_value: {
+ int32_t: 10
}
enumerator: "MAX"
scalar_value: {
@@ -688,39 +689,39 @@
}
enumerator: "INDEX_HDR"
scalar_value: {
- uint32_t: -2147483648
+ uint32_t: 2147483648
}
enumerator: "INDEX_MASK_1"
scalar_value: {
- uint32_t: -2147483647
+ uint32_t: 2147483649
}
enumerator: "INDEX_MASK_2"
scalar_value: {
- uint32_t: -2147483645
+ uint32_t: 2147483651
}
enumerator: "INDEX_MASK_3"
scalar_value: {
- uint32_t: -2147483641
+ uint32_t: 2147483655
}
enumerator: "INDEX_MASK_4"
scalar_value: {
- uint32_t: -2147483633
+ uint32_t: 2147483663
}
enumerator: "INDEX_MASK_5"
scalar_value: {
- uint32_t: -2147483617
+ uint32_t: 2147483679
}
enumerator: "INDEX_MASK_6"
scalar_value: {
- uint32_t: -2147483585
+ uint32_t: 2147483711
}
enumerator: "INDEX_MASK_7"
scalar_value: {
- uint32_t: -2147483521
+ uint32_t: 2147483775
}
enumerator: "INDEX_MASK_8"
scalar_value: {
- uint32_t: -2147483393
+ uint32_t: 2147483903
}
}
}
@@ -774,6 +775,7 @@
}
enumerator: "CNT"
scalar_value: {
+ int32_t: 4
}
enumerator: "MAX"
scalar_value: {
@@ -1304,12 +1306,15 @@
enumerator: "NONE"
scalar_value: {
+ int32_t: 0
}
enumerator: "SOURCE"
scalar_value: {
+ int32_t: 1
}
enumerator: "SINK"
scalar_value: {
+ int32_t: 2
}
}
}
@@ -1322,15 +1327,19 @@
enumerator: "NONE"
scalar_value: {
+ int32_t: 0
}
enumerator: "DEVICE"
scalar_value: {
+ int32_t: 1
}
enumerator: "MIX"
scalar_value: {
+ int32_t: 2
}
enumerator: "SESSION"
scalar_value: {
+ int32_t: 3
}
}
}
@@ -1522,9 +1531,11 @@
enumerator: "LOW"
scalar_value: {
+ int32_t: 0
}
enumerator: "NORMAL"
scalar_value: {
+ int32_t: 1
}
}
}
diff --git a/audio/effect/2.0/Android.bp b/audio/effect/2.0/Android.bp
index a5f0c46..78829be 100644
--- a/audio/effect/2.0/Android.bp
+++ b/audio/effect/2.0/Android.bp
@@ -152,5 +152,6 @@
"libhidl",
"libhwbinder",
"libutils",
+ "android.hardware.audio.common@2.0",
],
}
diff --git a/boot/1.0/default/android.hardware.boot@1.0-service.rc b/boot/1.0/default/android.hardware.boot@1.0-service.rc
index 57c1aff..67d400b 100644
--- a/boot/1.0/default/android.hardware.boot@1.0-service.rc
+++ b/boot/1.0/default/android.hardware.boot@1.0-service.rc
@@ -1,4 +1,4 @@
service boot-hal-1-0 /system/bin/hw/android.hardware.boot@1.0-service
class hal
- user system
- group system readproc
+ user root
+ group root
diff --git a/boot/1.0/vts/Android.mk b/boot/1.0/vts/Android.mk
new file mode 100644
index 0000000..16b92c1
--- /dev/null
+++ b/boot/1.0/vts/Android.mk
@@ -0,0 +1,86 @@
+#
+# Copyright (C) 2016 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+# build VTS driver for Boot Control v1.0.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_driver_hidl_boot@1.0
+
+LOCAL_SRC_FILES := \
+ BootControl.vts \
+ types.vts \
+
+LOCAL_C_INCLUDES := \
+ android.hardware.boot@1.0\
+ system/core/base/include \
+ system/core/include \
+
+LOCAL_SHARED_LIBRARIES += \
+ android.hardware.boot@1.0 \
+ libbase \
+ libutils \
+ libcutils \
+ liblog \
+ libhidl \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_datatype \
+ libvts_measurement \
+ libvts_multidevice_proto \
+
+LOCAL_CFLAGS += -DENABLE_TREBLE
+
+LOCAL_STATIC_LIBRARIES := \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+# build profiler for boot.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_boot@1.0
+
+LOCAL_SRC_FILES := \
+ BootControl.vts \
+ types.vts \
+
+LOCAL_C_INCLUDES += \
+ test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES := \
+ android.hardware.boot@1.0 \
+ libbase \
+ libcutils \
+ liblog \
+ libhidl \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_multidevice_proto \
+ libvts_profiling \
+ libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/boot/1.0/vts/BootControl.vts b/boot/1.0/vts/BootControl.vts
new file mode 100644
index 0000000..384ae50
--- /dev/null
+++ b/boot/1.0/vts/BootControl.vts
@@ -0,0 +1,93 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IBootControl"
+
+package: "android.hardware.boot"
+
+import: "android.hardware.boot@1.0::types"
+
+interface: {
+ api: {
+ name: "getNumberSlots"
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getCurrentSlot"
+ return_type_hidl: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "markBootSuccessful"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::boot::V1_0::CommandResult"
+ }
+ }
+
+ api: {
+ name: "setActiveBootSlot"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::boot::V1_0::CommandResult"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "setSlotAsUnbootable"
+ return_type_hidl: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::boot::V1_0::CommandResult"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "isSlotBootable"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::boot::V1_0::BoolResult"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "isSlotMarkedSuccessful"
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::boot::V1_0::BoolResult"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+ api: {
+ name: "getSuffix"
+ return_type_hidl: {
+ type: TYPE_STRING
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "uint32_t"
+ }
+ }
+
+}
diff --git a/boot/1.0/vts/types.vts b/boot/1.0/vts/types.vts
new file mode 100644
index 0000000..ebeaa60
--- /dev/null
+++ b/boot/1.0/vts/types.vts
@@ -0,0 +1,42 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "types"
+
+package: "android.hardware.boot"
+
+
+attribute: {
+ name: "::android::hardware::boot::V1_0::CommandResult"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "success"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "errMsg"
+ type: TYPE_STRING
+ }
+}
+
+attribute: {
+ name: "::android::hardware::boot::V1_0::BoolResult"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "int32_t"
+
+ enumerator: "FALSE"
+ scalar_value: {
+ int32_t: 0
+ }
+ enumerator: "TRUE"
+ scalar_value: {
+ int32_t: 1
+ }
+ enumerator: "INVALID_SLOT"
+ scalar_value: {
+ int32_t: -1
+ }
+ }
+}
+
diff --git a/example/extension/light/2.0/Android.bp b/example/extension/light/2.0/Android.bp
index 4cdbc66..2a4eddf 100644
--- a/example/extension/light/2.0/Android.bp
+++ b/example/extension/light/2.0/Android.bp
@@ -48,5 +48,6 @@
"libhidl",
"libhwbinder",
"libutils",
+ "android.hardware.light@2.0",
],
}
diff --git a/graphics/composer/2.1/Android.bp b/graphics/composer/2.1/Android.bp
index 0015861..fa58dbb 100644
--- a/graphics/composer/2.1/Android.bp
+++ b/graphics/composer/2.1/Android.bp
@@ -56,5 +56,6 @@
"libhidl",
"libhwbinder",
"libutils",
+ "android.hardware.graphics.allocator@2.0",
],
}
diff --git a/health/1.0/Android.bp b/health/1.0/Android.bp
new file mode 100644
index 0000000..fb3d8c0
--- /dev/null
+++ b/health/1.0/Android.bp
@@ -0,0 +1,51 @@
+// This file is autogenerated by hidl-gen. Do not edit manually.
+
+genrule {
+ name: "android.hardware.health@1.0_genc++",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces android.hardware.health@1.0",
+ srcs: [
+ "types.hal",
+ "IHealth.hal",
+ ],
+ out: [
+ "android/hardware/health/1.0/types.cpp",
+ "android/hardware/health/1.0/HealthAll.cpp",
+ ],
+}
+
+genrule {
+ name: "android.hardware.health@1.0_genc++_headers",
+ tools: ["hidl-gen"],
+ cmd: "$(location hidl-gen) -o $(genDir) -Lc++ -randroid.hardware:hardware/interfaces android.hardware.health@1.0",
+ srcs: [
+ "types.hal",
+ "IHealth.hal",
+ ],
+ out: [
+ "android/hardware/health/1.0/types.h",
+ "android/hardware/health/1.0/IHealth.h",
+ "android/hardware/health/1.0/IHwHealth.h",
+ "android/hardware/health/1.0/BnHealth.h",
+ "android/hardware/health/1.0/BpHealth.h",
+ "android/hardware/health/1.0/BsHealth.h",
+ ],
+}
+
+cc_library_shared {
+ name: "android.hardware.health@1.0",
+ generated_sources: ["android.hardware.health@1.0_genc++"],
+ generated_headers: ["android.hardware.health@1.0_genc++_headers"],
+ export_generated_headers: ["android.hardware.health@1.0_genc++_headers"],
+ shared_libs: [
+ "libhidl",
+ "libhwbinder",
+ "libutils",
+ "libcutils",
+ ],
+ export_shared_lib_headers: [
+ "libhidl",
+ "libhwbinder",
+ "libutils",
+ ],
+}
diff --git a/health/1.0/Android.mk b/health/1.0/Android.mk
new file mode 100644
index 0000000..776a2c2
--- /dev/null
+++ b/health/1.0/Android.mk
@@ -0,0 +1,270 @@
+# This file is autogenerated by hidl-gen. Do not edit manually.
+
+LOCAL_PATH := $(call my-dir)
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.health@1.0-java
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(local-generated-sources-dir)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+#
+# Build types.hal (BatteryHealth)
+#
+GEN := $(intermediates)/android/hardware/health/1.0/BatteryHealth.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::types.BatteryHealth
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (BatteryStatus)
+#
+GEN := $(intermediates)/android/hardware/health/1.0/BatteryStatus.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::types.BatteryStatus
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (HealthConfig)
+#
+GEN := $(intermediates)/android/hardware/health/1.0/HealthConfig.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::types.HealthConfig
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (HealthInfo)
+#
+GEN := $(intermediates)/android/hardware/health/1.0/HealthInfo.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::types.HealthInfo
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (Result)
+#
+GEN := $(intermediates)/android/hardware/health/1.0/Result.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::types.Result
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IHealth.hal
+#
+GEN := $(intermediates)/android/hardware/health/1.0/IHealth.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IHealth.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::IHealth
+
+$(GEN): $(LOCAL_PATH)/IHealth.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_JAVA_LIBRARY)
+
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.health@1.0-java-static
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(local-generated-sources-dir)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+
+#
+# Build types.hal (BatteryHealth)
+#
+GEN := $(intermediates)/android/hardware/health/1.0/BatteryHealth.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::types.BatteryHealth
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (BatteryStatus)
+#
+GEN := $(intermediates)/android/hardware/health/1.0/BatteryStatus.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::types.BatteryStatus
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (HealthConfig)
+#
+GEN := $(intermediates)/android/hardware/health/1.0/HealthConfig.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::types.HealthConfig
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (HealthInfo)
+#
+GEN := $(intermediates)/android/hardware/health/1.0/HealthInfo.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::types.HealthInfo
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (Result)
+#
+GEN := $(intermediates)/android/hardware/health/1.0/Result.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::types.Result
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build IHealth.hal
+#
+GEN := $(intermediates)/android/hardware/health/1.0/IHealth.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IHealth.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0::IHealth
+
+$(GEN): $(LOCAL_PATH)/IHealth.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+
+################################################################################
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.health@1.0-java-constants
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+
+intermediates := $(local-generated-sources-dir)
+
+HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
+#
+GEN := $(intermediates)/android/hardware/health/1.0/Constants.java
+$(GEN): $(HIDL)
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/IHealth.hal
+
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava-constants -randroid.hardware:hardware/interfaces \
+ android.hardware.health@1.0
+
+$(GEN):
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+# Avoid dependency cycle of framework.jar -> this-library -> framework.jar
+LOCAL_NO_STANDARD_LIBRARIES := true
+LOCAL_JAVA_LIBRARIES := core-oj
+
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/health/1.0/IHealth.hal b/health/1.0/IHealth.hal
new file mode 100644
index 0000000..3828589
--- /dev/null
+++ b/health/1.0/IHealth.hal
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.health@1.0;
+
+interface IHealth {
+ /**
+ * This function lets you change healthd configuration from default if
+ * desired. It must be called exactly once at startup time.
+ *
+ * The configuration values are described in 'struct HealthConfig'.
+ * To use default configuration, simply return without modifying the
+ * fields of the config parameter.
+ *
+ * @param default healthd configuration.
+ */
+ init(HealthConfig config) generates (HealthConfig configOut);
+
+ /**
+ * This function is a hook to update/change device's HealthInfo (as described
+ * in 'struct HealthInfo').
+ *
+ * 'HealthInfo' describes device's battery and charging status, typically
+ * read from kernel. These values may be modified in this call.
+ *
+ * @param Device Health info as described in 'struct HealthInfo'.
+ * @return skipLogging Indication to the caller to add 'or' skip logging the health
+ * information. Return 'true' to skip logging the update.
+ * @return infoOut HealthInfo to be sent to client code. (May or may
+ * not be modified).
+ */
+ update(HealthInfo info) generates (bool skipLogging, HealthInfo infoOut);
+
+ /**
+ * This function is called by healthd when framework queries for remaining
+ * energy in the Battery through BatteryManager APIs.
+ *
+ * @return result Result of querying enery counter for the battery.
+ * @return energy Battery remaining energy in nanowatt-hours.
+ * Must be '0' if result is anything other than Result::SUCCESS.
+ */
+ energyCounter() generates (Result result, int64_t energy);
+};
diff --git a/health/1.0/default/Android.mk b/health/1.0/default/Android.mk
new file mode 100644
index 0000000..3d9d58a
--- /dev/null
+++ b/health/1.0/default/Android.mk
@@ -0,0 +1,56 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.health@1.0-impl
+LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_C_INCLUDES := system/core/healthd/include system/core/base/include
+LOCAL_SRC_FILES := \
+ Health.cpp \
+
+LOCAL_SHARED_LIBRARIES := \
+ libcutils \
+ libhidl \
+ libhwbinder \
+ liblog \
+ libutils \
+ android.hardware.health@1.0 \
+
+LOCAL_STATIC_LIBRARIES := android.hardware.health@1.0-convert
+
+LOCAL_HAL_STATIC_LIBRARIES := libhealthd
+
+include $(BUILD_SHARED_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := android.hardware.health@1.0-convert
+LOCAL_SRC_FILES := convert.cpp
+LOCAL_C_INCLUDES := system/core/healthd/include system/core/base/include
+LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
+LOCAL_SHARED_LIBRARIES := \
+ libcutils \
+ libhidl \
+ libutils \
+ android.hardware.health@1.0 \
+
+include $(BUILD_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_MODULE := android.hardware.health@1.0-service
+LOCAL_INIT_RC := android.hardware.health@1.0-service.rc
+LOCAL_SRC_FILES := \
+ HealthService.cpp \
+
+LOCAL_SHARED_LIBRARIES := \
+ liblog \
+ libcutils \
+ libdl \
+ libbase \
+ libutils \
+ libhwbinder \
+ libhidl \
+ android.hardware.health@1.0 \
+
+include $(BUILD_EXECUTABLE)
+
+include $(call first-makefiles-under,$(LOCAL_PATH))
diff --git a/health/1.0/default/Health.cpp b/health/1.0/default/Health.cpp
new file mode 100644
index 0000000..1a02956
--- /dev/null
+++ b/health/1.0/default/Health.cpp
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "health-hal"
+
+#include <Health.h>
+#include <include/hal_conversion.h>
+
+namespace android {
+namespace hardware {
+namespace health {
+namespace V1_0 {
+namespace implementation {
+
+using ::android::hardware::health::V1_0::hal_conversion::convertToHealthConfig;
+using ::android::hardware::health::V1_0::hal_conversion::convertFromHealthConfig;
+using ::android::hardware::health::V1_0::hal_conversion::convertToHealthInfo;
+using ::android::hardware::health::V1_0::hal_conversion::convertFromHealthInfo;
+
+// Methods from ::android::hardware::health::V1_0::IHealth follow.
+Return<void> Health::init(const HealthConfig& config, init_cb _hidl_cb) {
+ struct healthd_config healthd_config = {};
+ HealthConfig configOut;
+
+ // To keep working with existing healthd static HALs,
+ // convert the new HealthConfig to the old healthd_config
+ // and back.
+
+ convertFromHealthConfig(config, &healthd_config);
+ healthd_board_init(&healthd_config);
+ mGetEnergyCounter = healthd_config.energyCounter;
+ convertToHealthConfig(&healthd_config, configOut);
+
+ _hidl_cb(configOut);
+
+ return Void();
+}
+
+Return<void> Health::update(const HealthInfo& info, update_cb _hidl_cb) {
+ struct android::BatteryProperties p = {};
+ HealthInfo infoOut;
+
+ // To keep working with existing healthd static HALs,
+ // convert the new HealthInfo to android::Batteryproperties
+ // and back.
+
+ convertFromHealthInfo(info, &p);
+ int skipLogging = healthd_board_battery_update(&p);
+ convertToHealthInfo(&p, infoOut);
+
+ _hidl_cb(!!skipLogging, infoOut);
+
+ return Void();
+}
+
+Return<void> Health::energyCounter(energyCounter_cb _hidl_cb) {
+ int64_t energy = 0;
+ Result result = Result::NOT_SUPPORTED;
+
+ if (mGetEnergyCounter) {
+ int status = mGetEnergyCounter(&energy);
+ if (status == 0) {
+ result = Result::SUCCESS;
+ }
+ }
+
+ _hidl_cb(result, energy);
+
+ return Void();
+}
+
+IHealth* HIDL_FETCH_IHealth(const char* /* name */) {
+ return new Health();
+}
+
+} // namespace implementation
+} // namespace V1_0
+} // namespace health
+} // namespace hardware
+} // namespace android
diff --git a/health/1.0/default/Health.h b/health/1.0/default/Health.h
new file mode 100644
index 0000000..c05751f
--- /dev/null
+++ b/health/1.0/default/Health.h
@@ -0,0 +1,42 @@
+#ifndef HIDL_GENERATED_android_hardware_health_V1_0_Health_H_
+#define HIDL_GENERATED_android_hardware_health_V1_0_Health_H_
+
+#include <android/hardware/health/1.0/IHealth.h>
+#include <hidl/Status.h>
+#include <hidl/MQDescriptor.h>
+#include <healthd/healthd.h>
+#include <utils/String8.h>
+
+namespace android {
+namespace hardware {
+namespace health {
+namespace V1_0 {
+namespace implementation {
+
+using ::android::hardware::health::V1_0::HealthInfo;
+using ::android::hardware::health::V1_0::HealthConfig;
+using ::android::hardware::health::V1_0::IHealth;
+using ::android::hardware::Return;
+using ::android::hardware::Void;
+using ::android::hardware::hidl_vec;
+using ::android::hardware::hidl_string;
+using ::android::sp;
+
+struct Health : public IHealth {
+ // Methods from ::android::hardware::health::V1_0::IHealth follow.
+ Return<void> init(const HealthConfig& config, init_cb _hidl_cb) override;
+ Return<void> update(const HealthInfo& info, update_cb _hidl_cb) override;
+ Return<void> energyCounter(energyCounter_cb _hidl_cb) override;
+private:
+ std::function<int(int64_t *)> mGetEnergyCounter;
+};
+
+extern "C" IHealth* HIDL_FETCH_IHealth(const char* name);
+
+} // namespace implementation
+} // namespace V1_0
+} // namespace health
+} // namespace hardware
+} // namespace android
+
+#endif // HIDL_GENERATED_android_hardware_health_V1_0_Health_H_
diff --git a/health/1.0/default/HealthService.cpp b/health/1.0/default/HealthService.cpp
new file mode 100644
index 0000000..107f33d
--- /dev/null
+++ b/health/1.0/default/HealthService.cpp
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "android.hardware.health@1.0-service"
+
+#include <android/hardware/health/1.0/IHealth.h>
+#include <hidl/LegacySupport.h>
+
+using android::hardware::health::V1_0::IHealth;
+using android::hardware::defaultPassthroughServiceImplementation;
+
+int main() {
+ return defaultPassthroughServiceImplementation<IHealth>("health");
+}
diff --git a/health/1.0/default/android.hardware.health@1.0-service.rc b/health/1.0/default/android.hardware.health@1.0-service.rc
new file mode 100644
index 0000000..a0d6a56
--- /dev/null
+++ b/health/1.0/default/android.hardware.health@1.0-service.rc
@@ -0,0 +1,4 @@
+service health-hal-1-0 /system/bin/hw/android.hardware.health@1.0-service
+ class hal
+ user system
+ group system
diff --git a/health/1.0/default/convert.cpp b/health/1.0/default/convert.cpp
new file mode 100644
index 0000000..7f1e3c4
--- /dev/null
+++ b/health/1.0/default/convert.cpp
@@ -0,0 +1,148 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "include/hal_conversion.h"
+
+namespace android {
+namespace hardware {
+namespace health {
+namespace V1_0 {
+namespace hal_conversion {
+
+void convertToHealthConfig(const struct healthd_config *hc, HealthConfig& config) {
+ config.periodicChoresIntervalFast = hc->periodic_chores_interval_fast;
+ config.periodicChoresIntervalSlow = hc->periodic_chores_interval_slow;
+
+ config.batteryStatusPath = hc->batteryStatusPath.string();
+ config.batteryHealthPath = hc->batteryHealthPath.string();
+ config.batteryPresentPath = hc->batteryPresentPath.string();
+ config.batteryCapacityPath = hc->batteryCapacityPath.string();
+ config.batteryVoltagePath = hc->batteryVoltagePath.string();
+ config.batteryTemperaturePath = hc->batteryTemperaturePath.string();
+ config.batteryTechnologyPath = hc->batteryTechnologyPath.string();
+ config.batteryCurrentNowPath = hc->batteryCurrentNowPath.string();
+ config.batteryCurrentAvgPath = hc->batteryCurrentAvgPath.string();
+ config.batteryChargeCounterPath = hc->batteryChargeCounterPath.string();
+ config.batteryFullChargePath = hc->batteryFullChargePath.string();
+ config.batteryCycleCountPath = hc->batteryCycleCountPath.string();
+
+}
+
+void convertFromHealthConfig(const HealthConfig& c, struct healthd_config *hc) {
+ hc->periodic_chores_interval_fast = c.periodicChoresIntervalFast;
+ hc->periodic_chores_interval_slow = c.periodicChoresIntervalSlow;
+
+ hc->batteryStatusPath =
+ android::String8(c.batteryStatusPath.c_str(),
+ c.batteryStatusPath.size());
+
+ hc->batteryHealthPath =
+ android::String8(c.batteryHealthPath.c_str(),
+ c.batteryHealthPath.size());
+
+ hc->batteryPresentPath =
+ android::String8(c.batteryPresentPath.c_str(),
+ c.batteryPresentPath.size());
+
+ hc->batteryCapacityPath =
+ android::String8(c.batteryCapacityPath.c_str(),
+ c.batteryCapacityPath.size());
+
+ hc->batteryVoltagePath =
+ android::String8(c.batteryVoltagePath.c_str(),
+ c.batteryVoltagePath.size());
+
+ hc->batteryTemperaturePath =
+ android::String8(c.batteryTemperaturePath.c_str(),
+ c.batteryTemperaturePath.size());
+
+ hc->batteryTechnologyPath =
+ android::String8(c.batteryTechnologyPath.c_str(),
+ c.batteryTechnologyPath.size());
+
+ hc->batteryCurrentNowPath =
+ android::String8(c.batteryCurrentNowPath.c_str(),
+ c.batteryCurrentNowPath.size());
+
+ hc->batteryCurrentAvgPath =
+ android::String8(c.batteryCurrentAvgPath.c_str(),
+ c.batteryCurrentNowPath.size());
+
+ hc->batteryChargeCounterPath =
+ android::String8(c.batteryChargeCounterPath.c_str(),
+ c.batteryChargeCounterPath.size());
+
+ hc->batteryFullChargePath =
+ android::String8(c.batteryFullChargePath.c_str(),
+ c.batteryFullChargePath.size());
+
+ hc->batteryCycleCountPath =
+ android::String8(c.batteryCycleCountPath.c_str(),
+ c.batteryCycleCountPath.size());
+
+ // energyCounter is handled through special means so all calls to
+ // the function go across the HALs
+
+ // boot_min_cap - never used in Android (only in charger-mode).
+
+ // screen_on - never used in Android (only in charger mode).
+}
+
+void convertToHealthInfo(const struct android::BatteryProperties *p,
+ HealthInfo& info) {
+ info.chargerAcOnline = p->chargerAcOnline;
+ info.chargerUsbOnline = p->chargerUsbOnline;
+ info.chargerWirelessOnline = p->chargerWirelessOnline;
+ info.maxChargingCurrent = p->maxChargingCurrent;
+ info.maxChargingVoltage = p->maxChargingVoltage;
+ info.batteryStatus = static_cast<BatteryStatus>(p->batteryStatus);
+ info.batteryHealth = static_cast<BatteryHealth>(p->batteryHealth);
+ info.batteryPresent = p->batteryPresent;
+ info.batteryLevel = p->batteryLevel;
+ info.batteryVoltage = p->batteryVoltage;
+ info.batteryTemperature = p->batteryTemperature;
+ info.batteryCurrent = p->batteryCurrent;
+ info.batteryCycleCount = p->batteryCycleCount;
+ info.batteryFullCharge = p->batteryFullCharge;
+ info.batteryChargeCounter = p->batteryChargeCounter;
+ info.batteryTechnology = p->batteryTechnology;
+}
+
+void convertFromHealthInfo(const HealthInfo& info,
+ struct android::BatteryProperties *p) {
+ p->chargerAcOnline = info.chargerAcOnline;
+ p->chargerUsbOnline = info.chargerUsbOnline;
+ p->chargerWirelessOnline = info.chargerWirelessOnline;
+ p->maxChargingCurrent = info.maxChargingCurrent;
+ p->maxChargingVoltage = info.maxChargingVoltage;
+ p->batteryStatus = static_cast<int>(info.batteryStatus);
+ p->batteryHealth = static_cast<int>(info.batteryHealth);
+ p->batteryPresent = info.batteryPresent;
+ p->batteryLevel = info.batteryLevel;
+ p->batteryVoltage = info.batteryVoltage;
+ p->batteryTemperature = info.batteryTemperature;
+ p->batteryCurrent = info.batteryCurrent;
+ p->batteryCycleCount = info.batteryCycleCount;
+ p->batteryFullCharge = info.batteryFullCharge;
+ p->batteryChargeCounter = info.batteryChargeCounter;
+ p->batteryTechnology = android::String8(info.batteryTechnology.c_str());
+}
+
+} // namespace hal_conversion
+} // namespace V1_0
+} // namespace health
+} // namespace hardware
+} // namespace android
diff --git a/health/1.0/default/include/hal_conversion.h b/health/1.0/default/include/hal_conversion.h
new file mode 100644
index 0000000..a92b208
--- /dev/null
+++ b/health/1.0/default/include/hal_conversion.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef HARDWARE_INTERFACES_HEALTH_V1_0_DEFAULT_INCLUDE_HAL_CONVERSION_H_
+#define HARDWARE_INTERFACES_HEALTH_V1_0_DEFAULT_INCLUDE_HAL_CONVERSION_H_
+
+#include <android/hardware/health/1.0/IHealth.h>
+#include <healthd/healthd.h>
+
+namespace android {
+namespace hardware {
+namespace health {
+namespace V1_0 {
+namespace hal_conversion {
+
+void convertToHealthConfig(const struct healthd_config *hc,
+ HealthConfig& config);
+void convertFromHealthConfig(const HealthConfig& c, struct healthd_config *hc);
+
+void convertToHealthInfo(const struct android::BatteryProperties *p,
+ HealthInfo& info);
+void convertFromHealthInfo(const HealthInfo& info,
+ struct android::BatteryProperties *p);
+
+} // namespace hal_conversion
+} // namespace V1_0
+} // namespace sensors
+} // namespace hardware
+} // namespace android
+
+#endif // HARDWARE_INTERFACES_HEALTH_V1_0_DEFAULT_INCLUDE_HAL_CONVERSION_H_
diff --git a/health/1.0/default/libhealthd/Android.mk b/health/1.0/default/libhealthd/Android.mk
new file mode 100644
index 0000000..a5f4445
--- /dev/null
+++ b/health/1.0/default/libhealthd/Android.mk
@@ -0,0 +1,10 @@
+# Copyright 2016 The Android Open Source Project
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := healthd_board_default.cpp
+LOCAL_MODULE := libhealthd.default
+LOCAL_CFLAGS := -Werror
+LOCAL_C_INCLUDES := system/core/healthd/include system/core/base/include
+include $(BUILD_STATIC_LIBRARY)
diff --git a/health/1.0/default/libhealthd/healthd_board_default.cpp b/health/1.0/default/libhealthd/healthd_board_default.cpp
new file mode 100644
index 0000000..127f98e
--- /dev/null
+++ b/health/1.0/default/libhealthd/healthd_board_default.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <healthd/healthd.h>
+
+void healthd_board_init(struct healthd_config*)
+{
+ // use defaults
+}
+
+int healthd_board_battery_update(struct android::BatteryProperties*)
+{
+ // return 0 to log periodic polled battery status to kernel log
+ return 0;
+}
diff --git a/health/1.0/types.hal b/health/1.0/types.hal
new file mode 100644
index 0000000..c5b5cc1
--- /dev/null
+++ b/health/1.0/types.hal
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.health@1.0;
+
+/*
+ * Possible return values for optional HAL method(s) like
+ * IHealth::energyCounter()
+ */
+enum Result : int32_t {
+ SUCCESS,
+ NOT_SUPPORTED,
+ UNKNOWN,
+};
+
+/*
+ * Possible values for Battery Status.
+ * Note: These are currently in sync with BatteryManager and must not
+ * be extended / altered.
+ */
+@export(name="", value_prefix="BATTERY_STATUS_")
+enum BatteryStatus : int32_t {
+ UNKNOWN = 1,
+ CHARGING = 2,
+ DISCHARGING = 3,
+ /*
+ * Battery is *not* charging - special case when charger is present
+ * but battery isn't charging
+ */
+ NOT_CHARGING = 4,
+ FULL = 5,
+};
+
+/*
+ * Possible values for Battery Health.
+ * Note: These are currently in sync with BatteryManager and must not
+ * be extended / altered.
+ */
+@export(name="", value_prefix="BATTERY_HEALTH_")
+enum BatteryHealth : int32_t {
+ UNKNOWN = 1,
+ GOOD = 2,
+ OVERHEAT = 3,
+ DEAD = 4,
+ OVER_VOLTAGE = 5,
+ /*
+ * Battery experienced an unknown/unspecifid failure.
+ */
+ UNSPECIFIED_FAILURE = 6,
+ COLD = 7,
+};
+
+struct HealthConfig {
+
+ /*
+ * periodicChoresIntervalFast is used while the device is not in
+ * suspend, or in suspend and connected to a charger (to watch for battery
+ * overheat due to charging)
+ */
+ int32_t periodicChoresIntervalFast;
+
+ /*
+ * periodicChoresIntervalSlow is used when the device is in suspend and
+ * not connected to a charger (to watch for a battery drained to zero
+ * remaining capacity).
+ */
+ int32_t periodicChoresIntervalSlow;
+
+ /*
+ * power_supply sysfs attribute file paths. Set these to specific paths
+ * to use for the associated battery parameters. Clients must search
+ * for appropriate power_supply attribute files to use, for any paths
+ * left empty after the HAL is initialized.
+ */
+
+ /*
+ * batteryStatusPath - file path to read battery charging status.
+ * (POWER_SUPPLY_PROP_STATUS)
+ */
+ string batteryStatusPath;
+
+
+ /*
+ * batteryHealthPath - file path to read battery health.
+ * (POWER_SUPPLY_PROP_HEALTH)
+ */
+ string batteryHealthPath;
+
+ /*
+ * batteryPresentPath - file path to read battery present status.
+ * (POWER_SUPPLY_PROP_PRESENT)
+ */
+ string batteryPresentPath;
+
+
+ /*
+ * batteryCapacityPath - file path to read remaining battery capacity.
+ * (POWER_SUPPLY_PROP_CAPACITY)
+ */
+ string batteryCapacityPath;
+
+ /*
+ * batteryVoltagePath - file path to read battery voltage.
+ * (POWER_SUPPLY_PROP_VOLTAGE_NOW)
+ */
+ string batteryVoltagePath;
+
+ /*
+ * batteryTemperaturePath - file path to read battery temperature in tenths
+ * of degree celcius. (POWER_SUPPLY_PROP_TEMP)
+ */
+ string batteryTemperaturePath;
+
+ /*
+ * batteryTechnologyPath - file path to read battery technology.
+ * (POWER_SUPPLY_PROP_TECHNOLOGY)
+ */
+ string batteryTechnologyPath;
+
+ /*
+ * batteryCurrentNowPath - file path to read battery instantaneous current.
+ * (POWER_SUPPLY_PROP_CURRENT_NOW)
+ */
+ string batteryCurrentNowPath;
+
+ /*
+ * batteryCurrentAvgPath - file path to read battery average current.
+ * (POWER_SUPPLY_PROP_CURRENT_AVG)
+ */
+ string batteryCurrentAvgPath;
+
+ /*
+ * batteryChargeCounterPath - file path to read battery accumulated charge.
+ * (POWER_SUPPLY_PROP_CHARGE_COUNTER)
+ */
+ string batteryChargeCounterPath;
+
+ /*
+ * batteryFullChargerPath - file path to read battery charge value when it
+ * is considered to be full. (POWER_SUPPLY_PROP_CHARGE_FULL)
+ */
+ string batteryFullChargePath;
+
+ /*
+ * batteryCycleCountPath - file path to read battery charge cycle count.
+ * (POWER_SUPPLY_PROP_CYCLE_COUNT)
+ */
+ string batteryCycleCountPath;
+};
+
+/*
+ * The parameter to healthd mainloop update calls
+ */
+struct HealthInfo {
+ /* AC charger state - 'true' if online */
+ bool chargerAcOnline;
+
+ /* USB charger state - 'true' if online */
+ bool chargerUsbOnline;
+
+ /* Wireless charger state - 'true' if online */
+ bool chargerWirelessOnline;
+
+ /* Maximum charging current supported by charger in uA */
+ int32_t maxChargingCurrent;
+
+ /* Maximum charging voltage supported by charger in uV */
+ int32_t maxChargingVoltage;
+
+ BatteryStatus batteryStatus;
+
+ BatteryHealth batteryHealth;
+
+ /* 'true' if battery is present */
+ bool batteryPresent;
+
+ /* Remaining battery capacity in percent */
+ int32_t batteryLevel;
+
+ /* Instantaneous battery voltage in uV */
+ int32_t batteryVoltage;
+
+ /* Instantaneous battery temperature in tenths of degree celcius */
+ int32_t batteryTemperature;
+
+ /* Instantaneous battery current in uA */
+ int32_t batteryCurrent;
+
+ /* Battery charge cycle count */
+ int32_t batteryCycleCount;
+
+ /* Battery charge value when it is considered to be "full" in uA-h */
+ int32_t batteryFullCharge;
+
+ /* Instantaneous battery capacity in uA-h */
+ int32_t batteryChargeCounter;
+
+ /* Battery technology, e.g. "Li-ion, Li-Poly" etc. */
+ string batteryTechnology;
+};
diff --git a/health/Android.bp b/health/Android.bp
new file mode 100644
index 0000000..bbb3e4b
--- /dev/null
+++ b/health/Android.bp
@@ -0,0 +1,4 @@
+// This is an autogenerated file, do not edit.
+subdirs = [
+ "1.0",
+]
diff --git a/power/1.0/vts/Android.mk b/power/1.0/vts/Android.mk
new file mode 100644
index 0000000..4d5117b
--- /dev/null
+++ b/power/1.0/vts/Android.mk
@@ -0,0 +1,86 @@
+#
+# Copyright (C) 2016 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+# build VTS driver for Power v1.0.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_driver_hidl_power@1.0
+
+LOCAL_SRC_FILES := \
+ Power.vts \
+ types.vts \
+
+LOCAL_C_INCLUDES := \
+ android.hardware.power@1.0 \
+ system/core/base/include \
+ system/core/include \
+
+LOCAL_SHARED_LIBRARIES += \
+ android.hardware.power@1.0 \
+ libbase \
+ libutils \
+ libcutils \
+ liblog \
+ libhidl \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_datatype \
+ libvts_measurement \
+ libvts_multidevice_proto \
+
+LOCAL_CFLAGS += -DENABLE_TREBLE
+
+LOCAL_STATIC_LIBRARIES := \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+LOCAL_MULTILIB := both
+
+include $(BUILD_SHARED_LIBRARY)
+
+# build profiler for power.
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libvts_profiler_hidl_power@1.0
+
+LOCAL_SRC_FILES := \
+ Power.vts \
+ types.vts \
+
+LOCAL_C_INCLUDES += \
+ test/vts/drivers/libprofiling \
+
+LOCAL_VTS_MODE := PROFILER
+
+LOCAL_SHARED_LIBRARIES := \
+ android.hardware.power@1.0 \
+ libbase \
+ libcutils \
+ liblog \
+ libhidl \
+ libhwbinder \
+ libprotobuf-cpp-full \
+ libvts_common \
+ libvts_multidevice_proto \
+ libvts_profiling \
+ libutils \
+
+LOCAL_PROTOC_OPTIMIZE_TYPE := full
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/power/1.0/vts/Power.vts b/power/1.0/vts/Power.vts
new file mode 100644
index 0000000..1711290
--- /dev/null
+++ b/power/1.0/vts/Power.vts
@@ -0,0 +1,57 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "IPower"
+
+package: "android.hardware.power"
+
+import: "android.hardware.power@1.0::types"
+
+interface: {
+ api: {
+ name: "setInteractive"
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "powerHint"
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::power::V1_0::PowerHint"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "int32_t"
+ }
+ }
+
+ api: {
+ name: "setFeature"
+ arg: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::power::V1_0::Feature"
+ }
+ arg: {
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ }
+
+ api: {
+ name: "getPlatformLowPowerStats"
+ return_type_hidl: {
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::power::V1_0::PowerStatePlatformSleepState"
+ }
+ }
+ return_type_hidl: {
+ type: TYPE_ENUM
+ predefined_type: "::android::hardware::power::V1_0::Status"
+ }
+ }
+
+}
diff --git a/power/1.0/vts/types.vts b/power/1.0/vts/types.vts
new file mode 100644
index 0000000..94c003b
--- /dev/null
+++ b/power/1.0/vts/types.vts
@@ -0,0 +1,133 @@
+component_class: HAL_HIDL
+component_type_version: 1.0
+component_name: "types"
+
+package: "android.hardware.power"
+
+
+attribute: {
+ name: "::android::hardware::power::V1_0::PowerHint"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "VSYNC"
+ scalar_value: {
+ uint32_t: 1
+ }
+ enumerator: "INTERACTION"
+ scalar_value: {
+ uint32_t: 2
+ }
+ enumerator: "VIDEO_ENCODE"
+ scalar_value: {
+ uint32_t: 3
+ }
+ enumerator: "VIDEO_DECODE"
+ scalar_value: {
+ uint32_t: 4
+ }
+ enumerator: "LOW_POWER"
+ scalar_value: {
+ uint32_t: 5
+ }
+ enumerator: "SUSTAINED_PERFORMANCE"
+ scalar_value: {
+ uint32_t: 6
+ }
+ enumerator: "VR_MODE"
+ scalar_value: {
+ uint32_t: 7
+ }
+ enumerator: "LAUNCH"
+ scalar_value: {
+ uint32_t: 8
+ }
+ enumerator: "DISABLE_TOUCH"
+ scalar_value: {
+ uint32_t: 9
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::power::V1_0::Feature"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "POWER_FEATURE_DOUBLE_TAP_TO_WAKE"
+ scalar_value: {
+ uint32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::power::V1_0::Status"
+ type: TYPE_ENUM
+ enum_value: {
+ scalar_type: "uint32_t"
+
+ enumerator: "SUCCESS"
+ scalar_value: {
+ uint32_t: 0
+ }
+ enumerator: "FILESYSTEM_ERROR"
+ scalar_value: {
+ uint32_t: 1
+ }
+ }
+}
+
+attribute: {
+ name: "::android::hardware::power::V1_0::PowerStateVoter"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "name"
+ type: TYPE_STRING
+ }
+ struct_value: {
+ name: "totalTimeInMsecVotedForSinceBoot"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "totalNumberOfTimesVotedSinceBoot"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+}
+
+attribute: {
+ name: "::android::hardware::power::V1_0::PowerStatePlatformSleepState"
+ type: TYPE_STRUCT
+ struct_value: {
+ name: "name"
+ type: TYPE_STRING
+ }
+ struct_value: {
+ name: "residencyInMsecSinceBoot"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "totalTransitions"
+ type: TYPE_SCALAR
+ scalar_type: "uint64_t"
+ }
+ struct_value: {
+ name: "supportedOnlyInSuspend"
+ type: TYPE_SCALAR
+ scalar_type: "bool_t"
+ }
+ struct_value: {
+ name: "voters"
+ type: TYPE_VECTOR
+ vector_value: {
+ type: TYPE_STRUCT
+ predefined_type: "::android::hardware::power::V1_0::PowerStateVoter"
+ }
+ }
+}
+
diff --git a/radio/1.0/Android.mk b/radio/1.0/Android.mk
index 5cfd32e..35bb9e6 100644
--- a/radio/1.0/Android.mk
+++ b/radio/1.0/Android.mk
@@ -285,6 +285,227 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (CdmaCallWaiting)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaCallWaiting.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaCallWaiting
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaCallWaitingNumberPlan)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaCallWaitingNumberPlan.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaCallWaitingNumberPlan
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaCallWaitingNumberPresentation)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaCallWaitingNumberPresentation.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaCallWaitingNumberPresentation
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaCallWaitingNumberType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaCallWaitingNumberType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaCallWaitingNumberType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaDisplayInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaDisplayInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaDisplayInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaInfoRecName)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaInfoRecName.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaInfoRecName
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaInformationRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaInformationRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaInformationRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaInformationRecords)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaInformationRecords.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaInformationRecords
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaLineControlInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaLineControlInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaLineControlInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaNumberInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaNumberInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaNumberInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaOtaProvisionStatus)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaOtaProvisionStatus.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaOtaProvisionStatus
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaRedirectingNumberInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaRedirectingNumberInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaRedirectingNumberInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaRedirectingReason)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaRedirectingReason.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaRedirectingReason
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (CdmaRoamingType)
#
GEN := $(intermediates)/android/hardware/radio/1.0/CdmaRoamingType.java
@@ -302,6 +523,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (CdmaSignalInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaSignalInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaSignalInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (CdmaSignalStrength)
#
GEN := $(intermediates)/android/hardware/radio/1.0/CdmaSignalStrength.java
@@ -540,6 +778,40 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (CdmaT53AudioControlInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaT53AudioControlInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaT53AudioControlInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaT53ClirInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaT53ClirInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaT53ClirInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (CellIdentityCdma)
#
GEN := $(intermediates)/android/hardware/radio/1.0/CellIdentityCdma.java
@@ -744,6 +1016,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (CfData)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CfData.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CfData
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (ClipStatus)
#
GEN := $(intermediates)/android/hardware/radio/1.0/ClipStatus.java
@@ -1254,6 +1543,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (PcoDataInfo)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/PcoDataInfo.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.PcoDataInfo
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (PersoSubstate)
#
GEN := $(intermediates)/android/hardware/radio/1.0/PersoSubstate.java
@@ -1271,6 +1577,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (PhoneRestrictedState)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/PhoneRestrictedState.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.PhoneRestrictedState
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (PinState)
#
GEN := $(intermediates)/android/hardware/radio/1.0/PinState.java
@@ -1441,6 +1764,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (RadioIndicationType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/RadioIndicationType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.RadioIndicationType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (RadioResponseInfo)
#
GEN := $(intermediates)/android/hardware/radio/1.0/RadioResponseInfo.java
@@ -1764,6 +2104,40 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (SimRefreshResult)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SimRefreshResult.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SimRefreshResult
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SimRefreshType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SimRefreshType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SimRefreshType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (SmsAcknowledgeFailCause)
#
GEN := $(intermediates)/android/hardware/radio/1.0/SmsAcknowledgeFailCause.java
@@ -1815,6 +2189,108 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (SrvccState)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SrvccState.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SrvccState
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SsInfoData)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SsInfoData.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SsInfoData
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SsRequestType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SsRequestType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SsRequestType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SsServiceType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SsServiceType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SsServiceType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SsTeleserviceType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SsTeleserviceType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SsTeleserviceType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (StkCcUnsolSsResult)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/StkCcUnsolSsResult.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.StkCcUnsolSsResult
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (SubscriptionType)
#
GEN := $(intermediates)/android/hardware/radio/1.0/SubscriptionType.java
@@ -1832,6 +2308,40 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (SuppServiceClass)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SuppServiceClass.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SuppServiceClass
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SuppSvcNotification)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SuppSvcNotification.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SuppSvcNotification
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (TdScdmaSignalStrength)
#
GEN := $(intermediates)/android/hardware/radio/1.0/TdScdmaSignalStrength.java
@@ -1900,6 +2410,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (UssdModeType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/UssdModeType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.UssdModeType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (UusDcs)
#
GEN := $(intermediates)/android/hardware/radio/1.0/UusDcs.java
@@ -2370,6 +2897,227 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (CdmaCallWaiting)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaCallWaiting.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaCallWaiting
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaCallWaitingNumberPlan)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaCallWaitingNumberPlan.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaCallWaitingNumberPlan
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaCallWaitingNumberPresentation)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaCallWaitingNumberPresentation.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaCallWaitingNumberPresentation
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaCallWaitingNumberType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaCallWaitingNumberType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaCallWaitingNumberType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaDisplayInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaDisplayInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaDisplayInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaInfoRecName)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaInfoRecName.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaInfoRecName
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaInformationRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaInformationRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaInformationRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaInformationRecords)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaInformationRecords.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaInformationRecords
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaLineControlInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaLineControlInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaLineControlInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaNumberInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaNumberInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaNumberInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaOtaProvisionStatus)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaOtaProvisionStatus.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaOtaProvisionStatus
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaRedirectingNumberInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaRedirectingNumberInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaRedirectingNumberInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaRedirectingReason)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaRedirectingReason.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaRedirectingReason
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (CdmaRoamingType)
#
GEN := $(intermediates)/android/hardware/radio/1.0/CdmaRoamingType.java
@@ -2387,6 +3135,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (CdmaSignalInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaSignalInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaSignalInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (CdmaSignalStrength)
#
GEN := $(intermediates)/android/hardware/radio/1.0/CdmaSignalStrength.java
@@ -2625,6 +3390,40 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (CdmaT53AudioControlInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaT53AudioControlInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaT53AudioControlInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (CdmaT53ClirInfoRecord)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CdmaT53ClirInfoRecord.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CdmaT53ClirInfoRecord
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (CellIdentityCdma)
#
GEN := $(intermediates)/android/hardware/radio/1.0/CellIdentityCdma.java
@@ -2829,6 +3628,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (CfData)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/CfData.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.CfData
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (ClipStatus)
#
GEN := $(intermediates)/android/hardware/radio/1.0/ClipStatus.java
@@ -3339,6 +4155,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (PcoDataInfo)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/PcoDataInfo.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.PcoDataInfo
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (PersoSubstate)
#
GEN := $(intermediates)/android/hardware/radio/1.0/PersoSubstate.java
@@ -3356,6 +4189,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (PhoneRestrictedState)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/PhoneRestrictedState.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.PhoneRestrictedState
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (PinState)
#
GEN := $(intermediates)/android/hardware/radio/1.0/PinState.java
@@ -3526,6 +4376,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (RadioIndicationType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/RadioIndicationType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.RadioIndicationType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (RadioResponseInfo)
#
GEN := $(intermediates)/android/hardware/radio/1.0/RadioResponseInfo.java
@@ -3849,6 +4716,40 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (SimRefreshResult)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SimRefreshResult.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SimRefreshResult
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SimRefreshType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SimRefreshType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SimRefreshType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (SmsAcknowledgeFailCause)
#
GEN := $(intermediates)/android/hardware/radio/1.0/SmsAcknowledgeFailCause.java
@@ -3900,6 +4801,108 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (SrvccState)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SrvccState.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SrvccState
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SsInfoData)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SsInfoData.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SsInfoData
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SsRequestType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SsRequestType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SsRequestType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SsServiceType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SsServiceType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SsServiceType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SsTeleserviceType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SsTeleserviceType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SsTeleserviceType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (StkCcUnsolSsResult)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/StkCcUnsolSsResult.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.StkCcUnsolSsResult
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (SubscriptionType)
#
GEN := $(intermediates)/android/hardware/radio/1.0/SubscriptionType.java
@@ -3917,6 +4920,40 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (SuppServiceClass)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SuppServiceClass.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SuppServiceClass
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build types.hal (SuppSvcNotification)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/SuppSvcNotification.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.SuppSvcNotification
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (TdScdmaSignalStrength)
#
GEN := $(intermediates)/android/hardware/radio/1.0/TdScdmaSignalStrength.java
@@ -3985,6 +5022,23 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
+# Build types.hal (UssdModeType)
+#
+GEN := $(intermediates)/android/hardware/radio/1.0/UssdModeType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.radio@1.0::types.UssdModeType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (UusDcs)
#
GEN := $(intermediates)/android/hardware/radio/1.0/UusDcs.java
diff --git a/radio/1.0/IRadioIndication.hal b/radio/1.0/IRadioIndication.hal
index 8f28e3f..4dbae17 100644
--- a/radio/1.0/IRadioIndication.hal
+++ b/radio/1.0/IRadioIndication.hal
@@ -21,9 +21,453 @@
*/
interface IRadioIndication {
/*
- * Called when radio state changes.
+ * Indicates when radio state changes.
*
+ * @param type Type of radio indication
* @param radioState Current radio state
*/
- oneway radioStateChanged(RadioState radioState);
+ oneway radioStateChanged(RadioIndicationType type, RadioState radioState);
+
+ /*
+ * Indicates when call state has changed.
+ * Callee must invoke IRadio.getCurrentCalls()
+ * Must be invoked on, for example,
+ * "RING", "BUSY", "NO CARRIER", and also call state
+ * transitions (DIALING->ALERTING ALERTING->ACTIVE)
+ *
+ * Redundent or extraneous invocations are tolerated
+ *
+ * @param type Type of radio indication
+ */
+ oneway callStateChanged(RadioIndicationType type);
+
+ /*
+ * Indicates when voice network state changed
+ * Callee must invoke IRadio.getVoiceRegistrationState() and IRadio.getOperator()
+ *
+ * @param type Type of radio indication
+ */
+ oneway voiceNetworkStateChanged(RadioIndicationType type);
+
+ /*
+ * Indicates when new SMS is received.
+ * Callee must subsequently confirm the receipt of the SMS with a
+ * acknowledgeLastIncomingGsmSms()
+ *
+ * Server must not send newSms() nor newSmsStatusReport() messages until a
+ * acknowledgeLastIncomingGsmSms() has been received
+ *
+ * @param type Type of radio indication
+ * @param pdu PDU of SMS-DELIVER represented as byte array.
+ * The PDU starts with the SMSC address per TS 27.005 (+CMT:)
+ */
+ oneway newSms(RadioIndicationType type, vec<uint8_t> pdu);
+
+ /*
+ * Indicates when new SMS Status Report is received.
+ * Callee must subsequently confirm the receipt of the SMS with a
+ * acknowledgeLastIncomingGsmSms()
+ *
+ * Server must not send newSms() nor newSmsStatusReport() messages until a
+ * acknowledgeLastIncomingGsmSms() has been received
+ *
+ * @param type Type of radio indication
+ * @param pdu PDU of SMS-STATUS-REPORT represented as byte array.
+ * The PDU starts with the SMSC address per TS 27.005 (+CMT:)
+ */
+ oneway newSmsStatusReport(RadioIndicationType type, vec<uint8_t> pdu);
+
+ /*
+ * Indicates when new SMS has been stored on SIM card
+ *
+ * @param type Type of radio indication
+ */
+ oneway newSmsOnSim(RadioIndicationType type);
+
+ /*
+ * Indicates when a new USSD message is received.
+ * The USSD session is assumed to persist if the type code is REQUEST, otherwise
+ * the current session (if any) is assumed to have terminated.
+ *
+ * @param type Type of radio indication
+ * @param modeType USSD type code
+ */
+ oneway onUssd(RadioIndicationType type, UssdModeType modeType);
+
+ /*
+ * Indicates when radio has received a NITZ time message.
+ *
+ * @param type Type of radio indication
+ * @param nitzTime NITZ time string in the form "yy/mm/dd,hh:mm:ss(+/-)tz,dt"
+ * @param receivedTime milliseconds since boot that the NITZ time was received
+ */
+ oneway nitzTimeReceived(RadioIndicationType type, string nitzTime, uint64_t receivedTime);
+
+ /*
+ * Indicates current signal strength of the radio.
+ *
+ * @param type Type of radio indication
+ * @param signalStrength SignalStrength information as defined in types.hal
+ */
+ oneway currentSignalStrength(RadioIndicationType type, SignalStrength signalStrength);
+
+ /*
+ * Indicates data call contexts have changed.
+ *
+ * @param type Type of radio indication
+ * @param dcList array of SetupDataCallResult identical to that
+ * returned by IRadio.getDataCallList(). It is the complete list
+ * of current data contexts including new contexts that have been
+ * activated. A data call is only removed from this list when the
+ * framework sends a IRadio.deactivateDataCall() or the radio
+ * is powered off/on
+ */
+ oneway dataCallListChanged(RadioIndicationType type, vec<SetupDataCallResult> dcList);
+
+ /*
+ * Reports supplementary service related notification from the network.
+ *
+ * @param type Type of radio indication
+ * @param suppSvc SuppSvcNotification as defined in types.hal
+ */
+ oneway suppSvcNotify(RadioIndicationType type, SuppSvcNotification suppSvc);
+
+ /*
+ * Indicates when STK session is terminated by SIM.
+ *
+ * @param type Type of radio indication
+ */
+ oneway stkSessionEnd(RadioIndicationType type);
+
+ /*
+ * Indicates when SIM issue a STK proactive command to applications
+ *
+ * @param type Type of radio indication
+ * @param cmd SAT/USAT proactive represented as byte array starting with command tag.
+ * Refer ETSI TS 102.223 section 9.4 for command types
+ */
+ oneway stkProactiveCommand(RadioIndicationType type, vec<uint8_t> cmd);
+
+ /*
+ * Indicates when SIM notifies applcations some event happens.
+ *
+ * @param type Type of radio indication
+ * @param cmd SAT/USAT commands or responses
+ * sent by ME to SIM or commands handled by ME, represented as byte array
+ * starting with first byte of response data for command tag. Refer
+ * ETSI TS 102.223 section 9.4 for command types
+ */
+ oneway stkEventNotify(RadioIndicationType type, vec<uint8_t> cmd);
+
+ /*
+ * Indicates when SIM wants application to setup a voice call.
+ *
+ * @param type Type of radio indication
+ * @param timeout Timeout value in millisec for setting up voice call
+ */
+ oneway stkCallSetup(RadioIndicationType type, int64_t timeout);
+
+ /*
+ * Indicates that SMS storage on the SIM is full. Sent when the network
+ * attempts to deliver a new SMS message. Messages cannot be saved on the
+ * SIM until space is freed. In particular, incoming Class 2 messages must not
+ * be stored
+ *
+ * @param type Type of radio indication
+ */
+ oneway simSmsStorageFull(RadioIndicationType type);
+
+ /*
+ * Indicates that file(s) on the SIM have been updated, or the SIM
+ * has been reinitialized.
+ * Note: If the SIM state changes as a result of the SIM refresh (eg,
+ * SIM_READY -> SIM_LOCKED_OR_ABSENT), simStatusChanged()
+ * must be sent.
+ *
+ * @param type Type of radio indication
+ * @param refreshResult Result of sim refresh
+ */
+ oneway simRefresh(RadioIndicationType type, SimRefreshResult refreshResult);
+
+ /*
+ * Ring indication for an incoming call (eg, RING or CRING event).
+ * There must be at least one callRing() at the beginning
+ * of a call and sending multiple is optional. If the system property
+ * ro.telephony.call_ring.multiple is false then the upper layers
+ * must generate the multiple events internally. Otherwise the vendor
+ * code must generate multiple callRing() if
+ * ro.telephony.call_ring.multiple is true or if it is absent.
+ *
+ * The rate of these events is controlled by ro.telephony.call_ring.delay
+ * and has a default value of 3000 (3 seconds) if absent.
+ *
+ * @param type Type of radio indication
+ * @param isGsm true for GSM & false for CDMA
+ * @param record Cdma Signal Information
+ */
+ oneway callRing(RadioIndicationType type, bool isGsm, CdmaSignalInfoRecord record);
+
+ /*
+ * Indicates that SIM state changes.
+ * Callee must invoke getIccCardStatus()
+ *
+ * @param type Type of radio indication
+ */
+ oneway simStatusChanged(RadioIndicationType type);
+
+ /*
+ * Indicates when new CDMA SMS is received
+ * Callee must subsequently confirm the receipt of the SMS with
+ * acknowledgeLastIncomingCdmaSms()
+ * Server must not send cdmaNewSms() messages until
+ * acknowledgeLastIncomingCdmaSms() has been received
+ *
+ * @param type Type of radio indication
+ * @param msg Cdma Sms Message
+ */
+ oneway cdmaNewSms(RadioIndicationType type, CdmaSmsMessage msg);
+
+ /*
+ * Indicates when new Broadcast SMS is received
+ *
+ * @param type Type of radio indication
+ * @param data If received from GSM network, "data" is byte array of 88 bytes
+ * which indicates each page of a CBS Message sent to the MS by the
+ * BTS as coded in 3GPP 23.041 Section 9.4.1.2.
+ * If received from UMTS network, "data" is byte array of 90 up to 1252
+ * bytes which contain between 1 and 15 CBS Message pages sent as one
+ * packet to the MS by the BTS as coded in 3GPP 23.041 Section 9.4.2.2
+ */
+ oneway newBroadcastSms(RadioIndicationType type, vec<uint8_t> data);
+
+ /*
+ * Indicates that SMS storage on the RUIM is full. Messages
+ * cannot be saved on the RUIM until space is freed.
+ *
+ * @param type Type of radio indication
+ */
+ oneway cdmaRuimSmsStorageFull(RadioIndicationType type);
+
+ /*
+ * Indicates a restricted state change (eg, for Domain Specific Access Control).
+ * Radio must send this msg after radio off/on cycle no matter it is changed or not.
+ *
+ * @param type Type of radio indication
+ * @param state Bitmask of restricted state as defined by PhoneRestrictedState
+ */
+ oneway restrictedStateChanged(RadioIndicationType type, PhoneRestrictedState state);
+
+ /*
+ * Indicates that the radio system selection module has
+ * autonomously entered emergency callback mode.
+ *
+ * @param type Type of radio indication
+ */
+ oneway enterEmergencyCallbackMode(RadioIndicationType type);
+
+ /*
+ * Indicates when CDMA radio receives a call waiting indication.
+ *
+ * @param type Type of radio indication
+ * @param callWaitingRecord Cdma CallWaiting information
+ */
+ oneway cdmaCallWaiting(RadioIndicationType type, CdmaCallWaiting callWaitingRecord);
+
+ /*
+ * Indicates when CDMA radio receives an update of the progress of an OTASP/OTAPA call.
+ *
+ * @param type Type of radio indication
+ * @param status Cdma OTA provision status
+ */
+ oneway cdmaOtaProvisionStatus(RadioIndicationType type, CdmaOtaProvisionStatus status);
+
+ /*
+ * Indicates when CDMA radio receives one or more info recs.
+ *
+ * @param type Type of radio indication
+ * @param records New Cdma Information
+ */
+ oneway cdmaInfoRec(RadioIndicationType type, CdmaInformationRecords records);
+
+ /*
+ * This is for OEM specific use.
+ *
+ * @param type Type of radio indication
+ * @param data data passed as raw bytes
+ */
+ oneway oemHookRaw(RadioIndicationType type, vec<uint8_t> data);
+
+ /*
+ * Indicates that nework doesn't have in-band information, need to
+ * play out-band tone.
+ *
+ * @param type Type of radio indication
+ * @param start true = start play ringback tone, false = stop playing ringback tone
+ */
+ oneway indicateRingbackTone(RadioIndicationType type, bool start);
+
+ /*
+ * Indicates that framework/application must reset the uplink mute state.
+ *
+ * @param type Type of radio indication
+ */
+ oneway resendIncallMute(RadioIndicationType type);
+
+ /*
+ * Indicates when CDMA subscription source changed.
+ *
+ * @param type Type of radio indication
+ * @param cdmaSource New Cdma SubscriptionSource
+ */
+ oneway cdmaSubscriptionSourceChanged(RadioIndicationType type,
+ CdmaSubscriptionSource cdmaSource);
+
+ /*
+ * Indicates when PRL (preferred roaming list) changes.
+ *
+ * @param type Type of radio indication
+ * @param version PRL version after PRL changes
+ */
+ oneway cdmaPrlChanged(RadioIndicationType type, int32_t version);
+
+ /*
+ * Indicates when Emergency Callback Mode Ends.
+ * Indicates that the radio system selection module has
+ * proactively exited emergency callback mode.
+ *
+ * @param type Type of radio indication
+ */
+ oneway exitEmergencyCallbackMode(RadioIndicationType type);
+
+ /*
+ * TODO(Consider moving this to separate interface. Client will receive this function with an
+ * IRadioResponse interface so that all requests in that IRadioResponse will fail before
+ * rilConnected() is received)
+ *
+ * Indicates the ril connects and returns the version
+ *
+ * @param type Type of radio indication
+ */
+ oneway rilConnected(RadioIndicationType type);
+
+ /*
+ * Indicates that voice technology has changed. Responds with new rat.
+ *
+ * @param type Type of radio indication
+ * @param rat Current new voice rat
+ */
+ oneway voiceRadioTechChanged(RadioIndicationType type, RadioTechnology rat);
+
+ /*
+ * Same information as returned by getCellInfoList().
+ *
+ * @param type Type of radio indication
+ * @param records Current cell information known to radio
+ */
+ oneway cellInfoList(RadioIndicationType type, vec<CellInfo> records);
+
+ /*
+ * Indicates when IMS registration state has changed.
+ * To get IMS registration state and IMS SMS format, callee needs to invoke
+ * getImsRegistrationState()
+ *
+ * @param type Type of radio indication
+ */
+ oneway imsNetworkStateChanged(RadioIndicationType type);
+
+ /*
+ * Indicated when there is a change in subscription status.
+ * This event must be sent in the following scenarios
+ * - subscription readiness at modem, which was selected by telephony layer
+ * - when subscription is deactivated by modem due to UICC card removal
+ * - when network invalidates the subscription i.e. attach reject due to authentication reject
+ *
+ * @param type Type of radio indication
+ * @param activate false for subscription deactivated, true for subscription activated
+ */
+ oneway subscriptionStatusChanged(RadioIndicationType type, bool activate);
+
+ /*
+ * Indicates when Single Radio Voice Call Continuity (SRVCC)
+ * progress state has changed
+ *
+ * @param type Type of radio indication
+ * @param state New Srvcc State
+ */
+ oneway srvccStateNotify(RadioIndicationType type, SrvccState state);
+
+ /*
+ * Indicates when the hardware configuration associated with the RILd changes.
+ *
+ * @param type Type of radio indication
+ * @param configs Array of hardware configs
+ */
+ oneway hardwareConfigChanged(RadioIndicationType type, vec<HardwareConfig> configs);
+
+ /*
+ * Sent when setRadioCapability() completes.
+ * Returns the phone radio capability exactly as
+ * getRadioCapability() and must be the
+ * same set as sent by setRadioCapability().
+ *
+ * @param type Type of radio indication
+ * @param rc Current radio capability
+ */
+ oneway radioCapabilityIndication(RadioIndicationType type, RadioCapability rc);
+
+ /*
+ * Indicates when Supplementary service(SS) response is received when DIAL/USSD/SS is changed to
+ * SS by call control.
+ *
+ * @param type Type of radio indication
+ */
+ oneway onSupplementaryServiceIndication(RadioIndicationType type, StkCcUnsolSsResult ss);
+
+ /*
+ * Indicates when there is an ALPHA from UICC during Call Control.
+ *
+ * @param type Type of radio indication
+ * @param alpha ALPHA string from UICC in UTF-8 format
+ */
+ oneway stkCallControlAlphaNotify(RadioIndicationType type, string alpha);
+
+ /*
+ * Indicates when there is an incoming Link Capacity Estimate (LCE) info report.
+ *
+ * @param type Type of radio indication
+ * @param lce LceData information
+ */
+ oneway lceData(RadioIndicationType type, LceDataInfo lce);
+
+ /*
+ * Indicates when there is new Carrier PCO data received for a data call. Ideally
+ * only new data must be forwarded, though this is not required. Multiple
+ * boxes of carrier PCO data for a given call must result in a series of
+ * pcoData() calls.
+ *
+ * @param type Type of radio indication
+ * @param pco New PcoData
+ */
+ oneway pcoData(RadioIndicationType type, PcoDataInfo pco);
+
+ /*
+ * Indicates when there is a modem reset.
+ *
+ * When modem restarts, one of the following radio state transitions must happen
+ * 1) RadioState:ON->RadioState:UNAVAILABLE->RadioState:ON or
+ * 2) RadioState:OFF->RadioState:UNAVAILABLE->RadioState:OFF
+ * This message must be sent either just before the Radio State changes to RadioState:UNAVAILABLE
+ * or just after but must never be sent after the Radio State changes from RadioState:UNAVAILABLE
+ * to RadioState:ON/RadioState:OFF again.
+ * It must NOT be sent after the Radio state changes to RadioState:ON/RadioState:OFF after the
+ * modem restart as that may be interpreted as a second modem reset by the
+ * framework.
+ *
+ * @param type Type of radio indication
+ * @param reason the reason for the reset. It
+ * may be a crash signature if the restart was due to a crash or some
+ * string such as "user-initiated restart" or "AT command initiated
+ * restart" that explains the cause of the modem restart
+ */
+ oneway modemReset(RadioIndicationType type, string reason);
};
\ No newline at end of file
diff --git a/radio/1.0/types.hal b/radio/1.0/types.hal
index 013c76c..194733a 100644
--- a/radio/1.0/types.hal
+++ b/radio/1.0/types.hal
@@ -147,11 +147,14 @@
};
enum RadioResponseType : int32_t {
- RESPONSE_SOLICITED,
- RESPONSE_UNSOLICITED,
- RESPONSE_SOLICITED_ACK,
- RESPONSE_SOLICITED_ACK_EXP,
- RESPONSE_UNSOLICITED_ACK_EXP,
+ SOLICITED,
+ SOLICITED_ACK,
+ SOLICITED_ACK_EXP,
+};
+
+enum RadioIndicationType : int32_t {
+ UNSOLICITED,
+ UNSOLICITED_ACK_EXP,
};
enum RestrictedState : int32_t {
@@ -846,6 +849,78 @@
THREE_GPP2 // 3GPP2 Technologies - CDMA
};
+enum RadioCapabilityPhase : int32_t {
+ CONFIGURED = 0, // Logical Modem's (LM) initial value
+ // and value after FINISH completes
+ START = 1, // START is sent before APPLY and indicates that an
+ // APPLY is forthcoming with these same parameters
+ APPLY = 2, // APPLY is sent after all LM's receive START and returned
+ // RadioCapability.status = 0. If any START's fail, hal
+ // implementation must not send APPLY.
+ UNSOL_RSP = 3, // UNSOL_RSP is sent with unsol radioCapability()
+ FINISH = 4 // FINISH is sent after all commands have completed. If an
+ // error occurs in any previous command, the
+ // RadioAccessesFamily and logicalModemUuid fields must be
+ // the prior configuration thus restoring the configuration
+ // to the previous value. An error returned by FINISH
+ // will generally be ignored or may cause that logical
+ // modem to be removed from service.
+};
+
+enum RadioCapabilityStatus : int32_t {
+ NONE = 0, // This parameter has no meaning with
+ // RadioCapabilityPhase:START, RadioCapabilityPhase:APPLY
+ SUCCESS = 1, // Tell modem the action transaction of set radio
+ // capability was success with RadioCapabilityPhase:FINISH
+ FAIL = 2, // Tell modem the action transaction of set radio
+ // capability is fail with RadioCapabilityPhase:FINISH.
+};
+
+enum RadioAccessFamily : int32_t {
+ UNKNOWN = 1 << RadioTechnology:UNKNOWN,
+ GPRS = 1 << RadioTechnology:GPRS,
+ EDGE = 1 << RadioTechnology:EDGE,
+ UMTS = 1 << RadioTechnology:UMTS,
+ IS95A = 1 << RadioTechnology:IS95A,
+ IS95B = 1 << RadioTechnology:IS95B,
+ ONE_X_RTT = 1 << RadioTechnology:ONE_X_RTT,
+ EVDO_0 = 1 << RadioTechnology:EVDO_0,
+ EVDO_A = 1 << RadioTechnology:EVDO_A,
+ HSDPA = 1 << RadioTechnology:HSDPA,
+ HSUPA = 1 << RadioTechnology:HSUPA,
+ HSPA = 1 << RadioTechnology:HSPA,
+ EVDO_B = 1 << RadioTechnology:EVDO_B,
+ EHRPD = 1 << RadioTechnology:EHRPD,
+ LTE = 1 << RadioTechnology:LTE,
+ HSPAP = 1 << RadioTechnology:HSPAP,
+ GSM = 1 << RadioTechnology:GSM,
+ TD_SCDMA = 1 << RadioTechnology:TD_SCDMA,
+ LTE_CA = 1 << RadioTechnology:LTE_CA
+};
+
+enum UssdModeType : int32_t {
+ NOTIFY, // USSD-Notify
+ REQUEST, // USSD-Request
+ NW_RELEASE, // Session terminated by network
+ LOCAL_CLIENT, // other local client (eg, SIM Toolkit) has responded
+ NOT_SUPPORTED, // Operation not supported
+ NW_TIMEOUT, // Network timeout
+};
+
+enum SimRefreshType : int32_t {
+ SIM_FILE_UPDATE = 0, // A file on SIM has been updated.
+ SIM_INIT = 1, // SIM initialized. All files should be re-read.
+ SIM_RESET = 2 // SIM reset. SIM power required, SIM may be locked a
+ // nd all files must be re-read.
+};
+
+enum SrvccState :int32_t {
+ HANDOVER_STARTED = 0,
+ HANDOVER_COMPLETED = 1,
+ HANDOVER_FAILED = 2,
+ HANDOVER_CANCELED = 3
+};
+
enum UiccSubActStatus : int32_t {
DEACTIVATE,
ACTIVATE
@@ -863,6 +938,134 @@
THREE_GPP2
};
+enum PhoneRestrictedState : int32_t {
+ NONE = 0x00, // No restriction at all including voice/SMS/USSD/SS/AV64
+ // and packet data
+ CS_EMERGENCY = 0x01, // Block emergency call due to restriction. But allow all
+ // normal voice/SMS/USSD/SS/AV64.
+ CS_NORMAL = 0x02, // Block all normal voice/SMS/USSD/SS/AV64 due to
+ // restriction. Only Emergency call allowed.
+ CS_ALL = 0x04, // Block all voice/SMS/USSD/SS/AV64 including emergency
+ // call due to restriction.
+ PS_ALL = 0x10 // Block packet data access due to restriction.
+};
+
+enum CdmaCallWaitingNumberPresentation : int32_t {
+ ALLOWED = 0,
+ RESTRICTED = 1,
+ UNKNOWN = 2,
+};
+
+enum CdmaCallWaitingNumberType : int32_t {
+ UNKNOWN = 0,
+ INTERNATIONAL = 1,
+ NATIONAL = 2,
+ NETWORK_SPECIFIC = 3,
+ SUBSCRIBER = 4
+};
+
+enum CdmaCallWaitingNumberPlan : int32_t {
+ UNKNOWN = 0,
+ ISDN = 1,
+ DATA = 3,
+ TELEX = 4,
+ NATIONAL = 8,
+ PRIVATE = 9
+};
+
+enum CdmaOtaProvisionStatus : int32_t {
+ SPL_UNLOCKED,
+ SPC_RETRIES_EXCEEDED,
+ A_KEY_EXCHANGED,
+ SSD_UPDATED,
+ NAM_DOWNLOADED,
+ MDN_DOWNLOADED,
+ IMSI_DOWNLOADED,
+ PRL_DOWNLOADED,
+ COMMITTED,
+ OTAPA_STARTED,
+ OTAPA_STOPPED,
+ OTAPA_ABORTED
+};
+
+/* Names of the CDMA info records (C.S0005 section 3.7.5) */
+enum CdmaInfoRecName : int32_t {
+ DISPLAY,
+ CALLED_PARTY_NUMBER,
+ CALLING_PARTY_NUMBER,
+ CONNECTED_NUMBER,
+ SIGNAL,
+ REDIRECTING_NUMBER,
+ LINE_CONTROL,
+ EXTENDED_DISPLAY,
+ T53_CLIR,
+ T53_RELEASE,
+ T53_AUDIO_CONTROL
+};
+
+/* Redirecting Number Information Record as defined in C.S0005 section 3.7.5.11 */
+enum CdmaRedirectingReason : int32_t {
+ UNKNOWN = 0,
+ CALL_FORWARDING_BUSY = 1,
+ CALL_FORWARDING_NO_REPLY = 2,
+ CALLED_DTE_OUT_OF_ORDER = 9,
+ CALL_FORWARDING_BY_THE_CALLED_DTE = 10,
+ CALL_FORWARDING_UNCONDITIONAL = 15,
+ RESERVED
+};
+
+enum SsServiceType : int32_t {
+ CFU,
+ CF_BUSY,
+ CF_NO_REPLY,
+ CF_NOT_REACHABLE,
+ CF_ALL,
+ CF_ALL_CONDITIONAL,
+ CLIP,
+ CLIR,
+ COLP,
+ COLR,
+ WAIT,
+ BAOC,
+ BAOIC,
+ BAOIC_EXC_HOME,
+ BAIC,
+ BAIC_ROAMING,
+ ALL_BARRING,
+ OUTGOING_BARRING,
+ INCOMING_BARRING
+};
+
+enum SsRequestType : int32_t {
+ ACTIVATION,
+ DEACTIVATION,
+ INTERROGATION,
+ REGISTRATION,
+ ERASURE
+};
+
+enum SsTeleserviceType : int32_t {
+ ALL_TELE_AND_BEARER_SERVICES,
+ ALL_TELESEVICES,
+ TELEPHONY,
+ ALL_DATA_TELESERVICES,
+ SMS_SERVICES,
+ ALL_TELESERVICES_EXCEPT_SMS
+};
+
+enum SuppServiceClass : int32_t {
+ NONE = 0,
+ VOICE = 1 << 0,
+ DATA = 1 << 1,
+ FAX = 1 << 2,
+ SMS = 1 << 3,
+ DATA_SYNC = 1 << 4,
+ DATA_ASYNC = 1 << 5,
+ PACKET = 1 << 6,
+ PAD = 1 << 7,
+ MAX = 1 << 7
+};
+
struct RadioResponseInfo {
RadioResponseType type; // Response type
int32_t serial; // Serial number of the request
@@ -1283,7 +1486,7 @@
};
struct CdmaSmsWriteArgs {
- CdmaSmsWriteArgsStatus status; // Status of message. See TS 27.005 3.1
+ CdmaSmsWriteArgsStatus status; // Status of message. See TS 27.005 3.1
CdmaSmsMessage message;
};
@@ -1408,7 +1611,7 @@
bool registered; // true if this cell is registered false if not registered
TimeStampType timeStampType; // type of time stamp represented by timeStamp
uint64_t timeStamp; // Time in nanos as returned by ril_nano_time
- // Only 1 of the below vectors must be of size 1 based on the CellInfoType & others must be
+ // Only one of the below vectors must be of size 1 based on the CellInfoType & others must be
// of size 0
vec<CellInfoGsm> gsm; // Valid only if type = gsm and size = 1 else must be empty
vec<CellInfoCdma> cdma; // Valid only if type = cdma and size = 1 else must be
@@ -1435,7 +1638,7 @@
int32_t messageRef; // Valid field if retry is set to true.
// Contains messageRef from SendSmsResult stuct
// corresponding to failed MO SMS.
- // Only 1 of the below vectors must be of size 1 based on the RadioTechnologyFamily & others
+ // Only one of the below vectors must be of size 1 based on the RadioTechnologyFamily & others
// must be of size 0
vec<CdmaSmsMessage> cdmaMessage; // Valid field if tech is 3GPP2 and size = 1 else must be
// empty
@@ -1488,7 +1691,7 @@
string uuid; // RadioConst:MAX_UUID_LENGTH is max length of the
// string
HardwareConfigState state;
- // Only 1 of the below vectors must have size = 1 based on the HardwareConfigType and other
+ // Only one of the below vectors must have size = 1 based on the HardwareConfigType and other
// must have size = 0.
vec<HardwareConfigModem> modem; // Valid only if type is Modem and size = 1 else must be
// empty
@@ -1514,56 +1717,6 @@
bool enabled; // True to enable the profile, false to disable
};
-enum RadioCapabilityPhase : int32_t {
- CONFIGURED = 0, // LM is configured is initial value and value after
- // FINISH completes
- START = 1, // START is sent before Apply and indicates that an
- // APPLY will be
- // forthcoming with these same parameters
- APPLY = 2, // APPLY is sent after all LM's receive START and returned
- // RadioCapability.status = 0, if any START's fail no
- // APPLY will be sent
- UNSOL_RSP = 3, // UNSOL_RSP is sent with unsol radioCapability()
- FINISH = 4 // FINISH is sent after all commands have completed. If an
- // error occurs in any previous command the
- // RadioAccessesFamily and logicalModemUuid fields will be
- // the prior configuration thus restoring the configuration
- // to the previous value. An error returned by this command
- // will generally be ignored or may cause that logical
- // modem to be removed from service.
-};
-
-enum RadioCapabilityStatus : int32_t {
- NONE = 0, // This parameter has no meaning with RC_PHASE_START,
- // RadioCapabilityPhase:APPLY
- SUCCESS = 1, // Tell modem the action transaction of set radio
- // capability was success with RadioCapabilityPhase:FINISH
- FAIL = 2, // Tell modem the action transaction of set radio
- // capability is fail with RadioCapabilityPhase:FINISH.
-};
-
-enum RadioAccessFamily : int32_t {
- UNKNOWN = (1 << RadioTechnology:UNKNOWN),
- GPRS = (1 << RadioTechnology:GPRS),
- EDGE = (1 << RadioTechnology:EDGE),
- UMTS = (1 << RadioTechnology:UMTS),
- IS95A = (1 << RadioTechnology:IS95A),
- IS95B = (1 << RadioTechnology:IS95B),
- ONE_X_RTT = (1 << RadioTechnology:ONE_X_RTT),
- EVDO_0 = (1 << RadioTechnology:EVDO_0),
- EVDO_A = (1 << RadioTechnology:EVDO_A),
- HSDPA = (1 << RadioTechnology:HSDPA),
- HSUPA = (1 << RadioTechnology:HSUPA),
- HSPA = (1 << RadioTechnology:HSPA),
- EVDO_B = (1 << RadioTechnology:EVDO_B),
- EHRPD = (1 << RadioTechnology:EHRPD),
- LTE = (1 << RadioTechnology:LTE),
- HSPAP = (1 << RadioTechnology:HSPAP),
- GSM = (1 << RadioTechnology:GSM),
- TD_SCDMA = (1 << RadioTechnology:TD_SCDMA),
- LTE_CA = (1 << RadioTechnology:LTE_CA)
-};
-
struct RadioCapability {
int32_t session; // Unique session value defined by framework returned in
// all "responses/unsol"
@@ -1626,3 +1779,156 @@
// is ABCD, all carriers with the same mcc/mnc are
// allowed.
};
+
+struct SuppSvcNotification {
+ bool isMT; // notification type
+ // false = MO intermediate result code
+ // true = MT unsolicited result code
+ bool isCode1; // See 27.007 7.17
+ // true = "code1" for MO
+ // false = "code2" for MT
+ int32_t index; // CUG index. See 27.007 7.17.
+ int32_t type; // "type" from 27.007 7.17 (MT only).
+ string number; // "number" from 27.007 7.17
+ // (MT only, may be empty string).
+};
+
+struct SimRefreshResult {
+ SimRefreshType type;
+ int32_t efId; // is the EFID of the updated file if the result is
+ // SIM_FILE_UPDATE or 0 for any other result.
+ string aid; // is AID(application ID) of the card application
+ // See ETSI 102.221 8.1 and 101.220 4
+ // For SIM_FILE_UPDATE result it must be set to AID of
+ // application in which updated EF resides or it must be
+ // empty string if EF is outside of an application.
+ // For SIM_INIT result this field is set to AID of
+ // application that caused REFRESH
+ // For SIM_RESET result it is empty string.
+};
+
+/* CDMA Signal Information Record as defined in C.S0005 section 3.7.5.5 */
+struct CdmaSignalInfoRecord {
+ bool isPresent; // true if signal information record is present
+ int8_t signalType; // as defined 3.7.5.5-1
+ int8_t alertPitch; // as defined 3.7.5.5-2
+ int8_t signal; // as defined 3.7.5.5-3, 3.7.5.5-4 or 3.7.5.5-5
+};
+
+struct CdmaCallWaiting {
+ string number; // Remote party number
+ CdmaCallWaitingNumberPresentation numberPresentation;
+ string name; // Remote party name
+ CdmaSignalInfoRecord signalInfoRecord;
+ // Number type/Number plan required to support International Call Waiting
+ CdmaCallWaitingNumberType numbertype;
+ CdmaCallWaitingNumberPlan numberPlan;
+};
+
+/*
+ * Display Info Rec as defined in C.S0005 section 3.7.5.1
+ * Extended Display Info Rec as defined in C.S0005 section 3.7.5.16
+ * Note: the Extended Display info rec contains multiple records of the
+ * form: display_tag, display_len, and display_len occurrences of the
+ * char field if the display_tag is not 10000000 or 10000001.
+ * To save space, the records are stored consecutively in a byte buffer.
+ * The display_tag, display_len and chari fields are all 1 byte.
+ */
+struct CdmaDisplayInfoRecord {
+ string alphaBuf; // Max length = RadioConst:CDMA_ALPHA_INFO_BUFFER_LENGTH
+};
+
+/*
+ * Called Party Number Info Rec as defined in C.S0005 section 3.7.5.2
+ * Calling Party Number Info Rec as defined in C.S0005 section 3.7.5.3
+ * Connected Number Info Rec as defined in C.S0005 section 3.7.5.4
+ */
+struct CdmaNumberInfoRecord {
+ string number; // Max length = RADIP_CDMA_NUMBER_INFO_BUFFER_LENGTH
+ uint8_t numberType;
+ uint8_t numberPlan;
+ uint8_t pi;
+ uint8_t si;
+};
+
+struct CdmaRedirectingNumberInfoRecord{
+ CdmaNumberInfoRecord redirectingNumber;
+ CdmaRedirectingReason redirectingReason; // redirectingReason is set to UNKNOWN if not included
+};
+
+/* Line Control Information Record as defined in C.S0005 section 3.7.5.15 */
+struct CdmaLineControlInfoRecord {
+ uint8_t lineCtrlPolarityIncluded;
+ uint8_t lineCtrlToggle;
+ uint8_t lineCtrlReverse;
+ uint8_t lineCtrlPowerDenial;
+};
+
+/* T53 CLIR Information Record */
+struct CdmaT53ClirInfoRecord {
+ uint8_t cause;
+};
+
+/* T53 Audio Control Information Record */
+struct CdmaT53AudioControlInfoRecord {
+ uint8_t upLink;
+ uint8_t downLink;
+};
+
+struct CdmaInformationRecord {
+ CdmaInfoRecName name;
+ // Only one of the below vectors must have size = 1 based on the
+ // CdmaInfoRecName. All other vectors must have size 0.
+ vec<CdmaDisplayInfoRecord> display; // Display and Extended Display Info Rec
+ vec<CdmaNumberInfoRecord> number; // Called Party Number, Calling Party Number, Connected
+ // number Info Rec
+ vec<CdmaSignalInfoRecord> signal; // Signal Info Rec
+ vec<CdmaRedirectingNumberInfoRecord> redir; // Redirecting Number Info Rec
+ vec<CdmaLineControlInfoRecord> lineCtrl; // Line Control Info Rec
+ vec<CdmaT53ClirInfoRecord> clir; // T53 CLIR Info Rec
+ vec<CdmaT53AudioControlInfoRecord> audioCtrl; // T53 Audio Control Info Rec
+};
+
+struct CdmaInformationRecords {
+ vec<CdmaInformationRecord> infoRec; // Max length = RadioConst:CDMA_MAX_NUMBER_OF_INFO_RECS
+};
+
+struct CfData {
+ vec<CallForwardInfo> cfInfo; // This is the response data
+ // for SS request to query call
+ // forward status. see getCallForwardStatus()
+ // Max size = RadioConst:NUM_SERVICE_CLASSES
+};
+
+struct SsInfoData {
+ vec<int32_t> ssInfo; // This is the response data for all of the SS GET/SET
+ // Radio requests. E.g. IRadio.getClir() returns
+ // two ints, so first two values of ssInfo[] will be
+ // used for response if serviceType is SS_CLIR and
+ // requestType is SS_INTERROGATION
+ // Max size = RadioConst:SS_INFO_MAX
+};
+
+struct StkCcUnsolSsResult {
+ SsServiceType serviceType;
+ SsRequestType requestType;
+ SsTeleserviceType teleserviceType;
+ SuppServiceClass serviceClass;
+ RadioError result;
+ // Only one of the below vectors may contain values and other must be empty
+ vec<SsInfoData> ssInfo; // Valid only for all SsserviceType except
+ // SsServiceType:CF_* else empty.
+ vec<CfData> cfData; // Valid for SsServiceType:CF_* else empty
+};
+
+struct PcoDataInfo {
+ int32_t cid; // Context ID, uniquely identifies this call
+ string bearerProto; // One of the PDP_type values in TS 27.007 section 10.1.1.
+ // For example, "IP", "IPV6", "IPV4V6"
+ int32_t pcoId; // The protocol ID for this box. Note that only IDs from
+ // FF00H - FFFFH are accepted. If more than one is
+ // included from the network, multiple calls must be made
+ // to send all of them.
+ vec<uint8_t> contents; // Carrier-defined content. It is binary, opaque and
+ // loosely defined in LTE Layer 3 spec 24.008
+};
\ No newline at end of file
diff --git a/soundtrigger/2.0/Android.bp b/soundtrigger/2.0/Android.bp
index d59e47f..79ae797 100644
--- a/soundtrigger/2.0/Android.bp
+++ b/soundtrigger/2.0/Android.bp
@@ -56,5 +56,6 @@
"libhidl",
"libhwbinder",
"libutils",
+ "android.hardware.audio.common@2.0",
],
}
diff --git a/tests/bar/1.0/Android.bp b/tests/bar/1.0/Android.bp
index a0b42b7..97693fb 100644
--- a/tests/bar/1.0/Android.bp
+++ b/tests/bar/1.0/Android.bp
@@ -52,5 +52,6 @@
"libhidl",
"libhwbinder",
"libutils",
+ "android.hardware.tests.foo@1.0",
],
}
diff --git a/tv/input/1.0/Android.bp b/tv/input/1.0/Android.bp
index 0b63f31..512634b 100644
--- a/tv/input/1.0/Android.bp
+++ b/tv/input/1.0/Android.bp
@@ -56,5 +56,6 @@
"libhidl",
"libhwbinder",
"libutils",
+ "android.hardware.audio.common@2.0",
],
}
diff --git a/vehicle/2.0/types.hal b/vehicle/2.0/types.hal
index cb551c1..b19621c 100644
--- a/vehicle/2.0/types.hal
+++ b/vehicle/2.0/types.hal
@@ -296,6 +296,20 @@
| VehicleArea:GLOBAL),
/*
+ * State of the vehicles turn signals
+ *
+ * Values from VehicleTurnSignal
+ *
+ * @change_mode VehiclePropertyChangeMode:ON_CHANGE
+ * @access VehiclePropertyAccess:READ
+ */
+ TURN_SIGNAL_STATE = (
+ 0x0408
+ | VehiclePropertyGroup:SYSTEM
+ | VehiclePropertyType:INT32
+ | VehicleArea:GLOBAL),
+
+ /*
* Fan speed setting
*
* @change_mode VehiclePropertyChangeMode:ON_CHANGE
@@ -2420,8 +2434,9 @@
UNDEFINED = 0x0,
/*
- * Subscribe to event that was originated in vehicle HAL (most luckly this
- * event came from vehicle itself). */
+ * Subscribe to event that was originated in vehicle HAL
+ * (most likely this event came from the vehicle itself).
+ */
HAL_EVENT = 0x1,
/*
@@ -2457,9 +2472,7 @@
*/
float sampleRate;
- /*
- * Flags that indicates what kind of events listen to.
- */
+ /* Flags that indicate what kind of events listen to. */
SubscribeFlags flags;
};
diff --git a/wifi/supplicant/1.0/ISupplicant.hal b/wifi/supplicant/1.0/ISupplicant.hal
index 64bbd7b..32d73da 100644
--- a/wifi/supplicant/1.0/ISupplicant.hal
+++ b/wifi/supplicant/1.0/ISupplicant.hal
@@ -141,4 +141,19 @@
* @return enabled true if set, false otherwise.
*/
isDebugShowKeysEnabled() generates (bool enabled);
+
+ /**
+ * Set concurrency priority.
+ *
+ * When both P2P and STA mode ifaces are active, this must be used
+ * to prioritize either STA or P2P connection to resolve conflicts
+ * arising during single channel concurrency.
+ *
+ * @param type The type of iface to prioritize.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|
+ */
+ setConcurrencyPriority(IfaceType type) generates (SupplicantStatus status);
};
diff --git a/wifi/supplicant/1.0/ISupplicantP2pIface.hal b/wifi/supplicant/1.0/ISupplicantP2pIface.hal
index 06cd30e..48a4f5b 100644
--- a/wifi/supplicant/1.0/ISupplicantP2pIface.hal
+++ b/wifi/supplicant/1.0/ISupplicantP2pIface.hal
@@ -24,6 +24,36 @@
* interface (e.g p2p0) it controls.
*/
interface ISupplicantP2pIface extends ISupplicantIface {
+ enum WpsProvisionMethod : uint32_t {
+ /**
+ * Push button method.
+ */
+ PBC,
+ /**
+ * Display pin method configuration - pin is generated and displayed on
+ * device.
+ */
+ DISPLAY,
+ /**
+ * Keypad pin method configuration - pin is entered on device.
+ */
+ KEYPAD,
+ /**
+ * Label pin method configuration - pin is labelled on device.
+ */
+ LABEL
+ };
+
+ enum GroupCapabilityMask : uint32_t {
+ GROUP_OWNER = 1 << 0,
+ PERSISTENT_GROUP = 1 << 1,
+ GROUP_LIMIT = 1 << 2,
+ INTRA_BSS_DIST = 1 << 3,
+ CROSS_CONN = 1 << 4,
+ PERSISTENT_RECONN = 1 << 5,
+ GROUP_FORMATION = 1 << 6
+ };
+
/**
* Register for callbacks from this interface.
*
@@ -42,4 +72,419 @@
*/
registerCallback(ISupplicantP2pIfaceCallback callback)
generates (SupplicantStatus status);
+
+ /**
+ * Gets the MAC address of the device.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ * @return deviceAddress MAC address of the device.
+ */
+ getDeviceAddress()
+ generates (SupplicantStatus status, MacAddress deviceAddress);
+
+ /**
+ * Set the postfix to be used for P2P SSID's.
+ *
+ * @param postfix String to be appended to SSID.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ setSsidPostfix(string postfix) generates (SupplicantStatus status);
+
+ /**
+ * Set the Maximum idle time in seconds for P2P groups.
+ * This value controls how long a P2P group is maintained after there
+ * is no other members in the group. As a group owner, this means no
+ * associated stations in the group. As a P2P client, this means no
+ * group owner seen in scan results.
+ *
+ * @param timeoutInSec Timeout value in seconds.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ setGroupIdle(uint32_t timeoutInSec) generates (SupplicantStatus status);
+
+ /**
+ * Turn on/off power save mode for the interface.
+ *
+ * @param enable Indicate if power save is to be turned on/off.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
+ * |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
+ */
+ setPowerSave(bool enable) generates (SupplicantStatus status);
+
+ /**
+ * Initiate a P2P service discovery with an optional timeout.
+ *
+ * @param timeoutInSec Max time to be spent is peforming discovery.
+ * Set to 0 to indefinely continue discovery untill and explicit
+ * |stopFind| is sent.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ find(uint32_t timeoutInSec) generates (SupplicantStatus status);
+
+ /**
+ * Stop an ongoing P2P service discovery.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ stopFind() generates (SupplicantStatus status);
+
+ /**
+ * Flush P2P peer table and state.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ flush() generates (SupplicantStatus status);
+
+ /**
+ * Start P2P group formation with a discovered P2P peer. This includes
+ * optional group owner negotiation, group interface setup, provisioning,
+ * and establishing data connection.
+ *
+ * @param peerAddress MAC address of the device to connect to.
+ * @method provisionMethod Provisioning method to use.
+ * @param preSelectedPin Pin to be used, if |provisionMethod| uses one of the
+ * preselected |PIN*| methods.
+ * @param joinExistingGroup Indicates that this is a command to join an
+ * existing group as a client. It skips the group owner negotiation
+ * part. This must send a Provision Discovery Request message to the
+ * target group owner before associating for WPS provisioning.
+ * @param persistent Used to request a persistent group to be formed.
+ * @param goIntent Used to override the default Intent for this group owner
+ * negotiation (Values from 1-15). Refer to section 4.1.6 in
+ * Wi-Fi Peer-to-Peer (P2P) Technical Specification Version 1.7.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ * @return generatedPin Pin generated, if |provisionMethod| uses one of the
+ * generated |PIN*| methods.
+ */
+ connect(MacAddress peerAddress,
+ WpsProvisionMethod provisionMethod,
+ vec<uint8_t> preSelectedPin,
+ bool joinExistingGroup,
+ bool persistent,
+ uint32_t goIntent)
+ generates (SupplicantStatus status, vec<uint8_t> generatedPin);
+
+ /**
+ * Cancel an ongoing P2P group formation and joining-a-group related
+ * operation. This operation unauthorizes the specific peer device (if any
+ * had been authorized to start group formation), stops P2P find (if in
+ * progress), stops pending operations for join-a-group, and removes the
+ * P2P group interface (if one was used) that is in the WPS provisioning
+ * step. If the WPS provisioning step has been completed, the group is not
+ * terminated.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NOT_STARTED|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ cancelConnect() generates (SupplicantStatus status);
+
+ /**
+ * Send P2P provision discovery request to the specified peer. The
+ * parameters for this command are the P2P device address of the peer and the
+ * desired configuration method.
+ *
+ * @param peerAddress MAC address of the device to send discovery.
+ * @method provisionMethod Provisioning method to use.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ provisionDiscovery(MacAddress peerAddress,
+ WpsProvisionMethod provisionMethod)
+ generates (SupplicantStatus status);
+
+ /**
+ * Set up a P2P group owner manually (i.e., without group owner
+ * negotiation with a specific peer). This is also known as autonomous
+ * group owner. Optional |persistent| may be used to specify restart of a
+ * persistent group.
+ *
+ * @param persistent Used to request a persistent group to be formed.
+ * @param persistentNetworkId Used to specify the restart of a persistent
+ * group.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ addGroup(bool persistent, SupplicantNetworkId persistentNetworkId)
+ generates (SupplicantStatus status);
+
+ /**
+ * Terminate a P2P group. If a new virtual network interface was used for
+ * the group, it must also be removed. The network interface name of the
+ * group interface is used as a parameter for this command.
+ *
+ * @param groupIfName Group interface name to use.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ removeGroup(string groupIfName) generates (SupplicantStatus status);
+
+ /**
+ * Reject connection attempt from a peer (specified with a device
+ * address). This is a mechanism to reject a pending group owner negotiation
+ * with a peer and request to automatically block any further connection or
+ * discovery of the peer.
+ *
+ * @param peerAddress MAC address of the device to reject.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ reject(MacAddress peerAddress) generates (SupplicantStatus status);
+
+ /**
+ * Invite a device to a persistent group.
+ * If the peer device is the group owner of the persistent group, the peer
+ * parameter is not needed. Otherwise it is used to specify which
+ * device to invite. |goDeviceAddress| parameter may be used to override
+ * the group owner device address for Invitation Request should it not be
+ * known for some reason (this should not be needed in most cases).
+ *
+ * @param groupIfName Group interface name to use.
+ * @param goDeviceAddress MAC address of the group owner device.
+ * @param peerAddress MAC address of the device to invite.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ invite(string groupIfName, MacAddress goDeviceAddress, MacAddress peerAddress)
+ generates (SupplicantStatus status);
+
+ /**
+ * Reinvoke a device from a persistent group.
+ *
+ * @param persistentNetworkId Used to specify the persistent group.
+ * @param peerAddress MAC address of the device to reinvoke.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ reinvoke(SupplicantNetworkId persistentNetworkId, MacAddress peerAddress)
+ generates (SupplicantStatus status);
+
+ /**
+ * Configure Extended Listen Timing.
+ *
+ * If enabled, listen state must be entered every |intervalInMillis| for at
+ * least |periodInMillis|. Both values have acceptable range of 1-65535
+ * (with interval obviously having to be larger than or equal to duration).
+ * If the P2P module is not idle at the time the Extended Listen Timing
+ * timeout occurs, the Listen State operation must be skipped.
+ *
+ * @param periodInMillis Period in milliseconds.
+ * @param intervalInMillis Interval in milliseconds.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ configureExtListen(bool enable,
+ uint32_t periodInMillis,
+ uint32_t intervalInMillis)
+ generates (SupplicantStatus status);
+
+ /**
+ * Set P2P Listen channel.
+ *
+ * When specifying a social channel on the 2.4 GHz band (1/6/11) there is no
+ * need to specify the operating class since it defaults to 81. When
+ * specifying a social channel on the 60 GHz band (2), specify the 60 GHz
+ * operating class (180).
+ *
+ * @param channel Wifi channel. eg, 1, 6, 11.
+ * @param operatingClass Operating Class indicates the channel set of the AP
+ * indicated by this BSSID
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ setListenChannel(uint32_t channel, uint32_t operatingClass)
+ generates (SupplicantStatus status);
+
+ /**
+ * Gets the operational SSID of the device.
+ *
+ * @param peerAddress MAC address of the peer.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ * @return ssid SSID of the device
+ */
+ getSsid(MacAddress peerAddress)
+ generates (SupplicantStatus status, Ssid ssid);
+
+ /**
+ * Gets the capability of the group which the device is a
+ * member of.
+ *
+ * @param peerAddress MAC address of the peer.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ * @return capabilityMask Combination of |GroupCapabilityMask| values.
+ */
+ getGroupCapability(MacAddress peerAddress)
+ generates (SupplicantStatus status, uint32_t capabilities);
+
+ /**
+ * This command can be used to add a bonjour service.
+ *
+ * @param query Hex dump of the query data.
+ * @param return Hex dump of the response data.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ addBonjourService(vec<uint8_t> query, vec<uint8_t> response)
+ generates (SupplicantStatus status);
+
+ /**
+ * This command can be used to remove a bonjour service.
+ *
+ * @param query Hex dump of the query data.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NOT_STARTED|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ removeBonjourService(vec<uint8_t> query) generates (SupplicantStatus status);
+
+ /**
+ * This command can be used to add a UPNP service.
+ *
+ * @param version Version to be used.
+ * @package serviceName Service name to be used.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ addUpnpService(uint32_t version, string serviceName)
+ generates (SupplicantStatus status);
+
+ /**
+ * This command can be used to remove a UPNP service.
+ *
+ * @param version Version to be used.
+ * @package serviceName Service name to be used.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NOT_STARTED|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ removeUpnpService(uint32_t version, string serviceName)
+ generates (SupplicantStatus status);
+
+ /**
+ * This command can be used to flush all services from the
+ * device.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ flushServices(uint32_t version, string serviceName)
+ generates (SupplicantStatus status);
+
+ /**
+ * Schedule a P2P service discovery request. The parameters for this command
+ * are the device address of the peer device (or 00:00:00:00:00:00 for
+ * wildcard query that is sent to every discovered P2P peer that supports
+ * service discovery) and P2P Service Query TLV(s) as hexdump.
+ *
+ * @param peerAddress MAC address of the device to discover.
+ * @param query Hex dump of the query data.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ * @return identifier Identifier for the request. Can be used to cancel the
+ * request.
+ */
+ requestServiceDiscovery(MacAddress peerAddress, vec<uint8_t> query)
+ generates (SupplicantStatus status, uint64_t identifier);
+
+ /**
+ * Cancel a previous service discovery request.
+ *
+ * @return identifier Identifier for the request to cancel.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NOT_STARTED|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ cancelServiceDiscovery(uint64_t identifier)
+ generates (SupplicantStatus status);
};
diff --git a/wifi/supplicant/1.0/ISupplicantStaNetwork.hal b/wifi/supplicant/1.0/ISupplicantStaNetwork.hal
index d159c57..e414a07 100644
--- a/wifi/supplicant/1.0/ISupplicantStaNetwork.hal
+++ b/wifi/supplicant/1.0/ISupplicantStaNetwork.hal
@@ -150,6 +150,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -162,6 +163,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -187,6 +189,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -200,6 +203,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -213,6 +217,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -226,6 +231,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -240,6 +246,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -255,6 +262,7 @@
* |ParamSizeLimits.PSK_PASSPHRASE_MAX_LEN_IN_BYTES|.
* @return status Status of the operation.
* Possible status codes:
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.SUCCESS|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
@@ -273,6 +281,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -287,6 +296,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -313,6 +323,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -327,6 +338,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -340,6 +352,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -353,6 +366,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -366,6 +380,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -379,6 +394,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -391,6 +407,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -403,6 +420,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -415,6 +433,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -427,6 +446,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -439,6 +459,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -464,6 +485,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/
@@ -476,6 +498,7 @@
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_ARGS_INVALID|,
* |SupplicantStatusCode.FAILURE_UNKNOWN|,
* |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
*/