diff options
author | Xin Li <delphij@google.com> | 2024-03-07 06:41:09 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-03-07 06:41:09 +0000 |
commit | e48850214f820b6908b5eb6876b1a4f25bc10adc (patch) | |
tree | 7d8b1687f944018f2edd0b2abb55d065927287f6 | |
parent | 927cfd4d3b7d4ef23074bbdb9ec28591d11e9eae (diff) | |
parent | 17ab77c76406a8e3bd498dda389c40a578176ba2 (diff) | |
download | cuttlefish-emu-34-2-dev.tar.gz |
Merge "Merge Android 14 QPR2 to AOSP main" into mainemu-34-2-dev
46 files changed, 472 insertions, 112 deletions
diff --git a/TEST_MAPPING b/TEST_MAPPING index dc284635d..345e46e16 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -31,6 +31,15 @@ }, { "name": "CtsScopedStorageDeviceOnlyTest" + }, + { + "name": "CtsScopedStorageBypassDatabaseOperationsTest" + }, + { + "name": "CtsScopedStorageGeneralTest" + }, + { + "name": "CtsScopedStorageRedactUriTest" } ], "auto-presubmit": [ diff --git a/apex/com.google.cf.wifi/Android.bp b/apex/com.google.cf.wifi/Android.bp index 6d63886de..cd6d7a64d 100644 --- a/apex/com.google.cf.wifi/Android.bp +++ b/apex/com.google.cf.wifi/Android.bp @@ -42,7 +42,7 @@ apex { soc_specific: true, binaries: [ "rename_netiface", - "wpa_supplicant_cf", + "//external/wpa_supplicant_8/wpa_supplicant/wpa_supplicant:wpa_supplicant", "setup_wifi", "//device/generic/goldfish:mac80211_create_radios", "hostapd_cf", diff --git a/apex/com.google.cf.wifi/com.google.cf.wifi.rc b/apex/com.google.cf.wifi/com.google.cf.wifi.rc index 1465d13f4..c0fff55a3 100644 --- a/apex/com.google.cf.wifi/com.google.cf.wifi.rc +++ b/apex/com.google.cf.wifi/com.google.cf.wifi.rc @@ -15,7 +15,7 @@ service init_wifi_sh /apex/com.android.wifi.hal/bin/init.wifi oneshot disabled # Started on post-fs-data -service wpa_supplicant /apex/com.android.wifi.hal/bin/hw/wpa_supplicant_cf \ +service wpa_supplicant /apex/com.android.wifi.hal/bin/hw/wpa_supplicant \ -O/data/vendor/wifi/wpa/sockets -puse_p2p_group_interface=1p2p_device=1 \ -m/apex/com.android.wifi.hal/etc/wifi/p2p_supplicant.conf \ -g@android:wpa_wlan0 -dd diff --git a/apex/com.google.cf.wifi/file_contexts b/apex/com.google.cf.wifi/file_contexts index 8c9bf899b..bb96251e2 100644 --- a/apex/com.google.cf.wifi/file_contexts +++ b/apex/com.google.cf.wifi/file_contexts @@ -2,7 +2,7 @@ /bin/rename_netiface u:object_r:rename_netiface_exec:s0 /bin/setup_wifi u:object_r:setup_wifi_exec:s0 /bin/init\.wifi u:object_r:init_wifi_sh_exec:s0 -/bin/hw/wpa_supplicant_cf u:object_r:hal_wifi_supplicant_default_exec:s0 +/bin/hw/wpa_supplicant u:object_r:hal_wifi_supplicant_default_exec:s0 /bin/hw/hostapd_cf u:object_r:hal_wifi_hostapd_default_exec:s0 /bin/mac80211_create_radios u:object_r:mac80211_create_radios_exec:s0 /etc/permissions(/.*)? u:object_r:vendor_configs_file:s0 diff --git a/guest/hals/camera/Android.bp b/guest/hals/camera/Android.bp index ce4c46c1e..c6c87329f 100644 --- a/guest/hals/camera/Android.bp +++ b/guest/hals/camera/Android.bp @@ -77,6 +77,7 @@ cc_library_shared { "libhidlbase", "liblog", "libutils", + "libui", "libvsock_utils", "libcuttlefish_fs", "libjsoncpp", diff --git a/guest/hals/camera/cached_stream_buffer.cpp b/guest/hals/camera/cached_stream_buffer.cpp index ff692c7dc..7e99581aa 100644 --- a/guest/hals/camera/cached_stream_buffer.cpp +++ b/guest/hals/camera/cached_stream_buffer.cpp @@ -96,8 +96,23 @@ YCbCrLayout CachedStreamBuffer::acquireAsYUV(int32_t width, int32_t height, acquire_fence_ = -1; } } - IMapper::Rect region{0, 0, width, height}; - return g_importer.lockYCbCr(buffer_, GRALLOC_USAGE_SW_WRITE_OFTEN, region); + android::Rect region{0, 0, width, height}; + android_ycbcr result = + g_importer.lockYCbCr(buffer_, GRALLOC_USAGE_SW_WRITE_OFTEN, region); + if (result.ystride > UINT32_MAX || result.cstride > UINT32_MAX || + result.chroma_step > UINT32_MAX) { + ALOGE( + "%s: lockYCbCr failed. Unexpected values! ystride: %zu cstride: %zu " + "chroma_step: %zu", + __FUNCTION__, result.ystride, result.cstride, result.chroma_step); + return {}; + } + return {.y = result.y, + .cb = result.cb, + .cr = result.cr, + .yStride = static_cast<uint32_t>(result.ystride), + .cStride = static_cast<uint32_t>(result.cstride), + .chromaStep = static_cast<uint32_t>(result.chroma_step)}; } void* CachedStreamBuffer::acquireAsBlob(int32_t size, int timeout_ms) { diff --git a/guest/hals/camera/cached_stream_buffer.h b/guest/hals/camera/cached_stream_buffer.h index 09a404738..19d738d2b 100644 --- a/guest/hals/camera/cached_stream_buffer.h +++ b/guest/hals/camera/cached_stream_buffer.h @@ -15,12 +15,16 @@ */ #pragma once #include <android/hardware/camera/device/3.4/ICameraDeviceSession.h> +#include <android/hardware/graphics/mapper/2.0/IMapper.h> +#include <android/hardware/graphics/mapper/3.0/IMapper.h> +#include <android/hardware/graphics/mapper/4.0/IMapper.h> #include "HandleImporter.h" namespace android::hardware::camera::device::V3_4::implementation { using ::android::hardware::camera::common::V1_0::helper::HandleImporter; using ::android::hardware::camera::device::V3_2::StreamBuffer; +using ::android::hardware::graphics::mapper::V2_0::YCbCrLayout; // Small wrapper for allocating/freeing native handles class ReleaseFence { diff --git a/guest/hals/ril/reference-libril/Android.bp b/guest/hals/ril/reference-libril/Android.bp index de07522e1..09acbd451 100644 --- a/guest/hals/ril/reference-libril/Android.bp +++ b/guest/hals/ril/reference-libril/Android.bp @@ -43,16 +43,16 @@ cc_library { ], shared_libs: [ "android.hardware.radio-library.compat", - "android.hardware.radio.config-V2-ndk", - "android.hardware.radio.data-V2-ndk", - "android.hardware.radio.ims-V1-ndk", - "android.hardware.radio.ims.media-V1-ndk", - "android.hardware.radio.messaging-V2-ndk", - "android.hardware.radio.modem-V2-ndk", - "android.hardware.radio.network-V2-ndk", + "android.hardware.radio.config-V3-ndk", + "android.hardware.radio.data-V3-ndk", + "android.hardware.radio.ims-V2-ndk", + "android.hardware.radio.ims.media-V2-ndk", + "android.hardware.radio.messaging-V3-ndk", + "android.hardware.radio.modem-V3-ndk", + "android.hardware.radio.network-V3-ndk", "android.hardware.radio.sap-V1-ndk", - "android.hardware.radio.sim-V2-ndk", - "android.hardware.radio.voice-V2-ndk", + "android.hardware.radio.sim-V3-ndk", + "android.hardware.radio.voice-V3-ndk", "android.hardware.radio@1.0", "android.hardware.radio@1.1", "android.hardware.radio@1.2", diff --git a/guest/hals/ril/reference-libril/RefRadioNetwork.cpp b/guest/hals/ril/reference-libril/RefRadioNetwork.cpp index 407efaa5e..941cd2470 100644 --- a/guest/hals/ril/reference-libril/RefRadioNetwork.cpp +++ b/guest/hals/ril/reference-libril/RefRadioNetwork.cpp @@ -89,4 +89,28 @@ ScopedAStatus RefRadioNetwork::isNullCipherAndIntegrityEnabled(int32_t serial) { respond()->isNullCipherAndIntegrityEnabledResponse(responseInfo(serial), true); return ok(); } + +ScopedAStatus RefRadioNetwork::setCellularIdentifierTransparencyEnabled(int32_t serial, bool enabled) { + mIsCellularIdentifierTransparencyEnabled = enabled; + respond()->setCellularIdentifierTransparencyEnabledResponse(responseInfo(serial)); + return ok(); +} + +ScopedAStatus RefRadioNetwork::isCellularIdentifierTransparencyEnabled(int32_t serial) { + respond()->isCellularIdentifierTransparencyEnabledResponse( + responseInfo(serial), mIsCellularIdentifierTransparencyEnabled); + return ok(); +} + +ScopedAStatus RefRadioNetwork::setSecurityAlgorithmsUpdatedEnabled(int32_t serial, bool enabled) { + mIsCipheringTransparencyEnabled = enabled; + respond()->setSecurityAlgorithmsUpdatedEnabledResponse(responseInfo(serial)); + return ok(); +} + +ScopedAStatus RefRadioNetwork::isSecurityAlgorithmsUpdatedEnabled(int32_t serial) { + respond()->isSecurityAlgorithmsUpdatedEnabledResponse(responseInfo(serial), + mIsCipheringTransparencyEnabled); + return ok(); +} } // namespace cf::ril diff --git a/guest/hals/ril/reference-libril/RefRadioNetwork.h b/guest/hals/ril/reference-libril/RefRadioNetwork.h index c99bf1827..caf4e5e95 100644 --- a/guest/hals/ril/reference-libril/RefRadioNetwork.h +++ b/guest/hals/ril/reference-libril/RefRadioNetwork.h @@ -22,6 +22,9 @@ namespace cf::ril { class RefRadioNetwork : public android::hardware::radio::compat::RadioNetwork { ::aidl::android::hardware::radio::network::UsageSetting mUsageSetting = ::aidl::android::hardware::radio::network::UsageSetting::VOICE_CENTRIC; + // As per the specs, the default is true. + bool mIsCellularIdentifierTransparencyEnabled = true; + bool mIsCipheringTransparencyEnabled = true; public: using android::hardware::radio::compat::RadioNetwork::RadioNetwork; @@ -49,7 +52,16 @@ class RefRadioNetwork : public android::hardware::radio::compat::RadioNetwork { ::ndk::ScopedAStatus setN1ModeEnabled(int32_t serial, bool enable) override; ::ndk::ScopedAStatus setNullCipherAndIntegrityEnabled(int32_t serial, bool enabled) override; + ::ndk::ScopedAStatus isNullCipherAndIntegrityEnabled(int32_t serial) override; + + ::ndk::ScopedAStatus setCellularIdentifierTransparencyEnabled(int32_t serial, bool enabled) override; + + ::ndk::ScopedAStatus isCellularIdentifierTransparencyEnabled(int32_t serial) override; + + ::ndk::ScopedAStatus setSecurityAlgorithmsUpdatedEnabled(int32_t serial, bool enabled) override; + + ::ndk::ScopedAStatus isSecurityAlgorithmsUpdatedEnabled(int32_t serial) override; }; } // namespace cf::ril diff --git a/guest/hals/ril/reference-libril/android.hardware.radio@2.1.xml b/guest/hals/ril/reference-libril/android.hardware.radio@2.1.xml index 0ffa0d774..a581292ec 100644 --- a/guest/hals/ril/reference-libril/android.hardware.radio@2.1.xml +++ b/guest/hals/ril/reference-libril/android.hardware.radio@2.1.xml @@ -1,40 +1,42 @@ <manifest version="1.0" type="device"> <hal format="aidl"> <name>android.hardware.radio.config</name> - <version>2</version> + <version>3</version> <fqname>IRadioConfig/default</fqname> </hal> <hal format="aidl"> <name>android.hardware.radio.data</name> - <version>2</version> + <version>3</version> <fqname>IRadioData/slot1</fqname> </hal> <hal format="aidl"> <name>android.hardware.radio.ims</name> + <version>2</version> <fqname>IRadioIms/slot1</fqname> </hal> <hal format="aidl"> <name>android.hardware.radio.ims.media</name> + <version>2</version> <fqname>IImsMedia/default</fqname> </hal> <hal format="aidl"> <name>android.hardware.radio.messaging</name> - <version>2</version> + <version>3</version> <fqname>IRadioMessaging/slot1</fqname> </hal> <hal format="aidl"> <name>android.hardware.radio.modem</name> - <version>2</version> + <version>3</version> <fqname>IRadioModem/slot1</fqname> </hal> <hal format="aidl"> <name>android.hardware.radio.network</name> - <version>2</version> + <version>3</version> <fqname>IRadioNetwork/slot1</fqname> </hal> <hal format="aidl"> <name>android.hardware.radio.sim</name> - <version>2</version> + <version>3</version> <fqname>IRadioSim/slot1</fqname> </hal> <hal format="aidl"> @@ -43,7 +45,7 @@ </hal> <hal format="aidl"> <name>android.hardware.radio.voice</name> - <version>2</version> + <version>3</version> <fqname>IRadioVoice/slot1</fqname> </hal> </manifest> diff --git a/guest/services/cf_satellite_service/src/com/google/android/telephony/satellite/CFSatelliteService.java b/guest/services/cf_satellite_service/src/com/google/android/telephony/satellite/CFSatelliteService.java index db9cce133..147383555 100644 --- a/guest/services/cf_satellite_service/src/com/google/android/telephony/satellite/CFSatelliteService.java +++ b/guest/services/cf_satellite_service/src/com/google/android/telephony/satellite/CFSatelliteService.java @@ -21,27 +21,25 @@ import android.annotation.Nullable; import android.content.Intent; import android.os.Binder; import android.os.IBinder; +import android.telephony.IBooleanConsumer; +import android.telephony.IIntegerConsumer; import android.telephony.satellite.stub.ISatelliteCapabilitiesConsumer; import android.telephony.satellite.stub.ISatelliteListener; import android.telephony.satellite.stub.NTRadioTechnology; import android.telephony.satellite.stub.PointingInfo; import android.telephony.satellite.stub.SatelliteCapabilities; import android.telephony.satellite.stub.SatelliteDatagram; -import android.telephony.satellite.stub.SatelliteError; +import android.telephony.satellite.stub.SatelliteResult; import android.telephony.satellite.stub.SatelliteImplBase; import android.telephony.satellite.stub.SatelliteModemState; import android.telephony.satellite.stub.SatelliteService; -import com.android.internal.telephony.IBooleanConsumer; -import com.android.internal.telephony.IIntegerConsumer; import com.android.internal.util.FunctionalUtils; import com.android.telephony.Rlog; import java.util.ArrayList; -import java.util.HashMap; import java.util.HashSet; import java.util.List; -import java.util.Map; import java.util.Set; import java.util.concurrent.Executor; @@ -58,7 +56,7 @@ public class CFSatelliteService extends SatelliteImplBase { /** SatelliteCapabilities constant indicating the maximum number of characters per datagram. */ private static final int MAX_BYTES_PER_DATAGRAM = 339; - @NonNull private final Map<IBinder, ISatelliteListener> mListeners = new HashMap<>(); + @NonNull private final Set<ISatelliteListener> mListeners = new HashSet<>(); private boolean mIsCommunicationAllowedInLocation; private boolean mIsEnabled; @@ -112,7 +110,7 @@ public class CFSatelliteService extends SatelliteImplBase { @Override public void setSatelliteListener(@NonNull ISatelliteListener listener) { logd("setSatelliteListener"); - mListeners.put(listener.asBinder(), listener); + mListeners.add(listener); } @Override @@ -127,7 +125,7 @@ public class CFSatelliteService extends SatelliteImplBase { } else { updateSatelliteModemState(SatelliteModemState.SATELLITE_MODEM_STATE_IDLE); } - runWithExecutor(() -> errorCallback.accept(SatelliteError.ERROR_NONE)); + runWithExecutor(() -> errorCallback.accept(SatelliteResult.SATELLITE_RESULT_SUCCESS)); } @Override @@ -144,13 +142,13 @@ public class CFSatelliteService extends SatelliteImplBase { private void enableSatellite(@NonNull IIntegerConsumer errorCallback) { mIsEnabled = true; updateSatelliteModemState(SatelliteModemState.SATELLITE_MODEM_STATE_IDLE); - runWithExecutor(() -> errorCallback.accept(SatelliteError.ERROR_NONE)); + runWithExecutor(() -> errorCallback.accept(SatelliteResult.SATELLITE_RESULT_SUCCESS)); } private void disableSatellite(@NonNull IIntegerConsumer errorCallback) { mIsEnabled = false; updateSatelliteModemState(SatelliteModemState.SATELLITE_MODEM_STATE_OFF); - runWithExecutor(() -> errorCallback.accept(SatelliteError.ERROR_NONE)); + runWithExecutor(() -> errorCallback.accept(SatelliteResult.SATELLITE_RESULT_SUCCESS)); } @Override @@ -184,20 +182,20 @@ public class CFSatelliteService extends SatelliteImplBase { if (!verifySatelliteModemState(errorCallback)) { return; } - runWithExecutor(() -> errorCallback.accept(SatelliteError.ERROR_NONE)); + runWithExecutor(() -> errorCallback.accept(SatelliteResult.SATELLITE_RESULT_SUCCESS)); } @Override public void stopSendingSatellitePointingInfo(@NonNull IIntegerConsumer errorCallback) { logd("stopSendingSatellitePointingInfo"); - runWithExecutor(() -> errorCallback.accept(SatelliteError.ERROR_NONE)); + runWithExecutor(() -> errorCallback.accept(SatelliteResult.SATELLITE_RESULT_SUCCESS)); } @Override public void provisionSatelliteService(@NonNull String token, @NonNull byte[] provisionData, @NonNull IIntegerConsumer errorCallback) { logd("provisionSatelliteService"); - runWithExecutor(() -> errorCallback.accept(SatelliteError.ERROR_NONE)); + runWithExecutor(() -> errorCallback.accept(SatelliteResult.SATELLITE_RESULT_SUCCESS)); updateSatelliteProvisionState(true); } @@ -205,7 +203,7 @@ public class CFSatelliteService extends SatelliteImplBase { public void deprovisionSatelliteService(@NonNull String token, @NonNull IIntegerConsumer errorCallback) { logd("deprovisionSatelliteService"); - runWithExecutor(() -> errorCallback.accept(SatelliteError.ERROR_NONE)); + runWithExecutor(() -> errorCallback.accept(SatelliteResult.SATELLITE_RESULT_SUCCESS)); updateSatelliteProvisionState(false); } @@ -219,14 +217,14 @@ public class CFSatelliteService extends SatelliteImplBase { @Override public void pollPendingSatelliteDatagrams(@NonNull IIntegerConsumer errorCallback) { logd("pollPendingSatelliteDatagrams"); - runWithExecutor(() -> errorCallback.accept(SatelliteError.ERROR_NONE)); + runWithExecutor(() -> errorCallback.accept(SatelliteResult.SATELLITE_RESULT_SUCCESS)); } @Override public void sendSatelliteDatagram(@NonNull SatelliteDatagram datagram, boolean isEmergency, @NonNull IIntegerConsumer errorCallback) { logd("sendSatelliteDatagram"); - runWithExecutor(() -> errorCallback.accept(SatelliteError.ERROR_NONE)); + runWithExecutor(() -> errorCallback.accept(SatelliteResult.SATELLITE_RESULT_SUCCESS)); } @Override @@ -263,15 +261,18 @@ public class CFSatelliteService extends SatelliteImplBase { */ private boolean verifySatelliteModemState(@NonNull IIntegerConsumer errorCallback) { if (!mIsSupported) { - runWithExecutor(() -> errorCallback.accept(SatelliteError.REQUEST_NOT_SUPPORTED)); + runWithExecutor(() -> errorCallback.accept( + SatelliteResult.SATELLITE_RESULT_REQUEST_NOT_SUPPORTED)); return false; } if (!mIsProvisioned) { - runWithExecutor(() -> errorCallback.accept(SatelliteError.SERVICE_NOT_PROVISIONED)); + runWithExecutor(() -> errorCallback.accept( + SatelliteResult.SATELLITE_RESULT_SERVICE_NOT_PROVISIONED)); return false; } if (!mIsEnabled) { - runWithExecutor(() -> errorCallback.accept(SatelliteError.INVALID_MODEM_STATE)); + runWithExecutor(() -> errorCallback.accept( + SatelliteResult.SATELLITE_RESULT_INVALID_MODEM_STATE)); return false; } return true; @@ -286,8 +287,7 @@ public class CFSatelliteService extends SatelliteImplBase { if (modemState == mModemState) { return; } - logd("updateSatelliteModemState: mListeners.size=" + mListeners.size()); - mListeners.values().forEach(listener -> runWithExecutor(() -> + mListeners.forEach(listener -> runWithExecutor(() -> listener.onSatelliteModemStateChanged(modemState))); mModemState = modemState; } @@ -302,9 +302,8 @@ public class CFSatelliteService extends SatelliteImplBase { if (isProvisioned == mIsProvisioned) { return; } - logd("updateSatelliteProvisionState: mListeners.size=" + mListeners.size()); mIsProvisioned = isProvisioned; - mListeners.values().forEach(listener -> runWithExecutor(() -> + mListeners.forEach(listener -> runWithExecutor(() -> listener.onSatelliteProvisionStateChanged(mIsProvisioned))); } diff --git a/host/commands/cvd_load_tester/end_to_end_test/multi/demo.json b/host/commands/cvd_load_tester/end_to_end_test/multi/demo.json new file mode 100644 index 000000000..00af4bdc6 --- /dev/null +++ b/host/commands/cvd_load_tester/end_to_end_test/multi/demo.json @@ -0,0 +1,27 @@ +{ + "instances" : + [ + { + "@import" : "phone", + "vm": { + "memory_mb": 8192, + "setupwizard_mode": "OPTIONAL", + "cpus": 4 + }, + "disk": { + "default_build": "git_master/cf_x86_64_phone-userdebug" + } + }, + { + "@import" : "wearable", + "vm": { + "memory_mb": 8192, + "setupwizard_mode": "REQUIRED", + "cpus": 4 + }, + "disk": { + "default_build": "git_master/cf_gwear_x86-userdebug" + } + } + ] +} diff --git a/shared/api_level.h b/shared/api_level.h index 36b3a87da..06cf49c5b 100644 --- a/shared/api_level.h +++ b/shared/api_level.h @@ -15,4 +15,4 @@ */ #pragma once -#define PRODUCT_SHIPPING_API_LEVEL 34 +#define PRODUCT_SHIPPING_API_LEVEL 35 diff --git a/shared/auto/car_audio_configuration.xml b/shared/auto/car_audio_configuration.xml index 482726e7e..7b2cf687a 100644 --- a/shared/auto/car_audio_configuration.xml +++ b/shared/auto/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/shared/auto/device_vendor.mk b/shared/auto/device_vendor.mk index b7147c32a..5cc893ff3 100644 --- a/shared/auto/device_vendor.mk +++ b/shared/auto/device_vendor.mk @@ -78,13 +78,13 @@ PRODUCT_COPY_FILES += \ # vehicle HAL ifeq ($(LOCAL_VHAL_PRODUCT_PACKAGE),) - LOCAL_VHAL_PRODUCT_PACKAGE := android.hardware.automotive.vehicle@V1-emulator-service + LOCAL_VHAL_PRODUCT_PACKAGE := android.hardware.automotive.vehicle@V3-emulator-service BOARD_SEPOLICY_DIRS += device/google/cuttlefish/shared/auto/sepolicy/vhal endif PRODUCT_PACKAGES += $(LOCAL_VHAL_PRODUCT_PACKAGE) # Remote access HAL -PRODUCT_PACKAGES += android.hardware.automotive.remoteaccess@V1-default-service +PRODUCT_PACKAGES += android.hardware.automotive.remoteaccess@V2-default-service # Broadcast Radio PRODUCT_PACKAGES += android.hardware.broadcastradio-service.default @@ -102,6 +102,13 @@ PRODUCT_PACKAGES += $(LOCAL_AUDIOCONTROL_HAL_PRODUCT_PACKAGE) # CAN bus HAL PRODUCT_PACKAGES += android.hardware.automotive.can-service +# MACSEC HAL +PRODUCT_PACKAGES += android.hardware.macsec-service +PRODUCT_PACKAGES += wpa_supplicant_macsec +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/macsec/wpa_supplicant_macsec.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wpa_supplicant_macsec.conf \ + $(LOCAL_PATH)/macsec/init.wpa_supplicant_macsec.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.wpa_supplicant_macsec.rc + # Occupant Awareness HAL PRODUCT_PACKAGES += android.hardware.automotive.occupant_awareness@1.0-service include packages/services/Car/car_product/occupant_awareness/OccupantAwareness.mk @@ -141,4 +148,7 @@ DEVICE_PACKAGE_OVERLAYS += device/google/cuttlefish/shared/auto/overlay PRODUCT_PACKAGES += CarServiceOverlayCuttleFish GOOGLE_CAR_SERVICE_OVERLAY += CarServiceOverlayCuttleFishGoogle +PRODUCT_PACKAGES += ConnectivityOverlayCuttleFish +GOOGLE_CAR_SERVICE_OVERLAY += ConnectivityOverlayCuttleFishGoogle + TARGET_BOARD_INFO_FILE ?= device/google/cuttlefish/shared/auto/android-info.txt diff --git a/shared/auto/macsec/init.wpa_supplicant_macsec.rc b/shared/auto/macsec/init.wpa_supplicant_macsec.rc new file mode 100644 index 000000000..c5b30f676 --- /dev/null +++ b/shared/auto/macsec/init.wpa_supplicant_macsec.rc @@ -0,0 +1,22 @@ +# 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. + +on late-fs + wait /sys/class/net/eth1 + start wpa_supplicant_macsec + +service wpa_supplicant_macsec /vendor/bin/hw/wpa_supplicant_macsec \ + -i eth1 -Dmacsec_linux -c /vendor/etc/wpa_supplicant_macsec.conf + user root + oneshot diff --git a/shared/auto/macsec/wpa_supplicant_macsec.conf b/shared/auto/macsec/wpa_supplicant_macsec.conf new file mode 100644 index 000000000..2f4cb0410 --- /dev/null +++ b/shared/auto/macsec/wpa_supplicant_macsec.conf @@ -0,0 +1,15 @@ +eapol_version=3 +ap_scan=0 +fast_reauth=1 +# Example configuration for MACsec with preshared key +# mka_cak is not actual key but index for HAL +network={ + key_mgmt=NONE + eapol_flags=0 + macsec_policy=1 + macsec_replay_protect=1 + macsec_replay_window=0 + mka_cak=00000000000000000000000000000001 + mka_ckn=31323334 + mka_priority=128 +} diff --git a/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml b/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml index e889df36a..fb11fa82c 100644 --- a/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml +++ b/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml @@ -62,15 +62,15 @@ Some examples are: <item>displayPort=0,displayType=MAIN,occupantZoneId=0,inputTypes=DPAD_KEYS| - NAVIGATE_KEYS|ROTARY_NAVIGATION</item> + NAVIGATE_KEYS|ROTARY_NAVIGATION|TOUCH_SCREEN</item> <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/shared/auto/rro_overlay/ConnectivityOverlay/Android.bp b/shared/auto/rro_overlay/ConnectivityOverlay/Android.bp new file mode 100644 index 000000000..218d4438b --- /dev/null +++ b/shared/auto/rro_overlay/ConnectivityOverlay/Android.bp @@ -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. +// +// + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +runtime_resource_overlay { + name: "ConnectivityOverlayCuttleFish", + resource_dirs: ["res"], + manifest: "AndroidManifest.xml", + sdk_version: "current", + product_specific: true +} + +override_runtime_resource_overlay { + name: "ConnectivityOverlayCuttleFishGoogle", + base: "ConnectivityOverlayCuttleFish", + package_name: "com.google.android.connectivity.resources.cuttlefish", + target_package_name: "com.google.android.connectivity.resources", +} + diff --git a/shared/auto/rro_overlay/ConnectivityOverlay/AndroidManifest.xml b/shared/auto/rro_overlay/ConnectivityOverlay/AndroidManifest.xml new file mode 100644 index 000000000..340fbb368 --- /dev/null +++ b/shared/auto/rro_overlay/ConnectivityOverlay/AndroidManifest.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ 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. + --> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.google.android.connectivity.resources.cuttlefish"> + <application android:hasCode="false"/> + <overlay + android:targetPackage="com.android.connectivity.resources" + android:targetName="ServiceConnectivityResourcesConfig" + android:priority="0" + android:isStatic="true" /> +</manifest> diff --git a/shared/auto/rro_overlay/ConnectivityOverlay/res/values/config.xml b/shared/auto/rro_overlay/ConnectivityOverlay/res/values/config.xml new file mode 100644 index 000000000..7033e83dc --- /dev/null +++ b/shared/auto/rro_overlay/ConnectivityOverlay/res/values/config.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 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. +*/ +--> + +<!-- Resources to configure the connectivity module based on each OEM's preference. --> + +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- Whether the internal vehicle network should remain active even when no + apps requested it. --> + <bool name="config_vehicleInternalNetworkAlwaysRequested">true</bool> + <string-array translatable="false" name="config_ethernet_interfaces"> + <!-- Not metered, trusted, not vpn, vehicle, not vcn managed, restricted --> + <item>macsec0;11,14,15,27,28;</item> + <item>eth1;11,14,15,27,28;</item> + </string-array> + <string translatable="false" name="config_ethernet_iface_regex">(eth|macsec)\\d+</string> +</resources> diff --git a/shared/auto_md/overlay/frameworks/base/core/res/res/values/config.xml b/shared/auto_md/overlay/frameworks/base/core/res/res/values/config.xml index 2ed6f0da1..f12cba55c 100644 --- a/shared/auto_md/overlay/frameworks/base/core/res/res/values/config.xml +++ b/shared/auto_md/overlay/frameworks/base/core/res/res/values/config.xml @@ -60,8 +60,4 @@ Should be false for most devices, except automotive vehicle with passenger displays. --> <!-- 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> - </resources> diff --git a/shared/biometrics_face/device_vendor.mk b/shared/biometrics_face/device_vendor.mk index 45eb7c4cd..de76343a4 100644 --- a/shared/biometrics_face/device_vendor.mk +++ b/shared/biometrics_face/device_vendor.mk @@ -15,4 +15,4 @@ # PRODUCT_PACKAGES += \ - com.android.hardware.biometrics.face + com.android.hardware.biometrics.face.virtual diff --git a/shared/biometrics_fingerprint/device_vendor.mk b/shared/biometrics_fingerprint/device_vendor.mk new file mode 100644 index 000000000..24bef1e2c --- /dev/null +++ b/shared/biometrics_fingerprint/device_vendor.mk @@ -0,0 +1,23 @@ +# +# 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. +# + +ifneq ($(LOCAL_PREFER_VENDOR_APEX),true) +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml +endif + +PRODUCT_PACKAGES += \ + com.android.hardware.biometrics.fingerprint.virtual diff --git a/shared/camera/config/external.mk b/shared/camera/config/external.mk new file mode 100644 index 000000000..c9886993d --- /dev/null +++ b/shared/camera/config/external.mk @@ -0,0 +1,27 @@ +# +# 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. +# + +# Load the external feature permissions. +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.camera.external.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.external.xml + +# Inform the camera HAL that we only want an external camera loaded. +PRODUCT_VENDOR_PROPERTIES += \ + ro.vendor.camera.config=external + +# Load the non-APEX external camera config. The APEX loads all the configs by default, which the HAl picks from. +PRODUCT_COPY_FILES += \ + hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_external.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_external.json diff --git a/shared/camera/config/standard.mk b/shared/camera/config/standard.mk new file mode 100644 index 000000000..ff6c3f3fe --- /dev/null +++ b/shared/camera/config/standard.mk @@ -0,0 +1,33 @@ +# +# 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. +# + +# Fills in the features that the full camera array needs. +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.camera.concurrent.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.concurrent.xml \ + frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \ + frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \ + frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \ + frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml \ + +# Camera support library; this isn't supported by the external camera config. +PRODUCT_VENDOR_PROPERTIES += \ + ro.camerax.extensions.enabled=true + +# Loads the non-APEX config files. The APEX loads all the configs by default, which the HAl picks from. +PRODUCT_COPY_FILES += \ + hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_back.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_back.json \ + hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_front.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_front.json \ + hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_depth.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_depth.json diff --git a/shared/camera/device_vendor.mk b/shared/camera/device_vendor.mk index 600c705be..599c32fe4 100644 --- a/shared/camera/device_vendor.mk +++ b/shared/camera/device_vendor.mk @@ -14,14 +14,20 @@ # limitations under the License. # -PRODUCT_VENDOR_PROPERTIES += \ - ro.camerax.extensions.enabled=true - # Enable Camera Extension sample ifeq ($(TARGET_USE_CAMERA_ADVANCED_EXTENSION_SAMPLE),true) PRODUCT_PACKAGES += \ androidx.camera.extensions.impl.advanced advancedSample_camera_extensions.xml \ libencoderjpeg_jni + +PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ + system/app/EyesFreeVidService/EyesFreeVidService.apk + +PRODUCT_PACKAGES += EyesFreeVidService + +PRODUCT_VENDOR_PROPERTIES += \ + ro.vendor.camera.extensions.package=android.camera.extensions.impl.service \ + ro.vendor.camera.extensions.service=android.camera.extensions.impl.service.EyesFreeVidService else PRODUCT_PACKAGES += androidx.camera.extensions.impl sample_camera_extensions.xml endif @@ -44,23 +50,6 @@ $(call soong_config_set,lyric,camera_hardware,cuttlefish) $(call soong_config_set,lyric,tuning_product,cuttlefish) $(call soong_config_set,google3a_config,target_device,cuttlefish) -PRODUCT_COPY_FILES += \ - frameworks/native/data/etc/android.hardware.camera.concurrent.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.concurrent.xml \ - frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \ - frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \ - frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \ - frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml \ - -ifeq ($(PRODUCT_IS_ATV_CF),true) - PRODUCT_COPY_FILES += \ - hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_front.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_front.json -else - PRODUCT_COPY_FILES += \ - hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_back.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_back.json \ - hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_front.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_front.json \ - hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_depth.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_depth.json -endif - ifeq ($(TARGET_USE_VSOCK_CAMERA_HAL_IMPL),true) PRODUCT_PACKAGES += \ android.hardware.camera.provider@2.7-external-vsock-service \ diff --git a/shared/camera/sepolicy/hal_camera_default.te b/shared/camera/sepolicy/hal_camera_default.te index d1230177a..8783a4472 100644 --- a/shared/camera/sepolicy/hal_camera_default.te +++ b/shared/camera/sepolicy/hal_camera_default.te @@ -16,3 +16,7 @@ set_prop(hal_camera_default, vendor_camera_prop) # For observing apex file changes allow hal_camera_default apex_info_file:file r_file_perms; + +# Allow vendor files to define their own config. +set_prop(vendor_init, vendor_camera_config) +get_prop(domain, vendor_camera_config) diff --git a/shared/camera/sepolicy/property.te b/shared/camera/sepolicy/property.te index bb7a5b110..4bb4accf9 100644 --- a/shared/camera/sepolicy/property.te +++ b/shared/camera/sepolicy/property.te @@ -1 +1,2 @@ vendor_internal_prop(vendor_camera_prop) +vendor_restricted_prop(vendor_camera_config) diff --git a/shared/camera/sepolicy/property_contexts b/shared/camera/sepolicy/property_contexts index 3d6ebfb27..26abad973 100644 --- a/shared/camera/sepolicy/property_contexts +++ b/shared/camera/sepolicy/property_contexts @@ -1,2 +1,4 @@ persist.vendor.camera. u:object_r:vendor_camera_prop:s0 vendor.camera. u:object_r:vendor_camera_prop:s0 + +ro.vendor.camera.config u:object_r:vendor_camera_config:s0 exact string diff --git a/shared/device.mk b/shared/device.mk index 4e9ea97ac..ff8ebbdfd 100644 --- a/shared/device.mk +++ b/shared/device.mk @@ -315,12 +315,6 @@ PRODUCT_COPY_FILES += $(LOCAL_AUDIO_PRODUCT_COPY_FILES) DEVICE_PACKAGE_OVERLAYS += $(LOCAL_AUDIO_DEVICE_PACKAGE_OVERLAYS) # -# BiometricsFingerprint HAL (AIDL) -# -PRODUCT_PACKAGES += \ - com.android.hardware.biometrics.fingerprint.virtual - -# # Contexthub HAL # LOCAL_CONTEXTHUB_PRODUCT_PACKAGE ?= \ diff --git a/shared/go/device_vendor.mk b/shared/go/device_vendor.mk index 9822fc593..3e5eb8df1 100644 --- a/shared/go/device_vendor.mk +++ b/shared/go/device_vendor.mk @@ -26,7 +26,6 @@ PRODUCT_COPY_FILES += \ $(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk) $(call inherit-product, device/google/cuttlefish/shared/biometrics_face/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/bluetooth/device_vendor.mk) -$(call inherit-product, device/google/cuttlefish/shared/camera/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/gnss/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/graphics/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/identity/device_vendor.mk) @@ -39,6 +38,10 @@ $(call inherit-product, device/google/cuttlefish/shared/sensors/device_vendor.mk $(call inherit-product, device/google/cuttlefish/shared/virgl/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/device.mk) +# Loads the camera HAL and which set of cameras is required. +$(call inherit-product, device/google/cuttlefish/shared/camera/device_vendor.mk) +$(call inherit-product, device/google/cuttlefish/shared/camera/config/standard.mk) + PRODUCT_PACKAGES += \ cuttlefish_phone_overlay_frameworks_base_core \ cuttlefish_go_phone_overlay_frameworks_base_core \ diff --git a/shared/graphics/device_vendor.mk b/shared/graphics/device_vendor.mk index 0bd21ad9a..2d01146ef 100644 --- a/shared/graphics/device_vendor.mk +++ b/shared/graphics/device_vendor.mk @@ -63,5 +63,4 @@ PRODUCT_PACKAGES += com.google.cf.gralloc PRODUCT_PACKAGES += \ android.hardware.graphics.allocator-service.minigbm \ - android.hardware.graphics.mapper@4.0-impl.minigbm \ mapper.minigbm diff --git a/shared/overlays/foldable/core/res/values/config.xml b/shared/overlays/foldable/core/res/values/config.xml index 6a2fdd5d4..0ac21a53e 100644 --- a/shared/overlays/foldable/core/res/values/config.xml +++ b/shared/overlays/foldable/core/res/values/config.xml @@ -76,7 +76,7 @@ <!-- Radius of the software rounded corners. --> <dimen name="rounded_corner_radius">34px</dimen> <!-- Whether to show Fold lock behavior setting feature in Settings App --> - <bool name="config_fold_lock_behavior">false</bool> + <bool name="config_fold_lock_behavior">true</bool> <!-- List of the labels of requestable device state config values --> <string-array name="config_deviceStatesAvailableForAppRequests"> diff --git a/shared/pc/device_vendor.mk b/shared/pc/device_vendor.mk index 83c082cf6..8ec1897d6 100644 --- a/shared/pc/device_vendor.mk +++ b/shared/pc/device_vendor.mk @@ -24,7 +24,6 @@ PRODUCT_COPY_FILES += \ $(call inherit-product, frameworks/native/build/tablet-7in-xhdpi-2048-dalvik-heap.mk) $(call inherit-product, device/google/cuttlefish/shared/bluetooth/device_vendor.mk) -$(call inherit-product, device/google/cuttlefish/shared/camera/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/gnss/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/graphics/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/reboot_escrow/device_vendor.mk) @@ -34,4 +33,8 @@ $(call inherit-product, device/google/cuttlefish/shared/sensors/device_vendor.mk $(call inherit-product, device/google/cuttlefish/shared/virgl/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/device.mk) +# Loads the camera HAL and which set of cameras is required. +$(call inherit-product, device/google/cuttlefish/shared/camera/device_vendor.mk) +$(call inherit-product, device/google/cuttlefish/shared/camera/config/standard.mk) + DEVICE_PACKAGE_OVERLAYS += device/google/cuttlefish/shared/pc/overlay diff --git a/shared/phone/device_vendor.mk b/shared/phone/device_vendor.mk index a9be2ced5..678c640f8 100644 --- a/shared/phone/device_vendor.mk +++ b/shared/phone/device_vendor.mk @@ -25,8 +25,8 @@ PRODUCT_COPY_FILES += \ $(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk) $(call inherit-product, device/google/cuttlefish/shared/biometrics_face/device_vendor.mk) +$(call inherit-product, device/google/cuttlefish/shared/biometrics_fingerprint/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/bluetooth/device_vendor.mk) -$(call inherit-product, device/google/cuttlefish/shared/camera/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/consumerir/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/gnss/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/graphics/device_vendor.mk) @@ -40,15 +40,18 @@ $(call inherit-product, device/google/cuttlefish/shared/sensors/device_vendor.mk $(call inherit-product, device/google/cuttlefish/shared/virgl/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/device.mk) +# Loads the camera HAL and which set of cameras is required. +$(call inherit-product, device/google/cuttlefish/shared/camera/device_vendor.mk) +$(call inherit-product, device/google/cuttlefish/shared/camera/config/standard.mk) + # Support mixing CF system onto previous versions of vendor -PRODUCT_EXTRA_VNDK_VERSIONS := 30 31 32 33 +PRODUCT_EXTRA_VNDK_VERSIONS := 30 31 32 33 34 TARGET_PRODUCT_PROP := $(LOCAL_PATH)/product.prop TARGET_VENDOR_PROP := $(LOCAL_PATH)/vendor.prop PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.touchscreen.multitouch.distinct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.distinct.xml \ - frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml \ ifneq ($(TARGET_DISABLE_BIOMETRICS_FACE),true) PRODUCT_COPY_FILES += \ diff --git a/shared/slim/device_vendor.mk b/shared/slim/device_vendor.mk index e980edfb6..63005bb18 100644 --- a/shared/slim/device_vendor.mk +++ b/shared/slim/device_vendor.mk @@ -26,8 +26,8 @@ PRODUCT_PACKAGES += slim_excluded_hardware.prebuilt.xml $(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk) $(call inherit-product, device/google/cuttlefish/shared/biometrics_face/device_vendor.mk) +$(call inherit-product, device/google/cuttlefish/shared/biometrics_fingerprint/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/bluetooth/device_vendor.mk) -$(call inherit-product, device/google/cuttlefish/shared/camera/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/consumerir/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/gnss/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/graphics/device_vendor.mk) @@ -41,12 +41,15 @@ $(call inherit-product, device/google/cuttlefish/shared/sensors/device_vendor.mk $(call inherit-product, device/google/cuttlefish/shared/virgl/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/device.mk) +# Loads the camera HAL and which set of cameras is required. +$(call inherit-product, device/google/cuttlefish/shared/camera/device_vendor.mk) +$(call inherit-product, device/google/cuttlefish/shared/camera/config/standard.mk) + PRODUCT_VENDOR_PROPERTIES += \ debug.hwui.drawing_enabled=0 \ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.faketouch.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.faketouch.xml \ - frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml \ # Runtime Resource Overlays PRODUCT_PACKAGES += \ diff --git a/guest/hals/wpa_supplicant/Android.bp b/shared/tablet/Android.bp index 888b6e049..83ae87d58 100644 --- a/guest/hals/wpa_supplicant/Android.bp +++ b/shared/tablet/Android.bp @@ -1,4 +1,5 @@ -// Copyright (C) 2021 The Android Open Source Project +// +// 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. @@ -13,15 +14,12 @@ // limitations under the License. package { - default_applicable_licenses: [ - "external_wpa_supplicant_8_license", - ], + default_applicable_licenses: ["Android-Apache-2.0"], } -cc_binary { - name: "wpa_supplicant_cf", - defaults: ["wpa_supplicant_defaults"], - static_libs: [ - "lib_driver_cmd_simulated_cf_bp", - ], -} +prebuilt_etc { + name: "tablet_excluded_hardware.prebuilt.xml", + src: "tablet_excluded_hardware.xml", + relative_install_path: "permissions", + soc_specific: true, +}
\ No newline at end of file diff --git a/shared/tablet/tablet_excluded_hardware.xml b/shared/tablet/tablet_excluded_hardware.xml new file mode 100644 index 000000000..901de8261 --- /dev/null +++ b/shared/tablet/tablet_excluded_hardware.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright 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. +--> + +<permissions> + <!-- Tablet does not support autofocus --> + <unavailable-feature name="android.hardware.camera.autofocus" /> +</permissions>
\ No newline at end of file diff --git a/shared/tv/device_vendor.mk b/shared/tv/device_vendor.mk index 49e26cee5..77e6a493a 100644 --- a/shared/tv/device_vendor.mk +++ b/shared/tv/device_vendor.mk @@ -23,9 +23,13 @@ $(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk) $(call inherit-product, device/google/cuttlefish/shared/bluetooth/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/graphics/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/swiftshader/device_vendor.mk) -$(call inherit-product, device/google/cuttlefish/shared/camera/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/virgl/device_vendor.mk) $(call inherit-product, device/google/cuttlefish/shared/device.mk) +$(call inherit-product, vendor/google/tv/gcbs/projects/reference-v4/dtvstack.mk) + +# Loads the camera HAL and which set of cameras is required. +$(call inherit-product, device/google/cuttlefish/shared/camera/device_vendor.mk) +$(call inherit-product, device/google/cuttlefish/shared/camera/config/external.mk) # Extend cuttlefish common sepolicy with tv-specific functionality BOARD_SEPOLICY_DIRS += device/google/cuttlefish/shared/tv/sepolicy/vendor @@ -58,7 +62,9 @@ PRODUCT_PACKAGES += \ android.hardware.tv.hdmi.earc-service # Setup HDMI CEC as Playback Device -PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4 +PRODUCT_PROPERTY_OVERRIDES += \ + ro.hdmi.device_type=4 \ + ro.hdmi.cec_device_types=playback_device # Tuner lazy HAL PRODUCT_PACKAGES += android.hardware.tv.tuner-service.example-lazy diff --git a/shared/tv/tv_excluded_hardware.xml b/shared/tv/tv_excluded_hardware.xml index 97b232c5c..64234e3e7 100644 --- a/shared/tv/tv_excluded_hardware.xml +++ b/shared/tv/tv_excluded_hardware.xml @@ -17,13 +17,16 @@ <!-- Excludes all non-default ATV CF features to comply with CTS --> <permissions> <!-- ATV CF needs some basic camera features to enable video calling, but can exclude some --> + <unavailable-feature name="android.hardware.camera" /> <unavailable-feature name="android.hardware.camera.ar" /> <unavailable-feature name="android.hardware.camera.autofocus" /> <unavailable-feature name="android.hardware.camera.concurrent" /> <unavailable-feature name="android.hardware.camera.flash" /> + <unavailable-feature name="android.hardware.camera.front" /> <unavailable-feature name="android.hardware.camera.level.full" /> <unavailable-feature name="android.hardware.camera.capability.manual_sensor" /> <unavailable-feature name="android.hardware.camera.capability.manual_post_processing" /> + <unavailable-feature name="android.hardware.camera.capability.raw" /> <!-- ATV CF is not designed to have telephony services by default --> <unavailable-feature name="android.hardware.telephony" /> diff --git a/shared/wear/aosp_vendor.mk b/shared/wear/aosp_vendor.mk index ef4cd2e07..9ce5d967b 100644 --- a/shared/wear/aosp_vendor.mk +++ b/shared/wear/aosp_vendor.mk @@ -39,5 +39,3 @@ ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT))) endif TARGET_SYSTEM_PROP += device/google/cuttlefish/shared/wear/wearable-1024.prop - -TARGET_VNDK_USE_CORE_VARIANT := true diff --git a/shared/wear/overlays/core/res/values/config.xml b/shared/wear/overlays/core/res/values/config.xml index 6e6c1ec33..4a20b3a3f 100644 --- a/shared/wear/overlays/core/res/values/config.xml +++ b/shared/wear/overlays/core/res/values/config.xml @@ -40,6 +40,8 @@ <bool name="config_voice_capable">true</bool> <bool name="config_requireCallCapableAccountForHandle">true</bool> <bool name="config_enableWallpaperService">true</bool> + <!-- Wallpaper will get top app scheduling priority if this is set to true.--> + <bool name="config_wallpaperTopApp">true</bool> <bool name="config_dreamsSupported">false</bool> <!--<bool name="config_suspendWhenScreenOffDueToProximity">true</bool>--> <!--<bool name="config_powerDecoupleAutoSuspendModeFromDisplay">true</bool>--> @@ -91,8 +93,6 @@ <integer name="config_triplePressOnStemPrimaryBehavior">1</integer> <integer name="config_doublePressOnPowerBehavior">3</integer> <integer name="config_veryLongPressTimeout">3000</integer> - <integer name="config_mashPressOnPowerBehavior">1</integer> - <integer name="config_mashPressVibrateTimeOnPowerButton">500</integer> <item name="config_wallpaperMinScale" format="float" type="dimen">0</item> <item name="config_wallpaperMaxScale" format="float" type="dimen">1</item> <bool name="config_alwaysScaleWallpaper">true</bool> @@ -107,6 +107,10 @@ <item>0</item> <item>0</item> <item>0</item> + <item>0</item> + <item>0</item> + <item>0</item> + <item>0</item> <item>6350</item> </integer-array> <bool name="config_preventTranslucentTaskTransitUpdateToActivity">true</bool> @@ -114,6 +118,17 @@ <bool name="config_telephonySingleSimDefaultSubscription">false</bool> <bool name="config_disableTaskSnapshots">true</bool> + <!-- Restrict Wear to single user --> + <integer name="config_multiuserMaximumUsers">1</integer> + <bool name="config_windowIsRound">true</bool> + <!-- Package name of the required service extension package. --> <string name="config_servicesExtensionPackage" translatable="false">android.ext.services</string> + + <!-- The name of the package that will hold the assistant role by default. --> + <string name="config_defaultAssistant" translatable="false">com.google.android.wearable.assistant</string> + + <!-- Colon separated list of package names that should be granted Notification Listener access --> + <string name="config_defaultListenerAccessPackages" translatable="false">com.google.android.wearable.media.sessions:com.google.wear.services</string> + </resources> diff --git a/tests/hal/hal_implementation_test.cpp b/tests/hal/hal_implementation_test.cpp index 0343ffde3..71439b584 100644 --- a/tests/hal/hal_implementation_test.cpp +++ b/tests/hal/hal_implementation_test.cpp @@ -100,6 +100,7 @@ static const std::set<std::string> kKnownMissingHidl = { "android.hardware.graphics.composer@2.4", // converted to AIDL, see b/193240715 "android.hardware.graphics.mapper@2.1", "android.hardware.graphics.mapper@3.0", + "android.hardware.graphics.mapper@4.0", // converted to Stable C, see b/205761028 "android.hardware.health.storage@1.0", // converted to AIDL, see b/177470478 "android.hardware.health@2.1", // converted to AIDL, see b/177269435 "android.hardware.input.classifier@1.0", // converted to AIDL, see b/205761620 @@ -168,6 +169,7 @@ static const std::set<std::string> kAutomotiveOnlyAidl = { */ "android.automotive.watchdog", "android.frameworks.automotive.display", + "android.frameworks.automotive.powerpolicy", "android.frameworks.automotive.powerpolicy.internal", "android.frameworks.automotive.telemetry", "android.hardware.automotive.audiocontrol", @@ -176,6 +178,8 @@ static const std::set<std::string> kAutomotiveOnlyAidl = { "android.hardware.automotive.occupant_awareness", "android.hardware.automotive.remoteaccess", "android.hardware.automotive.vehicle", + "android.hardware.automotive.ivn", + "android.hardware.macsec", }; static const std::set<std::string> kTvOnlyAidl = { @@ -196,6 +200,9 @@ static const std::set<std::string> kRadioOnlyAidl = { "android.hardware.radio.messaging", "android.hardware.radio.modem", "android.hardware.radio.network", "android.hardware.radio.sap", "android.hardware.radio.sim", "android.hardware.radio.voice", + "android.hardware.radio.ims", "android.hardware.radio.ims.media", + "android.hardware.radio.satellite", + }; /* @@ -219,6 +226,7 @@ static const std::set<std::string> kAlwaysMissingAidl = { "android.media.audio.common.types", "android.hardware.radio", "android.hardware.uwb.fira_android", + "android.hardware.wifi.common", "android.hardware.keymaster", "android.hardware.automotive.vehicle.property", // not on Cuttlefish since it's needed only on systems using HIDL audio HAL @@ -260,9 +268,7 @@ static const std::vector<VersionedAidlPackage> kKnownMissingAidl = { {"android.automotive.computepipe.registry.", 2, 273549907}, {"android.automotive.computepipe.runner.", 2, 273549907}, - {"android.frameworks.automotive.powerpolicy.", 2, 274160980}, {"android.hardware.automotive.evs.", 2, 274162534}, - {"android.hardware.automotive.ivn.", 1, 274139217}, }; // android.hardware.foo.IFoo -> android.hardware.foo. diff --git a/vsoc_x86/BoardConfig.mk b/vsoc_x86/BoardConfig.mk index f57c379a1..61abe4fd7 100644 --- a/vsoc_x86/BoardConfig.mk +++ b/vsoc_x86/BoardConfig.mk @@ -47,3 +47,4 @@ TARGET_KERNEL_ARCH := x86_64 -include device/google/cuttlefish/shared/telephony/BoardConfig.mk -include device/google/cuttlefish/shared/vibrator/BoardConfig.mk -include device/google/cuttlefish/shared/virgl/BoardConfig.mk +-include vendor/google/tv/gcbs/projects/reference-v4/dtvBoardConfig.mk |