aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2024-03-07 06:41:09 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2024-03-07 06:41:09 +0000
commite48850214f820b6908b5eb6876b1a4f25bc10adc (patch)
tree7d8b1687f944018f2edd0b2abb55d065927287f6
parent927cfd4d3b7d4ef23074bbdb9ec28591d11e9eae (diff)
parent17ab77c76406a8e3bd498dda389c40a578176ba2 (diff)
downloadcuttlefish-emu-34-2-dev.tar.gz
Merge "Merge Android 14 QPR2 to AOSP main" into mainemu-34-2-dev
-rw-r--r--TEST_MAPPING9
-rw-r--r--apex/com.google.cf.wifi/Android.bp2
-rw-r--r--apex/com.google.cf.wifi/com.google.cf.wifi.rc2
-rw-r--r--apex/com.google.cf.wifi/file_contexts2
-rw-r--r--guest/hals/camera/Android.bp1
-rw-r--r--guest/hals/camera/cached_stream_buffer.cpp19
-rw-r--r--guest/hals/camera/cached_stream_buffer.h4
-rw-r--r--guest/hals/ril/reference-libril/Android.bp18
-rw-r--r--guest/hals/ril/reference-libril/RefRadioNetwork.cpp24
-rw-r--r--guest/hals/ril/reference-libril/RefRadioNetwork.h12
-rw-r--r--guest/hals/ril/reference-libril/android.hardware.radio@2.1.xml16
-rw-r--r--guest/services/cf_satellite_service/src/com/google/android/telephony/satellite/CFSatelliteService.java45
-rw-r--r--host/commands/cvd_load_tester/end_to_end_test/multi/demo.json27
-rw-r--r--shared/api_level.h2
-rw-r--r--shared/auto/car_audio_configuration.xml5
-rw-r--r--shared/auto/device_vendor.mk14
-rw-r--r--shared/auto/macsec/init.wpa_supplicant_macsec.rc22
-rw-r--r--shared/auto/macsec/wpa_supplicant_macsec.conf15
-rw-r--r--shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml8
-rw-r--r--shared/auto/rro_overlay/ConnectivityOverlay/Android.bp35
-rw-r--r--shared/auto/rro_overlay/ConnectivityOverlay/AndroidManifest.xml25
-rw-r--r--shared/auto/rro_overlay/ConnectivityOverlay/res/values/config.xml32
-rw-r--r--shared/auto_md/overlay/frameworks/base/core/res/res/values/config.xml4
-rw-r--r--shared/biometrics_face/device_vendor.mk2
-rw-r--r--shared/biometrics_fingerprint/device_vendor.mk23
-rw-r--r--shared/camera/config/external.mk27
-rw-r--r--shared/camera/config/standard.mk33
-rw-r--r--shared/camera/device_vendor.mk29
-rw-r--r--shared/camera/sepolicy/hal_camera_default.te4
-rw-r--r--shared/camera/sepolicy/property.te1
-rw-r--r--shared/camera/sepolicy/property_contexts2
-rw-r--r--shared/device.mk6
-rw-r--r--shared/go/device_vendor.mk5
-rw-r--r--shared/graphics/device_vendor.mk1
-rw-r--r--shared/overlays/foldable/core/res/values/config.xml2
-rw-r--r--shared/pc/device_vendor.mk5
-rw-r--r--shared/phone/device_vendor.mk9
-rw-r--r--shared/slim/device_vendor.mk7
-rw-r--r--shared/tablet/Android.bp (renamed from guest/hals/wpa_supplicant/Android.bp)20
-rw-r--r--shared/tablet/tablet_excluded_hardware.xml20
-rw-r--r--shared/tv/device_vendor.mk10
-rw-r--r--shared/tv/tv_excluded_hardware.xml3
-rw-r--r--shared/wear/aosp_vendor.mk2
-rw-r--r--shared/wear/overlays/core/res/values/config.xml19
-rw-r--r--tests/hal/hal_implementation_test.cpp10
-rw-r--r--vsoc_x86/BoardConfig.mk1
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