Merge "CF health 2.1"
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..531f840
--- /dev/null
+++ b/README.md
@@ -0,0 +1,53 @@
+# So you want to try cuttlefish?
+
+1. Download, build, and install the host debian package:
+
+```bash
+git clone https://github.com/google/android-cuttlefish
+cd android-cuttlefish
+debuild -i -us -uc -b
+sudo dpkg -i ../cuttlefish-common_*_amd64.deb
+sudo apt-get install -f
+```
+
+2. Go to http://ci.android.com/
+3. Enter a branch name. Start with `aosp-master` if you don't know what you're
+   looking for
+4. Navigate to `aosp_cf_x86_phone` and click on `userdebug` for the latest build
+5. Click on `Artifacts`
+6. Scroll down to the OTA images. These packages look like
+   `aosp_cf_x86_phone-img-xxxxxx.zip` -- it will always have `img` in the name.
+   Download this file
+7. Scroll down to `cvd-host_package.tar.gz`. You should always download a host
+   package from the same build as your images.
+8. On your local system, combine the packages:
+
+```bash
+mkdir cf
+cd cf
+tar xvf /path/to/cvd-host_package.tar.gz
+unzip /path/to/aosp_cf_x86_phone-img-xxxxxx.zip
+```
+
+8. Launch cuttlefish with:
+
+   `$ HOME=$PWD ./bin/launch_cvd`
+
+9. Stop cuttlefish with:
+
+   `$ HOME=$PWD ./bin/stop_cvd`
+
+# So you want to debug cuttlefish?
+
+You can use `adb` to debug it, just like a physical device:
+
+   `$ ./bin/adb -e shell`
+
+# So you want to see cuttlefish?
+
+You can use the [TightVNC JViewer](https://www.tightvnc.com/download.php). Once
+you have downloaded the *TightVNC Java Viewer JAR in a ZIP archive*, run it with
+
+   `$ java -jar tightvnc-jviewer.jar -ScalingFactor=50 -Tunneling=no -host=localhost -port=6444`
+
+Click "Connect" and you should see a lock screen!
diff --git a/TEST_MAPPING b/TEST_MAPPING
index e35b82e..0e18f48 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -5,6 +5,9 @@
     },
     {
       "name": "vts_treble_vintf_vendor_test"
+    },
+    {
+      "name": "hidl_implementation_test"
     }
   ]
 }
diff --git a/dtb.img b/dtb.img
new file mode 100644
index 0000000..9d6cec7
--- /dev/null
+++ b/dtb.img
@@ -0,0 +1 @@
+workaround
diff --git a/host_package.mk b/host_package.mk
index 815af3b..5aa22ab 100644
--- a/host_package.mk
+++ b/host_package.mk
@@ -51,6 +51,7 @@
     console_forwarder \
     assemble_cvd \
     run_cvd \
+    cvd_status \
 
 cvd_host_tests := \
     auto_free_buffer_test \
@@ -86,6 +87,7 @@
     libcuttlefish_device_config.so \
     cdisk_spec.so \
     libprotobuf-cpp-full.so \
+    libziparchive.so \
 
 
 cvd_host_package_files := \
diff --git a/shared/BoardConfig.mk b/shared/BoardConfig.mk
index d41ef0e..03bb59d 100644
--- a/shared/BoardConfig.mk
+++ b/shared/BoardConfig.mk
@@ -60,8 +60,8 @@
 # The compiler will occasionally generate movaps, etc.
 BOARD_MALLOC_ALIGNMENT := 16
 
-# Make the userdata partition 4G to accomodate ASAN and CTS
-BOARD_USERDATAIMAGE_PARTITION_SIZE := 4294967296
+# Make the userdata partition 4.25G to accomodate ASAN and CTS
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 4563402752
 
 # Cache partition size: 64M
 BOARD_CACHEIMAGE_PARTITION_SIZE := 67108864
@@ -140,7 +140,7 @@
 
 TARGET_RECOVERY_FSTAB ?= device/google/cuttlefish/shared/config/fstab
 
-BOARD_SUPER_PARTITION_SIZE := 6442450944
+BOARD_SUPER_PARTITION_SIZE := 12884901888
 BOARD_SUPER_PARTITION_GROUPS := google_dynamic_partitions
 BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := system vendor product system_ext
 BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE := 6442450944
@@ -151,3 +151,10 @@
 # To see full logs from init, disable ratelimiting.
 # The default is 5 messages per second amortized, with a burst of up to 10.
 BOARD_KERNEL_CMDLINE += printk.devkmsg=on
+
+BOARD_INCLUDE_DTB_IN_BOOTIMG := true
+BOARD_BOOT_HEADER_VERSION := 3
+BOARD_USES_RECOVERY_AS_BOOT := true
+BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
+PRODUCT_COPY_FILES += device/google/cuttlefish/dtb.img:dtb.img
+BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
diff --git a/shared/auto/device.mk b/shared/auto/device.mk
index 27ebf12..a76a0b1 100644
--- a/shared/auto/device.mk
+++ b/shared/auto/device.mk
@@ -79,6 +79,5 @@
 PRODUCT_BRAND := generic
 
 PRODUCT_ENFORCE_RRO_TARGETS := framework-res
-PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS := device/google/cuttlefish/shared/overlay
 
 TARGET_NO_TELEPHONY := true
diff --git a/shared/config/CleanSpec.mk b/shared/config/CleanSpec.mk
index 6551673..8ead76d 100644
--- a/shared/config/CleanSpec.mk
+++ b/shared/config/CleanSpec.mk
@@ -45,3 +45,4 @@
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/lib/hw/android.hardware.gnss@1.0-impl.so)
 $(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)
diff --git a/shared/config/fstab b/shared/config/fstab
index 05d62f9..d6b40a6 100644
--- a/shared/config/fstab
+++ b/shared/config/fstab
@@ -1,12 +1,13 @@
 boot /boot emmc defaults recoveryonly
-system /system ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
+system /system ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect
 # Add all non-dynamic partitions except system, after this comment
 /dev/block/by-name/userdata /data ext4 nodev,noatime,nosuid,errors=panic wait,fileencryption=aes-256-xts:aes-256-cts
 /dev/block/by-name/metadata /metadata ext4 nodev,noatime,nosuid,errors=panic wait,formattable
 /dev/block/by-name/cache /cache ext4 nodev,noatime,nosuid,errors=panic wait
+/dev/block/by-name/misc /misc emmc defaults defaults
 # Add all dynamic partitions except system, after this comment
-vendor /vendor ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
-product /product ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
-system_ext /system_ext ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
+vendor /vendor ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect
+product /product ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect
+system_ext /system_ext ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect
 /dev/block/zram0 none swap defaults zramsize=75%
 /tmp /sdcard none defaults,bind recoveryonly
diff --git a/shared/config/fstab.composite b/shared/config/fstab.composite
index ed5b7e3..3fed495 100644
--- a/shared/config/fstab.composite
+++ b/shared/config/fstab.composite
@@ -1,12 +1,13 @@
 boot /boot emmc defaults recoveryonly
-system /system ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
+system /system ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect
 # Add all non-dynamic partitions except system, after this comment
 /dev/block/by-name/userdata /data ext4 nodev,noatime,nosuid,errors=panic wait,fileencryption=aes-256-xts:aes-256-cts
 /dev/block/by-name/cache /cache ext4 nodev,noatime,nosuid,errors=panic wait
 /dev/block/by-name/metadata /metadata ext4 nodev,noatime,nosuid,errors=panic wait,formattable
+/dev/block/by-name/misc /misc emmc defaults defaults
 # Add all dynamic partitions except system, after this comment
-vendor /vendor ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
-product /product ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
-system_ext /system_ext ext4 noatime,ro,errors=panic wait,logical,first_stage_mount
+vendor /vendor ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect
+product /product ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect
+system_ext /system_ext ext4 noatime,ro,errors=panic wait,logical,first_stage_mount,slotselect
 /dev/block/zram0 none swap defaults zramsize=75%
 /tmp /sdcard none defaults,bind recoveryonly
diff --git a/shared/config/manifest.xml b/shared/config/manifest.xml
index 235c29b..a9eb8fc 100644
--- a/shared/config/manifest.xml
+++ b/shared/config/manifest.xml
@@ -84,17 +84,6 @@
             <instance>default</instance>
         </interface>
     </hal>
-    <!-- TODO (b/130078382):
-    <hal format="hidl">
-        <name>android.hardware.boot</name>
-        <transport>hwbinder</transport>
-        <version>1.0</version>
-        <interface>
-            <name>IBootControl</name>
-            <instance>default</instance>
-        </interface>
-    </hal>
-    -->
     <!-- TODO (b/130078384): -->
     <hal format="hidl">
         <name>android.hardware.camera.provider</name>
@@ -271,7 +260,7 @@
     <hal format="hidl">
         <name>android.hardware.radio</name>
         <transport>hwbinder</transport>
-        <version>1.4</version>
+        <version>1.5</version>
         <interface>
             <name>IRadio</name>
             <instance>slot1</instance>
diff --git a/shared/config/spn-conf.xml b/shared/config/spn-conf.xml
index d692856..f1639df 100644
--- a/shared/config/spn-conf.xml
+++ b/shared/config/spn-conf.xml
@@ -17,5 +17,5 @@
 */
 -->
 <spnOverrides>
-    <spnOverride numeric="310260" spn="Android"/>
+    <spnOverride numeric="311740" spn="Android"/>
 </spnOverrides>
diff --git a/shared/device.mk b/shared/device.mk
index e11f724..433c96b 100644
--- a/shared/device.mk
+++ b/shared/device.mk
@@ -22,6 +22,16 @@
 PRODUCT_USE_DYNAMIC_PARTITIONS := true
 DISABLE_RILD_OEM_HOOK := true
 
+AB_OTA_UPDATER := true
+AB_OTA_PARTITIONS += \
+    product \
+    system \
+    system_ext \
+    vendor
+
+# Enable Virtual A/B
+$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota.mk)
+
 # Properties that are not vendor-specific. These will go in the product
 # partition, instead of the vendor partition, and do not need vendor
 # sepolicy
@@ -152,8 +162,12 @@
     device/google/cuttlefish/shared/config/fstab:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.cutf_ivsh \
     device/google/cuttlefish/shared/config/fstab:$(TARGET_COPY_OUT_RAMDISK)/fstab.cutf_cvm \
     device/google/cuttlefish/shared/config/fstab:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.cutf_cvm \
+    device/google/cuttlefish/shared/config/fstab:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.cutf_ivsh \
+    device/google/cuttlefish/shared/config/fstab:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.cutf_cvm \
     device/google/cuttlefish/shared/config/fstab.composite:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.composite.cutf_ivsh \
     device/google/cuttlefish/shared/config/fstab.composite:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.composite.cutf_cvm \
+    device/google/cuttlefish/shared/config/fstab.composite:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.composite.cutf_ivsh \
+    device/google/cuttlefish/shared/config/fstab.composite:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.composite.cutf_cvm \
 
 #
 # USB Specific
@@ -220,7 +234,8 @@
 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.clearkey \
+    android.hardware.drm@1.2-service.widevine
 
 #
 # Dumpstate HAL
@@ -308,11 +323,11 @@
 # NeuralNetworks HAL
 #
 PRODUCT_PACKAGES += \
-    android.hardware.neuralnetworks@1.2-service-sample-all \
-    android.hardware.neuralnetworks@1.2-service-sample-float-fast \
-    android.hardware.neuralnetworks@1.2-service-sample-float-slow \
-    android.hardware.neuralnetworks@1.2-service-sample-minimal \
-    android.hardware.neuralnetworks@1.2-service-sample-quant
+    android.hardware.neuralnetworks@1.3-service-sample-all \
+    android.hardware.neuralnetworks@1.3-service-sample-float-fast \
+    android.hardware.neuralnetworks@1.3-service-sample-float-slow \
+    android.hardware.neuralnetworks@1.3-service-sample-minimal \
+    android.hardware.neuralnetworks@1.3-service-sample-quant
 
 #
 # USB
@@ -321,10 +336,13 @@
 
 # Vibrator HAL
 PRODUCT_PACKAGES += \
-    android.hardware.vibrator@1.3-service.example
+    android.hardware.vibrator@1.x-service.example
 
+# BootControl HAL
 PRODUCT_PACKAGES += \
-    cuttlefish_dtb
+    android.hardware.boot@1.1-impl \
+    android.hardware.boot@1.1-impl.recovery \
+    android.hardware.boot@1.1-service
 
 # WLAN driver configuration files
 PRODUCT_COPY_FILES += \
@@ -348,3 +366,5 @@
 
 # Host packages to install
 PRODUCT_HOST_PACKAGES += socket_forward_proxy socket_vsock_proxy
+
+PRODUCT_EXTRA_VNDK_VERSIONS := 28 29
diff --git a/shared/overlay/frameworks/base/core/res/res/xml/storage_list.xml b/shared/overlay/frameworks/base/core/res/res/xml/storage_list.xml
deleted file mode 100644
index a55d3c7..0000000
--- a/shared/overlay/frameworks/base/core/res/res/xml/storage_list.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 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.
-*/
--->
-
-<!-- See storage config details at http://source.android.com/tech/storage/ -->
-
-<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
-    <!-- removable is not set in nosdcard product -->
-    <storage
-             android:storageDescription="@string/storage_internal"
-             android:primary="true"
-             android:emulated="true"
-             android:mtpReserve="100"/>
-
-
-</StorageList>
diff --git a/shared/phone/device.mk b/shared/phone/device.mk
index 3063000..09b61da 100644
--- a/shared/phone/device.mk
+++ b/shared/phone/device.mk
@@ -41,5 +41,5 @@
     frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml
 
 # These flags are important for the GSI, but break auto
+# These are used by aosp_cf_x86_go_phone targets
 PRODUCT_ENFORCE_RRO_TARGETS := framework-res
-PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS := device/google/cuttlefish/shared/overlay
diff --git a/shared/phone/device_vendor.mk b/shared/phone/device_vendor.mk
index 0df1f4a..e873ff2 100644
--- a/shared/phone/device_vendor.mk
+++ b/shared/phone/device_vendor.mk
@@ -45,8 +45,3 @@
 
 PRODUCT_COPY_FILES += \
     frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml
-
-# TODO: below should be moved to vendor
-# These flags are important for the GSI, but break auto
-PRODUCT_ENFORCE_RRO_TARGETS := framework-res
-PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS := device/google/cuttlefish/shared/overlay
diff --git a/shared/sepolicy/vendor/bug_map b/shared/sepolicy/vendor/bug_map
index 77b48f0..372547e 100644
--- a/shared/sepolicy/vendor/bug_map
+++ b/shared/sepolicy/vendor/bug_map
@@ -2,6 +2,7 @@
 init system_lib_file file b/133444385
 kernel kernel system b/130424539
 logpersist logpersist capability b/132911257
+logpersist device file b/143108875
 platform_app radio_prop property_service b/140284352
 priv_app proc_net file b/124422390
 shell adbd vsock_socket b/131904985
diff --git a/shared/sepolicy/vendor/file.te b/shared/sepolicy/vendor/file.te
index a90bdd0..a4d5d83 100644
--- a/shared/sepolicy/vendor/file.te
+++ b/shared/sepolicy/vendor/file.te
@@ -4,3 +4,4 @@
 type tombstone_snapshot_file, file_type;
 type var_run_system_file, file_type;
 type sysfs_gpu, fs_type, sysfs_type;
+type mediadrm_vendor_data_file, file_type, data_file_type;
diff --git a/shared/sepolicy/vendor/file_contexts b/shared/sepolicy/vendor/file_contexts
index 1cf2c3a..70b47ad 100644
--- a/shared/sepolicy/vendor/file_contexts
+++ b/shared/sepolicy/vendor/file_contexts
@@ -37,6 +37,10 @@
 /ts_snap\.txt  u:object_r:tombstone_snapshot_file:s0
 
 #############################
+# data files
+/data/vendor/mediadrm(/.*)?  u:object_r:mediadrm_vendor_data_file:s0
+
+#############################
 # var files
 /var/run/system(/.*)?  u:object_r:var_run_system_file:s0
 
@@ -56,11 +60,13 @@
 /vendor/bin/hw/android\.hardware\.bluetooth@1\.0-service\.sim  u:object_r:hal_bluetooth_sim_exec:s0
 /vendor/bin/hw/android\.hardware\.drm@1\.2-service\.clearkey  u:object_r:hal_drm_clearkey_exec:s0
 /vendor/bin/hw/android\.hardware\.drm@1\.2-service-lazy\.clearkey  u:object_r:hal_drm_clearkey_exec:s0
+/vendor/bin/hw/android\.hardware\.drm@1\.2-service\.widevine  u:object_r:hal_drm_widevine_exec:s0
+/vendor/bin/hw/android\.hardware\.drm@1\.2-service-lazy\.widevine  u:object_r:hal_drm_widevine_exec:s0
 /vendor/bin/hw/android\.hardware\.dumpstate@1\.0-service\.cuttlefish  u:object_r:hal_dumpstate_impl_exec:s0
 /vendor/bin/hw/android\.hardware\.gatekeeper@1\.0-service\.software  u:object_r:hal_gatekeeper_default_exec:s0
 /vendor/bin/hw/android\.hardware\.health\.storage@1\.0-service\.cuttlefish u:object_r:hal_health_storage_default_exec:s0
-/vendor/bin/hw/android\.hardware\.neuralnetworks@1\.2-service-sample-.*   u:object_r:hal_neuralnetworks_sample_exec:s0
-/vendor/bin/hw/android\.hardware\.vibrator@1\.3-service\.example u:object_r:hal_vibrator_default_exec:s0
+/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/ip_link_add  u:object_r:ip_link_add_exec:s0
 /vendor/bin/setup_wifi  u:object_r:setup_wifi_exec:s0
diff --git a/shared/sepolicy/vendor/hal_drm_widevine.te b/shared/sepolicy/vendor/hal_drm_widevine.te
new file mode 100644
index 0000000..268388b
--- /dev/null
+++ b/shared/sepolicy/vendor/hal_drm_widevine.te
@@ -0,0 +1,14 @@
+type hal_drm_widevine, domain;
+type hal_drm_widevine_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(hal_drm_widevine)
+
+hal_server_domain(hal_drm_widevine, hal_drm)
+
+vndbinder_use(hal_drm_widevine);
+
+allow hal_drm_widevine mediacodec:fd use;
+allow hal_drm_widevine hal_allocator_server:fd use;
+
+allow hal_drm_widevine mediadrm_vendor_data_file:dir create_dir_perms;
+allow hal_drm_widevine mediadrm_vendor_data_file:file create_file_perms;
diff --git a/vsoc_arm64/phone/aosp_cf.mk b/vsoc_arm64/phone/aosp_cf.mk
index 035a5c5..7fd370d 100644
--- a/vsoc_arm64/phone/aosp_cf.mk
+++ b/vsoc_arm64/phone/aosp_cf.mk
@@ -18,10 +18,6 @@
 # All components inherited here go to system image (same as GSI system)
 #
 $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
-
-PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST += \
-    root/init.zygote64_32.rc \
-
 $(call inherit-product, $(SRC_TARGET_DIR)/product/mainline_system.mk)
 
 PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed
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 90e50c7..b272ba5 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
@@ -35,7 +35,7 @@
     <item>"wlan0"</item>
   </string-array>
   <string-array name="config_tether_apndata" translatable="false">
-    <item>Android,android,,,,,,,,310,260,,default,dun,ims</item>
+    <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>
diff --git a/vsoc_x86/BoardConfig.mk b/vsoc_x86/BoardConfig.mk
index d4b1772..55f400b 100644
--- a/vsoc_x86/BoardConfig.mk
+++ b/vsoc_x86/BoardConfig.mk
@@ -19,6 +19,7 @@
 #
 
 -include device/google/cuttlefish/shared/BoardConfig.mk
+-include $(wildcard device/*/cuttlestone_x86_phone/BoardConfig.mk)
 
 TARGET_BOARD_PLATFORM := vsoc_x86
 TARGET_ARCH := x86
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 90e50c7..b272ba5 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
@@ -35,7 +35,7 @@
     <item>"wlan0"</item>
   </string-array>
   <string-array name="config_tether_apndata" translatable="false">
-    <item>Android,android,,,,,,,,310,260,,default,dun,ims</item>
+    <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>
diff --git a/vsoc_x86_64/phone/aosp_cf.mk b/vsoc_x86_64/phone/aosp_cf.mk
index 4e10a23..c0b59bf 100644
--- a/vsoc_x86_64/phone/aosp_cf.mk
+++ b/vsoc_x86_64/phone/aosp_cf.mk
@@ -18,10 +18,6 @@
 # All components inherited here go to system image (same as GSI system)
 #
 $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
-
-PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST += \
-    root/init.zygote64_32.rc \
-
 $(call inherit-product, $(SRC_TARGET_DIR)/product/mainline_system.mk)
 
 PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed