summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CleanSpec.mk2
-rw-r--r--audio/2.0/default/ParametersUtil.cpp24
-rw-r--r--audio/2.0/default/android.hardware.audio@2.0-service.rc2
-rw-r--r--audio/2.0/vts/OWNERS5
-rw-r--r--audio/2.0/vts/functional/ValidateAudioConfiguration.cpp16
-rw-r--r--audio/common/test/OWNERS5
-rw-r--r--audio/common/test/utility/include/utility/ValidateXml.h35
-rw-r--r--audio/common/test/utility/src/ValidateXml.cpp42
-rw-r--r--audio/effect/2.0/vts/OWNERS5
-rw-r--r--audio/effect/2.0/vts/functional/Android.bp1
-rw-r--r--audio/effect/2.0/vts/functional/ValidateAudioEffectsConfiguration.cpp14
-rw-r--r--automotive/evs/1.0/default/ServiceNames.h2
-rw-r--r--automotive/evs/1.0/default/android.hardware.automotive.evs@1.0-service.rc2
-rw-r--r--automotive/evs/1.0/vts/functional/Android.bp2
-rw-r--r--automotive/vehicle/2.0/Android.bp2
-rw-r--r--automotive/vehicle/2.0/Android.mk1282
-rw-r--r--automotive/vehicle/2.0/default/OWNERS3
-rw-r--r--automotive/vehicle/2.0/default/android.hardware.automotive.vehicle@2.0-service.rc2
-rw-r--r--automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h131
-rw-r--r--automotive/vehicle/2.0/types.hal227
-rw-r--r--biometrics/fingerprint/2.1/default/android.hardware.biometrics.fingerprint@2.1-service.rc2
-rw-r--r--bluetooth/1.0/default/android.hardware.bluetooth@1.0-service.rc10
-rw-r--r--boot/1.0/default/android.hardware.boot@1.0-service.rc2
-rw-r--r--broadcastradio/1.1/vts/OWNERS2
-rw-r--r--broadcastradio/1.1/vts/functional/Android.bp4
-rw-r--r--broadcastradio/1.2/Android.bp24
-rw-r--r--broadcastradio/1.2/IBroadcastRadioFactory.hal29
-rw-r--r--broadcastradio/1.2/ITuner.hal70
-rw-r--r--broadcastradio/1.2/ITunerCallback.hal36
-rw-r--r--broadcastradio/1.2/default/Android.bp (renamed from broadcastradio/1.1/default/Android.bp)7
-rw-r--r--broadcastradio/1.2/default/BroadcastRadio.cpp (renamed from broadcastradio/1.1/default/BroadcastRadio.cpp)9
-rw-r--r--broadcastradio/1.2/default/BroadcastRadio.h (renamed from broadcastradio/1.1/default/BroadcastRadio.h)12
-rw-r--r--broadcastradio/1.2/default/BroadcastRadioFactory.cpp (renamed from broadcastradio/1.1/default/BroadcastRadioFactory.cpp)8
-rw-r--r--broadcastradio/1.2/default/BroadcastRadioFactory.h (renamed from broadcastradio/1.1/default/BroadcastRadioFactory.h)18
-rw-r--r--broadcastradio/1.2/default/OWNERS (renamed from broadcastradio/1.1/utils/OWNERS)1
-rw-r--r--broadcastradio/1.2/default/Tuner.cpp (renamed from broadcastradio/1.1/default/Tuner.cpp)39
-rw-r--r--broadcastradio/1.2/default/Tuner.h (renamed from broadcastradio/1.1/default/Tuner.h)33
-rw-r--r--broadcastradio/1.2/default/VirtualProgram.cpp (renamed from broadcastradio/1.1/default/VirtualProgram.cpp)7
-rw-r--r--broadcastradio/1.2/default/VirtualProgram.h (renamed from broadcastradio/1.1/default/VirtualProgram.h)20
-rw-r--r--broadcastradio/1.2/default/VirtualRadio.cpp (renamed from broadcastradio/1.1/default/VirtualRadio.cpp)5
-rw-r--r--broadcastradio/1.2/default/VirtualRadio.h (renamed from broadcastradio/1.1/default/VirtualRadio.h)12
-rw-r--r--broadcastradio/1.2/default/android.hardware.broadcastradio@1.2-service.rc (renamed from broadcastradio/1.1/default/android.hardware.broadcastradio@1.1-service.rc)2
-rw-r--r--broadcastradio/1.2/default/resources.h (renamed from broadcastradio/1.1/default/resources.h)10
-rw-r--r--broadcastradio/1.2/default/service.cpp (renamed from broadcastradio/1.1/default/service.cpp)2
-rw-r--r--broadcastradio/1.2/types.hal23
-rw-r--r--broadcastradio/1.2/vts/OWNERS (renamed from broadcastradio/1.1/tests/OWNERS)3
-rw-r--r--broadcastradio/1.2/vts/functional/Android.bp29
-rw-r--r--broadcastradio/1.2/vts/functional/VtsHalBroadcastradioV1_2TargetTest.cpp312
-rw-r--r--broadcastradio/Android.bp10
-rw-r--r--broadcastradio/common/tests/Android.bp (renamed from broadcastradio/1.1/tests/Android.bp)6
-rw-r--r--broadcastradio/common/tests/OWNERS7
-rw-r--r--broadcastradio/common/tests/WorkerThread_test.cpp (renamed from broadcastradio/1.1/tests/WorkerThread_test.cpp)0
-rw-r--r--broadcastradio/common/utils/Android.bp (renamed from broadcastradio/1.1/utils/Android.bp)2
-rw-r--r--broadcastradio/common/utils/OWNERS (renamed from broadcastradio/1.1/default/OWNERS)1
-rw-r--r--broadcastradio/common/utils/Utils.cpp (renamed from broadcastradio/1.1/utils/Utils.cpp)10
-rw-r--r--broadcastradio/common/utils/WorkerThread.cpp (renamed from broadcastradio/1.1/utils/WorkerThread.cpp)0
-rw-r--r--broadcastradio/common/utils/include/broadcastradio-utils/Utils.h (renamed from broadcastradio/1.1/utils/include/broadcastradio-utils/Utils.h)29
-rw-r--r--broadcastradio/common/utils/include/broadcastradio-utils/WorkerThread.h (renamed from broadcastradio/1.1/utils/include/broadcastradio-utils/WorkerThread.h)6
-rw-r--r--broadcastradio/common/vts/utils/Android.bp (renamed from broadcastradio/1.1/vts/utils/Android.bp)2
-rw-r--r--broadcastradio/common/vts/utils/OWNERS7
-rw-r--r--broadcastradio/common/vts/utils/call-barrier.cpp (renamed from broadcastradio/1.1/vts/utils/call-barrier.cpp)0
-rw-r--r--broadcastradio/common/vts/utils/include/broadcastradio-vts-utils/call-barrier.h (renamed from broadcastradio/1.1/vts/utils/include/broadcastradio-vts-utils/call-barrier.h)0
-rw-r--r--broadcastradio/common/vts/utils/include/broadcastradio-vts-utils/mock-timeout.h (renamed from broadcastradio/1.1/vts/utils/include/broadcastradio-vts-utils/mock-timeout.h)0
-rw-r--r--camera/provider/2.4/default/android.hardware.camera.provider@2.4-service.rc2
-rw-r--r--cas/1.0/CasHal.mk192
-rw-r--r--cas/1.0/default/android.hardware.cas@1.0-service.rc2
-rw-r--r--cas/Android.bp2
-rw-r--r--compatibility_matrix.26.xml10
-rw-r--r--compatibility_matrix.27.xml8
-rw-r--r--compatibility_matrix.current.xml6
-rw-r--r--compatibility_matrix.legacy.xml10
-rw-r--r--configstore/1.0/default/android.hardware.configstore@1.0-service.rc4
-rw-r--r--configstore/1.1/Android.bp18
-rw-r--r--configstore/1.1/ISurfaceFlingerConfigs.hal25
-rw-r--r--configstore/1.1/default/Android.mk (renamed from configstore/1.0/default/Android.mk)11
-rw-r--r--configstore/1.1/default/SurfaceFlingerConfigs.cpp (renamed from configstore/1.0/default/SurfaceFlingerConfigs.cpp)7
-rw-r--r--configstore/1.1/default/SurfaceFlingerConfigs.h (renamed from configstore/1.0/default/SurfaceFlingerConfigs.h)17
-rw-r--r--configstore/1.1/default/android.hardware.configstore@1.1-service.rc4
-rw-r--r--configstore/1.1/default/seccomp_policy/configstore@1.1-arm64.policy (renamed from configstore/1.0/default/seccomp_policy/configstore@1.0-arm64.policy)5
-rw-r--r--configstore/1.1/default/service.cpp (renamed from configstore/1.0/default/service.cpp)10
-rw-r--r--configstore/1.1/default/surfaceflinger.mk (renamed from configstore/1.0/default/surfaceflinger.mk)0
-rw-r--r--configstore/1.1/vts/functional/Android.bp26
-rw-r--r--configstore/1.1/vts/functional/VtsHalConfigstoreV1_1TargetTest.cpp55
-rw-r--r--configstore/Android.bp2
-rw-r--r--contexthub/1.0/default/Contexthub.cpp6
-rw-r--r--contexthub/1.0/default/OWNERS2
-rw-r--r--contexthub/1.0/default/android.hardware.contexthub@1.0-service.rc2
-rw-r--r--contexthub/1.0/vts/functional/OWNERS7
-rw-r--r--current.txt9
-rw-r--r--drm/1.0/default/android.hardware.drm@1.0-service.rc2
-rw-r--r--drm/1.0/vts/functional/drm_hal_clearkey_test.cpp64
-rw-r--r--dumpstate/1.0/default/android.hardware.dumpstate@1.0-service.rc2
-rw-r--r--dumpstate/1.0/vts/functional/VtsHalDumpstateV1_0TargetTest.cpp35
-rw-r--r--gatekeeper/1.0/default/android.hardware.gatekeeper@1.0-service.rc2
-rw-r--r--gnss/1.0/IGnssConfiguration.hal8
-rw-r--r--gnss/1.0/default/Gnss.cpp19
-rw-r--r--gnss/1.0/default/GnssUtils.cpp45
-rw-r--r--gnss/1.0/default/android.hardware.gnss@1.0-service.rc2
-rw-r--r--graphics/Android.bp2
-rw-r--r--graphics/allocator/2.0/Android.bp1
-rw-r--r--graphics/allocator/2.0/default/android.hardware.graphics.allocator@2.0-service.rc2
-rw-r--r--graphics/composer/2.1/default/IComposerCommandBuffer.h7
-rw-r--r--graphics/composer/2.1/default/android.hardware.graphics.composer@2.1-service.rc2
-rw-r--r--graphics/composer/2.1/vts/OWNERS6
-rw-r--r--graphics/mapper/2.0/vts/OWNERS6
-rw-r--r--graphics/mapper/2.1/Android.bp20
-rw-r--r--graphics/mapper/2.1/IMapper.hal61
-rw-r--r--graphics/mapper/2.1/vts/OWNERS6
-rw-r--r--graphics/mapper/2.1/vts/functional/Android.bp32
-rw-r--r--graphics/mapper/2.1/vts/functional/VtsHalGraphicsMapperV2_1TargetTest.cpp247
-rw-r--r--health/1.0/default/android.hardware.health@1.0-service.rc2
-rw-r--r--health/2.0/Android.bp1
-rw-r--r--health/2.0/IHealthInfoCallback.hal2
-rw-r--r--health/2.0/types.hal37
-rw-r--r--health/2.0/vts/functional/Android.bp25
-rw-r--r--health/2.0/vts/functional/VtsHalHealthV2_0TargetTest.cpp220
-rw-r--r--health/Android.bp1
-rw-r--r--ir/1.0/default/android.hardware.ir@1.0-service.rc4
-rw-r--r--keymaster/3.0/default/Android.mk2
-rw-r--r--keymaster/3.0/default/KeymasterDevice.cpp710
-rw-r--r--keymaster/3.0/default/KeymasterDevice.h64
-rw-r--r--keymaster/3.0/default/android.hardware.keymaster@3.0-service.rc2
-rw-r--r--keymaster/3.0/vts/functional/keymaster_hidl_hal_test.cpp47
-rw-r--r--light/2.0/default/Android.bp53
-rw-r--r--light/2.0/default/Android.mk48
-rw-r--r--light/2.0/default/android.hardware.light@2.0-service.rc4
-rw-r--r--light/Android.bp1
-rw-r--r--media/1.0/Android.mk14
-rw-r--r--media/omx/1.0/vts/OWNERS7
-rw-r--r--media/res/bbb_opus_stereo_128kbps_48000hz.info997
-rw-r--r--media/res/bbb_opus_stereo_128kbps_48000hz.opusbin163743 -> 157626 bytes
-rw-r--r--memtrack/1.0/default/android.hardware.memtrack@1.0-service.rc2
-rw-r--r--nfc/1.0/default/android.hardware.nfc@1.0-service.rc2
-rw-r--r--power/1.0/default/android.hardware.power@1.0-service.rc2
-rw-r--r--radio/1.0/vts/functional/Android.bp5
-rw-r--r--radio/1.0/vts/functional/radio_hidl_hal_cell_broadcast.cpp42
-rw-r--r--radio/1.0/vts/functional/radio_hidl_hal_data.cpp38
-rw-r--r--radio/1.0/vts/functional/radio_hidl_hal_icc.cpp506
-rw-r--r--radio/1.0/vts/functional/radio_hidl_hal_ims.cpp44
-rw-r--r--radio/1.0/vts/functional/radio_hidl_hal_misc.cpp210
-rw-r--r--radio/1.0/vts/functional/radio_hidl_hal_sms.cpp109
-rw-r--r--radio/1.0/vts/functional/radio_hidl_hal_stk.cpp37
-rw-r--r--radio/1.0/vts/functional/radio_hidl_hal_test.cpp21
-rw-r--r--radio/1.0/vts/functional/radio_hidl_hal_utils_v1_0.h6
-rw-r--r--radio/1.0/vts/functional/radio_hidl_hal_voice.cpp183
-rw-r--r--radio/1.0/vts/functional/sap_hidl_hal_api.cpp37
-rw-r--r--radio/1.0/vts/functional/sap_hidl_hal_test.cpp26
-rw-r--r--radio/1.0/vts/functional/vts_test_util.cpp38
-rw-r--r--radio/1.0/vts/functional/vts_test_util.h35
-rw-r--r--radio/1.1/vts/functional/radio_hidl_hal_api.cpp43
-rw-r--r--radio/1.1/vts/functional/radio_hidl_hal_test.cpp19
-rw-r--r--radio/1.2/vts/functional/radio_hidl_hal_api.cpp141
-rw-r--r--radio/1.2/vts/functional/radio_hidl_hal_test.cpp5
-rw-r--r--sensors/1.0/default/android.hardware.sensors@1.0-service.rc2
-rw-r--r--sensors/1.0/vts/functional/Android.bp4
-rw-r--r--soundtrigger/2.0/default/SoundTriggerHalImpl.cpp6
-rw-r--r--tests/extension/light/2.0/default/android.hardware.tests.extension.light@2.0-service.rc4
-rw-r--r--thermal/1.0/default/android.hardware.thermal@1.0-service.rc2
-rw-r--r--tv/cec/1.0/default/HdmiCec.cpp15
-rw-r--r--tv/cec/1.0/default/HdmiCec.h9
-rw-r--r--tv/cec/1.0/default/android.hardware.tv.cec@1.0-service.rc2
-rw-r--r--tv/input/1.0/default/android.hardware.tv.input@1.0-service.rc2
-rw-r--r--usb/1.0/default/android.hardware.usb@1.0-service.rc2
-rw-r--r--vibrator/1.0/default/android.hardware.vibrator@1.0-service.rc2
-rw-r--r--vr/1.0/default/android.hardware.vr@1.0-service.rc2
-rw-r--r--wifi/1.1/default/android.hardware.wifi@1.0-service.rc4
-rw-r--r--wifi/1.2/Android.bp20
-rw-r--r--wifi/1.2/IWifi.hal29
-rw-r--r--wifi/1.2/IWifiChip.hal27
-rw-r--r--wifi/1.2/default/Android.mk (renamed from wifi/1.1/default/Android.mk)3
-rw-r--r--wifi/1.2/default/OWNERS (renamed from wifi/1.1/default/OWNERS)0
-rw-r--r--wifi/1.2/default/THREADING.README (renamed from wifi/1.1/default/THREADING.README)0
-rw-r--r--wifi/1.2/default/android.hardware.wifi@1.0-service.rc4
-rw-r--r--wifi/1.2/default/hidl_callback_util.h (renamed from wifi/1.1/default/hidl_callback_util.h)4
-rw-r--r--wifi/1.2/default/hidl_return_util.h (renamed from wifi/1.1/default/hidl_return_util.h)4
-rw-r--r--wifi/1.2/default/hidl_struct_util.cpp (renamed from wifi/1.1/default/hidl_struct_util.cpp)4
-rw-r--r--wifi/1.2/default/hidl_struct_util.h (renamed from wifi/1.1/default/hidl_struct_util.h)4
-rw-r--r--wifi/1.2/default/hidl_sync_util.cpp (renamed from wifi/1.1/default/hidl_sync_util.cpp)4
-rw-r--r--wifi/1.2/default/hidl_sync_util.h (renamed from wifi/1.1/default/hidl_sync_util.h)4
-rw-r--r--wifi/1.2/default/service.cpp (renamed from wifi/1.1/default/service.cpp)4
-rw-r--r--wifi/1.2/default/wifi.cpp (renamed from wifi/1.1/default/wifi.cpp)4
-rw-r--r--wifi/1.2/default/wifi.h (renamed from wifi/1.1/default/wifi.h)9
-rw-r--r--wifi/1.2/default/wifi_ap_iface.cpp (renamed from wifi/1.1/default/wifi_ap_iface.cpp)4
-rw-r--r--wifi/1.2/default/wifi_ap_iface.h (renamed from wifi/1.1/default/wifi_ap_iface.h)4
-rw-r--r--wifi/1.2/default/wifi_chip.cpp (renamed from wifi/1.1/default/wifi_chip.cpp)4
-rw-r--r--wifi/1.2/default/wifi_chip.h (renamed from wifi/1.1/default/wifi_chip.h)4
-rw-r--r--wifi/1.2/default/wifi_feature_flags.h (renamed from wifi/1.1/default/wifi_feature_flags.h)4
-rw-r--r--wifi/1.2/default/wifi_legacy_hal.cpp (renamed from wifi/1.1/default/wifi_legacy_hal.cpp)4
-rw-r--r--wifi/1.2/default/wifi_legacy_hal.h (renamed from wifi/1.1/default/wifi_legacy_hal.h)4
-rw-r--r--wifi/1.2/default/wifi_legacy_hal_stubs.cpp (renamed from wifi/1.1/default/wifi_legacy_hal_stubs.cpp)4
-rw-r--r--wifi/1.2/default/wifi_legacy_hal_stubs.h (renamed from wifi/1.1/default/wifi_legacy_hal_stubs.h)4
-rw-r--r--wifi/1.2/default/wifi_mode_controller.cpp (renamed from wifi/1.1/default/wifi_mode_controller.cpp)4
-rw-r--r--wifi/1.2/default/wifi_mode_controller.h (renamed from wifi/1.1/default/wifi_mode_controller.h)4
-rw-r--r--wifi/1.2/default/wifi_nan_iface.cpp (renamed from wifi/1.1/default/wifi_nan_iface.cpp)4
-rw-r--r--wifi/1.2/default/wifi_nan_iface.h (renamed from wifi/1.1/default/wifi_nan_iface.h)4
-rw-r--r--wifi/1.2/default/wifi_p2p_iface.cpp (renamed from wifi/1.1/default/wifi_p2p_iface.cpp)4
-rw-r--r--wifi/1.2/default/wifi_p2p_iface.h (renamed from wifi/1.1/default/wifi_p2p_iface.h)4
-rw-r--r--wifi/1.2/default/wifi_rtt_controller.cpp (renamed from wifi/1.1/default/wifi_rtt_controller.cpp)4
-rw-r--r--wifi/1.2/default/wifi_rtt_controller.h (renamed from wifi/1.1/default/wifi_rtt_controller.h)4
-rw-r--r--wifi/1.2/default/wifi_sta_iface.cpp (renamed from wifi/1.1/default/wifi_sta_iface.cpp)4
-rw-r--r--wifi/1.2/default/wifi_sta_iface.h (renamed from wifi/1.1/default/wifi_sta_iface.h)4
-rw-r--r--wifi/1.2/default/wifi_status_util.cpp (renamed from wifi/1.1/default/wifi_status_util.cpp)4
-rw-r--r--wifi/1.2/default/wifi_status_util.h (renamed from wifi/1.1/default/wifi_status_util.h)4
-rw-r--r--wifi/Android.bp2
-rw-r--r--wifi/supplicant/1.1/Android.bp18
-rw-r--r--wifi/supplicant/1.1/ISupplicant.hal27
206 files changed, 3745 insertions, 3986 deletions
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 3788bc6b..f04a3909 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -60,6 +60,6 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/bin/hw/android.hardware.auto
60$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/hw/android.hardware.automotive*) 60$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/hw/android.hardware.automotive*)
61$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib64/hw/android.hardware.automotive*) 61$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib64/hw/android.hardware.automotive*)
62$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/init/android.hardware.automotive*) 62$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/init/android.hardware.automotive*)
63$(call add-clean-step, find $(PRODUCT_OUT)/system $(PRODUCT_OUT)/vendor -type f -name "android\.hardware\.configstore\@1\.1*" -print0 | xargs -0 rm -f)
64$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/android.hardware.tests*) 63$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/android.hardware.tests*)
65$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/vndk/android.hardware.tests*) 64$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/vndk/android.hardware.tests*)
65$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/vndk-sp/android.hardware.graphics.allocator*)
diff --git a/audio/2.0/default/ParametersUtil.cpp b/audio/2.0/default/ParametersUtil.cpp
index 2140885f..c113ac7f 100644
--- a/audio/2.0/default/ParametersUtil.cpp
+++ b/audio/2.0/default/ParametersUtil.cpp
@@ -22,7 +22,9 @@ namespace audio {
22namespace V2_0 { 22namespace V2_0 {
23namespace implementation { 23namespace implementation {
24 24
25// Static method and not private method to avoid leaking status_t dependency 25/** Converts a status_t in Result according to the rules of AudioParameter::get*
26 * Note: Static method and not private method to avoid leaking status_t dependency
27 */
26static Result getHalStatusToResult(status_t status) { 28static Result getHalStatusToResult(status_t status) {
27 switch (status) { 29 switch (status) {
28 case OK: 30 case OK:
@@ -141,12 +143,20 @@ Result ParametersUtil::setParametersImpl(
141 143
142Result ParametersUtil::setParams(const AudioParameter& param) { 144Result ParametersUtil::setParams(const AudioParameter& param) {
143 int halStatus = halSetParameters(param.toString().string()); 145 int halStatus = halSetParameters(param.toString().string());
144 if (halStatus == OK) 146 switch (halStatus) {
145 return Result::OK; 147 case OK: return Result::OK;
146 else if (halStatus == -ENOSYS) 148 case -EINVAL: return Result::INVALID_ARGUMENTS;
147 return Result::INVALID_STATE; 149 case -ENODATA: return Result::INVALID_STATE;
148 else 150 case -ENODEV: return Result::NOT_INITIALIZED;
149 return Result::INVALID_ARGUMENTS; 151 // The rest of the API (*::analyseStatus) returns NOT_SUPPORTED
152 // when the legacy API returns -ENOSYS
153 // However the legacy API explicitly state that for get_paramers,
154 // -ENOSYS should be returned if
155 // "the implementation does not accept a parameter change while the
156 // output is active but the parameter is acceptable otherwise"
157 case -ENOSYS: return Result::INVALID_STATE;
158 default: return Result::INVALID_ARGUMENTS;
159 }
150} 160}
151 161
152} // namespace implementation 162} // namespace implementation
diff --git a/audio/2.0/default/android.hardware.audio@2.0-service.rc b/audio/2.0/default/android.hardware.audio@2.0-service.rc
index eeaf71b2..a76770d7 100644
--- a/audio/2.0/default/android.hardware.audio@2.0-service.rc
+++ b/audio/2.0/default/android.hardware.audio@2.0-service.rc
@@ -1,4 +1,4 @@
1service audio-hal-2-0 /vendor/bin/hw/android.hardware.audio@2.0-service 1service vendor.audio-hal-2-0 /vendor/bin/hw/android.hardware.audio@2.0-service
2 class hal 2 class hal
3 user audioserver 3 user audioserver
4 # media gid needed for /dev/fm (radio) and for /data/misc/media (tee) 4 # media gid needed for /dev/fm (radio) and for /data/misc/media (tee)
diff --git a/audio/2.0/vts/OWNERS b/audio/2.0/vts/OWNERS
new file mode 100644
index 00000000..8711a9ff
--- /dev/null
+++ b/audio/2.0/vts/OWNERS
@@ -0,0 +1,5 @@
1elaurent@google.com
2krocard@google.com
3mnaganov@google.com
4yim@google.com
5zhuoyao@google.com \ No newline at end of file
diff --git a/audio/2.0/vts/functional/ValidateAudioConfiguration.cpp b/audio/2.0/vts/functional/ValidateAudioConfiguration.cpp
index ec3259a1..4e280f5a 100644
--- a/audio/2.0/vts/functional/ValidateAudioConfiguration.cpp
+++ b/audio/2.0/vts/functional/ValidateAudioConfiguration.cpp
@@ -20,15 +20,11 @@
20#include "utility/ValidateXml.h" 20#include "utility/ValidateXml.h"
21 21
22TEST(CheckConfig, audioPolicyConfigurationValidation) { 22TEST(CheckConfig, audioPolicyConfigurationValidation) {
23 const char* configName = "audio_policy_configuration.xml"; 23 RecordProperty("description",
24 const char* possibleConfigLocations[] = {"/odm/etc", "/vendor/etc", "/system/etc"}; 24 "Verify that the audio policy configuration file "
25 const char* configSchemaPath = "/data/local/tmp/audio_policy_configuration.xsd"; 25 "is valid according to the schema");
26 26
27 for (std::string folder : possibleConfigLocations) { 27 std::vector<const char*> locations = {"/odm/etc", "/vendor/etc", "/system/etc"};
28 const auto configPath = folder + '/' + configName; 28 EXPECT_ONE_VALID_XML_MULTIPLE_LOCATIONS("audio_policy_configuration.xml", locations,
29 if (access(configPath.c_str(), R_OK) == 0) { 29 "/data/local/tmp/audio_policy_configuration.xsd");
30 ASSERT_VALID_XML(configPath.c_str(), configSchemaPath);
31 return; // The framework does not read past the first config file found
32 }
33 }
34} 30}
diff --git a/audio/common/test/OWNERS b/audio/common/test/OWNERS
new file mode 100644
index 00000000..8711a9ff
--- /dev/null
+++ b/audio/common/test/OWNERS
@@ -0,0 +1,5 @@
1elaurent@google.com
2krocard@google.com
3mnaganov@google.com
4yim@google.com
5zhuoyao@google.com \ No newline at end of file
diff --git a/audio/common/test/utility/include/utility/ValidateXml.h b/audio/common/test/utility/include/utility/ValidateXml.h
index fdfa5066..d7188396 100644
--- a/audio/common/test/utility/include/utility/ValidateXml.h
+++ b/audio/common/test/utility/include/utility/ValidateXml.h
@@ -32,13 +32,44 @@ namespace utility {
32 * See ASSERT_VALID_XML for a helper macro. 32 * See ASSERT_VALID_XML for a helper macro.
33 */ 33 */
34::testing::AssertionResult validateXml(const char* xmlFilePathExpr, const char* xsdFilePathExpr, 34::testing::AssertionResult validateXml(const char* xmlFilePathExpr, const char* xsdFilePathExpr,
35 const char* xmlFilePath, const char* xsdPathName); 35 const char* xmlFilePath, const char* xsdFilePath);
36 36
37/** Helper gtest ASSERT to test xml validity against an xsd. */ 37/** Helper gtest ASSERT to test XML validity against an XSD. */
38#define ASSERT_VALID_XML(xmlFilePath, xsdFilePath) \ 38#define ASSERT_VALID_XML(xmlFilePath, xsdFilePath) \
39 ASSERT_PRED_FORMAT2(::android::hardware::audio::common::test::utility::validateXml, \ 39 ASSERT_PRED_FORMAT2(::android::hardware::audio::common::test::utility::validateXml, \
40 xmlFilePath, xsdFilePath) 40 xmlFilePath, xsdFilePath)
41 41
42/** Helper gtest EXPECT to test XML validity against an XSD. */
43#define EXPECT_VALID_XML(xmlFilePath, xsdFilePath) \
44 EXPECT_PRED_FORMAT2(::android::hardware::audio::common::test::utility::validateXml, \
45 xmlFilePath, xsdFilePath)
46
47/** Validate an XML according to an xsd.
48 * The XML file must be in at least one of the provided locations.
49 * If multiple are found, all are validated.
50 */
51::testing::AssertionResult validateXmlMultipleLocations(
52 const char* xmlFileNameExpr, const char* xmlFileLocationsExpr, const char* xsdFilePathExpr,
53 const char* xmlFileName, std::vector<const char*> xmlFileLocations, const char* xsdFilePath);
54
55/** ASSERT that an XML is valid according to an xsd.
56 * The XML file must be in at least one of the provided locations.
57 * If multiple are found, all are validated.
58 */
59#define ASSERT_ONE_VALID_XML_MULTIPLE_LOCATIONS(xmlFileName, xmlFileLocations, xsdFilePath) \
60 ASSERT_PRED_FORMAT3( \
61 ::android::hardware::audio::common::test::utility::validateXmlMultipleLocations, \
62 xmlFileName, xmlFileLocations, xsdFilePath)
63
64/** EXPECT an XML to be valid according to an xsd.
65 * The XML file must be in at least one of the provided locations.
66 * If multiple are found, all are validated.
67 */
68#define EXPECT_ONE_VALID_XML_MULTIPLE_LOCATIONS(xmlFileName, xmlFileLocations, xsdFilePath) \
69 EXPECT_PRED_FORMAT3( \
70 ::android::hardware::audio::common::test::utility::validateXmlMultipleLocations, \
71 xmlFileName, xmlFileLocations, xsdFilePath)
72
42} // utility 73} // utility
43} // test 74} // test
44} // common 75} // common
diff --git a/audio/common/test/utility/src/ValidateXml.cpp b/audio/common/test/utility/src/ValidateXml.cpp
index 784f9401..30dec303 100644
--- a/audio/common/test/utility/src/ValidateXml.cpp
+++ b/audio/common/test/utility/src/ValidateXml.cpp
@@ -17,6 +17,8 @@
17#define LOG_TAG "ValidateAudioConfig" 17#define LOG_TAG "ValidateAudioConfig"
18#include <utils/Log.h> 18#include <utils/Log.h>
19 19
20#include <numeric>
21
20#define LIBXML_SCHEMAS_ENABLED 22#define LIBXML_SCHEMAS_ENABLED
21#include <libxml/xmlschemastypes.h> 23#include <libxml/xmlschemastypes.h>
22#define LIBXML_XINCLUDE_ENABLED 24#define LIBXML_XINCLUDE_ENABLED
@@ -94,9 +96,9 @@ struct Libxml2Global {
94 Libxml2Global libxml2; 96 Libxml2Global libxml2;
95 97
96 auto context = [&]() { 98 auto context = [&]() {
97 return std::string() + " While validating: " + xmlFilePathExpr + 99 return std::string() + " While validating: " + xmlFilePathExpr +
98 "\n Which is: " + xmlFilePath + "\nAgainst the schema: " + xsdFilePathExpr + 100 "\n Which is: " + xmlFilePath + "\nAgainst the schema: " + xsdFilePathExpr +
99 "\n Which is: " + xsdFilePath + "Libxml2 errors\n" + libxml2.getErrors(); 101 "\n Which is: " + xsdFilePath + "\nLibxml2 errors:\n" + libxml2.getErrors();
100 }; 102 };
101 103
102 auto schemaParserCtxt = make_xmlUnique(xmlSchemaNewParserCtxt(xsdFilePath)); 104 auto schemaParserCtxt = make_xmlUnique(xmlSchemaNewParserCtxt(xsdFilePath));
@@ -117,7 +119,7 @@ struct Libxml2Global {
117 auto schemaCtxt = make_xmlUnique(xmlSchemaNewValidCtxt(schema.get())); 119 auto schemaCtxt = make_xmlUnique(xmlSchemaNewValidCtxt(schema.get()));
118 int ret = xmlSchemaValidateDoc(schemaCtxt.get(), doc.get()); 120 int ret = xmlSchemaValidateDoc(schemaCtxt.get(), doc.get());
119 if (ret > 0) { 121 if (ret > 0) {
120 return ::testing::AssertionFailure() << "xml is not valid according to the xsd.\n" 122 return ::testing::AssertionFailure() << "XML is not valid according to the xsd\n"
121 << context(); 123 << context();
122 } 124 }
123 if (ret < 0) { 125 if (ret < 0) {
@@ -127,6 +129,40 @@ struct Libxml2Global {
127 return ::testing::AssertionSuccess(); 129 return ::testing::AssertionSuccess();
128} 130}
129 131
132::testing::AssertionResult validateXmlMultipleLocations(
133 const char* xmlFileNameExpr, const char* xmlFileLocationsExpr, const char* xsdFilePathExpr,
134 const char* xmlFileName, std::vector<const char*> xmlFileLocations, const char* xsdFilePath) {
135 using namespace std::string_literals;
136
137 std::vector<std::string> errors;
138 std::vector<std::string> foundFiles;
139
140 for (const char* location : xmlFileLocations) {
141 std::string xmlFilePath = location + "/"s + xmlFileName;
142 if (access(xmlFilePath.c_str(), F_OK) != 0) {
143 // If the file does not exist ignore this location and fallback on the next one
144 continue;
145 }
146 foundFiles.push_back(" " + xmlFilePath + '\n');
147 auto result = validateXml("xmlFilePath", xsdFilePathExpr, xmlFilePath.c_str(), xsdFilePath);
148 if (!result) {
149 errors.push_back(result.message());
150 }
151 }
152
153 if (foundFiles.empty()) {
154 errors.push_back("No xml file found in provided locations.\n");
155 }
156
157 return ::testing::AssertionResult(errors.empty())
158 << errors.size() << " error" << (errors.size() == 1 ? " " : "s ")
159 << std::accumulate(begin(errors), end(errors), "occurred during xml validation:\n"s)
160 << " While validating all: " << xmlFileNameExpr
161 << "\n Which is: " << xmlFileName
162 << "\n In the following folders: " << xmlFileLocationsExpr
163 << "\n Which is: " << ::testing::PrintToString(xmlFileLocations);
164}
165
130} // utility 166} // utility
131} // test 167} // test
132} // common 168} // common
diff --git a/audio/effect/2.0/vts/OWNERS b/audio/effect/2.0/vts/OWNERS
new file mode 100644
index 00000000..8711a9ff
--- /dev/null
+++ b/audio/effect/2.0/vts/OWNERS
@@ -0,0 +1,5 @@
1elaurent@google.com
2krocard@google.com
3mnaganov@google.com
4yim@google.com
5zhuoyao@google.com \ No newline at end of file
diff --git a/audio/effect/2.0/vts/functional/Android.bp b/audio/effect/2.0/vts/functional/Android.bp
index 7b421cb7..f5a49b33 100644
--- a/audio/effect/2.0/vts/functional/Android.bp
+++ b/audio/effect/2.0/vts/functional/Android.bp
@@ -30,6 +30,7 @@ cc_test {
30 "libxml2", 30 "libxml2",
31 ], 31 ],
32 shared_libs: [ 32 shared_libs: [
33 "libeffectsconfig",
33 "libicuuc", 34 "libicuuc",
34 ], 35 ],
35} 36}
diff --git a/audio/effect/2.0/vts/functional/ValidateAudioEffectsConfiguration.cpp b/audio/effect/2.0/vts/functional/ValidateAudioEffectsConfiguration.cpp
index fdc13474..d0bc6908 100644
--- a/audio/effect/2.0/vts/functional/ValidateAudioEffectsConfiguration.cpp
+++ b/audio/effect/2.0/vts/functional/ValidateAudioEffectsConfiguration.cpp
@@ -15,16 +15,18 @@
15 */ 15 */
16 16
17#include <unistd.h> 17#include <unistd.h>
18#include <iterator>
19
20#include <media/EffectsConfig.h>
18 21
19#include "utility/ValidateXml.h" 22#include "utility/ValidateXml.h"
20 23
21TEST(CheckConfig, audioEffectsConfigurationValidation) { 24TEST(CheckConfig, audioEffectsConfigurationValidation) {
22 RecordProperty("description", 25 RecordProperty("description",
23 "Verify that the effects configuration file is valid according to the schema"); 26 "Verify that the effects configuration file is valid according to the schema");
24 const char* xmlConfigFile = "/vendor/etc/audio_effects.xml"; 27 using namespace android::effectsConfig;
25 // Not every device uses XML configuration, so only validate 28
26 // if the XML configuration actually exists. 29 std::vector<const char*> locations(std::begin(DEFAULT_LOCATIONS), std::end(DEFAULT_LOCATIONS));
27 if (access(xmlConfigFile, F_OK) == 0) { 30 EXPECT_ONE_VALID_XML_MULTIPLE_LOCATIONS(DEFAULT_NAME, locations,
28 ASSERT_VALID_XML(xmlConfigFile, "/data/local/tmp/audio_effects_conf_V2_0.xsd"); 31 "/data/local/tmp/audio_effects_conf_V2_0.xsd");
29 }
30} 32}
diff --git a/automotive/evs/1.0/default/ServiceNames.h b/automotive/evs/1.0/default/ServiceNames.h
index d20a37f9..1178da5a 100644
--- a/automotive/evs/1.0/default/ServiceNames.h
+++ b/automotive/evs/1.0/default/ServiceNames.h
@@ -14,4 +14,4 @@
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16 16
17const static char kEnumeratorServiceName[] = "EvsEnumeratorHw-Mock"; 17const static char kEnumeratorServiceName[] = "EvsEnumeratorHw";
diff --git a/automotive/evs/1.0/default/android.hardware.automotive.evs@1.0-service.rc b/automotive/evs/1.0/default/android.hardware.automotive.evs@1.0-service.rc
index 16d521d7..117c249a 100644
--- a/automotive/evs/1.0/default/android.hardware.automotive.evs@1.0-service.rc
+++ b/automotive/evs/1.0/default/android.hardware.automotive.evs@1.0-service.rc
@@ -1,4 +1,4 @@
1service evs-hal-mock /vendor/bin/hw/android.hardware.automotive.evs@1.0-service 1service vendor.evs-hal-mock /vendor/bin/hw/android.hardware.automotive.evs@1.0-service
2 class hal 2 class hal
3 user automotive_evs 3 user automotive_evs
4 group automotive_evs 4 group automotive_evs
diff --git a/automotive/evs/1.0/vts/functional/Android.bp b/automotive/evs/1.0/vts/functional/Android.bp
index 555ff5bc..6ac24589 100644
--- a/automotive/evs/1.0/vts/functional/Android.bp
+++ b/automotive/evs/1.0/vts/functional/Android.bp
@@ -15,7 +15,7 @@
15// 15//
16 16
17cc_test { 17cc_test {
18 name: "VtsHalEvsV1_0Target", 18 name: "VtsHalEvsV1_0TargetTest",
19 19
20 srcs: [ 20 srcs: [
21 "VtsHalEvsV1_0TargetTest.cpp", 21 "VtsHalEvsV1_0TargetTest.cpp",
diff --git a/automotive/vehicle/2.0/Android.bp b/automotive/vehicle/2.0/Android.bp
index 3441a25e..7ab2387c 100644
--- a/automotive/vehicle/2.0/Android.bp
+++ b/automotive/vehicle/2.0/Android.bp
@@ -17,6 +17,8 @@ hidl_interface {
17 types: [ 17 types: [
18 "DiagnosticFloatSensorIndex", 18 "DiagnosticFloatSensorIndex",
19 "DiagnosticIntegerSensorIndex", 19 "DiagnosticIntegerSensorIndex",
20 "EvConnectorType",
21 "FuelType",
20 "Obd2CommonIgnitionMonitors", 22 "Obd2CommonIgnitionMonitors",
21 "Obd2CompressionIgnitionMonitors", 23 "Obd2CompressionIgnitionMonitors",
22 "Obd2FuelSystemStatus", 24 "Obd2FuelSystemStatus",
diff --git a/automotive/vehicle/2.0/Android.mk b/automotive/vehicle/2.0/Android.mk
deleted file mode 100644
index a731d6d5..00000000
--- a/automotive/vehicle/2.0/Android.mk
+++ /dev/null
@@ -1,1282 +0,0 @@
1# This file is autogenerated by hidl-gen. Do not edit manually.
2
3LOCAL_PATH := $(call my-dir)
4
5################################################################################
6
7include $(CLEAR_VARS)
8LOCAL_MODULE := android.hardware.automotive.vehicle-V2.0-java-static
9LOCAL_MODULE_CLASS := JAVA_LIBRARIES
10
11intermediates := $(call local-generated-sources-dir, COMMON)
12
13HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
14
15LOCAL_STATIC_JAVA_LIBRARIES := \
16 android.hidl.base-V1.0-java-static \
17
18
19#
20# Build types.hal (DiagnosticFloatSensorIndex)
21#
22GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/DiagnosticFloatSensorIndex.java
23$(GEN): $(HIDL)
24$(GEN): PRIVATE_HIDL := $(HIDL)
25$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
26$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
27$(GEN): PRIVATE_CUSTOM_TOOL = \
28 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
29 -Ljava \
30 -randroid.hardware:hardware/interfaces \
31 -randroid.hidl:system/libhidl/transport \
32 android.hardware.automotive.vehicle@2.0::types.DiagnosticFloatSensorIndex
33
34$(GEN): $(LOCAL_PATH)/types.hal
35 $(transform-generated-source)
36LOCAL_GENERATED_SOURCES += $(GEN)
37
38#
39# Build types.hal (DiagnosticIntegerSensorIndex)
40#
41GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/DiagnosticIntegerSensorIndex.java
42$(GEN): $(HIDL)
43$(GEN): PRIVATE_HIDL := $(HIDL)
44$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
45$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
46$(GEN): PRIVATE_CUSTOM_TOOL = \
47 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
48 -Ljava \
49 -randroid.hardware:hardware/interfaces \
50 -randroid.hidl:system/libhidl/transport \
51 android.hardware.automotive.vehicle@2.0::types.DiagnosticIntegerSensorIndex
52
53$(GEN): $(LOCAL_PATH)/types.hal
54 $(transform-generated-source)
55LOCAL_GENERATED_SOURCES += $(GEN)
56
57#
58# Build types.hal (Obd2CommonIgnitionMonitors)
59#
60GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/Obd2CommonIgnitionMonitors.java
61$(GEN): $(HIDL)
62$(GEN): PRIVATE_HIDL := $(HIDL)
63$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
64$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
65$(GEN): PRIVATE_CUSTOM_TOOL = \
66 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
67 -Ljava \
68 -randroid.hardware:hardware/interfaces \
69 -randroid.hidl:system/libhidl/transport \
70 android.hardware.automotive.vehicle@2.0::types.Obd2CommonIgnitionMonitors
71
72$(GEN): $(LOCAL_PATH)/types.hal
73 $(transform-generated-source)
74LOCAL_GENERATED_SOURCES += $(GEN)
75
76#
77# Build types.hal (Obd2CompressionIgnitionMonitors)
78#
79GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/Obd2CompressionIgnitionMonitors.java
80$(GEN): $(HIDL)
81$(GEN): PRIVATE_HIDL := $(HIDL)
82$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
83$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
84$(GEN): PRIVATE_CUSTOM_TOOL = \
85 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
86 -Ljava \
87 -randroid.hardware:hardware/interfaces \
88 -randroid.hidl:system/libhidl/transport \
89 android.hardware.automotive.vehicle@2.0::types.Obd2CompressionIgnitionMonitors
90
91$(GEN): $(LOCAL_PATH)/types.hal
92 $(transform-generated-source)
93LOCAL_GENERATED_SOURCES += $(GEN)
94
95#
96# Build types.hal (Obd2FuelSystemStatus)
97#
98GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/Obd2FuelSystemStatus.java
99$(GEN): $(HIDL)
100$(GEN): PRIVATE_HIDL := $(HIDL)
101$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
102$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
103$(GEN): PRIVATE_CUSTOM_TOOL = \
104 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
105 -Ljava \
106 -randroid.hardware:hardware/interfaces \
107 -randroid.hidl:system/libhidl/transport \
108 android.hardware.automotive.vehicle@2.0::types.Obd2FuelSystemStatus
109
110$(GEN): $(LOCAL_PATH)/types.hal
111 $(transform-generated-source)
112LOCAL_GENERATED_SOURCES += $(GEN)
113
114#
115# Build types.hal (Obd2FuelType)
116#
117GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/Obd2FuelType.java
118$(GEN): $(HIDL)
119$(GEN): PRIVATE_HIDL := $(HIDL)
120$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
121$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
122$(GEN): PRIVATE_CUSTOM_TOOL = \
123 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
124 -Ljava \
125 -randroid.hardware:hardware/interfaces \
126 -randroid.hidl:system/libhidl/transport \
127 android.hardware.automotive.vehicle@2.0::types.Obd2FuelType
128
129$(GEN): $(LOCAL_PATH)/types.hal
130 $(transform-generated-source)
131LOCAL_GENERATED_SOURCES += $(GEN)
132
133#
134# Build types.hal (Obd2IgnitionMonitorKind)
135#
136GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/Obd2IgnitionMonitorKind.java
137$(GEN): $(HIDL)
138$(GEN): PRIVATE_HIDL := $(HIDL)
139$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
140$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
141$(GEN): PRIVATE_CUSTOM_TOOL = \
142 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
143 -Ljava \
144 -randroid.hardware:hardware/interfaces \
145 -randroid.hidl:system/libhidl/transport \
146 android.hardware.automotive.vehicle@2.0::types.Obd2IgnitionMonitorKind
147
148$(GEN): $(LOCAL_PATH)/types.hal
149 $(transform-generated-source)
150LOCAL_GENERATED_SOURCES += $(GEN)
151
152#
153# Build types.hal (Obd2SecondaryAirStatus)
154#
155GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/Obd2SecondaryAirStatus.java
156$(GEN): $(HIDL)
157$(GEN): PRIVATE_HIDL := $(HIDL)
158$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
159$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
160$(GEN): PRIVATE_CUSTOM_TOOL = \
161 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
162 -Ljava \
163 -randroid.hardware:hardware/interfaces \
164 -randroid.hidl:system/libhidl/transport \
165 android.hardware.automotive.vehicle@2.0::types.Obd2SecondaryAirStatus
166
167$(GEN): $(LOCAL_PATH)/types.hal
168 $(transform-generated-source)
169LOCAL_GENERATED_SOURCES += $(GEN)
170
171#
172# Build types.hal (Obd2SparkIgnitionMonitors)
173#
174GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/Obd2SparkIgnitionMonitors.java
175$(GEN): $(HIDL)
176$(GEN): PRIVATE_HIDL := $(HIDL)
177$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
178$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
179$(GEN): PRIVATE_CUSTOM_TOOL = \
180 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
181 -Ljava \
182 -randroid.hardware:hardware/interfaces \
183 -randroid.hidl:system/libhidl/transport \
184 android.hardware.automotive.vehicle@2.0::types.Obd2SparkIgnitionMonitors
185
186$(GEN): $(LOCAL_PATH)/types.hal
187 $(transform-generated-source)
188LOCAL_GENERATED_SOURCES += $(GEN)
189
190#
191# Build types.hal (StatusCode)
192#
193GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/StatusCode.java
194$(GEN): $(HIDL)
195$(GEN): PRIVATE_HIDL := $(HIDL)
196$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
197$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
198$(GEN): PRIVATE_CUSTOM_TOOL = \
199 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
200 -Ljava \
201 -randroid.hardware:hardware/interfaces \
202 -randroid.hidl:system/libhidl/transport \
203 android.hardware.automotive.vehicle@2.0::types.StatusCode
204
205$(GEN): $(LOCAL_PATH)/types.hal
206 $(transform-generated-source)
207LOCAL_GENERATED_SOURCES += $(GEN)
208
209#
210# Build types.hal (SubscribeFlags)
211#
212GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/SubscribeFlags.java
213$(GEN): $(HIDL)
214$(GEN): PRIVATE_HIDL := $(HIDL)
215$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
216$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
217$(GEN): PRIVATE_CUSTOM_TOOL = \
218 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
219 -Ljava \
220 -randroid.hardware:hardware/interfaces \
221 -randroid.hidl:system/libhidl/transport \
222 android.hardware.automotive.vehicle@2.0::types.SubscribeFlags
223
224$(GEN): $(LOCAL_PATH)/types.hal
225 $(transform-generated-source)
226LOCAL_GENERATED_SOURCES += $(GEN)
227
228#
229# Build types.hal (SubscribeOptions)
230#
231GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/SubscribeOptions.java
232$(GEN): $(HIDL)
233$(GEN): PRIVATE_HIDL := $(HIDL)
234$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
235$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
236$(GEN): PRIVATE_CUSTOM_TOOL = \
237 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
238 -Ljava \
239 -randroid.hardware:hardware/interfaces \
240 -randroid.hidl:system/libhidl/transport \
241 android.hardware.automotive.vehicle@2.0::types.SubscribeOptions
242
243$(GEN): $(LOCAL_PATH)/types.hal
244 $(transform-generated-source)
245LOCAL_GENERATED_SOURCES += $(GEN)
246
247#
248# Build types.hal (VehicleApPowerBootupReason)
249#
250GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleApPowerBootupReason.java
251$(GEN): $(HIDL)
252$(GEN): PRIVATE_HIDL := $(HIDL)
253$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
254$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
255$(GEN): PRIVATE_CUSTOM_TOOL = \
256 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
257 -Ljava \
258 -randroid.hardware:hardware/interfaces \
259 -randroid.hidl:system/libhidl/transport \
260 android.hardware.automotive.vehicle@2.0::types.VehicleApPowerBootupReason
261
262$(GEN): $(LOCAL_PATH)/types.hal
263 $(transform-generated-source)
264LOCAL_GENERATED_SOURCES += $(GEN)
265
266#
267# Build types.hal (VehicleApPowerSetState)
268#
269GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleApPowerSetState.java
270$(GEN): $(HIDL)
271$(GEN): PRIVATE_HIDL := $(HIDL)
272$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
273$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
274$(GEN): PRIVATE_CUSTOM_TOOL = \
275 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
276 -Ljava \
277 -randroid.hardware:hardware/interfaces \
278 -randroid.hidl:system/libhidl/transport \
279 android.hardware.automotive.vehicle@2.0::types.VehicleApPowerSetState
280
281$(GEN): $(LOCAL_PATH)/types.hal
282 $(transform-generated-source)
283LOCAL_GENERATED_SOURCES += $(GEN)
284
285#
286# Build types.hal (VehicleApPowerState)
287#
288GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleApPowerState.java
289$(GEN): $(HIDL)
290$(GEN): PRIVATE_HIDL := $(HIDL)
291$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
292$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
293$(GEN): PRIVATE_CUSTOM_TOOL = \
294 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
295 -Ljava \
296 -randroid.hardware:hardware/interfaces \
297 -randroid.hidl:system/libhidl/transport \
298 android.hardware.automotive.vehicle@2.0::types.VehicleApPowerState
299
300$(GEN): $(LOCAL_PATH)/types.hal
301 $(transform-generated-source)
302LOCAL_GENERATED_SOURCES += $(GEN)
303
304#
305# Build types.hal (VehicleApPowerStateConfigFlag)
306#
307GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleApPowerStateConfigFlag.java
308$(GEN): $(HIDL)
309$(GEN): PRIVATE_HIDL := $(HIDL)
310$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
311$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
312$(GEN): PRIVATE_CUSTOM_TOOL = \
313 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
314 -Ljava \
315 -randroid.hardware:hardware/interfaces \
316 -randroid.hidl:system/libhidl/transport \
317 android.hardware.automotive.vehicle@2.0::types.VehicleApPowerStateConfigFlag
318
319$(GEN): $(LOCAL_PATH)/types.hal
320 $(transform-generated-source)
321LOCAL_GENERATED_SOURCES += $(GEN)
322
323#
324# Build types.hal (VehicleApPowerStateIndex)
325#
326GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleApPowerStateIndex.java
327$(GEN): $(HIDL)
328$(GEN): PRIVATE_HIDL := $(HIDL)
329$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
330$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
331$(GEN): PRIVATE_CUSTOM_TOOL = \
332 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
333 -Ljava \
334 -randroid.hardware:hardware/interfaces \
335 -randroid.hidl:system/libhidl/transport \
336 android.hardware.automotive.vehicle@2.0::types.VehicleApPowerStateIndex
337
338$(GEN): $(LOCAL_PATH)/types.hal
339 $(transform-generated-source)
340LOCAL_GENERATED_SOURCES += $(GEN)
341
342#
343# Build types.hal (VehicleApPowerStateShutdownParam)
344#
345GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleApPowerStateShutdownParam.java
346$(GEN): $(HIDL)
347$(GEN): PRIVATE_HIDL := $(HIDL)
348$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
349$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
350$(GEN): PRIVATE_CUSTOM_TOOL = \
351 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
352 -Ljava \
353 -randroid.hardware:hardware/interfaces \
354 -randroid.hidl:system/libhidl/transport \
355 android.hardware.automotive.vehicle@2.0::types.VehicleApPowerStateShutdownParam
356
357$(GEN): $(LOCAL_PATH)/types.hal
358 $(transform-generated-source)
359LOCAL_GENERATED_SOURCES += $(GEN)
360
361#
362# Build types.hal (VehicleArea)
363#
364GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleArea.java
365$(GEN): $(HIDL)
366$(GEN): PRIVATE_HIDL := $(HIDL)
367$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
368$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
369$(GEN): PRIVATE_CUSTOM_TOOL = \
370 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
371 -Ljava \
372 -randroid.hardware:hardware/interfaces \
373 -randroid.hidl:system/libhidl/transport \
374 android.hardware.automotive.vehicle@2.0::types.VehicleArea
375
376$(GEN): $(LOCAL_PATH)/types.hal
377 $(transform-generated-source)
378LOCAL_GENERATED_SOURCES += $(GEN)
379
380#
381# Build types.hal (VehicleAreaConfig)
382#
383GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAreaConfig.java
384$(GEN): $(HIDL)
385$(GEN): PRIVATE_HIDL := $(HIDL)
386$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
387$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
388$(GEN): PRIVATE_CUSTOM_TOOL = \
389 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
390 -Ljava \
391 -randroid.hardware:hardware/interfaces \
392 -randroid.hidl:system/libhidl/transport \
393 android.hardware.automotive.vehicle@2.0::types.VehicleAreaConfig
394
395$(GEN): $(LOCAL_PATH)/types.hal
396 $(transform-generated-source)
397LOCAL_GENERATED_SOURCES += $(GEN)
398
399#
400# Build types.hal (VehicleAreaDoor)
401#
402GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAreaDoor.java
403$(GEN): $(HIDL)
404$(GEN): PRIVATE_HIDL := $(HIDL)
405$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
406$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
407$(GEN): PRIVATE_CUSTOM_TOOL = \
408 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
409 -Ljava \
410 -randroid.hardware:hardware/interfaces \
411 -randroid.hidl:system/libhidl/transport \
412 android.hardware.automotive.vehicle@2.0::types.VehicleAreaDoor
413
414$(GEN): $(LOCAL_PATH)/types.hal
415 $(transform-generated-source)
416LOCAL_GENERATED_SOURCES += $(GEN)
417
418#
419# Build types.hal (VehicleAreaMirror)
420#
421GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAreaMirror.java
422$(GEN): $(HIDL)
423$(GEN): PRIVATE_HIDL := $(HIDL)
424$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
425$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
426$(GEN): PRIVATE_CUSTOM_TOOL = \
427 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
428 -Ljava \
429 -randroid.hardware:hardware/interfaces \
430 -randroid.hidl:system/libhidl/transport \
431 android.hardware.automotive.vehicle@2.0::types.VehicleAreaMirror
432
433$(GEN): $(LOCAL_PATH)/types.hal
434 $(transform-generated-source)
435LOCAL_GENERATED_SOURCES += $(GEN)
436
437#
438# Build types.hal (VehicleAreaSeat)
439#
440GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAreaSeat.java
441$(GEN): $(HIDL)
442$(GEN): PRIVATE_HIDL := $(HIDL)
443$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
444$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
445$(GEN): PRIVATE_CUSTOM_TOOL = \
446 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
447 -Ljava \
448 -randroid.hardware:hardware/interfaces \
449 -randroid.hidl:system/libhidl/transport \
450 android.hardware.automotive.vehicle@2.0::types.VehicleAreaSeat
451
452$(GEN): $(LOCAL_PATH)/types.hal
453 $(transform-generated-source)
454LOCAL_GENERATED_SOURCES += $(GEN)
455
456#
457# Build types.hal (VehicleAreaWindow)
458#
459GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAreaWindow.java
460$(GEN): $(HIDL)
461$(GEN): PRIVATE_HIDL := $(HIDL)
462$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
463$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
464$(GEN): PRIVATE_CUSTOM_TOOL = \
465 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
466 -Ljava \
467 -randroid.hardware:hardware/interfaces \
468 -randroid.hidl:system/libhidl/transport \
469 android.hardware.automotive.vehicle@2.0::types.VehicleAreaWindow
470
471$(GEN): $(LOCAL_PATH)/types.hal
472 $(transform-generated-source)
473LOCAL_GENERATED_SOURCES += $(GEN)
474
475#
476# Build types.hal (VehicleAreaZone)
477#
478GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAreaZone.java
479$(GEN): $(HIDL)
480$(GEN): PRIVATE_HIDL := $(HIDL)
481$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
482$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
483$(GEN): PRIVATE_CUSTOM_TOOL = \
484 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
485 -Ljava \
486 -randroid.hardware:hardware/interfaces \
487 -randroid.hidl:system/libhidl/transport \
488 android.hardware.automotive.vehicle@2.0::types.VehicleAreaZone
489
490$(GEN): $(LOCAL_PATH)/types.hal
491 $(transform-generated-source)
492LOCAL_GENERATED_SOURCES += $(GEN)
493
494#
495# Build types.hal (VehicleAudioContextFlag)
496#
497GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioContextFlag.java
498$(GEN): $(HIDL)
499$(GEN): PRIVATE_HIDL := $(HIDL)
500$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
501$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
502$(GEN): PRIVATE_CUSTOM_TOOL = \
503 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
504 -Ljava \
505 -randroid.hardware:hardware/interfaces \
506 -randroid.hidl:system/libhidl/transport \
507 android.hardware.automotive.vehicle@2.0::types.VehicleAudioContextFlag
508
509$(GEN): $(LOCAL_PATH)/types.hal
510 $(transform-generated-source)
511LOCAL_GENERATED_SOURCES += $(GEN)
512
513#
514# Build types.hal (VehicleAudioExtFocusFlag)
515#
516GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioExtFocusFlag.java
517$(GEN): $(HIDL)
518$(GEN): PRIVATE_HIDL := $(HIDL)
519$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
520$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
521$(GEN): PRIVATE_CUSTOM_TOOL = \
522 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
523 -Ljava \
524 -randroid.hardware:hardware/interfaces \
525 -randroid.hidl:system/libhidl/transport \
526 android.hardware.automotive.vehicle@2.0::types.VehicleAudioExtFocusFlag
527
528$(GEN): $(LOCAL_PATH)/types.hal
529 $(transform-generated-source)
530LOCAL_GENERATED_SOURCES += $(GEN)
531
532#
533# Build types.hal (VehicleAudioFocusIndex)
534#
535GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioFocusIndex.java
536$(GEN): $(HIDL)
537$(GEN): PRIVATE_HIDL := $(HIDL)
538$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
539$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
540$(GEN): PRIVATE_CUSTOM_TOOL = \
541 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
542 -Ljava \
543 -randroid.hardware:hardware/interfaces \
544 -randroid.hidl:system/libhidl/transport \
545 android.hardware.automotive.vehicle@2.0::types.VehicleAudioFocusIndex
546
547$(GEN): $(LOCAL_PATH)/types.hal
548 $(transform-generated-source)
549LOCAL_GENERATED_SOURCES += $(GEN)
550
551#
552# Build types.hal (VehicleAudioFocusRequest)
553#
554GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioFocusRequest.java
555$(GEN): $(HIDL)
556$(GEN): PRIVATE_HIDL := $(HIDL)
557$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
558$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
559$(GEN): PRIVATE_CUSTOM_TOOL = \
560 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
561 -Ljava \
562 -randroid.hardware:hardware/interfaces \
563 -randroid.hidl:system/libhidl/transport \
564 android.hardware.automotive.vehicle@2.0::types.VehicleAudioFocusRequest
565
566$(GEN): $(LOCAL_PATH)/types.hal
567 $(transform-generated-source)
568LOCAL_GENERATED_SOURCES += $(GEN)
569
570#
571# Build types.hal (VehicleAudioFocusState)
572#
573GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioFocusState.java
574$(GEN): $(HIDL)
575$(GEN): PRIVATE_HIDL := $(HIDL)
576$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
577$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
578$(GEN): PRIVATE_CUSTOM_TOOL = \
579 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
580 -Ljava \
581 -randroid.hardware:hardware/interfaces \
582 -randroid.hidl:system/libhidl/transport \
583 android.hardware.automotive.vehicle@2.0::types.VehicleAudioFocusState
584
585$(GEN): $(LOCAL_PATH)/types.hal
586 $(transform-generated-source)
587LOCAL_GENERATED_SOURCES += $(GEN)
588
589#
590# Build types.hal (VehicleAudioHwVariantConfigFlag)
591#
592GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioHwVariantConfigFlag.java
593$(GEN): $(HIDL)
594$(GEN): PRIVATE_HIDL := $(HIDL)
595$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
596$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
597$(GEN): PRIVATE_CUSTOM_TOOL = \
598 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
599 -Ljava \
600 -randroid.hardware:hardware/interfaces \
601 -randroid.hidl:system/libhidl/transport \
602 android.hardware.automotive.vehicle@2.0::types.VehicleAudioHwVariantConfigFlag
603
604$(GEN): $(LOCAL_PATH)/types.hal
605 $(transform-generated-source)
606LOCAL_GENERATED_SOURCES += $(GEN)
607
608#
609# Build types.hal (VehicleAudioRoutingPolicyIndex)
610#
611GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioRoutingPolicyIndex.java
612$(GEN): $(HIDL)
613$(GEN): PRIVATE_HIDL := $(HIDL)
614$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
615$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
616$(GEN): PRIVATE_CUSTOM_TOOL = \
617 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
618 -Ljava \
619 -randroid.hardware:hardware/interfaces \
620 -randroid.hidl:system/libhidl/transport \
621 android.hardware.automotive.vehicle@2.0::types.VehicleAudioRoutingPolicyIndex
622
623$(GEN): $(LOCAL_PATH)/types.hal
624 $(transform-generated-source)
625LOCAL_GENERATED_SOURCES += $(GEN)
626
627#
628# Build types.hal (VehicleAudioStream)
629#
630GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioStream.java
631$(GEN): $(HIDL)
632$(GEN): PRIVATE_HIDL := $(HIDL)
633$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
634$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
635$(GEN): PRIVATE_CUSTOM_TOOL = \
636 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
637 -Ljava \
638 -randroid.hardware:hardware/interfaces \
639 -randroid.hidl:system/libhidl/transport \
640 android.hardware.automotive.vehicle@2.0::types.VehicleAudioStream
641
642$(GEN): $(LOCAL_PATH)/types.hal
643 $(transform-generated-source)
644LOCAL_GENERATED_SOURCES += $(GEN)
645
646#
647# Build types.hal (VehicleAudioStreamFlag)
648#
649GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioStreamFlag.java
650$(GEN): $(HIDL)
651$(GEN): PRIVATE_HIDL := $(HIDL)
652$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
653$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
654$(GEN): PRIVATE_CUSTOM_TOOL = \
655 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
656 -Ljava \
657 -randroid.hardware:hardware/interfaces \
658 -randroid.hidl:system/libhidl/transport \
659 android.hardware.automotive.vehicle@2.0::types.VehicleAudioStreamFlag
660
661$(GEN): $(LOCAL_PATH)/types.hal
662 $(transform-generated-source)
663LOCAL_GENERATED_SOURCES += $(GEN)
664
665#
666# Build types.hal (VehicleAudioVolumeCapabilityFlag)
667#
668GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioVolumeCapabilityFlag.java
669$(GEN): $(HIDL)
670$(GEN): PRIVATE_HIDL := $(HIDL)
671$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
672$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
673$(GEN): PRIVATE_CUSTOM_TOOL = \
674 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
675 -Ljava \
676 -randroid.hardware:hardware/interfaces \
677 -randroid.hidl:system/libhidl/transport \
678 android.hardware.automotive.vehicle@2.0::types.VehicleAudioVolumeCapabilityFlag
679
680$(GEN): $(LOCAL_PATH)/types.hal
681 $(transform-generated-source)
682LOCAL_GENERATED_SOURCES += $(GEN)
683
684#
685# Build types.hal (VehicleAudioVolumeIndex)
686#
687GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioVolumeIndex.java
688$(GEN): $(HIDL)
689$(GEN): PRIVATE_HIDL := $(HIDL)
690$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
691$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
692$(GEN): PRIVATE_CUSTOM_TOOL = \
693 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
694 -Ljava \
695 -randroid.hardware:hardware/interfaces \
696 -randroid.hidl:system/libhidl/transport \
697 android.hardware.automotive.vehicle@2.0::types.VehicleAudioVolumeIndex
698
699$(GEN): $(LOCAL_PATH)/types.hal
700 $(transform-generated-source)
701LOCAL_GENERATED_SOURCES += $(GEN)
702
703#
704# Build types.hal (VehicleAudioVolumeLimitIndex)
705#
706GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioVolumeLimitIndex.java
707$(GEN): $(HIDL)
708$(GEN): PRIVATE_HIDL := $(HIDL)
709$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
710$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
711$(GEN): PRIVATE_CUSTOM_TOOL = \
712 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
713 -Ljava \
714 -randroid.hardware:hardware/interfaces \
715 -randroid.hidl:system/libhidl/transport \
716 android.hardware.automotive.vehicle@2.0::types.VehicleAudioVolumeLimitIndex
717
718$(GEN): $(LOCAL_PATH)/types.hal
719 $(transform-generated-source)
720LOCAL_GENERATED_SOURCES += $(GEN)
721
722#
723# Build types.hal (VehicleAudioVolumeState)
724#
725GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleAudioVolumeState.java
726$(GEN): $(HIDL)
727$(GEN): PRIVATE_HIDL := $(HIDL)
728$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
729$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
730$(GEN): PRIVATE_CUSTOM_TOOL = \
731 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
732 -Ljava \
733 -randroid.hardware:hardware/interfaces \
734 -randroid.hidl:system/libhidl/transport \
735 android.hardware.automotive.vehicle@2.0::types.VehicleAudioVolumeState
736
737$(GEN): $(LOCAL_PATH)/types.hal
738 $(transform-generated-source)
739LOCAL_GENERATED_SOURCES += $(GEN)
740
741#
742# Build types.hal (VehicleDisplay)
743#
744GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleDisplay.java
745$(GEN): $(HIDL)
746$(GEN): PRIVATE_HIDL := $(HIDL)
747$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
748$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
749$(GEN): PRIVATE_CUSTOM_TOOL = \
750 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
751 -Ljava \
752 -randroid.hardware:hardware/interfaces \
753 -randroid.hidl:system/libhidl/transport \
754 android.hardware.automotive.vehicle@2.0::types.VehicleDisplay
755
756$(GEN): $(LOCAL_PATH)/types.hal
757 $(transform-generated-source)
758LOCAL_GENERATED_SOURCES += $(GEN)
759
760#
761# Build types.hal (VehicleDrivingStatus)
762#
763GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleDrivingStatus.java
764$(GEN): $(HIDL)
765$(GEN): PRIVATE_HIDL := $(HIDL)
766$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
767$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
768$(GEN): PRIVATE_CUSTOM_TOOL = \
769 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
770 -Ljava \
771 -randroid.hardware:hardware/interfaces \
772 -randroid.hidl:system/libhidl/transport \
773 android.hardware.automotive.vehicle@2.0::types.VehicleDrivingStatus
774
775$(GEN): $(LOCAL_PATH)/types.hal
776 $(transform-generated-source)
777LOCAL_GENERATED_SOURCES += $(GEN)
778
779#
780# Build types.hal (VehicleGear)
781#
782GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleGear.java
783$(GEN): $(HIDL)
784$(GEN): PRIVATE_HIDL := $(HIDL)
785$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
786$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
787$(GEN): PRIVATE_CUSTOM_TOOL = \
788 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
789 -Ljava \
790 -randroid.hardware:hardware/interfaces \
791 -randroid.hidl:system/libhidl/transport \
792 android.hardware.automotive.vehicle@2.0::types.VehicleGear
793
794$(GEN): $(LOCAL_PATH)/types.hal
795 $(transform-generated-source)
796LOCAL_GENERATED_SOURCES += $(GEN)
797
798#
799# Build types.hal (VehicleHvacFanDirection)
800#
801GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleHvacFanDirection.java
802$(GEN): $(HIDL)
803$(GEN): PRIVATE_HIDL := $(HIDL)
804$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
805$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
806$(GEN): PRIVATE_CUSTOM_TOOL = \
807 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
808 -Ljava \
809 -randroid.hardware:hardware/interfaces \
810 -randroid.hidl:system/libhidl/transport \
811 android.hardware.automotive.vehicle@2.0::types.VehicleHvacFanDirection
812
813$(GEN): $(LOCAL_PATH)/types.hal
814 $(transform-generated-source)
815LOCAL_GENERATED_SOURCES += $(GEN)
816
817#
818# Build types.hal (VehicleHwKeyInputAction)
819#
820GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleHwKeyInputAction.java
821$(GEN): $(HIDL)
822$(GEN): PRIVATE_HIDL := $(HIDL)
823$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
824$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
825$(GEN): PRIVATE_CUSTOM_TOOL = \
826 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
827 -Ljava \
828 -randroid.hardware:hardware/interfaces \
829 -randroid.hidl:system/libhidl/transport \
830 android.hardware.automotive.vehicle@2.0::types.VehicleHwKeyInputAction
831
832$(GEN): $(LOCAL_PATH)/types.hal
833 $(transform-generated-source)
834LOCAL_GENERATED_SOURCES += $(GEN)
835
836#
837# Build types.hal (VehicleIgnitionState)
838#
839GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleIgnitionState.java
840$(GEN): $(HIDL)
841$(GEN): PRIVATE_HIDL := $(HIDL)
842$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
843$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
844$(GEN): PRIVATE_CUSTOM_TOOL = \
845 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
846 -Ljava \
847 -randroid.hardware:hardware/interfaces \
848 -randroid.hidl:system/libhidl/transport \
849 android.hardware.automotive.vehicle@2.0::types.VehicleIgnitionState
850
851$(GEN): $(LOCAL_PATH)/types.hal
852 $(transform-generated-source)
853LOCAL_GENERATED_SOURCES += $(GEN)
854
855#
856# Build types.hal (VehicleInstrumentClusterType)
857#
858GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleInstrumentClusterType.java
859$(GEN): $(HIDL)
860$(GEN): PRIVATE_HIDL := $(HIDL)
861$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
862$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
863$(GEN): PRIVATE_CUSTOM_TOOL = \
864 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
865 -Ljava \
866 -randroid.hardware:hardware/interfaces \
867 -randroid.hidl:system/libhidl/transport \
868 android.hardware.automotive.vehicle@2.0::types.VehicleInstrumentClusterType
869
870$(GEN): $(LOCAL_PATH)/types.hal
871 $(transform-generated-source)
872LOCAL_GENERATED_SOURCES += $(GEN)
873
874#
875# Build types.hal (VehiclePropConfig)
876#
877GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehiclePropConfig.java
878$(GEN): $(HIDL)
879$(GEN): PRIVATE_HIDL := $(HIDL)
880$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
881$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
882$(GEN): PRIVATE_CUSTOM_TOOL = \
883 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
884 -Ljava \
885 -randroid.hardware:hardware/interfaces \
886 -randroid.hidl:system/libhidl/transport \
887 android.hardware.automotive.vehicle@2.0::types.VehiclePropConfig
888
889$(GEN): $(LOCAL_PATH)/types.hal
890 $(transform-generated-source)
891LOCAL_GENERATED_SOURCES += $(GEN)
892
893#
894# Build types.hal (VehiclePropValue)
895#
896GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehiclePropValue.java
897$(GEN): $(HIDL)
898$(GEN): PRIVATE_HIDL := $(HIDL)
899$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
900$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
901$(GEN): PRIVATE_CUSTOM_TOOL = \
902 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
903 -Ljava \
904 -randroid.hardware:hardware/interfaces \
905 -randroid.hidl:system/libhidl/transport \
906 android.hardware.automotive.vehicle@2.0::types.VehiclePropValue
907
908$(GEN): $(LOCAL_PATH)/types.hal
909 $(transform-generated-source)
910LOCAL_GENERATED_SOURCES += $(GEN)
911
912#
913# Build types.hal (VehicleProperty)
914#
915GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleProperty.java
916$(GEN): $(HIDL)
917$(GEN): PRIVATE_HIDL := $(HIDL)
918$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
919$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
920$(GEN): PRIVATE_CUSTOM_TOOL = \
921 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
922 -Ljava \
923 -randroid.hardware:hardware/interfaces \
924 -randroid.hidl:system/libhidl/transport \
925 android.hardware.automotive.vehicle@2.0::types.VehicleProperty
926
927$(GEN): $(LOCAL_PATH)/types.hal
928 $(transform-generated-source)
929LOCAL_GENERATED_SOURCES += $(GEN)
930
931#
932# Build types.hal (VehiclePropertyAccess)
933#
934GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehiclePropertyAccess.java
935$(GEN): $(HIDL)
936$(GEN): PRIVATE_HIDL := $(HIDL)
937$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
938$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
939$(GEN): PRIVATE_CUSTOM_TOOL = \
940 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
941 -Ljava \
942 -randroid.hardware:hardware/interfaces \
943 -randroid.hidl:system/libhidl/transport \
944 android.hardware.automotive.vehicle@2.0::types.VehiclePropertyAccess
945
946$(GEN): $(LOCAL_PATH)/types.hal
947 $(transform-generated-source)
948LOCAL_GENERATED_SOURCES += $(GEN)
949
950#
951# Build types.hal (VehiclePropertyChangeMode)
952#
953GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehiclePropertyChangeMode.java
954$(GEN): $(HIDL)
955$(GEN): PRIVATE_HIDL := $(HIDL)
956$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
957$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
958$(GEN): PRIVATE_CUSTOM_TOOL = \
959 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
960 -Ljava \
961 -randroid.hardware:hardware/interfaces \
962 -randroid.hidl:system/libhidl/transport \
963 android.hardware.automotive.vehicle@2.0::types.VehiclePropertyChangeMode
964
965$(GEN): $(LOCAL_PATH)/types.hal
966 $(transform-generated-source)
967LOCAL_GENERATED_SOURCES += $(GEN)
968
969#
970# Build types.hal (VehiclePropertyGroup)
971#
972GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehiclePropertyGroup.java
973$(GEN): $(HIDL)
974$(GEN): PRIVATE_HIDL := $(HIDL)
975$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
976$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
977$(GEN): PRIVATE_CUSTOM_TOOL = \
978 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
979 -Ljava \
980 -randroid.hardware:hardware/interfaces \
981 -randroid.hidl:system/libhidl/transport \
982 android.hardware.automotive.vehicle@2.0::types.VehiclePropertyGroup
983
984$(GEN): $(LOCAL_PATH)/types.hal
985 $(transform-generated-source)
986LOCAL_GENERATED_SOURCES += $(GEN)
987
988#
989# Build types.hal (VehiclePropertyOperation)
990#
991GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehiclePropertyOperation.java
992$(GEN): $(HIDL)
993$(GEN): PRIVATE_HIDL := $(HIDL)
994$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
995$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
996$(GEN): PRIVATE_CUSTOM_TOOL = \
997 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
998 -Ljava \
999 -randroid.hardware:hardware/interfaces \
1000 -randroid.hidl:system/libhidl/transport \
1001 android.hardware.automotive.vehicle@2.0::types.VehiclePropertyOperation
1002
1003$(GEN): $(LOCAL_PATH)/types.hal
1004 $(transform-generated-source)
1005LOCAL_GENERATED_SOURCES += $(GEN)
1006
1007#
1008# Build types.hal (VehiclePropertyType)
1009#
1010GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehiclePropertyType.java
1011$(GEN): $(HIDL)
1012$(GEN): PRIVATE_HIDL := $(HIDL)
1013$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1014$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1015$(GEN): PRIVATE_CUSTOM_TOOL = \
1016 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1017 -Ljava \
1018 -randroid.hardware:hardware/interfaces \
1019 -randroid.hidl:system/libhidl/transport \
1020 android.hardware.automotive.vehicle@2.0::types.VehiclePropertyType
1021
1022$(GEN): $(LOCAL_PATH)/types.hal
1023 $(transform-generated-source)
1024LOCAL_GENERATED_SOURCES += $(GEN)
1025
1026#
1027# Build types.hal (VehicleRadioConstants)
1028#
1029GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleRadioConstants.java
1030$(GEN): $(HIDL)
1031$(GEN): PRIVATE_HIDL := $(HIDL)
1032$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1033$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1034$(GEN): PRIVATE_CUSTOM_TOOL = \
1035 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1036 -Ljava \
1037 -randroid.hardware:hardware/interfaces \
1038 -randroid.hidl:system/libhidl/transport \
1039 android.hardware.automotive.vehicle@2.0::types.VehicleRadioConstants
1040
1041$(GEN): $(LOCAL_PATH)/types.hal
1042 $(transform-generated-source)
1043LOCAL_GENERATED_SOURCES += $(GEN)
1044
1045#
1046# Build types.hal (VehicleTurnSignal)
1047#
1048GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleTurnSignal.java
1049$(GEN): $(HIDL)
1050$(GEN): PRIVATE_HIDL := $(HIDL)
1051$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1052$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1053$(GEN): PRIVATE_CUSTOM_TOOL = \
1054 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1055 -Ljava \
1056 -randroid.hardware:hardware/interfaces \
1057 -randroid.hidl:system/libhidl/transport \
1058 android.hardware.automotive.vehicle@2.0::types.VehicleTurnSignal
1059
1060$(GEN): $(LOCAL_PATH)/types.hal
1061 $(transform-generated-source)
1062LOCAL_GENERATED_SOURCES += $(GEN)
1063
1064#
1065# Build types.hal (VehicleUnit)
1066#
1067GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VehicleUnit.java
1068$(GEN): $(HIDL)
1069$(GEN): PRIVATE_HIDL := $(HIDL)
1070$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1071$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1072$(GEN): PRIVATE_CUSTOM_TOOL = \
1073 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1074 -Ljava \
1075 -randroid.hardware:hardware/interfaces \
1076 -randroid.hidl:system/libhidl/transport \
1077 android.hardware.automotive.vehicle@2.0::types.VehicleUnit
1078
1079$(GEN): $(LOCAL_PATH)/types.hal
1080 $(transform-generated-source)
1081LOCAL_GENERATED_SOURCES += $(GEN)
1082
1083#
1084# Build types.hal (VmsAvailabilityStateIntegerValuesIndex)
1085#
1086GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VmsAvailabilityStateIntegerValuesIndex.java
1087$(GEN): $(HIDL)
1088$(GEN): PRIVATE_HIDL := $(HIDL)
1089$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1090$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1091$(GEN): PRIVATE_CUSTOM_TOOL = \
1092 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1093 -Ljava \
1094 -randroid.hardware:hardware/interfaces \
1095 -randroid.hidl:system/libhidl/transport \
1096 android.hardware.automotive.vehicle@2.0::types.VmsAvailabilityStateIntegerValuesIndex
1097
1098$(GEN): $(LOCAL_PATH)/types.hal
1099 $(transform-generated-source)
1100LOCAL_GENERATED_SOURCES += $(GEN)
1101
1102#
1103# Build types.hal (VmsBaseMessageIntegerValuesIndex)
1104#
1105GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VmsBaseMessageIntegerValuesIndex.java
1106$(GEN): $(HIDL)
1107$(GEN): PRIVATE_HIDL := $(HIDL)
1108$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1109$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1110$(GEN): PRIVATE_CUSTOM_TOOL = \
1111 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1112 -Ljava \
1113 -randroid.hardware:hardware/interfaces \
1114 -randroid.hidl:system/libhidl/transport \
1115 android.hardware.automotive.vehicle@2.0::types.VmsBaseMessageIntegerValuesIndex
1116
1117$(GEN): $(LOCAL_PATH)/types.hal
1118 $(transform-generated-source)
1119LOCAL_GENERATED_SOURCES += $(GEN)
1120
1121#
1122# Build types.hal (VmsMessageType)
1123#
1124GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VmsMessageType.java
1125$(GEN): $(HIDL)
1126$(GEN): PRIVATE_HIDL := $(HIDL)
1127$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1128$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1129$(GEN): PRIVATE_CUSTOM_TOOL = \
1130 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1131 -Ljava \
1132 -randroid.hardware:hardware/interfaces \
1133 -randroid.hidl:system/libhidl/transport \
1134 android.hardware.automotive.vehicle@2.0::types.VmsMessageType
1135
1136$(GEN): $(LOCAL_PATH)/types.hal
1137 $(transform-generated-source)
1138LOCAL_GENERATED_SOURCES += $(GEN)
1139
1140#
1141# Build types.hal (VmsMessageWithLayerAndPublisherIdIntegerValuesIndex)
1142#
1143GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VmsMessageWithLayerAndPublisherIdIntegerValuesIndex.java
1144$(GEN): $(HIDL)
1145$(GEN): PRIVATE_HIDL := $(HIDL)
1146$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1147$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1148$(GEN): PRIVATE_CUSTOM_TOOL = \
1149 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1150 -Ljava \
1151 -randroid.hardware:hardware/interfaces \
1152 -randroid.hidl:system/libhidl/transport \
1153 android.hardware.automotive.vehicle@2.0::types.VmsMessageWithLayerAndPublisherIdIntegerValuesIndex
1154
1155$(GEN): $(LOCAL_PATH)/types.hal
1156 $(transform-generated-source)
1157LOCAL_GENERATED_SOURCES += $(GEN)
1158
1159#
1160# Build types.hal (VmsMessageWithLayerIntegerValuesIndex)
1161#
1162GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VmsMessageWithLayerIntegerValuesIndex.java
1163$(GEN): $(HIDL)
1164$(GEN): PRIVATE_HIDL := $(HIDL)
1165$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1166$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1167$(GEN): PRIVATE_CUSTOM_TOOL = \
1168 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1169 -Ljava \
1170 -randroid.hardware:hardware/interfaces \
1171 -randroid.hidl:system/libhidl/transport \
1172 android.hardware.automotive.vehicle@2.0::types.VmsMessageWithLayerIntegerValuesIndex
1173
1174$(GEN): $(LOCAL_PATH)/types.hal
1175 $(transform-generated-source)
1176LOCAL_GENERATED_SOURCES += $(GEN)
1177
1178#
1179# Build types.hal (VmsOfferingMessageIntegerValuesIndex)
1180#
1181GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VmsOfferingMessageIntegerValuesIndex.java
1182$(GEN): $(HIDL)
1183$(GEN): PRIVATE_HIDL := $(HIDL)
1184$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1185$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1186$(GEN): PRIVATE_CUSTOM_TOOL = \
1187 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1188 -Ljava \
1189 -randroid.hardware:hardware/interfaces \
1190 -randroid.hidl:system/libhidl/transport \
1191 android.hardware.automotive.vehicle@2.0::types.VmsOfferingMessageIntegerValuesIndex
1192
1193$(GEN): $(LOCAL_PATH)/types.hal
1194 $(transform-generated-source)
1195LOCAL_GENERATED_SOURCES += $(GEN)
1196
1197#
1198# Build types.hal (VmsSubscriptionsStateIntegerValuesIndex)
1199#
1200GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/VmsSubscriptionsStateIntegerValuesIndex.java
1201$(GEN): $(HIDL)
1202$(GEN): PRIVATE_HIDL := $(HIDL)
1203$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1204$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1205$(GEN): PRIVATE_CUSTOM_TOOL = \
1206 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1207 -Ljava \
1208 -randroid.hardware:hardware/interfaces \
1209 -randroid.hidl:system/libhidl/transport \
1210 android.hardware.automotive.vehicle@2.0::types.VmsSubscriptionsStateIntegerValuesIndex
1211
1212$(GEN): $(LOCAL_PATH)/types.hal
1213 $(transform-generated-source)
1214LOCAL_GENERATED_SOURCES += $(GEN)
1215
1216#
1217# Build types.hal (Wheel)
1218#
1219GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/Wheel.java
1220$(GEN): $(HIDL)
1221$(GEN): PRIVATE_HIDL := $(HIDL)
1222$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
1223$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1224$(GEN): PRIVATE_CUSTOM_TOOL = \
1225 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1226 -Ljava \
1227 -randroid.hardware:hardware/interfaces \
1228 -randroid.hidl:system/libhidl/transport \
1229 android.hardware.automotive.vehicle@2.0::types.Wheel
1230
1231$(GEN): $(LOCAL_PATH)/types.hal
1232 $(transform-generated-source)
1233LOCAL_GENERATED_SOURCES += $(GEN)
1234
1235#
1236# Build IVehicle.hal
1237#
1238GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/IVehicle.java
1239$(GEN): $(HIDL)
1240$(GEN): PRIVATE_HIDL := $(HIDL)
1241$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IVehicle.hal
1242$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/IVehicleCallback.hal
1243$(GEN): $(LOCAL_PATH)/IVehicleCallback.hal
1244$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
1245$(GEN): $(LOCAL_PATH)/types.hal
1246$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1247$(GEN): PRIVATE_CUSTOM_TOOL = \
1248 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1249 -Ljava \
1250 -randroid.hardware:hardware/interfaces \
1251 -randroid.hidl:system/libhidl/transport \
1252 android.hardware.automotive.vehicle@2.0::IVehicle
1253
1254$(GEN): $(LOCAL_PATH)/IVehicle.hal
1255 $(transform-generated-source)
1256LOCAL_GENERATED_SOURCES += $(GEN)
1257
1258#
1259# Build IVehicleCallback.hal
1260#
1261GEN := $(intermediates)/android/hardware/automotive/vehicle/V2_0/IVehicleCallback.java
1262$(GEN): $(HIDL)
1263$(GEN): PRIVATE_HIDL := $(HIDL)
1264$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/IVehicleCallback.hal
1265$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
1266$(GEN): $(LOCAL_PATH)/types.hal
1267$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
1268$(GEN): PRIVATE_CUSTOM_TOOL = \
1269 $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
1270 -Ljava \
1271 -randroid.hardware:hardware/interfaces \
1272 -randroid.hidl:system/libhidl/transport \
1273 android.hardware.automotive.vehicle@2.0::IVehicleCallback
1274
1275$(GEN): $(LOCAL_PATH)/IVehicleCallback.hal
1276 $(transform-generated-source)
1277LOCAL_GENERATED_SOURCES += $(GEN)
1278include $(BUILD_STATIC_JAVA_LIBRARY)
1279
1280
1281
1282include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/automotive/vehicle/2.0/default/OWNERS b/automotive/vehicle/2.0/default/OWNERS
new file mode 100644
index 00000000..d5d9d4c2
--- /dev/null
+++ b/automotive/vehicle/2.0/default/OWNERS
@@ -0,0 +1,3 @@
1egranata@google.com
2pavelm@google.com
3spaik@google.com
diff --git a/automotive/vehicle/2.0/default/android.hardware.automotive.vehicle@2.0-service.rc b/automotive/vehicle/2.0/default/android.hardware.automotive.vehicle@2.0-service.rc
index 30e249e8..c8c89dc8 100644
--- a/automotive/vehicle/2.0/default/android.hardware.automotive.vehicle@2.0-service.rc
+++ b/automotive/vehicle/2.0/default/android.hardware.automotive.vehicle@2.0-service.rc
@@ -1,4 +1,4 @@
1service vehicle-hal-2.0 /vendor/bin/hw/android.hardware.automotive.vehicle@2.0-service 1service vendor.vehicle-hal-2.0 /vendor/bin/hw/android.hardware.automotive.vehicle@2.0-service
2 class hal 2 class hal
3 user vehicle_network 3 user vehicle_network
4 group system inet 4 group system inet
diff --git a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h
index 08d3d794..71601a08 100644
--- a/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h
+++ b/automotive/vehicle/2.0/default/impl/vhal_v2_0/DefaultConfig.h
@@ -78,6 +78,38 @@ struct ConfigDeclaration {
78const ConfigDeclaration kVehicleProperties[]{ 78const ConfigDeclaration kVehicleProperties[]{
79 {.config = 79 {.config =
80 { 80 {
81 .prop = toInt(VehicleProperty::INFO_FUEL_CAPACITY),
82 .access = VehiclePropertyAccess::READ,
83 .changeMode = VehiclePropertyChangeMode::STATIC,
84 },
85 .initialValue = {.floatValues = {15000}}},
86
87 {.config =
88 {
89 .prop = toInt(VehicleProperty::INFO_FUEL_TYPE),
90 .access = VehiclePropertyAccess::READ,
91 .changeMode = VehiclePropertyChangeMode::STATIC,
92 },
93 .initialValue = {.int32Values = {1}}},
94
95 {.config =
96 {
97 .prop = toInt(VehicleProperty::INFO_EV_BATTERY_CAPACITY),
98 .access = VehiclePropertyAccess::READ,
99 .changeMode = VehiclePropertyChangeMode::STATIC,
100 },
101 .initialValue = {.floatValues = {150000}}},
102
103 {.config =
104 {
105 .prop = toInt(VehicleProperty::INFO_EV_CONNECTOR_TYPE),
106 .access = VehiclePropertyAccess::READ,
107 .changeMode = VehiclePropertyChangeMode::STATIC,
108 },
109 .initialValue = {.int32Values = {1}}},
110
111 {.config =
112 {
81 .prop = toInt(VehicleProperty::INFO_MAKE), 113 .prop = toInt(VehicleProperty::INFO_MAKE),
82 .access = VehiclePropertyAccess::READ, 114 .access = VehiclePropertyAccess::READ,
83 .changeMode = VehiclePropertyChangeMode::STATIC, 115 .changeMode = VehiclePropertyChangeMode::STATIC,
@@ -89,7 +121,7 @@ const ConfigDeclaration kVehicleProperties[]{
89 .access = VehiclePropertyAccess::READ, 121 .access = VehiclePropertyAccess::READ,
90 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 122 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
91 .minSampleRate = 1.0f, 123 .minSampleRate = 1.0f,
92 .maxSampleRate = 1000.0f, 124 .maxSampleRate = 10.0f,
93 }, 125 },
94 .initialValue = {.floatValues = {0.0f}}}, 126 .initialValue = {.floatValues = {0.0f}}},
95 127
@@ -101,6 +133,14 @@ const ConfigDeclaration kVehicleProperties[]{
101 }, 133 },
102 .initialValue = {.floatValues = {0.0f}}}, 134 .initialValue = {.floatValues = {0.0f}}},
103 135
136 {.config =
137 {
138 .prop = toInt(VehicleProperty::ENGINE_ON),
139 .access = VehiclePropertyAccess::READ,
140 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
141 },
142 .initialValue = {.int32Values = {0}}},
143
104 { 144 {
105 .config = 145 .config =
106 { 146 {
@@ -108,13 +148,61 @@ const ConfigDeclaration kVehicleProperties[]{
108 .access = VehiclePropertyAccess::READ, 148 .access = VehiclePropertyAccess::READ,
109 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 149 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
110 .minSampleRate = 1.0f, 150 .minSampleRate = 1.0f,
111 .maxSampleRate = 1000.0f, 151 .maxSampleRate = 10.0f,
112 }, 152 },
113 .initialValue = {.floatValues = {0.0f}}, 153 .initialValue = {.floatValues = {0.0f}},
114 }, 154 },
115 155
116 {.config = 156 {.config =
117 { 157 {
158 .prop = toInt(VehicleProperty::FUEL_LEVEL),
159 .access = VehiclePropertyAccess::READ,
160 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
161 },
162 .initialValue = {.floatValues = {15000}}},
163
164 {.config =
165 {
166 .prop = toInt(VehicleProperty::FUEL_DOOR_OPEN),
167 .access = VehiclePropertyAccess::READ,
168 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
169 },
170 .initialValue = {.int32Values = {0}}},
171
172 {.config =
173 {
174 .prop = toInt(VehicleProperty::EV_BATTERY_LEVEL),
175 .access = VehiclePropertyAccess::READ,
176 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
177 },
178 .initialValue = {.floatValues = {150000}}},
179
180 {.config =
181 {
182 .prop = toInt(VehicleProperty::EV_CHARGE_PORT_OPEN),
183 .access = VehiclePropertyAccess::READ,
184 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
185 },
186 .initialValue = {.int32Values = {0}}},
187
188 {.config =
189 {
190 .prop = toInt(VehicleProperty::EV_CHARGE_PORT_CONNECTED),
191 .access = VehiclePropertyAccess::READ,
192 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
193 },
194 .initialValue = {.int32Values = {0}}},
195
196 {.config =
197 {
198 .prop = toInt(VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE),
199 .access = VehiclePropertyAccess::READ,
200 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
201 },
202 .initialValue = {.floatValues = {0}}},
203
204 {.config =
205 {
118 .prop = toInt(VehicleProperty::CURRENT_GEAR), 206 .prop = toInt(VehicleProperty::CURRENT_GEAR),
119 .access = VehiclePropertyAccess::READ, 207 .access = VehiclePropertyAccess::READ,
120 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 208 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
@@ -139,6 +227,14 @@ const ConfigDeclaration kVehicleProperties[]{
139 227
140 {.config = 228 {.config =
141 { 229 {
230 .prop = toInt(VehicleProperty::HW_KEY_INPUT),
231 .access = VehiclePropertyAccess::READ,
232 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
233 },
234 .initialValue = {.int32Values = {0, 0, 0}}},
235
236 {.config =
237 {
142 .prop = toInt(VehicleProperty::HVAC_POWER_ON), 238 .prop = toInt(VehicleProperty::HVAC_POWER_ON),
143 .access = VehiclePropertyAccess::READ_WRITE, 239 .access = VehiclePropertyAccess::READ_WRITE,
144 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 240 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
@@ -246,16 +342,6 @@ const ConfigDeclaration kVehicleProperties[]{
246 }, 342 },
247 .initialValue = {.int32Values = {toInt(VehicleGear::GEAR_PARK)}}}, 343 .initialValue = {.int32Values = {toInt(VehicleGear::GEAR_PARK)}}},
248 344
249 {
250 .config =
251 {
252 .prop = toInt(VehicleProperty::INFO_FUEL_CAPACITY),
253 .access = VehiclePropertyAccess::READ,
254 .changeMode = VehiclePropertyChangeMode::STATIC,
255 },
256 .initialValue = {.floatValues = {123000.0f}} // In Milliliters
257 },
258
259 {.config = {.prop = toInt(VehicleProperty::DISPLAY_BRIGHTNESS), 345 {.config = {.prop = toInt(VehicleProperty::DISPLAY_BRIGHTNESS),
260 .access = VehiclePropertyAccess::READ_WRITE, 346 .access = VehiclePropertyAccess::READ_WRITE,
261 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 347 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
@@ -297,17 +383,16 @@ const ConfigDeclaration kVehicleProperties[]{
297 }, 383 },
298 .initialValue = {.int32Values = {1}}}, 384 .initialValue = {.int32Values = {1}}},
299 385
300 { 386 {.config =
301 .config = 387 {
302 { 388 .prop = WHEEL_TICK,
303 .prop = WHEEL_TICK, 389 .access = VehiclePropertyAccess::READ,
304 .access = VehiclePropertyAccess::READ, 390 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
305 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 391 .configArray = {ALL_WHEELS, 50000, 50000, 50000, 50000},
306 .configArray = {ALL_WHEELS, 50000, 50000, 50000, 50000}, 392 .minSampleRate = 1.0f,
307 .minSampleRate = 1.0f, 393 .maxSampleRate = 10.0f,
308 .maxSampleRate = 100.0f, 394 },
309 }, 395 .initialValue = {.int64Values = {0, 100000, 200000, 300000, 400000}}},
310 },
311 396
312 { 397 {
313 .config = 398 .config =
diff --git a/automotive/vehicle/2.0/types.hal b/automotive/vehicle/2.0/types.hal
index 7c08b4a0..e07917e1 100644
--- a/automotive/vehicle/2.0/types.hal
+++ b/automotive/vehicle/2.0/types.hal
@@ -148,7 +148,7 @@ enum VehicleProperty: int32_t {
148 | VehicleArea:GLOBAL), 148 | VehicleArea:GLOBAL),
149 149
150 /** 150 /**
151 * Fuel capacity of the vehicle 151 * Fuel capacity of the vehicle in milliliters
152 * 152 *
153 * @change_mode VehiclePropertyChangeMode:STATIC 153 * @change_mode VehiclePropertyChangeMode:STATIC
154 * @access VehiclePropertyAccess:READ 154 * @access VehiclePropertyAccess:READ
@@ -161,6 +161,45 @@ enum VehicleProperty: int32_t {
161 | VehicleArea:GLOBAL), 161 | VehicleArea:GLOBAL),
162 162
163 /** 163 /**
164 * List of fuels the vehicle may use. Uses enum FuelType
165 *
166 * @change_mode VehiclePropertyChangeMode:STATIC
167 * @access VehiclePropertyAccess:READ
168 * @unit VehicleUnit:MILLILITERS
169 */
170 INFO_FUEL_TYPE = (
171 0x0105
172 | VehiclePropertyGroup:SYSTEM
173 | VehiclePropertyType:INT32_VEC
174 | VehicleArea:GLOBAL),
175
176 /**
177 * Battery capacity of the vehicle, if EV or hybrid. This is the nominal
178 * battery capacity when the vehicle is new.
179 *
180 * @change_mode VehiclePropertyChangeMode:STATIC
181 * @access VehiclePropertyAccess:READ
182 * @unit VehicleUnit:WH
183 */
184 INFO_EV_BATTERY_CAPACITY = (
185 0x0106
186 | VehiclePropertyGroup:SYSTEM
187 | VehiclePropertyType:FLOAT
188 | VehicleArea:GLOBAL),
189
190 /**
191 * List of connectors this EV may use. Uses enum EvConnectorType
192 *
193 * @change_mode VehiclePropertyChangeMode:STATIC
194 * @access VehiclePropertyAccess:READ
195 */
196 INFO_EV_CONNECTOR_TYPE = (
197 0x0107
198 | VehiclePropertyGroup:SYSTEM
199 | VehiclePropertyType:INT32_VEC
200 | VehicleArea:GLOBAL),
201
202 /**
164 * Current odometer value of the vehicle 203 * Current odometer value of the vehicle
165 * 204 *
166 * @change_mode VehiclePropertyChangeMode:ON_CHANGE | VehiclePropertyChangeMode:CONTINUOUS 205 * @change_mode VehiclePropertyChangeMode:ON_CHANGE | VehiclePropertyChangeMode:CONTINUOUS
@@ -187,6 +226,19 @@ enum VehicleProperty: int32_t {
187 | VehicleArea:GLOBAL), 226 | VehicleArea:GLOBAL),
188 227
189 /** 228 /**
229 * Engine on
230 *
231 * @change_mode VehiclePropertyChangeMode:STATIC
232 * @access VehiclePropertyAccess:READ
233 */
234 ENGINE_ON = (
235 0x0300
236 | VehiclePropertyGroup:SYSTEM
237 | VehiclePropertyType:BOOLEAN
238 | VehicleArea:GLOBAL),
239
240
241 /**
190 * Temperature of engine coolant 242 * Temperature of engine coolant
191 * 243 *
192 * @change_mode VehiclePropertyChangeMode:ON_CHANGE|VehiclePropertyChangeMode:CONTINUOUS 244 * @change_mode VehiclePropertyChangeMode:ON_CHANGE|VehiclePropertyChangeMode:CONTINUOUS
@@ -259,8 +311,6 @@ enum VehicleProperty: int32_t {
259 * 311 *
260 * @change_mode VehiclePropertyChangeMode:CONTINUOUS 312 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
261 * @access VehiclePropertyAccess:READ 313 * @access VehiclePropertyAccess:READ
262 *
263 * @since o.mr1
264 */ 314 */
265 WHEEL_TICK = ( 315 WHEEL_TICK = (
266 0x0306 316 0x0306
@@ -270,6 +320,88 @@ enum VehicleProperty: int32_t {
270 320
271 321
272 /** 322 /**
323 * Fuel remaining in the the vehicle, in milliliters
324 *
325 * Value may not exceed INFO_FUEL_CAPACITY
326 *
327 * @change_mode VehiclePropertyChangeMode:STATIC
328 * @access VehiclePropertyAccess:READ
329 * @unit VehicleUnit:MILLILITER
330 */
331 FUEL_LEVEL = (
332 0x0307
333 | VehiclePropertyGroup:SYSTEM
334 | VehiclePropertyType:FLOAT
335 | VehicleArea:GLOBAL),
336
337 /**
338 * Fuel door open
339 *
340 * @change_mode VehiclePropertyChangeMode:STATIC
341 * @access VehiclePropertyAccess:READ
342 */
343 FUEL_DOOR_OPEN = (
344 0x0308
345 | VehiclePropertyGroup:SYSTEM
346 | VehiclePropertyType:BOOLEAN
347 | VehicleArea:GLOBAL),
348
349 /**
350 * EV battery level in WH, if EV or hybrid
351 *
352 * Value may not exceed INFO_EV_BATTERY_CAPACITY
353 *
354 * @change_mode VehiclePropertyChangeMode:STATIC
355 * @access VehiclePropertyAccess:READ
356 * @unit VehicleUnit:WH
357 */
358 EV_BATTERY_LEVEL = (
359 0x0309
360 | VehiclePropertyGroup:SYSTEM
361 | VehiclePropertyType:FLOAT
362 | VehicleArea:GLOBAL),
363
364 /**
365 * EV charge port open
366 *
367 * @change_mode VehiclePropertyChangeMode:STATIC
368 * @access VehiclePropertyAccess:READ
369 */
370 EV_CHARGE_PORT_OPEN = (
371 0x030A
372 | VehiclePropertyGroup:SYSTEM
373 | VehiclePropertyType:BOOLEAN
374 | VehicleArea:GLOBAL),
375
376 /**
377 * EV charge port connected
378 *
379 * @change_mode VehiclePropertyChangeMode:STATIC
380 * @access VehiclePropertyAccess:READ
381 */
382 EV_CHARGE_PORT_CONNECTED = (
383 0x030B
384 | VehiclePropertyGroup:SYSTEM
385 | VehiclePropertyType:BOOLEAN
386 | VehicleArea:GLOBAL),
387
388 /**
389 * EV instantaneous charge rate in milliwatts
390 *
391 * Positive value indicates battery is being charged.
392 * Negative value indicates battery being discharged.
393 *
394 * @change_mode VehiclePropertyChangeMode:STATIC
395 * @access VehiclePropertyAccess:READ
396 * @unit VehicleUnit:MW
397 */
398 EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = (
399 0x030C
400 | VehiclePropertyGroup:SYSTEM
401 | VehiclePropertyType:FLOAT
402 | VehicleArea:GLOBAL),
403
404 /**
273 * Currently selected gear 405 * Currently selected gear
274 * 406 *
275 * @change_mode VehiclePropertyChangeMode:ON_CHANGE 407 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
@@ -376,8 +508,6 @@ enum VehicleProperty: int32_t {
376 * 508 *
377 * @change_mode VehiclePropertyChangeMode:ON_CHANGE 509 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
378 * @access VehiclePropertyAccess:READ 510 * @access VehiclePropertyAccess:READ
379 *
380 * @since o.mr1
381 */ 511 */
382 ABS_ACTIVE = ( 512 ABS_ACTIVE = (
383 0x040A 513 0x040A
@@ -390,8 +520,6 @@ enum VehicleProperty: int32_t {
390 * 520 *
391 * @change_mode VehiclePropertyChangeMode:ON_CHANGE 521 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
392 * @access VehiclePropertyAccess:READ 522 * @access VehiclePropertyAccess:READ
393 *
394 * @since o.mr1
395 */ 523 */
396 TRACTION_CONTROL_ACTIVE = ( 524 TRACTION_CONTROL_ACTIVE = (
397 0x040B 525 0x040B
@@ -720,8 +848,6 @@ enum VehicleProperty: int32_t {
720 * 848 *
721 * @change_mode VehiclePropertyChangeMode:ON_CHANGE 849 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
722 * @access VehiclePropertyAccess:READ_WRITE 850 * @access VehiclePropertyAccess:READ_WRITE
723 *
724 * @since o.mr1
725 */ 851 */
726 HVAC_AUTO_RECIRC_ON = ( 852 HVAC_AUTO_RECIRC_ON = (
727 0x0512 853 0x0512
@@ -1899,8 +2025,6 @@ enum VehicleProperty: int32_t {
1899 * 2025 *
1900 * @change_mode VehiclePropertyChangeMode:ON_CHANGE 2026 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1901 * @access VehiclePropertyAccess:READ_WRITE 2027 * @access VehiclePropertyAccess:READ_WRITE
1902 *
1903 * @since o.mr1
1904 */ 2028 */
1905 VEHICLE_MAP_SERVICE = ( 2029 VEHICLE_MAP_SERVICE = (
1906 0x0C00 2030 0x0C00
@@ -1948,8 +2072,6 @@ enum VehicleProperty: int32_t {
1948 * 2072 *
1949 * @change_mode VehiclePropertyChangeMode:ON_CHANGE 2073 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1950 * @access VehiclePropertyAccess:READ 2074 * @access VehiclePropertyAccess:READ
1951 *
1952 * @since o.mr1
1953 */ 2075 */
1954 OBD2_LIVE_FRAME = ( 2076 OBD2_LIVE_FRAME = (
1955 0x0D00 2077 0x0D00
@@ -1980,8 +2102,6 @@ enum VehicleProperty: int32_t {
1980 * 2102 *
1981 * @change_mode VehiclePropertyChangeMode:ON_CHANGE 2103 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1982 * @access VehiclePropertyAccess:READ 2104 * @access VehiclePropertyAccess:READ
1983 *
1984 * @since o.mr1
1985 */ 2105 */
1986 OBD2_FREEZE_FRAME = ( 2106 OBD2_FREEZE_FRAME = (
1987 0x0D01 2107 0x0D01
@@ -2003,8 +2123,6 @@ enum VehicleProperty: int32_t {
2003 * 2123 *
2004 * @change_mode VehiclePropertyChangeMode:ON_CHANGE 2124 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
2005 * @access VehiclePropertyAccess:READ 2125 * @access VehiclePropertyAccess:READ
2006 *
2007 * @since o.mr1
2008 */ 2126 */
2009 OBD2_FREEZE_FRAME_INFO = ( 2127 OBD2_FREEZE_FRAME_INFO = (
2010 0x0D02 2128 0x0D02
@@ -2031,8 +2149,6 @@ enum VehicleProperty: int32_t {
2031 * 2149 *
2032 * @change_mode VehiclePropertyChangeMode:ON_CHANGE 2150 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
2033 * @access VehiclePropertyAccess:WRITE 2151 * @access VehiclePropertyAccess:WRITE
2034 *
2035 * @since o.mr1
2036 */ 2152 */
2037 OBD2_FREEZE_FRAME_CLEAR = ( 2153 OBD2_FREEZE_FRAME_CLEAR = (
2038 0x0D03 2154 0x0D03
@@ -2042,6 +2158,73 @@ enum VehicleProperty: int32_t {
2042}; 2158};
2043 2159
2044/** 2160/**
2161 * Used by INFO_EV_CONNECTOR_TYPE to enumerate the type of connectors
2162 * available to charge the vehicle. Consistent with projection protocol.
2163 */
2164enum EvConnectorType : int32_t {
2165 /**
2166 * Default type if the vehicle does not know or report the EV connector
2167 * type.
2168 */
2169 EV_CONNECTOR_TYPE_UNKNOWN = 0,
2170 EV_CONNECTOR_TYPE_J1772 = 1,
2171 EV_CONNECTOR_TYPE_MENNEKES = 2,
2172 EV_CONNECTOR_TYPE_CHADEMO = 3,
2173 EV_CONNECTOR_TYPE_COMBO_1 = 4,
2174 EV_CONNECTOR_TYPE_COMBO_2 = 5,
2175 EV_CONNECTOR_TYPE_TESLA_ROADSTER = 6,
2176 EV_CONNECTOR_TYPE_TESLA_HPWC = 7,
2177 EV_CONNECTOR_TYPE_TESLA_SUPERCHARGER = 8,
2178 EV_CONNECTOR_TYPE_GBT = 9,
2179
2180 /**
2181 * Connector type to use when no other types apply. Before using this
2182 * value, work with Google to see if the EvConnectorType enum can be
2183 * extended with an appropriate value.
2184 */
2185 EV_CONNECTOR_TYPE_OTHER = 101,
2186};
2187
2188/**
2189 * Used by INFO_FUEL_TYPE to enumerate the type of fuels this vehicle uses.
2190 * Consistent with projection protocol.
2191 */
2192enum FuelType : int32_t {
2193 /**
2194 * Fuel type to use if the HU does not know on which types of fuel the vehicle
2195 * runs. The use of this value is generally discouraged outside of aftermarket units.
2196 */
2197 FUEL_TYPE_UNKNOWN = 0,
2198 /** Unleaded gasoline */
2199 FUEL_TYPE_UNLEADED = 1,
2200 /** Leaded gasoline */
2201 FUEL_TYPE_LEADED = 2,
2202 /** Diesel #1 */
2203 FUEL_TYPE_DIESEL_1 = 3,
2204 /** Diesel #2 */
2205 FUEL_TYPE_DIESEL_2 = 4,
2206 /** Biodiesel */
2207 FUEL_TYPE_BIODIESEL = 5,
2208 /** 85% ethanol/gasoline blend */
2209 FUEL_TYPE_E85 = 6,
2210 /** Liquified petroleum gas */
2211 FUEL_TYPE_LPG = 7,
2212 /** Compressed natural gas */
2213 FUEL_TYPE_CNG = 8,
2214 /** Liquified natural gas */
2215 FUEL_TYPE_LNG = 9,
2216 /** Electric */
2217 FUEL_TYPE_ELECTRIC = 10,
2218 /** Hydrogen fuel cell */
2219 FUEL_TYPE_HYDROGEN = 11,
2220 /**
2221 * Fuel type to use when no other types apply. Before using this value, work with
2222 * Google to see if the FuelType enum can be extended with an appropriate value.
2223 */
2224 FUEL_TYPE_OTHER = 12,
2225};
2226
2227/**
2045 * Bit flags for fan direction 2228 * Bit flags for fan direction
2046 */ 2229 */
2047enum VehicleHvacFanDirection : int32_t { 2230enum VehicleHvacFanDirection : int32_t {
@@ -2511,6 +2694,12 @@ enum VehicleUnit : int32_t {
2511 NANO_SECS = 0x50, 2694 NANO_SECS = 0x50,
2512 SECS = 0x53, 2695 SECS = 0x53,
2513 YEAR = 0x59, 2696 YEAR = 0x59,
2697
2698 // Electrical Units
2699 WATT_HOUR = 0x60,
2700 MILLIAMPERE = 0x61,
2701 MILLIVOLT = 0x62,
2702 MILLIWATTS = 0x63,
2514}; 2703};
2515 2704
2516 /** 2705 /**
diff --git a/biometrics/fingerprint/2.1/default/android.hardware.biometrics.fingerprint@2.1-service.rc b/biometrics/fingerprint/2.1/default/android.hardware.biometrics.fingerprint@2.1-service.rc
index aa767a60..123d339a 100644
--- a/biometrics/fingerprint/2.1/default/android.hardware.biometrics.fingerprint@2.1-service.rc
+++ b/biometrics/fingerprint/2.1/default/android.hardware.biometrics.fingerprint@2.1-service.rc
@@ -1,4 +1,4 @@
1service fps_hal /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service 1service vendor.fps_hal /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service
2 # "class hal" causes a race condition on some devices due to files created 2 # "class hal" causes a race condition on some devices due to files created
3 # in /data. As a workaround, postpone startup until later in boot once 3 # in /data. As a workaround, postpone startup until later in boot once
4 # /data is mounted. 4 # /data is mounted.
diff --git a/bluetooth/1.0/default/android.hardware.bluetooth@1.0-service.rc b/bluetooth/1.0/default/android.hardware.bluetooth@1.0-service.rc
index 47cc13e3..e1f5faa5 100644
--- a/bluetooth/1.0/default/android.hardware.bluetooth@1.0-service.rc
+++ b/bluetooth/1.0/default/android.hardware.bluetooth@1.0-service.rc
@@ -1,14 +1,14 @@
1service bluetooth-1-0 /vendor/bin/hw/android.hardware.bluetooth@1.0-service 1service vendor.bluetooth-1-0 /vendor/bin/hw/android.hardware.bluetooth@1.0-service
2 class hal 2 class hal
3 user bluetooth 3 user bluetooth
4 group bluetooth 4 group bluetooth
5 writepid /dev/stune/foreground/tasks 5 writepid /dev/stune/foreground/tasks
6 6
7on property:vts.native_server.on=1 && property:ro.build.type=userdebug 7on property:vts.native_server.on=1 && property:ro.build.type=userdebug
8 stop bluetooth-1-0 8 stop vendor.bluetooth-1-0
9on property:vts.native_server.on=1 && property:ro.build.type=eng 9on property:vts.native_server.on=1 && property:ro.build.type=eng
10 stop bluetooth-1-0 10 stop vendor.bluetooth-1-0
11on property:vts.native_server.on=0 && property:ro.build.type=userdebug 11on property:vts.native_server.on=0 && property:ro.build.type=userdebug
12 start bluetooth-1-0 12 start vendor.bluetooth-1-0
13on property:vts.native_server.on=0 && property:ro.build.type=eng 13on property:vts.native_server.on=0 && property:ro.build.type=eng
14 start bluetooth-1-0 14 start vendor.bluetooth-1-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 68e7c227..32f3a45b 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 @@
1service boot-hal-1-0 /vendor/bin/hw/android.hardware.boot@1.0-service 1service vendor.boot-hal-1-0 /vendor/bin/hw/android.hardware.boot@1.0-service
2 class early_hal 2 class early_hal
3 user root 3 user root
4 group root 4 group root
diff --git a/broadcastradio/1.1/vts/OWNERS b/broadcastradio/1.1/vts/OWNERS
index aa5ce82e..7736681f 100644
--- a/broadcastradio/1.1/vts/OWNERS
+++ b/broadcastradio/1.1/vts/OWNERS
@@ -4,5 +4,5 @@ keunyoung@google.com
4twasilczyk@google.com 4twasilczyk@google.com
5 5
6# VTS team 6# VTS team
7ryanjcampbell@google.com 7yuexima@google.com
8yim@google.com 8yim@google.com
diff --git a/broadcastradio/1.1/vts/functional/Android.bp b/broadcastradio/1.1/vts/functional/Android.bp
index 4b93cbcf..3d4fe056 100644
--- a/broadcastradio/1.1/vts/functional/Android.bp
+++ b/broadcastradio/1.1/vts/functional/Android.bp
@@ -21,8 +21,8 @@ cc_test {
21 static_libs: [ 21 static_libs: [
22 "android.hardware.broadcastradio@1.0", 22 "android.hardware.broadcastradio@1.0",
23 "android.hardware.broadcastradio@1.1", 23 "android.hardware.broadcastradio@1.1",
24 "android.hardware.broadcastradio@1.1-utils-lib", 24 "android.hardware.broadcastradio@common-utils-lib",
25 "android.hardware.broadcastradio@1.1-vts-utils-lib", 25 "android.hardware.broadcastradio@vts-utils-lib",
26 "libgmock", 26 "libgmock",
27 ], 27 ],
28} 28}
diff --git a/broadcastradio/1.2/Android.bp b/broadcastradio/1.2/Android.bp
new file mode 100644
index 00000000..913da8c7
--- /dev/null
+++ b/broadcastradio/1.2/Android.bp
@@ -0,0 +1,24 @@
1// This file is autogenerated by hidl-gen -Landroidbp.
2
3hidl_interface {
4 name: "android.hardware.broadcastradio@1.2",
5 root: "android.hardware",
6 vndk: {
7 enabled: true,
8 },
9 srcs: [
10 "types.hal",
11 "IBroadcastRadioFactory.hal",
12 "ITuner.hal",
13 "ITunerCallback.hal",
14 ],
15 interfaces: [
16 "android.hardware.broadcastradio@1.0",
17 "android.hardware.broadcastradio@1.1",
18 "android.hidl.base@1.0",
19 ],
20 types: [
21 ],
22 gen_java: false,
23}
24
diff --git a/broadcastradio/1.2/IBroadcastRadioFactory.hal b/broadcastradio/1.2/IBroadcastRadioFactory.hal
new file mode 100644
index 00000000..29f6ab35
--- /dev/null
+++ b/broadcastradio/1.2/IBroadcastRadioFactory.hal
@@ -0,0 +1,29 @@
1/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.hardware.broadcastradio@1.2;
18
19import @1.1::IBroadcastRadioFactory;
20
21/**
22 * To use 1.2 features you must cast specific interfaces returned from the
23 * 1.0 HAL. For example V1_0::IBroadcastRadio::openTuner() returns V1_0::ITuner,
24 * which can be cast with V1_2::ITuner::castFrom() call.
25 *
26 * The 1.2 server must always return the 1.2 version of specific interface.
27 */
28interface IBroadcastRadioFactory extends @1.1::IBroadcastRadioFactory {
29};
diff --git a/broadcastradio/1.2/ITuner.hal b/broadcastradio/1.2/ITuner.hal
new file mode 100644
index 00000000..ba97ea0c
--- /dev/null
+++ b/broadcastradio/1.2/ITuner.hal
@@ -0,0 +1,70 @@
1/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.hardware.broadcastradio@1.2;
18
19import @1.1::ITuner;
20
21interface ITuner extends @1.1::ITuner {
22 /**
23 * Generic method for setting vendor-specific parameter values.
24 * The framework does not interpret the parameters, they are passed
25 * in an opaque manner between a vendor application and HAL.
26 *
27 * Framework does not make any assumptions on the keys or values, other than
28 * ones stated in VendorKeyValue documentation (a requirement of key
29 * prefixes).
30 *
31 * For each pair in the result vector, the key must be one of the keys
32 * contained in the input (possibly with wildcards expanded), and the value
33 * must be a vendor-specific result status (i.e. the string "OK" or an error
34 * code). The implementation may choose to return an empty vector, or only
35 * return a status for a subset of the provided inputs, at its discretion.
36 *
37 * Application and HAL must not use keys with unknown prefix. In particular,
38 * it must not place a key-value pair in results vector for unknown key from
39 * parameters vector - instead, an unknown key should simply be ignored.
40 * In other words, results vector may contain a subset of parameter keys
41 * (however, the framework doesn't enforce a strict subset - the only
42 * formal requirement is vendor domain prefix for keys).
43 *
44 * @param parameters Vendor-specific key-value pairs.
45 * @return results Operation completion status for parameters being set.
46 */
47 setParameters(vec<VendorKeyValue> parameters)
48 generates (vec<VendorKeyValue> results);
49
50 /**
51 * Generic method for retrieving vendor-specific parameter values.
52 * The framework does not interpret the parameters, they are passed
53 * in an opaque manner between a vendor application and HAL.
54 *
55 * Framework does not cache set/get requests, so it's allowed for
56 * getParameter to return a different value than previous setParameter call.
57 *
58 * The syntax and semantics of keys are up to the vendor (as long as prefix
59 * rules are obeyed). For instance, vendors may include some form of
60 * wildcard support. In such case, result vector may be of different size
61 * than requested keys vector. However, wildcards are not recognized by
62 * framework and they are passed as-is to the HAL implementation.
63 *
64 * Unknown keys must be ignored and not placed into results vector.
65 *
66 * @param keys Parameter keys to fetch.
67 * @return parameters Vendor-specific key-value pairs.
68 */
69 getParameters(vec<string> keys) generates (vec<VendorKeyValue> parameters);
70};
diff --git a/broadcastradio/1.2/ITunerCallback.hal b/broadcastradio/1.2/ITunerCallback.hal
new file mode 100644
index 00000000..4e3d0a56
--- /dev/null
+++ b/broadcastradio/1.2/ITunerCallback.hal
@@ -0,0 +1,36 @@
1/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.hardware.broadcastradio@1.2;
18
19import @1.1::ITunerCallback;
20
21interface ITunerCallback extends @1.1::ITunerCallback {
22 /**
23 * Generic callback for passing updates to vendor-specific parameter values.
24 * The framework does not interpret the parameters, they are passed
25 * in an opaque manner between a vendor application and HAL.
26 *
27 * It's up to the HAL implementation if and how to implement this callback,
28 * as long as it obeys the prefix rule. In particular, only selected keys
29 * may be notified this way. However, setParameters must not trigger
30 * this callback, while an internal event can change parameters
31 * asynchronously.
32 *
33 * @param parameters Vendor-specific key-value pairs.
34 */
35 oneway parametersUpdated(vec<VendorKeyValue> parameters);
36};
diff --git a/broadcastradio/1.1/default/Android.bp b/broadcastradio/1.2/default/Android.bp
index 6d26b11b..e42cb1e7 100644
--- a/broadcastradio/1.1/default/Android.bp
+++ b/broadcastradio/1.2/default/Android.bp
@@ -15,8 +15,8 @@
15// 15//
16 16
17cc_binary { 17cc_binary {
18 name: "android.hardware.broadcastradio@1.1-service", 18 name: "android.hardware.broadcastradio@1.2-service",
19 init_rc: ["android.hardware.broadcastradio@1.1-service.rc"], 19 init_rc: ["android.hardware.broadcastradio@1.2-service.rc"],
20 vendor: true, 20 vendor: true,
21 relative_install_path: "hw", 21 relative_install_path: "hw",
22 cflags: [ 22 cflags: [
@@ -33,11 +33,12 @@ cc_binary {
33 "service.cpp" 33 "service.cpp"
34 ], 34 ],
35 static_libs: [ 35 static_libs: [
36 "android.hardware.broadcastradio@1.1-utils-lib", 36 "android.hardware.broadcastradio@common-utils-lib",
37 ], 37 ],
38 shared_libs: [ 38 shared_libs: [
39 "android.hardware.broadcastradio@1.0", 39 "android.hardware.broadcastradio@1.0",
40 "android.hardware.broadcastradio@1.1", 40 "android.hardware.broadcastradio@1.1",
41 "android.hardware.broadcastradio@1.2",
41 "libbase", 42 "libbase",
42 "libhidlbase", 43 "libhidlbase",
43 "libhidltransport", 44 "libhidltransport",
diff --git a/broadcastradio/1.1/default/BroadcastRadio.cpp b/broadcastradio/1.2/default/BroadcastRadio.cpp
index 1bcfd824..5164e473 100644
--- a/broadcastradio/1.1/default/BroadcastRadio.cpp
+++ b/broadcastradio/1.2/default/BroadcastRadio.cpp
@@ -25,7 +25,7 @@
25namespace android { 25namespace android {
26namespace hardware { 26namespace hardware {
27namespace broadcastradio { 27namespace broadcastradio {
28namespace V1_1 { 28namespace V1_2 {
29namespace implementation { 29namespace implementation {
30 30
31using V1_0::Band; 31using V1_0::Band;
@@ -33,6 +33,11 @@ using V1_0::BandConfig;
33using V1_0::Class; 33using V1_0::Class;
34using V1_0::Deemphasis; 34using V1_0::Deemphasis;
35using V1_0::Rds; 35using V1_0::Rds;
36using V1_1::IdentifierType;
37using V1_1::ProgramSelector;
38using V1_1::ProgramType;
39using V1_1::Properties;
40using V1_1::VendorKeyValue;
36 41
37using std::lock_guard; 42using std::lock_guard;
38using std::map; 43using std::map;
@@ -185,7 +190,7 @@ Return<void> BroadcastRadio::getImage(int32_t id, getImage_cb _hidl_cb) {
185} 190}
186 191
187} // namespace implementation 192} // namespace implementation
188} // namespace V1_1 193} // namespace V1_2
189} // namespace broadcastradio 194} // namespace broadcastradio
190} // namespace hardware 195} // namespace hardware
191} // namespace android 196} // namespace android
diff --git a/broadcastradio/1.1/default/BroadcastRadio.h b/broadcastradio/1.2/default/BroadcastRadio.h
index a96a2ab9..94d62b9b 100644
--- a/broadcastradio/1.1/default/BroadcastRadio.h
+++ b/broadcastradio/1.2/default/BroadcastRadio.h
@@ -13,18 +13,18 @@
13 * See the License for the specific language governing permissions and 13 * See the License for the specific language governing permissions and
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIO_H 16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIO_H
17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIO_H 17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIO_H
18 18
19#include "Tuner.h" 19#include "Tuner.h"
20 20
21#include <android/hardware/broadcastradio/1.1/IBroadcastRadio.h> 21#include <android/hardware/broadcastradio/1.1/IBroadcastRadio.h>
22#include <android/hardware/broadcastradio/1.1/types.h> 22#include <android/hardware/broadcastradio/1.2/types.h>
23 23
24namespace android { 24namespace android {
25namespace hardware { 25namespace hardware {
26namespace broadcastradio { 26namespace broadcastradio {
27namespace V1_1 { 27namespace V1_2 {
28namespace implementation { 28namespace implementation {
29 29
30struct AmFmBandConfig { 30struct AmFmBandConfig {
@@ -73,9 +73,9 @@ struct BroadcastRadio : public V1_1::IBroadcastRadio {
73}; 73};
74 74
75} // namespace implementation 75} // namespace implementation
76} // namespace V1_1 76} // namespace V1_2
77} // namespace broadcastradio 77} // namespace broadcastradio
78} // namespace hardware 78} // namespace hardware
79} // namespace android 79} // namespace android
80 80
81#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIO_H 81#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIO_H
diff --git a/broadcastradio/1.1/default/BroadcastRadioFactory.cpp b/broadcastradio/1.2/default/BroadcastRadioFactory.cpp
index f57bc79f..8f17aff7 100644
--- a/broadcastradio/1.1/default/BroadcastRadioFactory.cpp
+++ b/broadcastradio/1.2/default/BroadcastRadioFactory.cpp
@@ -25,7 +25,7 @@
25namespace android { 25namespace android {
26namespace hardware { 26namespace hardware {
27namespace broadcastradio { 27namespace broadcastradio {
28namespace V1_1 { 28namespace V1_2 {
29namespace implementation { 29namespace implementation {
30 30
31using V1_0::Class; 31using V1_0::Class;
@@ -36,10 +36,6 @@ static const vector<Class> gAllClasses = {
36 Class::AM_FM, Class::SAT, Class::DT, 36 Class::AM_FM, Class::SAT, Class::DT,
37}; 37};
38 38
39IBroadcastRadioFactory* HIDL_FETCH_IBroadcastRadioFactory(const char* name __unused) {
40 return new BroadcastRadioFactory();
41}
42
43BroadcastRadioFactory::BroadcastRadioFactory() { 39BroadcastRadioFactory::BroadcastRadioFactory() {
44 for (auto&& classId : gAllClasses) { 40 for (auto&& classId : gAllClasses) {
45 if (!BroadcastRadio::isSupported(classId)) continue; 41 if (!BroadcastRadio::isSupported(classId)) continue;
@@ -61,7 +57,7 @@ Return<void> BroadcastRadioFactory::connectModule(Class classId, connectModule_c
61} 57}
62 58
63} // namespace implementation 59} // namespace implementation
64} // namespace V1_1 60} // namespace V1_2
65} // namespace broadcastradio 61} // namespace broadcastradio
66} // namespace hardware 62} // namespace hardware
67} // namespace android 63} // namespace android
diff --git a/broadcastradio/1.1/default/BroadcastRadioFactory.h b/broadcastradio/1.2/default/BroadcastRadioFactory.h
index 8b67ac36..c365ae0b 100644
--- a/broadcastradio/1.1/default/BroadcastRadioFactory.h
+++ b/broadcastradio/1.2/default/BroadcastRadioFactory.h
@@ -13,21 +13,19 @@
13 * See the License for the specific language governing permissions and 13 * See the License for the specific language governing permissions and
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIOFACTORY_H 16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIOFACTORY_H
17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIOFACTORY_H 17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIOFACTORY_H
18 18
19#include <android/hardware/broadcastradio/1.1/IBroadcastRadio.h> 19#include <android/hardware/broadcastradio/1.1/IBroadcastRadio.h>
20#include <android/hardware/broadcastradio/1.1/IBroadcastRadioFactory.h> 20#include <android/hardware/broadcastradio/1.2/IBroadcastRadioFactory.h>
21#include <android/hardware/broadcastradio/1.1/types.h> 21#include <android/hardware/broadcastradio/1.2/types.h>
22 22
23namespace android { 23namespace android {
24namespace hardware { 24namespace hardware {
25namespace broadcastradio { 25namespace broadcastradio {
26namespace V1_1 { 26namespace V1_2 {
27namespace implementation { 27namespace implementation {
28 28
29extern "C" IBroadcastRadioFactory* HIDL_FETCH_IBroadcastRadioFactory(const char* name);
30
31struct BroadcastRadioFactory : public IBroadcastRadioFactory { 29struct BroadcastRadioFactory : public IBroadcastRadioFactory {
32 BroadcastRadioFactory(); 30 BroadcastRadioFactory();
33 31
@@ -35,13 +33,13 @@ struct BroadcastRadioFactory : public IBroadcastRadioFactory {
35 Return<void> connectModule(V1_0::Class classId, connectModule_cb _hidl_cb) override; 33 Return<void> connectModule(V1_0::Class classId, connectModule_cb _hidl_cb) override;
36 34
37 private: 35 private:
38 std::map<V1_0::Class, sp<IBroadcastRadio>> mRadioModules; 36 std::map<V1_0::Class, sp<V1_1::IBroadcastRadio>> mRadioModules;
39}; 37};
40 38
41} // namespace implementation 39} // namespace implementation
42} // namespace V1_1 40} // namespace V1_2
43} // namespace broadcastradio 41} // namespace broadcastradio
44} // namespace hardware 42} // namespace hardware
45} // namespace android 43} // namespace android
46 44
47#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_BROADCASTRADIOFACTORY_H 45#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_BROADCASTRADIOFACTORY_H
diff --git a/broadcastradio/1.1/utils/OWNERS b/broadcastradio/1.2/default/OWNERS
index 0c27b718..136b607b 100644
--- a/broadcastradio/1.1/utils/OWNERS
+++ b/broadcastradio/1.2/default/OWNERS
@@ -1,4 +1,3 @@
1# Automotive team 1# Automotive team
2egranata@google.com 2egranata@google.com
3keunyoung@google.com
4twasilczyk@google.com 3twasilczyk@google.com
diff --git a/broadcastradio/1.1/default/Tuner.cpp b/broadcastradio/1.2/default/Tuner.cpp
index 9a34cb12..70418cfb 100644
--- a/broadcastradio/1.1/default/Tuner.cpp
+++ b/broadcastradio/1.2/default/Tuner.cpp
@@ -26,7 +26,7 @@
26namespace android { 26namespace android {
27namespace hardware { 27namespace hardware {
28namespace broadcastradio { 28namespace broadcastradio {
29namespace V1_1 { 29namespace V1_2 {
30namespace implementation { 30namespace implementation {
31 31
32using namespace std::chrono_literals; 32using namespace std::chrono_literals;
@@ -35,6 +35,13 @@ using V1_0::Band;
35using V1_0::BandConfig; 35using V1_0::BandConfig;
36using V1_0::Class; 36using V1_0::Class;
37using V1_0::Direction; 37using V1_0::Direction;
38using V1_1::IdentifierType;
39using V1_1::ProgramInfo;
40using V1_1::ProgramInfoFlags;
41using V1_1::ProgramListResult;
42using V1_1::ProgramSelector;
43using V1_1::ProgramType;
44using V1_1::VendorKeyValue;
38using utils::HalRevision; 45using utils::HalRevision;
39 46
40using std::chrono::milliseconds; 47using std::chrono::milliseconds;
@@ -54,7 +61,8 @@ const struct {
54Tuner::Tuner(V1_0::Class classId, const sp<V1_0::ITunerCallback>& callback) 61Tuner::Tuner(V1_0::Class classId, const sp<V1_0::ITunerCallback>& callback)
55 : mClassId(classId), 62 : mClassId(classId),
56 mCallback(callback), 63 mCallback(callback),
57 mCallback1_1(ITunerCallback::castFrom(callback).withDefault(nullptr)), 64 mCallback1_1(V1_1::ITunerCallback::castFrom(callback).withDefault(nullptr)),
65 mCallback1_2(V1_2::ITunerCallback::castFrom(callback).withDefault(nullptr)),
58 mVirtualRadio(getRadio(classId)), 66 mVirtualRadio(getRadio(classId)),
59 mIsAnalogForced(false) {} 67 mIsAnalogForced(false) {}
60 68
@@ -122,7 +130,9 @@ static ProgramInfo makeDummyProgramInfo(const ProgramSelector& selector) {
122} 130}
123 131
124HalRevision Tuner::getHalRev() const { 132HalRevision Tuner::getHalRev() const {
125 if (mCallback1_1 != nullptr) { 133 if (mCallback1_2 != nullptr) {
134 return HalRevision::V1_2;
135 } else if (mCallback1_1 != nullptr) {
126 return HalRevision::V1_1; 136 return HalRevision::V1_1;
127 } else { 137 } else {
128 return HalRevision::V1_0; 138 return HalRevision::V1_0;
@@ -310,9 +320,8 @@ Return<Result> Tuner::cancelAnnouncement() {
310 320
311Return<void> Tuner::getProgramInformation(getProgramInformation_cb _hidl_cb) { 321Return<void> Tuner::getProgramInformation(getProgramInformation_cb _hidl_cb) {
312 ALOGV("%s", __func__); 322 ALOGV("%s", __func__);
313 return getProgramInformation_1_1([&](Result result, const ProgramInfo& info) { 323 return getProgramInformation_1_1(
314 _hidl_cb(result, info.base); 324 [&](Result result, const ProgramInfo& info) { _hidl_cb(result, info.base); });
315 });
316} 325}
317 326
318Return<void> Tuner::getProgramInformation_1_1(getProgramInformation_1_1_cb _hidl_cb) { 327Return<void> Tuner::getProgramInformation_1_1(getProgramInformation_1_1_cb _hidl_cb) {
@@ -373,8 +382,24 @@ Return<void> Tuner::isAnalogForced(isAnalogForced_cb _hidl_cb) {
373 return {}; 382 return {};
374} 383}
375 384
385Return<void> Tuner::setParameters(const hidl_vec<VendorKeyValue>& /* parameters */,
386 setParameters_cb _hidl_cb) {
387 ALOGV("%s", __func__);
388
389 _hidl_cb({});
390 return {};
391}
392
393Return<void> Tuner::getParameters(const hidl_vec<hidl_string>& /* keys */,
394 getParameters_cb _hidl_cb) {
395 ALOGV("%s", __func__);
396
397 _hidl_cb({});
398 return {};
399}
400
376} // namespace implementation 401} // namespace implementation
377} // namespace V1_1 402} // namespace V1_2
378} // namespace broadcastradio 403} // namespace broadcastradio
379} // namespace hardware 404} // namespace hardware
380} // namespace android 405} // namespace android
diff --git a/broadcastradio/1.1/default/Tuner.h b/broadcastradio/1.2/default/Tuner.h
index 07d31898..7e683545 100644
--- a/broadcastradio/1.1/default/Tuner.h
+++ b/broadcastradio/1.2/default/Tuner.h
@@ -13,19 +13,19 @@
13 * See the License for the specific language governing permissions and 13 * See the License for the specific language governing permissions and
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_TUNER_H 16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_TUNER_H
17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_TUNER_H 17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_TUNER_H
18 18
19#include "VirtualRadio.h" 19#include "VirtualRadio.h"
20 20
21#include <android/hardware/broadcastradio/1.1/ITuner.h> 21#include <android/hardware/broadcastradio/1.2/ITuner.h>
22#include <android/hardware/broadcastradio/1.1/ITunerCallback.h> 22#include <android/hardware/broadcastradio/1.2/ITunerCallback.h>
23#include <broadcastradio-utils/WorkerThread.h> 23#include <broadcastradio-utils/WorkerThread.h>
24 24
25namespace android { 25namespace android {
26namespace hardware { 26namespace hardware {
27namespace broadcastradio { 27namespace broadcastradio {
28namespace V1_1 { 28namespace V1_2 {
29namespace implementation { 29namespace implementation {
30 30
31struct Tuner : public ITuner { 31struct Tuner : public ITuner {
@@ -33,22 +33,26 @@ struct Tuner : public ITuner {
33 33
34 void forceClose(); 34 void forceClose();
35 35
36 // V1_1::ITuner methods 36 // V1_2::ITuner methods
37 virtual Return<Result> setConfiguration(const V1_0::BandConfig& config) override; 37 virtual Return<Result> setConfiguration(const V1_0::BandConfig& config) override;
38 virtual Return<void> getConfiguration(getConfiguration_cb _hidl_cb) override; 38 virtual Return<void> getConfiguration(getConfiguration_cb _hidl_cb) override;
39 virtual Return<Result> scan(V1_0::Direction direction, bool skipSubChannel) override; 39 virtual Return<Result> scan(V1_0::Direction direction, bool skipSubChannel) override;
40 virtual Return<Result> step(V1_0::Direction direction, bool skipSubChannel) override; 40 virtual Return<Result> step(V1_0::Direction direction, bool skipSubChannel) override;
41 virtual Return<Result> tune(uint32_t channel, uint32_t subChannel) override; 41 virtual Return<Result> tune(uint32_t channel, uint32_t subChannel) override;
42 virtual Return<Result> tuneByProgramSelector(const ProgramSelector& program) override; 42 virtual Return<Result> tuneByProgramSelector(const V1_1::ProgramSelector& program) override;
43 virtual Return<Result> cancel() override; 43 virtual Return<Result> cancel() override;
44 virtual Return<Result> cancelAnnouncement() override; 44 virtual Return<Result> cancelAnnouncement() override;
45 virtual Return<void> getProgramInformation(getProgramInformation_cb _hidl_cb) override; 45 virtual Return<void> getProgramInformation(getProgramInformation_cb _hidl_cb) override;
46 virtual Return<void> getProgramInformation_1_1(getProgramInformation_1_1_cb _hidl_cb) override; 46 virtual Return<void> getProgramInformation_1_1(getProgramInformation_1_1_cb _hidl_cb) override;
47 virtual Return<ProgramListResult> startBackgroundScan() override; 47 virtual Return<V1_1::ProgramListResult> startBackgroundScan() override;
48 virtual Return<void> getProgramList(const hidl_vec<VendorKeyValue>& filter, 48 virtual Return<void> getProgramList(const hidl_vec<V1_1::VendorKeyValue>& filter,
49 getProgramList_cb _hidl_cb) override; 49 getProgramList_cb _hidl_cb) override;
50 virtual Return<Result> setAnalogForced(bool isForced) override; 50 virtual Return<Result> setAnalogForced(bool isForced) override;
51 virtual Return<void> isAnalogForced(isAnalogForced_cb _hidl_cb) override; 51 virtual Return<void> isAnalogForced(isAnalogForced_cb _hidl_cb) override;
52 virtual Return<void> setParameters(const hidl_vec<V1_1::VendorKeyValue>& parameters,
53 setParameters_cb _hidl_cb) override;
54 virtual Return<void> getParameters(const hidl_vec<hidl_string>& keys,
55 getParameters_cb _hidl_cb) override;
52 56
53 private: 57 private:
54 std::mutex mMut; 58 std::mutex mMut;
@@ -58,23 +62,24 @@ struct Tuner : public ITuner {
58 V1_0::Class mClassId; 62 V1_0::Class mClassId;
59 const sp<V1_0::ITunerCallback> mCallback; 63 const sp<V1_0::ITunerCallback> mCallback;
60 const sp<V1_1::ITunerCallback> mCallback1_1; 64 const sp<V1_1::ITunerCallback> mCallback1_1;
65 const sp<V1_2::ITunerCallback> mCallback1_2;
61 66
62 std::reference_wrapper<VirtualRadio> mVirtualRadio; 67 std::reference_wrapper<VirtualRadio> mVirtualRadio;
63 bool mIsAmfmConfigSet = false; 68 bool mIsAmfmConfigSet = false;
64 V1_0::BandConfig mAmfmConfig; 69 V1_0::BandConfig mAmfmConfig;
65 bool mIsTuneCompleted = false; 70 bool mIsTuneCompleted = false;
66 ProgramSelector mCurrentProgram = {}; 71 V1_1::ProgramSelector mCurrentProgram = {};
67 ProgramInfo mCurrentProgramInfo = {}; 72 V1_1::ProgramInfo mCurrentProgramInfo = {};
68 std::atomic<bool> mIsAnalogForced; 73 std::atomic<bool> mIsAnalogForced;
69 74
70 utils::HalRevision getHalRev() const; 75 utils::HalRevision getHalRev() const;
71 void tuneInternalLocked(const ProgramSelector& sel); 76 void tuneInternalLocked(const V1_1::ProgramSelector& sel);
72}; 77};
73 78
74} // namespace implementation 79} // namespace implementation
75} // namespace V1_1 80} // namespace V1_2
76} // namespace broadcastradio 81} // namespace broadcastradio
77} // namespace hardware 82} // namespace hardware
78} // namespace android 83} // namespace android
79 84
80#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_TUNER_H 85#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_TUNER_H
diff --git a/broadcastradio/1.1/default/VirtualProgram.cpp b/broadcastradio/1.2/default/VirtualProgram.cpp
index 7977391c..95879e34 100644
--- a/broadcastradio/1.1/default/VirtualProgram.cpp
+++ b/broadcastradio/1.2/default/VirtualProgram.cpp
@@ -22,7 +22,7 @@
22namespace android { 22namespace android {
23namespace hardware { 23namespace hardware {
24namespace broadcastradio { 24namespace broadcastradio {
25namespace V1_1 { 25namespace V1_2 {
26namespace implementation { 26namespace implementation {
27 27
28using std::vector; 28using std::vector;
@@ -30,6 +30,9 @@ using std::vector;
30using V1_0::MetaData; 30using V1_0::MetaData;
31using V1_0::MetadataKey; 31using V1_0::MetadataKey;
32using V1_0::MetadataType; 32using V1_0::MetadataType;
33using V1_1::IdentifierType;
34using V1_1::ProgramInfo;
35using V1_1::VendorKeyValue;
33using utils::HalRevision; 36using utils::HalRevision;
34 37
35static MetaData createDemoBitmap(MetadataKey key, HalRevision halRev) { 38static MetaData createDemoBitmap(MetadataKey key, HalRevision halRev) {
@@ -100,7 +103,7 @@ vector<ProgramInfo> getProgramInfoVector(const vector<VirtualProgram>& vec, HalR
100} 103}
101 104
102} // namespace implementation 105} // namespace implementation
103} // namespace V1_1 106} // namespace V1_2
104} // namespace broadcastradio 107} // namespace broadcastradio
105} // namespace hardware 108} // namespace hardware
106} // namespace android 109} // namespace android
diff --git a/broadcastradio/1.1/default/VirtualProgram.h b/broadcastradio/1.2/default/VirtualProgram.h
index a14830d7..5342c848 100644
--- a/broadcastradio/1.1/default/VirtualProgram.h
+++ b/broadcastradio/1.2/default/VirtualProgram.h
@@ -13,16 +13,16 @@
13 * See the License for the specific language governing permissions and 13 * See the License for the specific language governing permissions and
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALPROGRAM_H 16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALPROGRAM_H
17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALPROGRAM_H 17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALPROGRAM_H
18 18
19#include <android/hardware/broadcastradio/1.1/types.h> 19#include <android/hardware/broadcastradio/1.2/types.h>
20#include <broadcastradio-utils/Utils.h> 20#include <broadcastradio-utils/Utils.h>
21 21
22namespace android { 22namespace android {
23namespace hardware { 23namespace hardware {
24namespace broadcastradio { 24namespace broadcastradio {
25namespace V1_1 { 25namespace V1_2 {
26namespace implementation { 26namespace implementation {
27 27
28/** 28/**
@@ -32,24 +32,24 @@ namespace implementation {
32 * not an entry for a captured station in the radio tuner memory. 32 * not an entry for a captured station in the radio tuner memory.
33 */ 33 */
34struct VirtualProgram { 34struct VirtualProgram {
35 ProgramSelector selector; 35 V1_1::ProgramSelector selector;
36 36
37 std::string programName = ""; 37 std::string programName = "";
38 std::string songArtist = ""; 38 std::string songArtist = "";
39 std::string songTitle = ""; 39 std::string songTitle = "";
40 40
41 ProgramInfo getProgramInfo(utils::HalRevision halRev) const; 41 V1_1::ProgramInfo getProgramInfo(utils::HalRevision halRev) const;
42 42
43 friend bool operator<(const VirtualProgram& lhs, const VirtualProgram& rhs); 43 friend bool operator<(const VirtualProgram& lhs, const VirtualProgram& rhs);
44}; 44};
45 45
46std::vector<ProgramInfo> getProgramInfoVector(const std::vector<VirtualProgram>& vec, 46std::vector<V1_1::ProgramInfo> getProgramInfoVector(const std::vector<VirtualProgram>& vec,
47 utils::HalRevision halRev); 47 utils::HalRevision halRev);
48 48
49} // namespace implementation 49} // namespace implementation
50} // namespace V1_1 50} // namespace V1_2
51} // namespace broadcastradio 51} // namespace broadcastradio
52} // namespace hardware 52} // namespace hardware
53} // namespace android 53} // namespace android
54 54
55#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALPROGRAM_H 55#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALPROGRAM_H
diff --git a/broadcastradio/1.1/default/VirtualRadio.cpp b/broadcastradio/1.2/default/VirtualRadio.cpp
index 36d47a92..867726d2 100644
--- a/broadcastradio/1.1/default/VirtualRadio.cpp
+++ b/broadcastradio/1.2/default/VirtualRadio.cpp
@@ -24,11 +24,12 @@
24namespace android { 24namespace android {
25namespace hardware { 25namespace hardware {
26namespace broadcastradio { 26namespace broadcastradio {
27namespace V1_1 { 27namespace V1_2 {
28namespace implementation { 28namespace implementation {
29 29
30using V1_0::Band; 30using V1_0::Band;
31using V1_0::Class; 31using V1_0::Class;
32using V1_1::ProgramSelector;
32 33
33using std::lock_guard; 34using std::lock_guard;
34using std::move; 35using std::move;
@@ -99,7 +100,7 @@ VirtualRadio& getDigitalRadio() {
99} 100}
100 101
101} // namespace implementation 102} // namespace implementation
102} // namespace V1_1 103} // namespace V1_2
103} // namespace broadcastradio 104} // namespace broadcastradio
104} // namespace hardware 105} // namespace hardware
105} // namespace android 106} // namespace android
diff --git a/broadcastradio/1.1/default/VirtualRadio.h b/broadcastradio/1.2/default/VirtualRadio.h
index 3c7ae5c1..8cfaefeb 100644
--- a/broadcastradio/1.1/default/VirtualRadio.h
+++ b/broadcastradio/1.2/default/VirtualRadio.h
@@ -13,8 +13,8 @@
13 * See the License for the specific language governing permissions and 13 * See the License for the specific language governing permissions and
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALRADIO_H 16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALRADIO_H
17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALRADIO_H 17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALRADIO_H
18 18
19#include "VirtualProgram.h" 19#include "VirtualProgram.h"
20 20
@@ -24,7 +24,7 @@
24namespace android { 24namespace android {
25namespace hardware { 25namespace hardware {
26namespace broadcastradio { 26namespace broadcastradio {
27namespace V1_1 { 27namespace V1_2 {
28namespace implementation { 28namespace implementation {
29 29
30/** 30/**
@@ -40,7 +40,7 @@ class VirtualRadio {
40 VirtualRadio(const std::vector<VirtualProgram> initialList); 40 VirtualRadio(const std::vector<VirtualProgram> initialList);
41 41
42 std::vector<VirtualProgram> getProgramList(); 42 std::vector<VirtualProgram> getProgramList();
43 bool getProgram(const ProgramSelector& selector, VirtualProgram& program); 43 bool getProgram(const V1_1::ProgramSelector& selector, VirtualProgram& program);
44 44
45 private: 45 private:
46 std::mutex mMut; 46 std::mutex mMut;
@@ -72,9 +72,9 @@ VirtualRadio& getSatRadio();
72VirtualRadio& getDigitalRadio(); 72VirtualRadio& getDigitalRadio();
73 73
74} // namespace implementation 74} // namespace implementation
75} // namespace V1_1 75} // namespace V1_2
76} // namespace broadcastradio 76} // namespace broadcastradio
77} // namespace hardware 77} // namespace hardware
78} // namespace android 78} // namespace android
79 79
80#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_VIRTUALRADIO_H 80#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_VIRTUALRADIO_H
diff --git a/broadcastradio/1.1/default/android.hardware.broadcastradio@1.1-service.rc b/broadcastradio/1.2/default/android.hardware.broadcastradio@1.2-service.rc
index 7c57135f..3741f21a 100644
--- a/broadcastradio/1.1/default/android.hardware.broadcastradio@1.1-service.rc
+++ b/broadcastradio/1.2/default/android.hardware.broadcastradio@1.2-service.rc
@@ -1,4 +1,4 @@
1service broadcastradio-hal /vendor/bin/hw/android.hardware.broadcastradio@1.1-service 1service broadcastradio-hal /vendor/bin/hw/android.hardware.broadcastradio@1.2-service
2 class hal 2 class hal
3 user audioserver 3 user audioserver
4 group audio 4 group audio
diff --git a/broadcastradio/1.1/default/resources.h b/broadcastradio/1.2/default/resources.h
index b7e709f9..b383c278 100644
--- a/broadcastradio/1.1/default/resources.h
+++ b/broadcastradio/1.2/default/resources.h
@@ -13,13 +13,13 @@
13 * See the License for the specific language governing permissions and 13 * See the License for the specific language governing permissions and
14 * limitations under the License. 14 * limitations under the License.
15 */ 15 */
16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_1_RESOURCES_H 16#ifndef ANDROID_HARDWARE_BROADCASTRADIO_V1_2_RESOURCES_H
17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_1_RESOURCES_H 17#define ANDROID_HARDWARE_BROADCASTRADIO_V1_2_RESOURCES_H
18 18
19namespace android { 19namespace android {
20namespace hardware { 20namespace hardware {
21namespace broadcastradio { 21namespace broadcastradio {
22namespace V1_1 { 22namespace V1_2 {
23namespace implementation { 23namespace implementation {
24namespace resources { 24namespace resources {
25 25
@@ -38,9 +38,9 @@ constexpr uint8_t demoPng[] = {
38 38
39} // namespace resources 39} // namespace resources
40} // namespace implementation 40} // namespace implementation
41} // namespace V1_1 41} // namespace V1_2
42} // namespace broadcastradio 42} // namespace broadcastradio
43} // namespace hardware 43} // namespace hardware
44} // namespace android 44} // namespace android
45 45
46#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_1_RESOURCES_H 46#endif // ANDROID_HARDWARE_BROADCASTRADIO_V1_2_RESOURCES_H
diff --git a/broadcastradio/1.1/default/service.cpp b/broadcastradio/1.2/default/service.cpp
index f8af0b78..ea86fbaf 100644
--- a/broadcastradio/1.1/default/service.cpp
+++ b/broadcastradio/1.2/default/service.cpp
@@ -22,7 +22,7 @@
22 22
23using android::hardware::configureRpcThreadpool; 23using android::hardware::configureRpcThreadpool;
24using android::hardware::joinRpcThreadpool; 24using android::hardware::joinRpcThreadpool;
25using android::hardware::broadcastradio::V1_1::implementation::BroadcastRadioFactory; 25using android::hardware::broadcastradio::V1_2::implementation::BroadcastRadioFactory;
26 26
27int main(int /* argc */, char** /* argv */) { 27int main(int /* argc */, char** /* argv */) {
28 configureRpcThreadpool(4, true); 28 configureRpcThreadpool(4, true);
diff --git a/broadcastradio/1.2/types.hal b/broadcastradio/1.2/types.hal
new file mode 100644
index 00000000..5edb097a
--- /dev/null
+++ b/broadcastradio/1.2/types.hal
@@ -0,0 +1,23 @@
1/**