Merge "[webrtc] React to input socket disconnecting" am: 0d513659b3 am: 875af32fb2 am: 01c05d42f3

Change-Id: I93f385cd162263b489be3597c3bca20a803d7c8b
diff --git a/Android.bp b/Android.bp
index 5f48b76..47afd21 100644
--- a/Android.bp
+++ b/Android.bp
@@ -108,21 +108,6 @@
     host_supported: true,
     defaults: ["cuttlefish_base"],
 }
-//
-// Copyright (C) 2018 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.
-
 
 cc_defaults {
   name: "cuttlefish_recovery_available",
diff --git a/default-permissions.xml b/default-permissions.xml
new file mode 100644
index 0000000..2c1de87
--- /dev/null
+++ b/default-permissions.xml
@@ -0,0 +1,127 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+
+<!-- Copyright (C) 2019 Google Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<!--
+    This file contains permissions to be granted by default. Default
+    permissions are granted to special platform components and to apps
+    that are approved to get default grants. The special components
+    are apps that are expected tto work out-of-the-box as they provide
+    core use cases such as default dialer, default email, etc. These
+    grants are managed by the platform. The apps that are additionally
+    approved for default grants are ones that provide carrier specific
+    functionality, ones legally required at some location, ones providing
+    alternative disclosure and opt-out UI, ones providing highlight features
+    of a dedicated device, etc. This file contains only the latter exceptions.
+    Fixed permissions cannot be controlled by the user and need a special
+    approval. Typically these are to ensure either legally mandated functions
+    or the app is considered a part of the OS.
+-->
+
+<exceptions>
+
+    <!-- This is an example of an exception:
+    <exception
+        package="foo.bar.permission"
+      <permission name="android.permission.READ_CONTACTS" fixed="true"/>
+      <permission name="android.permission.READ_CALENDAR" fixed="false"/>
+    </exception>
+    -->
+
+    <exception
+            package="com.google.android.apps.pixelmigrate">
+        <!-- External storage -->
+        <permission name="android.permission.READ_EXTERNAL_STORAGE" fixed="false"/>
+        <permission name="android.permission.WRITE_EXTERNAL_STORAGE" fixed="false"/>
+        <!-- Contacts -->
+        <permission name="android.permission.READ_CONTACTS" fixed="false"/>
+        <permission name="android.permission.WRITE_CONTACTS" fixed="false"/>
+        <!-- Call logs -->
+        <permission name="android.permission.READ_CALL_LOG" fixed="false"/>
+        <permission name="android.permission.WRITE_CALL_LOG" fixed="false"/>
+        <!-- SMS -->
+        <permission name="android.permission.RECEIVE_SMS" fixed="false"/>
+        <permission name="android.permission.READ_PHONE_NUMBERS" fixed="false"/>
+    </exception>
+
+    <exception
+            package="com.verizon.mips.services">
+        <!-- Call -->
+        <permission name="android.permission.PROCESS_OUTGOING_CALLS" fixed="false"/>
+        <!-- Phone -->
+        <permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
+        <!-- SMS -->
+        <permission name="android.permission.RECEIVE_SMS" fixed="false"/>
+    </exception>
+
+    <exception
+            package="com.google.android.projection.gearhead"
+            sha256-cert-digest="FD:B0:0C:43:DB:DE:8B:51:CB:31:2A:A8:1D:3B:5F:A1:77:13:AD:B9:4B:28:F5:98:D7:7F:8E:B8:9D:AC:EE:DF">
+        <!-- Gearhead legacy -->
+        <permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false"/>
+        <permission name="android.permission.CALL_PHONE" fixed="false"/>
+        <permission name="android.permission.READ_CALL_LOG" fixed="false"/>
+        <permission name="android.permission.READ_CONTACTS" fixed="false"/>
+        <permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
+        <permission name="android.permission.RECEIVE_SMS" fixed="false"/>
+        <permission name="android.permission.RECORD_AUDIO" fixed="false"/>
+        <permission name="android.permission.SEND_SMS" fixed="false"/>
+        <!-- For Top Gear -->
+        <permission name="android.permission.PROCESS_OUTGOING_CALLS" fixed="false"/>
+        <permission name="android.permission.READ_SMS" fixed="false"/>
+        <permission name="android.permission.RECEIVE_MMS" fixed="false"/>
+        <permission name="android.permission.WRITE_CALL_LOG" fixed="false"/>
+        <permission name="android.permission.ACCESS_COARSE_LOCATION" fixed="false"/>
+    </exception>
+
+    <exception package="com.google.android.settings.intelligence">
+        <!-- Calendar -->
+        <permission name="android.permission.READ_CALENDAR" fixed="true"/>
+        <!-- Location -->
+        <permission name="android.permission.ACCESS_FINE_LOCATION" fixed="true"/>
+        <permission name="android.permission.ACCESS_BACKGROUND_LOCATION" fixed="true"/>
+    </exception>
+
+    <exception package="com.google.android.cbrsnetworkmonitor">
+        <!-- Location access to create CBRS geofences-->
+        <permission name="android.permission.ACCESS_FINE_LOCATION" fixed="true"/>
+        <permission name="android.permission.ACCESS_BACKGROUND_LOCATION" fixed="true"/>
+    </exception>
+
+    <exception package="com.google.android.apps.scone">
+        <!-- NLP Location access to determine proximity to country border -->
+        <permission name="android.permission.ACCESS_COARSE_LOCATION" fixed="false"/>
+        <permission name="android.permission.ACCESS_BACKGROUND_LOCATION" fixed="false"/>
+        <!-- Used to call ActivityTransition API for Smart OOS & Smart PNO -->
+        <permission name="android.permission.ACTIVITY_RECOGNITION" fixed="false"/>
+    </exception>
+
+    <exception package="com.google.android.wfcactivation">
+        <!-- SMS -->
+        <permission name="android.permission.RECEIVE_WAP_PUSH" fixed="false"/>
+    </exception>
+    <exception
+        package="com.google.vr.apps.ornament"
+        sha256-cert-digest="4A:9E:3F:3B:C8:D6:0C:E4:D3:CB:E5:A9:C6:6E:EC:11:EF:D0:1C:5F:E9:C7:8D:8C:92:3B:9D:42:48:23:00:13">
+        <!-- Camera -->
+        <permission name="android.permission.CAMERA" fixed="false"/>
+        <!-- Microphone -->
+        <permission name="android.permission.RECORD_AUDIO" fixed="false"/>
+        <!-- Storage -->
+        <permission name="android.permission.READ_EXTERNAL_STORAGE" fixed="false"/>
+        <permission name="android.permission.WRITE_EXTERNAL_STORAGE" fixed="false"/>
+    </exception>
+</exceptions>
diff --git a/guest/hals/camera/fake-pipeline2/JpegCompressor.cpp b/guest/hals/camera/fake-pipeline2/JpegCompressor.cpp
index 7fb6cf1..22c5d3a 100644
--- a/guest/hals/camera/fake-pipeline2/JpegCompressor.cpp
+++ b/guest/hals/camera/fake-pipeline2/JpegCompressor.cpp
@@ -30,7 +30,8 @@
       mIsBusy(false),
       mSynchronous(false),
       mBuffers(NULL),
-      mListener(NULL) {}
+      mListener(NULL),
+      mFoundAux(false) {}
 
 JpegCompressor::~JpegCompressor() { Mutex::Autolock lock(mMutex); }
 
@@ -121,7 +122,6 @@
   // Find source and target buffers. Assumes only one buffer matches
   // each condition!
   ALOGV("%s: Compressing start", __FUNCTION__);
-  bool mFoundAux = false;
   for (size_t i = 0; i < mBuffers->size(); i++) {
     const StreamBuffer &b = (*mBuffers)[i];
     if (b.format == HAL_PIXEL_FORMAT_BLOB) {
diff --git a/guest/hals/ril/cuttlefish_ril.cpp b/guest/hals/ril/cuttlefish_ril.cpp
index 27559da..e5b8bd2 100644
--- a/guest/hals/ril/cuttlefish_ril.cpp
+++ b/guest/hals/ril/cuttlefish_ril.cpp
@@ -2225,9 +2225,16 @@
 // New functions after Q.
 static void request_set_signal_strength_reporting_criteria(int /*request*/, void* /*data*/,
                                                            size_t /*datalen*/, RIL_Token t) {
-    ALOGV("request_set_signal_strength_reporting_criteria - void");
-    gce_ril_env->OnRequestComplete(t, RIL_E_SUCCESS, NULL, 0);
-    return;
+  ALOGV("request_set_signal_strength_reporting_criteria - void");
+  gce_ril_env->OnRequestComplete(t, RIL_E_SUCCESS, NULL, 0);
+  return;
+}
+
+static void request_set_link_capacity_reporting_criteria(int /*request*/, void* /*data*/,
+                                                         size_t /*datalen*/, RIL_Token t) {
+  ALOGV("request_set_link_capacity_reporting_criteria - void");
+  gce_ril_env->OnRequestComplete(t, RIL_E_SUCCESS, NULL, 0);
+  return;
 }
 
 static void request_enable_uicc_applications(int /*request*/, void* data,
@@ -2553,6 +2560,9 @@
     case RIL_REQUEST_SET_SIGNAL_STRENGTH_REPORTING_CRITERIA:
       request_set_signal_strength_reporting_criteria(request, data, datalen, t);
       break;
+    case RIL_REQUEST_SET_LINK_CAPACITY_REPORTING_CRITERIA:
+      request_set_link_capacity_reporting_criteria(request, data, datalen, t);
+      break;
     case RIL_REQUEST_ENABLE_UICC_APPLICATIONS:
       request_enable_uicc_applications(request, data, datalen, t);
       break;
diff --git a/guest/hals/ril/libril/ril.cpp b/guest/hals/ril/libril/ril.cpp
index 0660089..703542d 100644
--- a/guest/hals/ril/libril/ril.cpp
+++ b/guest/hals/ril/libril/ril.cpp
@@ -1168,9 +1168,10 @@
         case RIL_REQUEST_GET_CARRIER_RESTRICTIONS: return "GET_CARRIER_RESTRICTIONS";
         case RIL_REQUEST_SET_CARRIER_INFO_IMSI_ENCRYPTION: return "SET_CARRIER_INFO_IMSI_ENCRYPTION";
         case RIL_REQUEST_SET_SIGNAL_STRENGTH_REPORTING_CRITERIA: return "SET_SIGNAL_STRENGTH_REPORTING_CRITERIA";
+        case RIL_REQUEST_SET_LINK_CAPACITY_REPORTING_CRITERIA: return "SET_LINK_CAPACITY_REPORTING_CRITERIA";
         case RIL_REQUEST_SET_RADIO_POWER: return "SET_RADIO_POWER";
-        case RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION: return "ENTER_SIM_DEPERSONALIZATION";
         case RIL_REQUEST_CDMA_SEND_SMS_EXPECT_MORE: return "CDMA_SEND_SMS_EXPECT_MORE";
+        case RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION: return "ENTER_SIM_DEPERSONALIZATION";
         case RIL_RESPONSE_ACKNOWLEDGEMENT: return "RESPONSE_ACKNOWLEDGEMENT";
         case RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED: return "UNSOL_RESPONSE_RADIO_STATE_CHANGED";
         case RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED: return "UNSOL_RESPONSE_CALL_STATE_CHANGED";
diff --git a/guest/hals/ril/libril/ril.h b/guest/hals/ril/libril/ril.h
index 72700d5..8dd5c15 100644
--- a/guest/hals/ril/libril/ril.h
+++ b/guest/hals/ril/libril/ril.h
@@ -88,6 +88,7 @@
  *                    RIL_REQUEST_EMERGENCY_DIAL
  *                    RIL_REQUEST_SET_SYSTEM_SELECTION_CHANNELS
  *                    RIL_REQUEST_SET_SIGNAL_STRENGTH_REPORTING_CRITERIA
+ *                    RIL_REQUEST_SET_LINK_CAPACITY_REPORTING_CRITERIA
  *                    RIL_REQUEST_ENABLE_UICC_APPLICATIONS
  *                    RIL_REQUEST_ARE_UICC_APPLICATIONS_ENABLED
  *                    RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION
@@ -116,6 +117,7 @@
 #define MAX_BANDS 8
 #define MAX_CHANNELS 32
 #define MAX_RADIO_ACCESS_NETWORKS 8
+#define MAX_BROADCAST_SMS_CONFIG_INFO 25
 
 
 typedef void * RIL_Token;
@@ -6618,6 +6620,23 @@
 #define RIL_REQUEST_SET_SIGNAL_STRENGTH_REPORTING_CRITERIA 152
 
 /**
+ * RIL_REQUEST_SET_LINK_CAPACITY_REPORTING_CRITERIA
+ *
+ * Sets the link capacity reporting criteria. The resulting reporting criteria are the AND of
+ * all the supplied criteria.
+ *
+ * Note: Reporting criteria ust be individually set for each RAN. If unset, reporting criteria
+ * for that RAN are implementation-defined.
+ *
+ * Valid errors returned:
+ *   RadioError:NONE
+ *   RadioError:INVALID_ARGUMENTS
+ *   RadioError:RADIO_NOT_AVAILABLE
+ *   RadioError:INTERNAL_ERR
+ */
+#define RIL_REQUEST_SET_LINK_CAPACITY_REPORTING_CRITERIA 153
+
+/**
  * RIL_REQUEST_ENABLE_UICC_APPLICATIONS
  *
  * Enable or disable uicc applications.
@@ -6629,7 +6648,7 @@
  *  INTERNAL_ERR
  *  REQUEST_NOT_SUPPORTED
  */
-#define RIL_REQUEST_ENABLE_UICC_APPLICATIONS 153
+#define RIL_REQUEST_ENABLE_UICC_APPLICATIONS 154
 
 /**
  * RIL_REQUEST_ARE_UICC_APPLICATIONS_ENABLED
@@ -6645,7 +6664,7 @@
  *  INTERNAL_ERR
  *  REQUEST_NOT_SUPPORTED
  */
-#define RIL_REQUEST_ARE_UICC_APPLICATIONS_ENABLED 154
+#define RIL_REQUEST_ARE_UICC_APPLICATIONS_ENABLED 155
 
 /**
  * RIL_REQUEST_SET_RADIO_POWER
@@ -6659,7 +6678,7 @@
  *  INVALID_ARGUMENTS
  *
  */
-#define RIL_REQUEST_SET_RADIO_POWER 155
+#define RIL_REQUEST_SET_RADIO_POWER 156
 
 /**
  * RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION
@@ -6686,7 +6705,7 @@
  *  REQUEST_NOT_SUPPORTED
  */
 
-#define RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION 156
+#define RIL_REQUEST_ENTER_SIM_DEPERSONALIZATION 157
 
 /**
  * RIL_REQUEST_CDMA_SEND_SMS_EXPECT_MORE
@@ -6725,7 +6744,7 @@
  *  MODE_NOT_SUPPORTED
  *  SIM_ABSENT
  */
-#define RIL_REQUEST_CDMA_SEND_SMS_EXPECT_MORE 157
+#define RIL_REQUEST_CDMA_SEND_SMS_EXPECT_MORE 158
 
 /***********************************************************************/
 
diff --git a/guest/hals/ril/libril/ril_commands.h b/guest/hals/ril/libril/ril_commands.h
index 852e28e..429574a 100644
--- a/guest/hals/ril/libril/ril_commands.h
+++ b/guest/hals/ril/libril/ril_commands.h
@@ -167,6 +167,7 @@
     {RIL_REQUEST_SET_SYSTEM_SELECTION_CHANNELS, radio_1_5::setSystemSelectionChannelsResponse},
     {RIL_REQUEST_ENABLE_MODEM, radio_1_5::enableModemResponse},
     {RIL_REQUEST_SET_SIGNAL_STRENGTH_REPORTING_CRITERIA, radio_1_5::setSignalStrengthReportingCriteriaResponse},
+    {RIL_REQUEST_SET_LINK_CAPACITY_REPORTING_CRITERIA, radio_1_5::setLinkCapacityReportingCriteriaResponse},
     {RIL_REQUEST_ENABLE_UICC_APPLICATIONS, radio_1_5::enableUiccApplicationsResponse},
     {RIL_REQUEST_ARE_UICC_APPLICATIONS_ENABLED, radio_1_5::areUiccApplicationsEnabledResponse},
     {RIL_REQUEST_SET_RADIO_POWER, radio_1_5::setRadioPowerResponse},
diff --git a/guest/hals/ril/libril/ril_service.cpp b/guest/hals/ril/libril/ril_service.cpp
index 7092037..2de49f2 100644
--- a/guest/hals/ril/libril/ril_service.cpp
+++ b/guest/hals/ril/libril/ril_service.cpp
@@ -538,6 +538,11 @@
     Return<void> setSignalStrengthReportingCriteria_1_5(int32_t serial,
             const ::android::hardware::radio::V1_5::SignalThresholdInfo& signalThresholdInfo,
             const ::android::hardware::radio::V1_5::AccessNetwork accessNetwork);
+    Return<void> setLinkCapacityReportingCriteria_1_5(int32_t serial, int32_t hysteresisMs,
+            int32_t hysteresisDlKbps, int32_t hysteresisUlKbps,
+            const hidl_vec<int32_t>& thresholdsDownlinkKbps,
+            const hidl_vec<int32_t>& thresholdsUplinkKbps,
+            V1_5::AccessNetwork accessNetwork);
     Return<void> enableUiccApplications(int32_t serial, bool detach);
     Return<void> areUiccApplicationsEnabled(int32_t serial);
     Return<void> setSystemSelectionChannels_1_5(int32_t serial, bool specifyChannels,
@@ -1932,6 +1937,12 @@
     }
 
     int num = configInfo.size();
+    if (num > MAX_BROADCAST_SMS_CONFIG_INFO) {
+        RLOGE("setGsmBroadcastConfig: Invalid configInfo length %s",
+                requestToString(pRI->pCI->requestNumber));
+        sendErrorResponse(pRI, RIL_E_INVALID_ARGUMENTS);
+        return Void();
+    }
     RIL_GSM_BroadcastSmsConfigInfo gsmBci[num];
     RIL_GSM_BroadcastSmsConfigInfo *gsmBciPtrs[num];
 
@@ -1979,6 +1990,12 @@
     }
 
     int num = configInfo.size();
+    if (num > MAX_BROADCAST_SMS_CONFIG_INFO) {
+        RLOGE("setCdmaBroadcastConfig: Invalid configInfo length %s",
+                requestToString(pRI->pCI->requestNumber));
+        sendErrorResponse(pRI, RIL_E_INVALID_ARGUMENTS);
+        return Void();
+    }
     RIL_CDMA_BroadcastSmsConfigInfo cdmaBci[num];
     RIL_CDMA_BroadcastSmsConfigInfo *cdmaBciPtrs[num];
 
@@ -3516,6 +3533,18 @@
     return Void();
 }
 
+Return<void> RadioImpl_1_5::setLinkCapacityReportingCriteria_1_5(int32_t /* serial */,
+        int32_t /* hysteresisMs */, int32_t /* hysteresisDlKbps */, int32_t /* hysteresisUlKbps */,
+        const hidl_vec<int32_t>& /* thresholdsDownlinkKbps */,
+        const hidl_vec<int32_t>& /* thresholdsUplinkKbps */,
+        V1_5::AccessNetwork /* accessNetwork */) {
+    // TODO implement
+#if VDBG
+    RLOGE("[%04d]< %s", serial, "Method is not implemented");
+#endif
+    return Void();
+}
+
 Return<void> RadioImpl_1_5::enableUiccApplications(int32_t serial, bool enable) {
 #if VDBG
     RLOGD("enableUiccApplications: serial %d enable %d", serial, enable);
@@ -8037,6 +8066,30 @@
     return 0;
 }
 
+int radio_1_5::setLinkCapacityReportingCriteriaResponse(int slotId, int responseType, int serial,
+                                        RIL_Errno e, void* /* response */, size_t responseLen) {
+#if VDBG
+    RLOGD("setLinkCapacityReportingCriteriaResponse: serial %d", serial);
+#endif
+    RadioResponseInfo responseInfo = {};
+    populateResponseInfo(responseInfo, serial, responseType, e);
+
+    if (radioService[slotId]->mRadioResponseV1_5 != NULL) {
+        Return<void> retStatus = radioService[slotId]->mRadioResponseV1_5
+                ->setLinkCapacityReportingCriteriaResponse_1_5(responseInfo);
+        radioService[slotId]->checkReturnStatus(retStatus);
+    } else if (radioService[slotId]->mRadioResponseV1_2 != NULL) {
+        Return<void> retStatus = radioService[slotId]->mRadioResponseV1_2
+                ->setLinkCapacityReportingCriteriaResponse(responseInfo);
+        radioService[slotId]->checkReturnStatus(retStatus);
+    } else {
+        RLOGE("setLinkCapacityReportingCriteriaResponse: radioService[%d]->mRadioResponse "
+                "== NULL", slotId);
+    }
+
+    return 0;
+}
+
 int radio_1_5::enableUiccApplicationsResponse(int slotId, int responseType, int serial,
                                     RIL_Errno e, void* /* response */, size_t responseLen) {
 #if VDBG
@@ -8096,10 +8149,11 @@
     if (radioService[slotId]->mRadioResponseV1_5 != NULL) {
         RadioResponseInfo responseInfo = {};
         populateResponseInfo(responseInfo, serial, responseType, e);
+        ::android::hardware::radio::V1_5::CellIdentity cellIdentity;
         hidl_vec<::android::hardware::radio::V1_5::BarringInfo> barringInfo;
         Return<void> retStatus
                 = radioService[slotId]->mRadioResponseV1_5->
-                        getBarringInfoResponse(responseInfo, barringInfo);
+                        getBarringInfoResponse(responseInfo, cellIdentity, barringInfo);
         radioService[slotId]->checkReturnStatus(retStatus);
     } else {
         RLOGE("getBarringInfoResponse: radioService[%d]->mRadioResponse == NULL",
diff --git a/guest/hals/ril/libril/ril_service.h b/guest/hals/ril/libril/ril_service.h
index 972764f..ded9776 100644
--- a/guest/hals/ril/libril/ril_service.h
+++ b/guest/hals/ril/libril/ril_service.h
@@ -767,6 +767,9 @@
 int setSignalStrengthReportingCriteriaResponse(int slotId, int responseType, int serial,
                                                RIL_Errno e, void *response, size_t responselen);
 
+int setLinkCapacityReportingCriteriaResponse(int slotId, int responseType, int serial,
+                                             RIL_Errno e, void *response, size_t responselen);
+
 int enableUiccApplicationsResponse(int slotId,
                                  int responseType, int serial, RIL_Errno e,
                                  void *response, size_t responselen);
diff --git a/guest/monitoring/dumpstate_ext/dumpstate_device.cpp b/guest/monitoring/dumpstate_ext/dumpstate_device.cpp
index ca7d9b7..f1d7a43 100644
--- a/guest/monitoring/dumpstate_ext/dumpstate_device.cpp
+++ b/guest/monitoring/dumpstate_ext/dumpstate_device.cpp
@@ -19,7 +19,7 @@
 #include <android-base/properties.h>
 #include <log/log.h>
 
-#define DEVICE_LOGGING_PROPERTY "persist.vendor.logging_enabled"
+#define VERBOSE_LOGGING_PROPERTY "persist.vendor.verbose_logging_enabled"
 
 using android::os::dumpstate::DumpFileToFd;
 
@@ -72,22 +72,20 @@
     return DumpstateStatus::UNSUPPORTED_MODE;
   }
 
-  if (!::android::base::GetBoolProperty(DEVICE_LOGGING_PROPERTY, false)) {
-    return DumpstateStatus::DEVICE_LOGGING_NOT_ENABLED;
-  }
-
   DumpFileToFd(fd, "GCE INITIAL METADATA", "/initial.metadata");
 
+  // Do not include any of the user's private information before checking if verbose logging is
+  // enabled.
   return DumpstateStatus::OK;
 }
 
-Return<void> DumpstateDevice::setDeviceLoggingEnabled(bool enable) {
-  ::android::base::SetProperty(DEVICE_LOGGING_PROPERTY, enable ? "true" : "false");
+Return<void> DumpstateDevice::setVerboseLoggingEnabled(bool enable) {
+  ::android::base::SetProperty(VERBOSE_LOGGING_PROPERTY, enable ? "true" : "false");
   return Void();
 }
 
-Return<bool> DumpstateDevice::getDeviceLoggingEnabled() {
-  return ::android::base::GetBoolProperty(DEVICE_LOGGING_PROPERTY, false);
+Return<bool> DumpstateDevice::getVerboseLoggingEnabled() {
+  return ::android::base::GetBoolProperty(VERBOSE_LOGGING_PROPERTY, false);
 }
 
 }  // namespace implementation
diff --git a/guest/monitoring/dumpstate_ext/dumpstate_device.h b/guest/monitoring/dumpstate_ext/dumpstate_device.h
index 4b97d84..e7c5fea 100644
--- a/guest/monitoring/dumpstate_ext/dumpstate_device.h
+++ b/guest/monitoring/dumpstate_ext/dumpstate_device.h
@@ -45,8 +45,8 @@
   Return<DumpstateStatus> dumpstateBoard_1_1(const hidl_handle& h,
                                              DumpstateMode mode,
                                              uint64_t timeoutMillis) override;
-  Return<void> setDeviceLoggingEnabled(bool enable) override;
-  Return<bool> getDeviceLoggingEnabled() override;
+  Return<void> setVerboseLoggingEnabled(bool enable) override;
+  Return<bool> getVerboseLoggingEnabled() override;
 };
 
 }  // namespace implementation
diff --git a/shared/auto/device.mk b/shared/auto/device.mk
index e0693e5..9b7c05a 100644
--- a/shared/auto/device.mk
+++ b/shared/auto/device.mk
@@ -66,11 +66,13 @@
 PRODUCT_PACKAGES += android.hardware.broadcastradio@2.0-service
 
 # DRM HAL
-PRODUCT_PACKAGES += android.hardware.drm@1.2-service.clearkey
+PRODUCT_PACKAGES += android.hardware.drm@1.3-service.clearkey
 
-# GPS HAL
-PRODUCT_PACKAGES += \
-    android.hardware.gnss@2.0-service
+# CAN bus HAL
+PRODUCT_PACKAGES += android.hardware.automotive.can@1.0-service
+PRODUCT_PACKAGES_DEBUG += canhalctrl \
+    canhaldump \
+    canhalsend
 
 # DRM Properities
 PRODUCT_PROPERTY_OVERRIDES += \
diff --git a/shared/auto/manifest.xml b/shared/auto/manifest.xml
index 60e9a85..0435a55 100644
--- a/shared/auto/manifest.xml
+++ b/shared/auto/manifest.xml
@@ -39,6 +39,19 @@
             <instance>default</instance>
         </interface>
     </hal>
+    <hal format="hidl">
+        <name>android.hardware.automotive.can</name>
+        <transport>hwbinder</transport>
+        <version>1.0</version>
+        <interface>
+            <name>ICanController</name>
+            <instance>socketcan</instance>
+        </interface>
+        <interface>
+            <name>ICanBus</name>
+            <instance>test</instance>
+        </interface>
+    </hal>
     <!-- FIXME: Move this to shared manifest.xml -->
     <hal format="hidl">
         <name>android.hardware.broadcastradio</name>
diff --git a/shared/config/CleanSpec.mk b/shared/config/CleanSpec.mk
index 8ead76d..8c33800 100644
--- a/shared/config/CleanSpec.mk
+++ b/shared/config/CleanSpec.mk
@@ -46,3 +46,5 @@
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.gnss@1.0-service)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.drm@1.2-service.clearkey)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.drm@1.2-service.widevine)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.gnss@2.0-service)
+$(call add-clean-step, find $(PRODUCT_OUT)/vendor/bin/hw/ -type f -name "android.hardware.drm@*" -print0 | xargs -0 rm -f)
diff --git a/shared/config/init.vendor.rc b/shared/config/init.vendor.rc
index c876617..a39cca7 100644
--- a/shared/config/init.vendor.rc
+++ b/shared/config/init.vendor.rc
@@ -171,13 +171,14 @@
     interface android.hardware.wifi.supplicant@1.0::ISupplicant default
     interface android.hardware.wifi.supplicant@1.1::ISupplicant default
     interface android.hardware.wifi.supplicant@1.2::ISupplicant default
+    interface android.hardware.wifi.supplicant@1.3::ISupplicant default
     socket wpa_wlan0 dgram 660 wifi wifi
     group system wifi inet
     disabled
     oneshot
 
 
-service bugreport /system/bin/dumpstate -d -p -B -z -o /sdcard/bugreport
+service bugreport /system/bin/dumpstate -d -p -z
     class main
     disabled
     oneshot
diff --git a/shared/config/manifest.xml b/shared/config/manifest.xml
index 0afd184..964981a 100644
--- a/shared/config/manifest.xml
+++ b/shared/config/manifest.xml
@@ -85,25 +85,6 @@
             <instance>default</instance>
         </interface>
     </hal>
-    <!-- TODO (b/130078384): -->
-    <hal format="hidl">
-        <name>android.hardware.camera.provider</name>
-        <transport>hwbinder</transport>
-        <version>2.4</version>
-        <interface>
-            <name>ICameraProvider</name>
-            <instance>legacy/0</instance>
-        </interface>
-    </hal>
-    <hal format="hidl">
-        <name>android.hardware.configstore</name>
-        <transport>hwbinder</transport>
-        <version>1.1</version>
-        <interface>
-            <name>ISurfaceFlingerConfigs</name>
-            <instance>default</instance>
-        </interface>
-    </hal>
     <!-- TODO (b/130078386):
     <hal format="hidl">
         <name>android.hardware.confirmationui</name>
@@ -127,14 +108,6 @@
     </hal>
     -->
     <hal format="hidl">
-        <name>android.hardware.drm</name>
-        <transport>hwbinder</transport>
-        <fqname>@1.0::ICryptoFactory/default</fqname>
-        <fqname>@1.0::IDrmFactory/default</fqname>
-        <fqname>@1.2::ICryptoFactory/clearkey</fqname>
-        <fqname>@1.2::IDrmFactory/clearkey</fqname>
-    </hal>
-    <hal format="hidl">
         <name>android.hardware.dumpstate</name>
         <transport>hwbinder</transport>
         <version>1.1</version>
@@ -269,7 +242,7 @@
     <hal format="hidl">
         <name>android.hardware.soundtrigger</name>
         <transport>hwbinder</transport>
-        <version>2.0</version>
+        <version>2.3</version>
         <interface>
             <name>ISoundTriggerHw</name>
             <instance>default</instance>
@@ -372,13 +345,4 @@
         </interface>
     </hal>
     -->
-    <hal format="hidl">
-        <name>android.hardware.wifi.supplicant</name>
-        <transport>hwbinder</transport>
-        <version>1.2</version>
-        <interface>
-            <name>ISupplicant</name>
-            <instance>default</instance>
-        </interface>
-    </hal>
 </manifest>
diff --git a/shared/device.mk b/shared/device.mk
index e33cd6d..612dc21 100644
--- a/shared/device.mk
+++ b/shared/device.mk
@@ -25,13 +25,6 @@
 PRODUCT_USE_DYNAMIC_PARTITIONS := true
 DISABLE_RILD_OEM_HOOK := true
 
-# [b/148163848] Disable product enforcement only for qt-qpr1-dev-plus-aosp
-# branch. It is not merged down to master branch.
-# As qt-qpr1-dev-plus-aosp branch has qt based vendor modules that are not
-# ready for the product enforcement, we may not enable it in this branch.
-PRODUCT_USE_PRODUCT_VNDK_OVERRIDE := false
-OVERRIDE_PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE := false
-
 AB_OTA_UPDATER := true
 AB_OTA_PARTITIONS += \
     product \
@@ -47,7 +40,6 @@
 # sepolicy
 PRODUCT_PRODUCT_PROPERTIES += \
     persist.adb.tcp.port=5555 \
-    persist.traced.enable=1 \
     ro.com.google.locationfeatures=1 \
 
 # Explanation of specific properties:
@@ -74,6 +66,10 @@
 # aes-256-heh default is not supported in standard kernels.
 PRODUCT_PROPERTY_OVERRIDES += ro.crypto.volume.filenames_mode=aes-256-cts
 
+PRODUCT_SOONG_NAMESPACES += hardware/google/camera
+PRODUCT_SOONG_NAMESPACES += hardware/google/camera/devices/EmulatedCamera
+
+#
 # Packages for various GCE-specific utilities
 #
 PRODUCT_PACKAGES += \
@@ -151,7 +147,9 @@
 #
 PRODUCT_COPY_FILES += \
     device/google/cuttlefish/shared/config/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf \
-    device/google/cuttlefish/shared/config/camera_v3.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/camera.json \
+    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 \
     device/google/cuttlefish/shared/config/init.vendor.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.cutf_cvm.rc \
     device/google/cuttlefish/shared/config/init.product.rc:$(TARGET_COPY_OUT_PRODUCT)/etc/init/init.rc \
     device/google/cuttlefish/shared/config/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \
@@ -177,6 +175,7 @@
     frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml \
     frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \
     frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \
+    frameworks/native/data/etc/android.hardware.reboot_escrow.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.reboot_escrow.xml \
     frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
     frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \
     frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
@@ -245,16 +244,26 @@
     android.hardware.audio@6.0-impl:32 \
     android.hardware.audio.effect@6.0-impl:32 \
     android.hardware.audio@2.0-service \
-    android.hardware.soundtrigger@2.0-impl \
+    android.hardware.soundtrigger@2.3-impl \
+
+#
+# BiometricsFace HAL
+#
+PRODUCT_PACKAGES += \
+    android.hardware.biometrics.face@1.1-service.example
+
+#
+# Contexthub HAL
+#
+PRODUCT_PACKAGES += \
+    android.hardware.contexthub@1.1-service.mock
 
 #
 # Drm HAL
 #
 PRODUCT_PACKAGES += \
-    android.hardware.drm@1.0-impl \
-    android.hardware.drm@1.0-service \
-    android.hardware.drm@1.2-service.clearkey \
-    android.hardware.drm@1.2-service.widevine
+    android.hardware.drm@1.3-service.clearkey \
+    android.hardware.drm@1.3-service.widevine
 
 #
 # Dumpstate HAL
@@ -266,11 +275,9 @@
 # Camera
 #
 PRODUCT_PACKAGES += \
-    camera.cutf \
-    camera.cutf.jpeg \
-    camera.device@3.2-impl \
-    android.hardware.camera.provider@2.4-impl \
-    android.hardware.camera.provider@2.4-service
+    android.hardware.camera.provider@2.6-service-google \
+    libgooglecamerahwl_impl \
+    android.hardware.camera.provider@2.6-impl-google \
 
 #
 # Gatekeeper
@@ -282,7 +289,7 @@
 # GPS
 #
 PRODUCT_PACKAGES += \
-    android.hardware.gnss@2.0-service
+    android.hardware.gnss@2.1-service
 
 # Health
 PRODUCT_PACKAGES += \
@@ -309,7 +316,7 @@
 # Sensors
 #
 PRODUCT_PACKAGES += \
-    android.hardware.sensors@2.0-service.mock
+    android.hardware.sensors@2.1-service.mock
 #
 # Thermal (mock)
 #
@@ -365,6 +372,10 @@
     android.hardware.boot@1.1-impl.recovery \
     android.hardware.boot@1.1-service
 
+# RebootEscrow HAL
+PRODUCT_PACKAGES += \
+    android.hardware.rebootescrow-service.default
+
 # WLAN driver configuration files
 PRODUCT_COPY_FILES += \
     $(LOCAL_PATH)/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf
diff --git a/shared/sepolicy/vendor/file_contexts b/shared/sepolicy/vendor/file_contexts
index c20b56c..cbec8ab 100644
--- a/shared/sepolicy/vendor/file_contexts
+++ b/shared/sepolicy/vendor/file_contexts
@@ -54,8 +54,10 @@
 /vendor/bin/vport_trigger  u:object_r:vport_trigger_exec:s0
 /vendor/bin/rename_netiface  u:object_r:rename_netiface_exec:s0
 /vendor/bin/hw/libcuttlefish-rild  u:object_r:libcuttlefish_rild_exec:s0
+/vendor/bin/hw/android\.hardware\.camera\.provider@2\.6-service-google u:object_r:hal_camera_default_exec:s0
 /vendor/bin/hw/android\.hardware\.power\.stats@1\.0-service\.mock  u:object_r:hal_power_stats_default_exec:s0
 /vendor/bin/hw/android\.hardware\.bluetooth@1\.1-service\.sim  u:object_r:hal_bluetooth_sim_exec:s0
+/vendor/bin/hw/android\.hardware\.contexthub@1\.1-service\.mock  u:object_r:hal_contexthub_default_exec:s0
 /vendor/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service\.clearkey  u:object_r:hal_drm_clearkey_exec:s0
 /vendor/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service-lazy\.clearkey  u:object_r:hal_drm_clearkey_exec:s0
 /vendor/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service\.widevine  u:object_r:hal_drm_widevine_exec:s0
@@ -67,13 +69,15 @@
 /vendor/bin/hw/android\.hardware\.neuralnetworks@1\.3-service-sample-.*   u:object_r:hal_neuralnetworks_sample_exec:s0
 /vendor/bin/hw/android\.hardware\.vibrator@1\.x-service\.example u:object_r:hal_vibrator_default_exec:s0
 /vendor/bin/hw/android\.hardware\.tv\.cec@1\.0-service\.mock u:object_r:hal_tv_cec_mock_exec:s0
+/vendor/bin/hw/android\.hardware\.tv\.tuner@1\.0-service u:object_r:hal_tv_tuner_default_exec:s0
 /vendor/bin/ip_link_add  u:object_r:ip_link_add_exec:s0
 /vendor/bin/setup_wifi  u:object_r:setup_wifi_exec:s0
-/vendor/bin/hw/android\.hardware\.sensors@2\.0-service\.mock  u:object_r:hal_sensors_default_exec:s0
+/vendor/bin/hw/android\.hardware\.sensors@2\.1-service\.mock  u:object_r:hal_sensors_default_exec:s0
 /vendor/bin/hw/android\.hardware\.input\.classifier@1\.0-service.default  u:object_r:hal_input_classifier_default_exec:s0
 /vendor/bin/hw/android\.hardware\.thermal@2\.0-service\.mock  u:object_r:hal_thermal_default_exec:s0
 /vendor/bin/hw/android\.hardware\.authsecret@1\.0-service  u:object_r:hal_authsecret_default_exec:s0
 /vendor/bin/hw/android\.hardware\.radio\.config@1\.3-service  u:object_r:hal_radio_config_default_exec:s0
+/vendor/bin/hw/android\.hardware\.rebootescrow-service\.default  u:object_r:hal_rebootescrow_default_exec:s0
 /vendor/bin/init\.insmod\.sh  u:object_r:init_insmod_sh_exec:s0
 
 /vendor/lib(64)?/cuttlefish_auto_resources.so  u:object_r:same_process_hal_file:s0
diff --git a/shared/sepolicy/vendor/property_contexts b/shared/sepolicy/vendor/property_contexts
index 5aacb9c..d137d65 100644
--- a/shared/sepolicy/vendor/property_contexts
+++ b/shared/sepolicy/vendor/property_contexts
@@ -1,6 +1,6 @@
 bt.rootcanal_mac_address  u:object_r:hal_bluetooth_sim_prop:s0
 bt.rootcanal_test_console  u:object_r:hal_bluetooth_sim_prop:s0
-persist.vendor.logging_enabled  u:object_r:hal_dumpstate_prop:s0
+persist.vendor.verbose_logging_enabled  u:object_r:hal_dumpstate_prop:s0
 qemu.sf.back_camera_caps  u:object_r:hal_camera_prop:s0
 qemu.sf.front_camera_caps  u:object_r:hal_camera_prop:s0
 qemu.sf.fake_camera  u:object_r:hal_camera_prop:s0
diff --git a/shared/tv/device.mk b/shared/tv/device.mk
index 25eb85e..7e64f45 100644
--- a/shared/tv/device.mk
+++ b/shared/tv/device.mk
@@ -23,6 +23,9 @@
 # HDMI CEC HAL
 PRODUCT_PACKAGES += android.hardware.tv.cec@1.0-service.mock
 
+# Tuner HAL
+PRODUCT_PACKAGES += android.hardware.tv.tuner@1.0-service
+
 # Enabling managed profiles
 PRODUCT_COPY_FILES += frameworks/native/data/etc/android.software.managed_users.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.managed_users.xml
 DEVICE_PACKAGE_OVERLAYS += device/google/cuttlefish/shared/tv/overlay
diff --git a/tests/hal/hal_implementation_test.cpp b/tests/hal/hal_implementation_test.cpp
index 3d4fd47..9b056fc 100644
--- a/tests/hal/hal_implementation_test.cpp
+++ b/tests/hal/hal_implementation_test.cpp
@@ -28,6 +28,7 @@
     "android.frameworks.cameraservice.device@2.0",
     "android.frameworks.vr.composer@1.0",
     "android.frameworks.vr.composer@2.0",
+    "android.frameworks.automotive.display@1.0",
     "android.hardware.audio@2.0",
     "android.hardware.audio@4.0",
     "android.hardware.audio@5.0",
@@ -35,23 +36,22 @@
     "android.hardware.audio.effect@4.0",
     "android.hardware.audio.effect@5.0",
     "android.hardware.automotive.audiocontrol@1.0",
+    "android.hardware.automotive.audiocontrol@2.0",
     "android.hardware.automotive.can@1.0",
     "android.hardware.automotive.evs@1.0",
     "android.hardware.automotive.evs@1.1",
     "android.hardware.automotive.vehicle@2.0",
-    "android.hardware.biometrics.face@1.0",
     "android.hardware.biometrics.fingerprint@2.1",
+    "android.hardware.biometrics.fingerprint@2.2",
     "android.hardware.bluetooth.a2dp@1.0",
     "android.hardware.broadcastradio@1.1",
     "android.hardware.broadcastradio@2.0",
-    "android.hardware.camera.provider@2.5",
-    "android.hardware.cas@1.2",
     "android.hardware.cas.native@1.0",
     "android.hardware.confirmationui@1.0",
     "android.hardware.contexthub@1.0",
     "android.hardware.configstore@1.1", // deprecated, see b/149050985, b/149050733
     "android.hardware.fastboot@1.0",
-    "android.hardware.gnss.measurement_corrections@1.0",
+    "android.hardware.gnss.measurement_corrections@1.1", // is sub-interface of gnss
     "android.hardware.gnss.visibility_control@1.0",
     "android.hardware.graphics.allocator@3.0",
     "android.hardware.graphics.allocator@4.0",
@@ -75,7 +75,6 @@
     "android.hardware.renderscript@1.0",
     "android.hardware.secure_element@1.2",
     "android.hardware.sensors@1.0",
-    "android.hardware.soundtrigger@2.2",
     "android.hardware.tetheroffload.config@1.0",
     "android.hardware.tetheroffload.control@1.0",
     "android.hardware.thermal@1.1",
@@ -84,13 +83,13 @@
     "android.hardware.tv.input@1.0",
     "android.hardware.tv.tuner@1.0",
     "android.hardware.usb@1.2",
-    "android.hardware.usb.gadget@1.0",
+    "android.hardware.usb.gadget@1.1",
     "android.hardware.vibrator@1.3",
     "android.hardware.vr@1.0",
     "android.hardware.weaver@1.0",
     "android.hardware.wifi@1.3",
     "android.hardware.wifi@1.4",
-    "android.hardware.wifi.hostapd@1.1",
+    "android.hardware.wifi.hostapd@1.2",
     "android.hardware.wifi.offload@1.0",
     "android.hidl.base@1.0",
     "android.hidl.memory.token@1.0",
diff --git a/vsoc_arm64/phone/device.mk b/vsoc_arm64/phone/device.mk
deleted file mode 100644
index 0053ec5..0000000
--- a/vsoc_arm64/phone/device.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Copyright (C) 2017 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.
-#
-
-$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
-$(call inherit-product, device/google/cuttlefish/shared/phone/device.mk)
-$(call inherit-product, device/google/cuttlefish/vsoc_arm64/device.mk)
-
-PRODUCT_NAME := aosp_cf_arm64_phone
-PRODUCT_DEVICE := vsoc_arm64
-PRODUCT_MODEL := Cuttlefish arm64 phone
-PRODUCT_PACKAGE_OVERLAYS := device/google/cuttlefish/vsoc_arm64/phone/overlay
diff --git a/vsoc_arm64/phone/overlay/frameworks/base/core/res/res/values/config.xml b/vsoc_arm64/phone/overlay/frameworks/base/core/res/res/values/config.xml
index b272ba5..5455fd4 100644
--- a/vsoc_arm64/phone/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/vsoc_arm64/phone/overlay/frameworks/base/core/res/res/values/config.xml
@@ -37,16 +37,12 @@
   <string-array name="config_tether_apndata" translatable="false">
     <item>Android,android,,,,,,,,311,740,,default,dun,ims</item>
   </string-array>
-  <bool name="config_wifi_dual_band_support" translatable="false">true</bool>
   <bool name="config_bluetooth_address_validation" translatable="false">true</bool>
   <bool name="config_sms_capable" translatable="false">true</bool>
   <string name="default_sms_application" translatable="false">com.android.mms</string>
   <bool name="config_showNavigationBar" translatable="false">true</bool>
   <dimen name="config_viewConfigurationTouchSlop" translatable="false">12dp</dimen>
   <integer name="config_mobile_mtu" translatable="false">1460</integer>
-  <!-- cuttlefish uses mac80211-hwsim, which does not support the Preferred
-  Network Offload feature. The below config disables the use of this feature. -->
-  <bool name="config_wifi_background_scan_support" translatable="false">false</bool>
   <!--  Maximum number of supported users -->
   <integer name="config_multiuserMaximumUsers" translatable="false">4</integer>
 </resources>
diff --git a/vsoc_x86/phone/overlay/frameworks/base/core/res/res/values/config.xml b/vsoc_x86/phone/overlay/frameworks/base/core/res/res/values/config.xml
index b272ba5..5455fd4 100644
--- a/vsoc_x86/phone/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/vsoc_x86/phone/overlay/frameworks/base/core/res/res/values/config.xml
@@ -37,16 +37,12 @@
   <string-array name="config_tether_apndata" translatable="false">
     <item>Android,android,,,,,,,,311,740,,default,dun,ims</item>
   </string-array>
-  <bool name="config_wifi_dual_band_support" translatable="false">true</bool>
   <bool name="config_bluetooth_address_validation" translatable="false">true</bool>
   <bool name="config_sms_capable" translatable="false">true</bool>
   <string name="default_sms_application" translatable="false">com.android.mms</string>
   <bool name="config_showNavigationBar" translatable="false">true</bool>
   <dimen name="config_viewConfigurationTouchSlop" translatable="false">12dp</dimen>
   <integer name="config_mobile_mtu" translatable="false">1460</integer>
-  <!-- cuttlefish uses mac80211-hwsim, which does not support the Preferred
-  Network Offload feature. The below config disables the use of this feature. -->
-  <bool name="config_wifi_background_scan_support" translatable="false">false</bool>
   <!--  Maximum number of supported users -->
   <integer name="config_multiuserMaximumUsers" translatable="false">4</integer>
 </resources>
diff --git a/vsoc_x86_64/phone/device.mk b/vsoc_x86_64/phone/device.mk
deleted file mode 100644
index 316176b..0000000
--- a/vsoc_x86_64/phone/device.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# Copyright (C) 2017 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.
-#
-
-$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
-$(call inherit-product, device/google/cuttlefish/shared/phone/device.mk)
-$(call inherit-product, device/google/cuttlefish/vsoc_x86_64/device.mk)
-
-PRODUCT_NAME := aosp_cf_x86_64_phone
-PRODUCT_DEVICE := vsoc_x86_64
-PRODUCT_MODEL := Cuttlefish x86_64 phone
-PRODUCT_PACKAGE_OVERLAYS := device/google/cuttlefish/vsoc_x86_64/phone/overlay
-
diff --git a/vsoc_x86_64/phone/overlay/frameworks/base/core/res/res/values/config.xml b/vsoc_x86_64/phone/overlay/frameworks/base/core/res/res/values/config.xml
index 74469e5..36184c8 100644
--- a/vsoc_x86_64/phone/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/vsoc_x86_64/phone/overlay/frameworks/base/core/res/res/values/config.xml
@@ -37,16 +37,12 @@
   <string-array name="config_tether_apndata" translatable="false">
     <item>Android,android,,,,,,,,302,780,,default,dun,ims</item>
   </string-array>
-  <bool name="config_wifi_dual_band_support" translatable="false">true</bool>
   <bool name="config_bluetooth_address_validation" translatable="false">true</bool>
   <bool name="config_sms_capable" translatable="false">true</bool>
   <string name="default_sms_application" translatable="false">com.android.mms</string>
   <bool name="config_showNavigationBar" translatable="false">true</bool>
   <dimen name="config_viewConfigurationTouchSlop" translatable="false">12dp</dimen>
   <integer name="config_mobile_mtu" translatable="false">1460</integer>
-  <!-- cuttlefish uses mac80211-hwsim, which does not support the Preferred
-  Network Offload feature. The below config disables the use of this feature. -->
-  <bool name="config_wifi_background_scan_support" translatable="false">false</bool>
   <!--  Maximum number of supported users -->
   <integer name="config_multiuserMaximumUsers" translatable="false">4</integer>
 </resources>