From dfe6bbb7a7cb08dda59ceb5d4cfc199fa10b5685 Mon Sep 17 00:00:00 2001 From: Yuncheol Heo Date: Thu, 29 Sep 2022 18:24:12 -0700 Subject: Add a sdk_car_md_x86_64 configuration. - This also adds multi-display settings for sdk_car_md. Bug 248584504 Test: m sdk_car_md_x86_64-userdebug Test: Check the md emulator has 4 displays. BYPASS_INCLUSIVE_LANGUAGE_REASON=migrating existing configuration. Change-Id: I7c01e17621db59303a1848dcfab2f1f2581d8d75 --- AndroidProducts.mk | 2 + emulator/multi-display/car_audio_configuration.xml | 114 +++++++++++++++++++++ emulator/multi-display/display_settings.xml | 23 +++++ .../input/virtio_input_multi_touch_7.idc | 12 +++ .../input/virtio_input_multi_touch_8.idc | 12 +++ .../input/virtio_input_multi_touch_9.idc | 12 +++ .../frameworks/base/core/res/res/values/config.xml | 63 ++++++++++++ sdk_car_md_x86_64.mk | 61 +++++++++++ 8 files changed, 299 insertions(+) create mode 100644 emulator/multi-display/car_audio_configuration.xml create mode 100644 emulator/multi-display/display_settings.xml create mode 100644 emulator/multi-display/input/virtio_input_multi_touch_7.idc create mode 100644 emulator/multi-display/input/virtio_input_multi_touch_8.idc create mode 100644 emulator/multi-display/input/virtio_input_multi_touch_9.idc create mode 100644 emulator/multi-display/overlay/frameworks/base/core/res/res/values/config.xml create mode 100644 sdk_car_md_x86_64.mk diff --git a/AndroidProducts.mk b/AndroidProducts.mk index 0240d02..aae2e88 100644 --- a/AndroidProducts.mk +++ b/AndroidProducts.mk @@ -23,6 +23,7 @@ PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/car_x86_64.mk \ $(LOCAL_DIR)/gsi_car_arm64.mk \ $(LOCAL_DIR)/gsi_car_x86_64.mk \ + $(LOCAL_DIR)/sdk_car_md_x86_64.mk \ COMMON_LUNCH_CHOICES := \ @@ -34,6 +35,7 @@ COMMON_LUNCH_CHOICES := \ car_x86_64-userdebug \ gsi_car_arm64-userdebug \ gsi_car_x86_64-userdebug \ + sdk_car_md_x86_64-userdebug \ EMULATOR_VENDOR_NO_SOUND_TRIGGER := false diff --git a/emulator/multi-display/car_audio_configuration.xml b/emulator/multi-display/car_audio_configuration.xml new file mode 100644 index 0000000..6fd5ddb --- /dev/null +++ b/emulator/multi-display/car_audio_configuration.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/emulator/multi-display/display_settings.xml b/emulator/multi-display/display_settings.xml new file mode 100644 index 0000000..ad23b79 --- /dev/null +++ b/emulator/multi-display/display_settings.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + diff --git a/emulator/multi-display/input/virtio_input_multi_touch_7.idc b/emulator/multi-display/input/virtio_input_multi_touch_7.idc new file mode 100644 index 0000000..388337f --- /dev/null +++ b/emulator/multi-display/input/virtio_input_multi_touch_7.idc @@ -0,0 +1,12 @@ +device.internal = 1 + +touch.deviceType = touchScreen +touch.orientationAware = 1 + +cursor.mode = navigation +cursor.orientationAware = 1 + +# This displayID matches the unique ID of the virtual display created for Emulator. +# This will indicate to input flinger than it should link this input device +# with the virtual display. +touch.displayId = local:4619827551948147201 diff --git a/emulator/multi-display/input/virtio_input_multi_touch_8.idc b/emulator/multi-display/input/virtio_input_multi_touch_8.idc new file mode 100644 index 0000000..726843a --- /dev/null +++ b/emulator/multi-display/input/virtio_input_multi_touch_8.idc @@ -0,0 +1,12 @@ +device.internal = 1 + +touch.deviceType = touchScreen +touch.orientationAware = 1 + +cursor.mode = navigation +cursor.orientationAware = 1 + +# This displayID matches the unique ID of the virtual display created for Emulator. +# This will indicate to input flinger than it should link this input device +# with the virtual display. +touch.displayId = local:4619827124781842690 diff --git a/emulator/multi-display/input/virtio_input_multi_touch_9.idc b/emulator/multi-display/input/virtio_input_multi_touch_9.idc new file mode 100644 index 0000000..01d55b0 --- /dev/null +++ b/emulator/multi-display/input/virtio_input_multi_touch_9.idc @@ -0,0 +1,12 @@ +device.internal = 1 + +touch.deviceType = touchScreen +touch.orientationAware = 1 + +cursor.mode = navigation +cursor.orientationAware = 1 + +# This displayID matches the unique ID of the virtual display created for Emulator. +# This will indicate to input flinger than it should link this input device +# with the virtual display. +touch.displayId = local:4619827540095559171 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 new file mode 100644 index 0000000..6efc094 --- /dev/null +++ b/emulator/multi-display/overlay/frameworks/base/core/res/res/values/config.xml @@ -0,0 +1,63 @@ + + + + + + true + + + 5 + + + 5 + + + true + + com.android.car.multidisplay + + 2 + + + true + + diff --git a/sdk_car_md_x86_64.mk b/sdk_car_md_x86_64.mk new file mode 100644 index 0000000..c68947b --- /dev/null +++ b/sdk_car_md_x86_64.mk @@ -0,0 +1,61 @@ +# +# Copyright (C) 2022 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. + +# this overwrites Android Emulator's default input devices for virtual displays in device/generic/goldfish/input/ +PRODUCT_COPY_FILES += \ + device/generic/car/emulator/multi-display/input/virtio_input_multi_touch_7.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_7.idc \ + device/generic/car/emulator/multi-display/input/virtio_input_multi_touch_8.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_8.idc \ + device/generic/car/emulator/multi-display/input/virtio_input_multi_touch_9.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/virtio_input_multi_touch_9.idc + +# Overrides Goldfish's default display_settings.xml +PRODUCT_COPY_FILES += \ + device/generic/car/emulator/multi-display/display_settings.xml:$(TARGET_COPY_OUT_VENDOR)/etc/display_settings.xml + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.software.managed_users.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.managed_users.xml + +PRODUCT_PACKAGE_OVERLAYS += \ + device/generic/car/emulator/multi-display/overlay + +PRODUCT_COPY_FILES += \ + device/generic/car/emulator/multi-display/car_audio_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/car_audio_configuration.xml + +# Use to disable cluster display definitions in aosp_car_emulator +BUILD_EMULATOR_CLUSTER_DISPLAY := false +# Disable dynamic multidisplay support in the base target. +EMULATOR_DYNAMIC_MULTIDISPLAY_CONFIG := false +PRODUCT_PRODUCT_PROPERTIES += \ + hwservicemanager.external.displays=1,400,600,120,0,2,800,600,120,0,3,800,600,120,0 \ + persist.service.bootanim.displays=4619827551948147201,4619827124781842690,4619827540095559171 + +PRODUCT_PACKAGES += ClusterHomeSample ClusterOsDouble +PRODUCT_PACKAGES += CarServiceOverlayEmulatorOsDouble CarServiceOverlayMdEmulatorOsDouble + +# Enable MZ audio by default +PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ + ro.aae.simulateMultiZoneAudio=true \ + persist.sys.max_profiles=5 \ + com.android.car.internal.debug.num_auto_populated_users=1 + +PRODUCT_PACKAGES += \ + MultiDisplaySecondaryHomeTestLauncher \ + MultiDisplayTest + +$(call inherit-product, device/generic/goldfish/car/sdk_car_x86_64.mk) + +PRODUCT_NAME := sdk_car_md_x86_64 +PRODUCT_DEVICE := emulator_car_x86_64 +PRODUCT_BRAND := Android +PRODUCT_MODEL := Car multi-display on x86_64 emulator -- cgit v1.2.3