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>
