summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2024-01-29 10:13:13 -0800
committerXin Li <delphij@google.com>2024-01-29 10:13:13 -0800
commitaa31a48c1d0e1811e5cbc26d72ddccc4afb70127 (patch)
tree680a39669f7045ebd49158b81493f2d35617222f
parent92a8db3317f0b8ce32017605a480ff1d82ae896b (diff)
parent80b7daf87e84ae763076f4edb2426daef559f862 (diff)
downloadcar-aa31a48c1d0e1811e5cbc26d72ddccc4afb70127.tar.gz
Merge Android 24Q1 Release (ab/11220357)
Bug: 319669529 Merged-In: I92620006af0e4273b28fa0ec89911c3f107137b0 Change-Id: I5687bd9a56b00f683a9e16bf8cc4129230bad0b1
-rw-r--r--common/car.mk4
-rw-r--r--common/config.ini2
-rw-r--r--common/config.ini.car_md2
-rw-r--r--emulator/audio/car_audio_configuration.xml5
-rw-r--r--emulator/audio/driver/audio_hw.c2
-rw-r--r--emulator/audio/driver/audio_vbuffer.c2
-rw-r--r--emulator/car_emulator_interfaces/aidl/Android.bp (renamed from emulator/vhal_v2_0/interfaces/aidl/Android.bp)8
-rw-r--r--emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/.hash (renamed from emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/.hash)0
-rw-r--r--emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBus.aidl (renamed from emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBus.aidl)0
-rw-r--r--emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBusCallback.aidl (renamed from emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBusCallback.aidl)0
-rw-r--r--emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBus.aidl (renamed from emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBus.aidl)0
-rw-r--r--emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBusCallback.aidl (renamed from emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBusCallback.aidl)0
-rw-r--r--emulator/car_emulator_interfaces/aidl/device/generic/car/emulator/IVehicleBus.aidl (renamed from emulator/vhal_v2_0/interfaces/aidl/device/generic/car/emulator/IVehicleBus.aidl)0
-rw-r--r--emulator/car_emulator_interfaces/aidl/device/generic/car/emulator/IVehicleBusCallback.aidl (renamed from emulator/vhal_v2_0/interfaces/aidl/device/generic/car/emulator/IVehicleBusCallback.aidl)0
-rw-r--r--emulator/car_emulator_vendor.mk4
-rw-r--r--emulator/cluster/rro_overlays/CarServiceOverlay/res/values/config.xml6
-rw-r--r--emulator/cluster/rro_overlays/CarServiceOverlay_MdOsDouble/res/xml/car_ux_restrictions_map.xml2
-rw-r--r--emulator/multi-display-dynamic/CarServiceMultiDisplayOverlayEmulator/res/values/config.xml8
-rw-r--r--emulator/multi-display-dynamic/CarServiceMultiDisplayOverlayEmulator/res/xml/car_ux_restrictions_map.xml2
-rw-r--r--emulator/multi-display-dynamic/config.ini2
-rw-r--r--emulator/multi-display/car_audio_configuration.xml5
-rw-r--r--emulator/multi-display/overlay/frameworks/base/core/res/res/values/config.xml2
-rw-r--r--emulator/skins/automotive_landscape/layout38
-rw-r--r--emulator/skins/automotive_portrait/layout35
-rw-r--r--emulator/skins/automotive_ultrawide/layout35
-rw-r--r--emulator/usbpt/bluetooth/bluetooth.prop38
-rw-r--r--emulator/vhal_aidl/Android.bp2
-rw-r--r--emulator/vhal_aidl/VehicleEmulator/EmulatedVehicleHardware.cpp2
-rw-r--r--emulator/vhal_aidl/VehicleEmulator/VehicleEmulator.cpp2
-rw-r--r--emulator/vhal_aidl/VehicleEmulator/include/EmulatedVehicleHardware.h2
-rw-r--r--emulator/vhal_aidl/vhal-emulator-service.rc2
-rw-r--r--sdk_car_portrait_x86_64.mk14
32 files changed, 182 insertions, 44 deletions
diff --git a/common/car.mk b/common/car.mk
index 11471fb..e33f339 100644
--- a/common/car.mk
+++ b/common/car.mk
@@ -16,10 +16,10 @@
# Auto modules
PRODUCT_PACKAGES += \
- android.hardware.automotive.vehicle@V1-emulator-service \
+ android.hardware.automotive.vehicle@V3-emulator-service \
android.hardware.broadcastradio-service.default \
android.hardware.audio.service-caremu \
- android.hardware.automotive.remoteaccess@V1-default-service \
+ android.hardware.automotive.remoteaccess@V2-default-service \
android.hardware.automotive.ivn@V1-default-service
# Runtime Resource Overlay for Connectivity
diff --git a/common/config.ini b/common/config.ini
index 8576698..d7c5abb 100644
--- a/common/config.ini
+++ b/common/config.ini
@@ -1,4 +1,6 @@
hw.audioInput=yes
+hw.lcd.width=1408
+hw.lcd.height=792
hw.lcd.density=160
hw.cpu.ncore=6
hw.gpu.enabled=yes
diff --git a/common/config.ini.car_md b/common/config.ini.car_md
index 74e6abe..c290caf 100644
--- a/common/config.ini.car_md
+++ b/common/config.ini.car_md
@@ -1,4 +1,6 @@
hw.audioInput=yes
+hw.lcd.width=1848
+hw.lcd.height=792
hw.lcd.density=160
hw.cpu.ncore=6
hw.gpu.enabled=yes
diff --git a/emulator/audio/car_audio_configuration.xml b/emulator/audio/car_audio_configuration.xml
index 81ccbfa..2e40b16 100644
--- a/emulator/audio/car_audio_configuration.xml
+++ b/emulator/audio/car_audio_configuration.xml
@@ -17,8 +17,9 @@
<!--
Defines the audio configuration in a car, including
- Audio zones
- - Context to audio bus mappings
- - Volume groups
+ - Zone configurations (in each audio zone)
+ - Volume groups (in each zone configuration)
+ - Context to audio bus mappings (in each volume group)
in the car environment.
-->
<carAudioConfiguration version="3">
diff --git a/emulator/audio/driver/audio_hw.c b/emulator/audio/driver/audio_hw.c
index 7714087..9f64a72 100644
--- a/emulator/audio/driver/audio_hw.c
+++ b/emulator/audio/driver/audio_hw.c
@@ -1018,7 +1018,7 @@ static void *in_read_worker(void *args) {
pthread_mutex_unlock(&in->lock);
if (frames_written != buffer_frames) {
- ALOGW("in_read_worker only could write %zu / %zu frames",
+ ALOGV("in_read_worker only could write %zu / %zu frames",
frames_written, buffer_frames);
}
}
diff --git a/emulator/audio/driver/audio_vbuffer.c b/emulator/audio/driver/audio_vbuffer.c
index 8377f5c..9884048 100644
--- a/emulator/audio/driver/audio_vbuffer.c
+++ b/emulator/audio/driver/audio_vbuffer.c
@@ -88,7 +88,7 @@ size_t audio_vbuffer_write(audio_vbuffer_t *audio_vbuffer, const void *buffer,
} else if (audio_vbuffer->head < audio_vbuffer->tail) {
frames = MIN(frame_count, audio_vbuffer->tail - (audio_vbuffer->head));
} else {
- ALOGD("%s audio_vbuffer is full", __func__);
+ ALOGV("%s audio_vbuffer is full", __func__);
break;
}
memcpy(
diff --git a/emulator/vhal_v2_0/interfaces/aidl/Android.bp b/emulator/car_emulator_interfaces/aidl/Android.bp
index 9d59cd2..a3345b6 100644
--- a/emulator/vhal_v2_0/interfaces/aidl/Android.bp
+++ b/emulator/car_emulator_interfaces/aidl/Android.bp
@@ -14,8 +14,8 @@ aidl_interface {
vendor_available: true,
srcs: ["device/generic/car/emulator/*.aidl"],
imports: [
- "android.hardware.automotive.vehicle-V2",
- "android.hardware.automotive.vehicle.property-V2",
+ "android.hardware.automotive.vehicle-V3",
+ "android.hardware.automotive.vehicle.property-V3",
],
stability: "vintf",
backend: {
@@ -33,8 +33,8 @@ aidl_interface {
{
version: "1",
imports: [
- "android.hardware.automotive.vehicle-V2",
- "android.hardware.automotive.vehicle.property-V2",
+ "android.hardware.automotive.vehicle-V3",
+ "android.hardware.automotive.vehicle.property-V3",
],
},
],
diff --git a/emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/.hash b/emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/.hash
index 34b9cf1..34b9cf1 100644
--- a/emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/.hash
+++ b/emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/.hash
diff --git a/emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBus.aidl b/emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBus.aidl
index a2ff948..a2ff948 100644
--- a/emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBus.aidl
+++ b/emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBus.aidl
diff --git a/emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBusCallback.aidl b/emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBusCallback.aidl
index b5cc3a4..b5cc3a4 100644
--- a/emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBusCallback.aidl
+++ b/emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/1/device/generic/car/emulator/IVehicleBusCallback.aidl
diff --git a/emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBus.aidl b/emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBus.aidl
index a2ff948..a2ff948 100644
--- a/emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBus.aidl
+++ b/emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBus.aidl
diff --git a/emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBusCallback.aidl b/emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBusCallback.aidl
index b5cc3a4..b5cc3a4 100644
--- a/emulator/vhal_v2_0/interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBusCallback.aidl
+++ b/emulator/car_emulator_interfaces/aidl/aidl_api/device.generic.car.emulator-aidl/current/device/generic/car/emulator/IVehicleBusCallback.aidl
diff --git a/emulator/vhal_v2_0/interfaces/aidl/device/generic/car/emulator/IVehicleBus.aidl b/emulator/car_emulator_interfaces/aidl/device/generic/car/emulator/IVehicleBus.aidl
index ed06d96..ed06d96 100644
--- a/emulator/vhal_v2_0/interfaces/aidl/device/generic/car/emulator/IVehicleBus.aidl
+++ b/emulator/car_emulator_interfaces/aidl/device/generic/car/emulator/IVehicleBus.aidl
diff --git a/emulator/vhal_v2_0/interfaces/aidl/device/generic/car/emulator/IVehicleBusCallback.aidl b/emulator/car_emulator_interfaces/aidl/device/generic/car/emulator/IVehicleBusCallback.aidl
index 0cbb905..0cbb905 100644
--- a/emulator/vhal_v2_0/interfaces/aidl/device/generic/car/emulator/IVehicleBusCallback.aidl
+++ b/emulator/car_emulator_interfaces/aidl/device/generic/car/emulator/IVehicleBusCallback.aidl
diff --git a/emulator/car_emulator_vendor.mk b/emulator/car_emulator_vendor.mk
index 8a4b0fb..df923f6 100644
--- a/emulator/car_emulator_vendor.mk
+++ b/emulator/car_emulator_vendor.mk
@@ -50,10 +50,10 @@ endif
# Auto modules
PRODUCT_PACKAGES += \
- android.hardware.automotive.vehicle@V1-emulator-service \
+ android.hardware.automotive.vehicle@V3-emulator-service \
android.hardware.broadcastradio-service.default \
android.hardware.audio.service-caremu \
- android.hardware.automotive.remoteaccess@V1-default-service \
+ android.hardware.automotive.remoteaccess@V2-default-service \
android.hardware.automotive.ivn@V1-default-service
# Copy car_core_hardware and overwrite handheld_core_hardware.xml with a disable config.
diff --git a/emulator/cluster/rro_overlays/CarServiceOverlay/res/values/config.xml b/emulator/cluster/rro_overlays/CarServiceOverlay/res/values/config.xml
index c77764d..3bb1c93 100644
--- a/emulator/cluster/rro_overlays/CarServiceOverlay/res/values/config.xml
+++ b/emulator/cluster/rro_overlays/CarServiceOverlay/res/values/config.xml
@@ -29,11 +29,11 @@
<item>displayPort=1,displayType=INSTRUMENT_CLUSTER,occupantZoneId=0,
inputTypes=DPAD_KEYS</item>
<item>displayPort=2,displayType=MAIN,occupantZoneId=1,
- inputTypes=NAVIGATE_KEYS</item>
+ inputTypes=TOUCH_SCREEN</item>
<item>displayPort=3,displayType=MAIN,occupantZoneId=2,
- inputTypes=NAVIGATE_KEYS</item>
+ inputTypes=TOUCH_SCREEN</item>
<item>displayUniqueId=virtual:com.example:MainD,displayType=MAIN,occupantZoneId=3,
- inputTypes=NAVIGATE_KEYS</item>
+ inputTypes=TOUCH_SCREEN</item>
displayPort: Unique port id for the display.
displayType: Display type for the display. Use * part from
diff --git a/emulator/cluster/rro_overlays/CarServiceOverlay_MdOsDouble/res/xml/car_ux_restrictions_map.xml b/emulator/cluster/rro_overlays/CarServiceOverlay_MdOsDouble/res/xml/car_ux_restrictions_map.xml
index 018c3fe..5c1a600 100644
--- a/emulator/cluster/rro_overlays/CarServiceOverlay_MdOsDouble/res/xml/car_ux_restrictions_map.xml
+++ b/emulator/cluster/rro_overlays/CarServiceOverlay_MdOsDouble/res/xml/car_ux_restrictions_map.xml
@@ -17,7 +17,7 @@
</DrivingState>
<DrivingState state="idling">
- <Restrictions requiresDistractionOptimization="false" uxr="baseline" mode="baseline"/>
+ <Restrictions requiresDistractionOptimization="true" uxr="no_video"/>
</DrivingState>
<!-- This is restrictions for moving and speed [0,5m/s) -->
diff --git a/emulator/multi-display-dynamic/CarServiceMultiDisplayOverlayEmulator/res/values/config.xml b/emulator/multi-display-dynamic/CarServiceMultiDisplayOverlayEmulator/res/values/config.xml
index 8463455..fe55a0e 100644
--- a/emulator/multi-display-dynamic/CarServiceMultiDisplayOverlayEmulator/res/values/config.xml
+++ b/emulator/multi-display-dynamic/CarServiceMultiDisplayOverlayEmulator/res/values/config.xml
@@ -35,10 +35,10 @@
<string-array translatable="false" name="config_occupant_display_mapping">
<item>displayPort=0,displayType=MAIN,occupantZoneId=0,inputTypes=TOUCH_SCREEN|DPAD_KEYS|NAVIGATE_KEYS|ROTARY_NAVIGATION</item>
<item>displayUniqueId=virtual:com.android.car.cluster.osdouble:ClusterDisplay,displayType=INSTRUMENT_CLUSTER,occupantZoneId=0,inputTypes=DPAD_KEYS</item>
- <item>displayUniqueId=virtual:com.android.emulator.multidisplay:1234563,displayType=MAIN,occupantZoneId=1,inputTypes=DPAD_KEYS</item>
- <item>displayUniqueId=virtual:com.android.emulator.multidisplay:1234564,displayType=MAIN,occupantZoneId=2,inputTypes=DPAD_KEYS</item>
- <item>displayUniqueId=virtual:com.android.emulator.multidisplay:1234565,displayType=MAIN,occupantZoneId=3,inputTypes=DPAD_KEYS</item>
- <item>displayUniqueId=virtual:com.android.emulator.multidisplay:1234566,displayType=MAIN,occupantZoneId=4,inputTypes=DPAD_KEYS</item>
+ <item>displayUniqueId=virtual:com.android.emulator.multidisplay:1234563,displayType=MAIN,occupantZoneId=1,inputTypes=TOUCH_SCREEN</item>
+ <item>displayUniqueId=virtual:com.android.emulator.multidisplay:1234564,displayType=MAIN,occupantZoneId=2,inputTypes=TOUCH_SCREEN</item>
+ <item>displayUniqueId=virtual:com.android.emulator.multidisplay:1234565,displayType=MAIN,occupantZoneId=3,inputTypes=TOUCH_SCREEN</item>
+ <item>displayUniqueId=virtual:com.android.emulator.multidisplay:1234566,displayType=MAIN,occupantZoneId=4,inputTypes=TOUCH_SCREEN</item>
</string-array>
<!-- Enable profile user assignment per each CarOccupantZone for per display android user
diff --git a/emulator/multi-display-dynamic/CarServiceMultiDisplayOverlayEmulator/res/xml/car_ux_restrictions_map.xml b/emulator/multi-display-dynamic/CarServiceMultiDisplayOverlayEmulator/res/xml/car_ux_restrictions_map.xml
index c2a242b..798873f 100644
--- a/emulator/multi-display-dynamic/CarServiceMultiDisplayOverlayEmulator/res/xml/car_ux_restrictions_map.xml
+++ b/emulator/multi-display-dynamic/CarServiceMultiDisplayOverlayEmulator/res/xml/car_ux_restrictions_map.xml
@@ -33,7 +33,7 @@
</DrivingState>
<DrivingState state="idling">
- <Restrictions requiresDistractionOptimization="false" uxr="baseline" mode="baseline"/>
+ <Restrictions requiresDistractionOptimization="true" uxr="no_video"/>
</DrivingState>
<!-- This is restrictions for moving and speed [0,5m/s) -->
diff --git a/emulator/multi-display-dynamic/config.ini b/emulator/multi-display-dynamic/config.ini
index b8c7f76..8d7238d 100644
--- a/emulator/multi-display-dynamic/config.ini
+++ b/emulator/multi-display-dynamic/config.ini
@@ -1,4 +1,6 @@
hw.audioInput=yes
+hw.lcd.width=1408
+hw.lcd.height=792
hw.lcd.density=160
hw.cpu.ncore=6
hw.gpu.enabled=yes
diff --git a/emulator/multi-display/car_audio_configuration.xml b/emulator/multi-display/car_audio_configuration.xml
index 7109d3e..9aaff9a 100644
--- a/emulator/multi-display/car_audio_configuration.xml
+++ b/emulator/multi-display/car_audio_configuration.xml
@@ -17,8 +17,9 @@
<!--
Defines the audio configuration in a car, including
- Audio zones
- - Context to audio bus mappings
- - Volume groups
+ - Zone configurations (in each audio zone)
+ - Volume groups (in each zone configuration)
+ - Context to audio bus mappings (in each volume group)
in the car environment.
-->
<carAudioConfiguration version="3">
diff --git a/emulator/multi-display/overlay/frameworks/base/core/res/res/values/config.xml b/emulator/multi-display/overlay/frameworks/base/core/res/res/values/config.xml
index 087ced2..07ee8f8 100644
--- a/emulator/multi-display/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/emulator/multi-display/overlay/frameworks/base/core/res/res/values/config.xml
@@ -61,8 +61,6 @@
<!-- The config is enabled for the development purpose only. -->
<bool name="config_multiuserVisibleBackgroundUsers">true</bool>
- <!-- Enable multi-user IME sessions -->
- <string translatable="false" name="config_deviceSpecificInputMethodManagerService">com.android.server.inputmethod.InputMethodManagerServiceProxy$Lifecycle</string>
<!-- Disable hidding the NavBars (CarSystemBars), as a workaround for b/259604616 -->
<bool name="config_hideNavBarForKeyboard">false</bool>
diff --git a/emulator/skins/automotive_landscape/layout b/emulator/skins/automotive_landscape/layout
new file mode 100644
index 0000000..be1e1a8
--- /dev/null
+++ b/emulator/skins/automotive_landscape/layout
@@ -0,0 +1,38 @@
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+parts {
+ device {
+ display {
+ width 1408
+ height 792
+ }
+ }
+ landscape {
+ background {
+ image back.png
+ }
+ }
+}
+layouts {
+ landscape {
+ width 1500
+ height 837
+ part1 {
+ name device
+ x 50
+ y 30
+ }
+ }
+}
diff --git a/emulator/skins/automotive_portrait/layout b/emulator/skins/automotive_portrait/layout
new file mode 100644
index 0000000..a4c22b6
--- /dev/null
+++ b/emulator/skins/automotive_portrait/layout
@@ -0,0 +1,35 @@
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+parts {
+ device {
+ display {
+ width 1280
+ height 1606
+ x 0
+ y 0
+ }
+ }
+}
+layouts {
+ landscape {
+ width 1280
+ height 1650
+ part1 {
+ name device
+ x 0
+ y 0
+ }
+ }
+}
diff --git a/emulator/skins/automotive_ultrawide/layout b/emulator/skins/automotive_ultrawide/layout
new file mode 100644
index 0000000..6135b9f
--- /dev/null
+++ b/emulator/skins/automotive_ultrawide/layout
@@ -0,0 +1,35 @@
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+parts {
+ device {
+ display {
+ width 3904
+ height 1320
+ x 0
+ y 0
+ }
+ }
+}
+layouts {
+ landscape {
+ width 3904
+ height 1340
+ part1 {
+ name device
+ x 0
+ y 0
+ }
+ }
+}
diff --git a/emulator/usbpt/bluetooth/bluetooth.prop b/emulator/usbpt/bluetooth/bluetooth.prop
index fdd00c0..e84275d 100644
--- a/emulator/usbpt/bluetooth/bluetooth.prop
+++ b/emulator/usbpt/bluetooth/bluetooth.prop
@@ -1,11 +1,35 @@
# The default Bluetooth Class of Device
-# Service Field: 0x26 -> 38
-# - Bit 17: Networking
-# - Bit 18: Rendering
-# - Bit 21: Audio
-# Major Class: 0x04 -> 4 (Audio / Video)
-# Minor Class: 0x08 -> 8 (Car Audio)
-bluetooth.device.class_of_device=38,4,8
+#
+# Bluetooth uses "format 1" for class of device, which consists of 4 fields:
+# * Major Service Class
+# * Major Device Class
+# * Minor Device Class
+# * Format indicator (Fixed: 0b00)
+#
+# Class of device is represented by a 3-tuple. However, each value in the tuple does
+# *NOT* correspond to a field. Instead, class of device is stored internally as 24 bits,
+# and each value in the tuple corresponds to an octet.
+#
+# Format (24 Bits):
+# Service Major Minor fmt
+# (11 bits) (5 bits) (6 bits) 0b00
+# |23 13|12 8|7 2|1 0|
+# |<------------------->|<------->|<--------->|<->|
+# |0|0|1|0|0|1|1|0|0|0|0|0|0|1|0|0|0|0|1|0|0|0|0|0|
+# |<------------->|<------------->|<------------->|
+# |23 16|15 8|7 0|
+# | octet[0] = 38 | octet[1] = 4 | octet[2] = 32 |
+#
+# Major Service Class:
+# - Bit 21: Audio
+# - Bit 18: Rendering
+# - Bit 17: Networking
+# Major Device Class:
+# - Bit 10: Audio / Video
+# Minor Device Class:
+# - Bit 5: Car Audio
+# Format Bits (Fixed): 0b00 -> "Format 1"
+bluetooth.device.class_of_device=38,4,32
bluetooth.device.default_name=gCar Emulator
# The Bluetooth profiles that cars expect to have enabled. All other profiles
diff --git a/emulator/vhal_aidl/Android.bp b/emulator/vhal_aidl/Android.bp
index 4f843fa..0b50eb7 100644
--- a/emulator/vhal_aidl/Android.bp
+++ b/emulator/vhal_aidl/Android.bp
@@ -19,7 +19,7 @@ package {
}
cc_binary {
- name: "android.hardware.automotive.vehicle@V1-emulator-service",
+ name: "android.hardware.automotive.vehicle@V3-emulator-service",
vendor: true,
defaults: [
"FakeVehicleHardwareDefaults",
diff --git a/emulator/vhal_aidl/VehicleEmulator/EmulatedVehicleHardware.cpp b/emulator/vhal_aidl/VehicleEmulator/EmulatedVehicleHardware.cpp
index 941d4f8..6eb7010 100644
--- a/emulator/vhal_aidl/VehicleEmulator/EmulatedVehicleHardware.cpp
+++ b/emulator/vhal_aidl/VehicleEmulator/EmulatedVehicleHardware.cpp
@@ -175,7 +175,7 @@ std::vector<VehiclePropValuePool::RecyclableType> EmulatedVehicleHardware::getAl
EmulatedVehicleHardware::ConfigResultType EmulatedVehicleHardware::getPropConfig(int32_t propId)
const {
- return mServerSidePropStore->getConfig(propId);
+ return mServerSidePropStore->getPropConfig(propId);
}
bool EmulatedVehicleHardware::isInQemu() {
diff --git a/emulator/vhal_aidl/VehicleEmulator/VehicleEmulator.cpp b/emulator/vhal_aidl/VehicleEmulator/VehicleEmulator.cpp
index b09b8b9..73ffeef 100644
--- a/emulator/vhal_aidl/VehicleEmulator/VehicleEmulator.cpp
+++ b/emulator/vhal_aidl/VehicleEmulator/VehicleEmulator.cpp
@@ -105,7 +105,7 @@ void VehicleEmulator::doGetConfig(const VehicleEmulator::EmulatorMessage& rxMsg,
}
vhal_proto::VehiclePropConfig* protoCfg = respMsg->add_config();
- populateProtoVehicleConfig(*result.value(), protoCfg);
+ populateProtoVehicleConfig(result.value(), protoCfg);
respMsg->set_status(vhal_proto::RESULT_OK);
}
diff --git a/emulator/vhal_aidl/VehicleEmulator/include/EmulatedVehicleHardware.h b/emulator/vhal_aidl/VehicleEmulator/include/EmulatedVehicleHardware.h
index f5aaed1..c4a7b01 100644
--- a/emulator/vhal_aidl/VehicleEmulator/include/EmulatedVehicleHardware.h
+++ b/emulator/vhal_aidl/VehicleEmulator/include/EmulatedVehicleHardware.h
@@ -38,7 +38,7 @@ class EmulatedVehicleHardware : public FakeVehicleHardware {
using AidlVehiclePropValue = aidl::android::hardware::automotive::vehicle::VehiclePropValue;
using IVehicleBus = aidl::device::generic::car::emulator::IVehicleBus;
using BnVehicleBusCallback = aidl::device::generic::car::emulator::BnVehicleBusCallback;
- using ConfigResultType = android::base::Result<const aidl::android::hardware::automotive::vehicle::VehiclePropConfig*, VhalError>;
+ using ConfigResultType = android::base::Result<aidl::android::hardware::automotive::vehicle::VehiclePropConfig, VhalError>;
EmulatedVehicleHardware();
EmulatedVehicleHardware(std::string_view default_config_dir,
diff --git a/emulator/vhal_aidl/vhal-emulator-service.rc b/emulator/vhal_aidl/vhal-emulator-service.rc
index d311ece..db087c0 100644
--- a/emulator/vhal_aidl/vhal-emulator-service.rc
+++ b/emulator/vhal_aidl/vhal-emulator-service.rc
@@ -1,4 +1,4 @@
-service vendor.vehicle-hal-emulator /vendor/bin/hw/android.hardware.automotive.vehicle@V1-emulator-service
+service vendor.vehicle-hal-emulator /vendor/bin/hw/android.hardware.automotive.vehicle@V3-emulator-service
class early_hal
user vehicle_network
group system inet
diff --git a/sdk_car_portrait_x86_64.mk b/sdk_car_portrait_x86_64.mk
index 4684efb..12dd357 100644
--- a/sdk_car_portrait_x86_64.mk
+++ b/sdk_car_portrait_x86_64.mk
@@ -24,16 +24,16 @@ DO_NOT_INCLUDE_CAR_UI_REFERENCE_DESIGN := true
# Exclude Car Visual Overlay
DISABLE_CAR_PRODUCT_VISUAL_OVERLAY := true
-# Use the common Car Overlay
-PRODUCT_PACKAGE_OVERLAYS := device/generic/car/common/overlay
-
# Copy additional files
PRODUCT_COPY_FILES += \
packages/services/Car/car_product/car_ui_portrait/car_ui_portrait.ini:config.ini \
packages/services/Car/car_product/car_ui_portrait/bootanimation/bootanimation.zip:system/media/bootanimation.zip
-$(call inherit-product, device/generic/car/emulator/aosp_car_emulator.mk)
-$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_phone_x86_64.mk)
+$(call inherit-product, device/generic/car/sdk_car_x86_64.mk)
+
+# TODO(b/303863968): Set it to true after cleaning up the system partition
+# changes from this makefile
+PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := false
PRODUCT_NAME := sdk_car_portrait_x86_64
PRODUCT_MODEL := CarUiPortrait on x86_64 emulator
@@ -43,5 +43,5 @@ PRODUCT_SDK_ADDON_NAME := sdk_car_portrait_x86_64
$(call inherit-product, packages/services/Car/car_product/car_ui_portrait/apps/car_ui_portrait_apps.mk)
$(call inherit-product, packages/services/Car/car_product/car_ui_portrait/rro/car_ui_portrait_rro.mk)
-# Use the default goldfish audio implementation
-EMULATOR_VENDOR_NO_SOUND := true \ No newline at end of file
+PRODUCT_COPY_FILES += \
+ packages/services/Car/car_product/car_ui_portrait/car_ui_portrait_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/car_ui_portrait_hardware.xml