[automerger skipped] Fix hosttar generation not to depend on PHONY targets
am: 301c0efcee  -s ours

Change-Id: I95ba5cbb67442c5bc2e7b41ee7979b59e6b6d327
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..7066a7d
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,4 @@
+cc_defaults {
+  name: "enabled_on_p_and_later",
+  enabled: true
+}
diff --git a/OWNERS b/OWNERS
index da3f3ab..fe15e48 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,4 +1,5 @@
 ghartman@google.com
 jemoreira@google.com
 pinghao@google.com
+haining@google.com
 malchev@google.com
diff --git a/host_package.mk b/host_package.mk
index ab1f79c..fd902d0 100644
--- a/host_package.mk
+++ b/host_package.mk
@@ -21,8 +21,13 @@
 tests_path := $(notdir $(HOST_OUT_NATIVE_TESTS))
 
 cvd_host_executables := \
+    host_region_e2e_test \
     launch_cvd \
-    wificlient \
+    socket_forward_proxy \
+    stop_cvd \
+    vnc_server \
+    wifi_relay \
+    record_audio \
 
 cvd_host_tests := \
     auto_free_buffer_test \
@@ -38,13 +43,15 @@
     vsoc_lib \
     libcuttlefish_fs \
     cuttlefish_auto_resources \
+    libcuttlefish_strings \
+    cuttlefish_tcp_socket \
     liblog \
     libnl \
     libc++ \
     libicuuc-host \
 
 cvd_host_configs := \
-    vsoc_mem.json
+    cuttlefish.dtb
 
 cvd_host_package_files := \
      $(addprefix config/,$(cvd_host_configs)) \
diff --git a/shared/BoardConfig.mk b/shared/BoardConfig.mk
index 5dd1c7f..6fa12ba 100644
--- a/shared/BoardConfig.mk
+++ b/shared/BoardConfig.mk
@@ -21,7 +21,7 @@
 # Build a separate vendor.img partition
 BOARD_USES_VENDORIMAGE := true
 BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
-BOARD_VENDORIMAGE_PARTITION_SIZE := 67108864  # 64MB
+BOARD_VENDORIMAGE_PARTITION_SIZE := 100663296 # 96MB
 TARGET_COPY_OUT_VENDOR := vendor
 
 TARGET_NO_RECOVERY := true
@@ -45,7 +45,8 @@
 
 # System partition size: 3.0G
 BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472
-BOARD_USERDATAIMAGE_PARTITION_SIZE := 1073741824
+# Make the userdata partition 4G to accomodate ASAN and CTS
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 4294967296
 
 # Cache partition size: 64M
 BOARD_CACHEIMAGE_PARTITION_SIZE := 67108864
@@ -90,8 +91,8 @@
 
 # master has breaking changes in dlfcn.h, but the platform SDK hasn't been
 # bumped. Restore the line below when it is.
-# VSOC_VERSION_CFLAGS := -DVSOC_PLATFORM_SDK_VERSION=26
-VSOC_VERSION_CFLAGS := -DVSOC_PLATFORM_SDK_VERSION=${PLATFORM_SDK_VERSION}
+VSOC_VERSION_CFLAGS := -DVSOC_PLATFORM_SDK_VERSION=28
+# VSOC_VERSION_CFLAGS := -DVSOC_PLATFORM_SDK_VERSION=${PLATFORM_SDK_VERSION}
 VSOC_STLPORT_INCLUDES :=
 VSOC_STLPORT_LIBS :=
 VSOC_STLPORT_STATIC_LIBS :=
@@ -128,3 +129,7 @@
 
 USE_XML_AUDIO_POLICY_CONF := 1
 
+BOARD_VNDK_VERSION := current
+
+# TODO(b/73078796): remove
+BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
diff --git a/shared/config/apns-conf.xml b/shared/config/apns-conf.xml
deleted file mode 100644
index 0e786d9..0000000
--- a/shared/config/apns-conf.xml
+++ /dev/null
@@ -1,28 +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.
-*/
--->
-
-<!-- This version must agree with that in apps/common/res/apns.xml -->
-<apns version="8">
-    <apn carrier="Android"
-         mcc="310"
-         mnc="260"
-         apn="android"
-         type="default,ims,dun"
-    />
-</apns>
diff --git a/shared/config/fstab.vsoc b/shared/config/fstab.vsoc
index d1e28f0..9f4b3f7 100644
--- a/shared/config/fstab.vsoc
+++ b/shared/config/fstab.vsoc
@@ -1,5 +1,2 @@
-/dev/block/vda /system ext4 noatime,ro,errors=panic wait
 /dev/block/vdb /data ext4 nodev,noatime,nosuid,errors=panic wait
 /dev/block/vdc /cache ext4 nodev,noatime,nosuid,errors=panic wait
-/dev/block/vdd /vendor ext4 noatime,errors=panic wait
-
diff --git a/shared/config/init.hardware.usb.rc b/shared/config/init.hardware.usb.rc
index 8a527fd..c3bb74c 100644
--- a/shared/config/init.hardware.usb.rc
+++ b/shared/config/init.hardware.usb.rc
@@ -30,6 +30,7 @@
     mkdir /config/usb_gadget/g1/functions/midi.gs5
     mkdir /config/usb_gadget/g1/functions/ffs.adb
     mkdir /config/usb_gadget/g1/functions/ffs.mtp
+    mkdir /config/usb_gadget/g1/functions/ffs.ptp
     mkdir /config/usb_gadget/g1/functions/diag.diag
     mkdir /config/usb_gadget/g1/functions/cser.dun.0
     mkdir /config/usb_gadget/g1/functions/cser.nmea.1
@@ -43,20 +44,19 @@
     mkdir /dev/usb-ffs/adb 0770 shell shell
     mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
     mkdir /dev/usb-ffs/mtp 0770 mtp mtp
+    mkdir /dev/usb-ffs/ptp 0770 mtp mtp
     mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
-    setprop sys.usb.ffs.aio_compat 1
-    setprop sys.usb.ffs.max_write 524288
-    setprop sys.usb.ffs.max_read 524288
+    mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
     setprop sys.usb.mtp.device_type 3
     setprop sys.usb.configfs 1
     setprop sys.usb.controller "dummy_udc.0"
     write /sys/module/libcomposite/parameters/disable_l1_for_hs "y"
 
-on property:sys.usb.ffs.mtp.ready=1 && property:sys.usb.config=mtp && property:sys.usb.configfs=1
+on property:sys.usb.config=mtp && property:sys.usb.configfs=1
     write /config/usb_gadget/g1/idProduct 0x4ee1
     symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
 
-on property:sys.usb.ffs.ready=1 && property:sys.usb.ffs.mtp.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
     write /config/usb_gadget/g1/idProduct 0x4ee2
     symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
 
@@ -68,13 +68,13 @@
     write /config/usb_gadget/g1/idProduct 0x4ee4
     symlink /config/usb_gadget/g1/functions/gsi.rndis /config/usb_gadget/g1/configs/b.1/f1
 
-on property:sys.usb.ffs.mtp.ready=1 && property:sys.usb.config=ptp && property:sys.usb.configfs=1
+on property:sys.usb.config=ptp && property:sys.usb.configfs=1
     write /config/usb_gadget/g1/idProduct 0x4ee5
-    symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+    symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
 
-on property:sys.usb.ffs.ready=1 && property:sys.usb.ffs.mtp.ready=1 && property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
     write /config/usb_gadget/g1/idProduct 0x4ee6
-    symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
+    symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1
 
 on property:sys.usb.config=adb && property:sys.usb.configfs=1
     write /config/usb_gadget/g1/idProduct 0x4ee7
diff --git a/shared/config/init.vsoc.rc b/shared/config/init.vsoc.rc
index 853e3c8..fe5734b 100644
--- a/shared/config/init.vsoc.rc
+++ b/shared/config/init.vsoc.rc
@@ -8,33 +8,35 @@
     mkdir /var/run/system 0755 system root
     mkdir /dev/gce 0750
     chown system system /dev/gce
-    write /dev/userspace_framebuffer 0
-    chown system system /dev/userspace_framebuffer
-    chmod 0660 /dev/userspace_framebuffer
-    restorecon /dev/userspace_framebuffer
-    write /dev/framebuffer_control 0
-    chown system system /dev/framebuffer_control
-    chmod 0660 /dev/framebuffer_control
-    restorecon /dev/framebuffer_control
 
     mount debugfs debugfs /sys/kernel/debug
     chmod 0755 /sys/kernel/debug
-
+    setprop service.adb.tcp.port 5555
+    setprop ro.sf.lcd_density ${ro.boot.lcd_density}
 
 on init
-    chown system root /dev/fb_broadcast
-    chmod 0660 /dev/fb_broadcast
-    restorecon /dev/fb_broadcast
     chown system root /dev/input_events
     chmod 0660 /dev/input_events
     restorecon /dev/input_events
+    chown radio root /dev/ril
+    chmod 0660 /dev/ril
+    restorecon /dev/ril
+    chown audioserver root /dev/audio_data
+    chmod 0660 /dev/audio_data
+    restorecon /dev/audio_data
+    chown system root /dev/screen
+    chmod 0660 /dev/screen
+    restorecon /dev/screen
 
 
 on fs
-    mount_all /fstab.${ro.hardware}
+    mount_all /vendor/etc/fstab.${ro.hardware}
     wait /vendor/etc/selinux/nonplat_mac_permissions.xml
     restorecon_recursive /vendor
 
+    # works around framework netiface enumeration issue
+    start rename_eth0
+
     # TODO(ender): Find better way to talk to serial port.
     chmod 622 /dev/kmsg
 
@@ -57,24 +59,29 @@
     mkdir /data/dalvik-cache/x86 0771 root system
     mkdir /data/misc/dhcp-6.8.2 0755 dhcp root
     start gce_fs_monitor
-    start seriallogging
+    start vport_trigger
 
 
 on early-boot
     start vsoc_input_service
-    start vnc_server
 
 
 on boot
     chmod 0660 /dev/cpuctl
-    mkdir /data/misc/wifi 0770 system wifi
-    mkdir /data/misc/wifi/sockets 0770 system wifi
+    mkdir /data/vendor/wifi 0770 wifi wifi
+    mkdir /data/vendor/wifi/wpa 0770 wifi wifi
+    mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
+    start socket_forward_proxy
 
     # TODO(ender): Re-enable these
     # Compass.
     stop akmd
 
 
+service rename_eth0 /vendor/bin/rename_netiface eth0 rmnet0
+    oneshot
+
+
 service vsoc_guest_region_e2e_test /vendor/bin/vsoc_guest_region_e2e_test
     user root
     group shell
@@ -85,18 +92,32 @@
     oneshot
 
 
-service vnc_server /vendor/bin/vnc_server
+service socket_forward_proxy /vendor/bin/socket_forward_proxy
+
+
+service vport_trigger /vendor/bin/vport_trigger
     oneshot
 
 
+on property:sys.cf.ser.cf-logcat=*
+    symlink ${sys.cf.ser.cf-logcat} /dev/cf-logcat
+    enable seriallogging
+
+
+on property:sys.cf.ser.cf-gadget-usb-v1=*
+    symlink ${sys.cf.ser.cf-gadget-usb-v1} /dev/cf-gadget-usb-v1
+    enable usbforward
+
+
 service seriallogging /system/bin/logcat -b all -v threadtime -f /dev/cf-logcat *:V
     class main
     user root
     disabled
 
 
-service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
-    -Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf -g@android:wpa_wlan0
+service wpa_supplicant /vendor/bin/hw/wpa_supplicant -g@android:wpa_wlan0
+    interface android.hardware.wifi.supplicant@1.0::ISupplicant default
+    interface android.hardware.wifi.supplicant@1.1::ISupplicant default
     socket wpa_wlan0 dgram 660 wifi wifi
     group system wifi inet
     disabled
@@ -112,20 +133,16 @@
 service usbforward /vendor/bin/usbforward /dev/cf-gadget-usb-v1
     class late_start
     user root
+    disabled
 
 
-service wifirouter /vendor/bin/wifirouter
-    class main
-    user root
-
-
-service wificlient /vendor/bin/wificlient -iface=wlan0 -macaddr=00:43:56:44:01:02
+service wifi_relay /vendor/bin/wifi_relay
     class late_start
     user root
 
+
 service bugreport /system/bin/dumpstate -d -p -B -z -o /sdcard/bugreport
     class main
     disabled
     oneshot
     keycodes 30 48
-
diff --git a/shared/config/manifest.xml b/shared/config/manifest.xml
index 3bcefa9..26e3314 100644
--- a/shared/config/manifest.xml
+++ b/shared/config/manifest.xml
@@ -16,11 +16,11 @@
 ** limitations under the License.
 */
 -->
-<manifest version="1.0" type="device">
+<manifest version="1.0" type="device" target-level="1">
     <hal format="hidl">
         <name>android.hardware.audio</name>
         <transport>hwbinder</transport>
-        <version>2.0</version>
+        <version>4.0</version>
         <interface>
             <name>IDevicesFactory</name>
             <instance>default</instance>
@@ -29,7 +29,7 @@
     <hal format="hidl">
         <name>android.hardware.audio.effect</name>
         <transport>hwbinder</transport>
-        <version>2.0</version>
+        <version>4.0</version>
         <interface>
             <name>IEffectsFactory</name>
             <instance>default</instance>
@@ -94,6 +94,15 @@
         </interface>
     </hal>
     <hal format="hidl">
+        <name>android.hardware.gatekeeper</name>
+        <transport>hwbinder</transport>
+        <version>1.0</version>
+        <interface>
+            <name>IGatekeeper</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
+    <hal format="hidl">
         <name>android.hardware.gnss</name>
         <transport>hwbinder</transport>
         <version>1.0</version>
diff --git a/shared/device.mk b/shared/device.mk
index d79c3a3..300792c 100644
--- a/shared/device.mk
+++ b/shared/device.mk
@@ -16,10 +16,13 @@
 
 PRODUCT_COPY_FILES += device/google/cuttlefish_kernel/4.4-x86_64/kernel:kernel
 
+PRODUCT_SHIPPING_API_LEVEL := 26
+
 # Explanation of specific properties:
 #   debug.hwui.swap_with_damage avoids boot failure on M http://b/25152138
 #   ro.opengles.version OpenGLES 2.0
 PRODUCT_PROPERTY_OVERRIDES += \
+    tombstoned.max_tombstone_count=500 \
     debug.hwui.swap_with_damage=0 \
     ro.adb.qemud=0 \
     ro.carrier=unknown \
@@ -47,7 +50,8 @@
 # Packages for various cuttlefish-specific tests
 #
 PRODUCT_PACKAGES += \
-    vsoc_guest_region_e2e_test
+    vsoc_guest_region_e2e_test \
+    vsoc_driver_test
 
 #
 # Packages for various GCE-specific utilities
@@ -56,13 +60,14 @@
     audiotop \
     dhcpcd_wlan0 \
     gce_fs_monitor \
+    socket_forward_proxy \
     usbforward \
-    vnc_server \
     VSoCService \
-    wifirouter \
-    wificlient \
+    wifi_relay \
     wpa_supplicant.vsoc.conf \
-    vsoc_input_service
+    vsoc_input_service \
+    vport_trigger \
+    rename_netiface
 
 #
 # Packages for AOSP-available stuff we use from the framework
@@ -91,7 +96,7 @@
 
 DEVICE_PACKAGE_OVERLAYS := device/google/cuttlefish/shared/overlay
 PRODUCT_AAPT_CONFIG := normal large xlarge hdpi xhdpi
-PRODUCT_AAPT_PREF_CONFIG := xhdpi
+# PRODUCT_AAPT_PREF_CONFIG is intentionally not set to pick up every density resources.
 
 #
 # General files
@@ -104,7 +109,7 @@
     device/google/cuttlefish/shared/config/media_codecs_performance.xml:system/etc/media_codecs_performance.xml \
     device/google/cuttlefish/shared/config/media_profiles.xml:system/etc/media_profiles.xml \
     device/google/cuttlefish/shared/config/profile.root:root/profile \
-    device/google/cuttlefish/shared/config/fstab.vsoc:root/fstab.vsoc \
+    device/google/cuttlefish/shared/config/fstab.vsoc:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.vsoc \
     frameworks/av/media/libeffects/data/audio_effects.conf:system/etc/audio_effects.conf \
     frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
     frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
@@ -139,65 +144,6 @@
 PRODUCT_COPY_FILES += \
     device/google/cuttlefish/shared/config/init.hardware.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.vsoc.usb.rc
 
-
-#
-# Files for the VNC server
-#
-PRODUCT_COPY_FILES += \
-    external/libvncserver/webclients/novnc/images/drag.png:system/etc/novnc/images/drag.png \
-    external/libvncserver/webclients/novnc/images/screen_700x700.png:system/etc/novnc/images/screen_700x700.png \
-    external/libvncserver/webclients/novnc/images/keyboard.png:system/etc/novnc/images/keyboard.png \
-    external/libvncserver/webclients/novnc/images/favicon.png:system/etc/novnc/images/favicon.png \
-    external/libvncserver/webclients/novnc/images/power.png:system/etc/novnc/images/power.png \
-    external/libvncserver/webclients/novnc/images/mouse_none.png:system/etc/novnc/images/mouse_none.png \
-    external/libvncserver/webclients/novnc/images/esc.png:system/etc/novnc/images/esc.png \
-    external/libvncserver/webclients/novnc/images/connect.png:system/etc/novnc/images/connect.png \
-    external/libvncserver/webclients/novnc/images/showextrakeys.png:system/etc/novnc/images/showextrakeys.png \
-    external/libvncserver/webclients/novnc/images/mouse_right.png:system/etc/novnc/images/mouse_right.png \
-    external/libvncserver/webclients/novnc/images/favicon.ico:system/etc/novnc/images/favicon.ico \
-    external/libvncserver/webclients/novnc/images/ctrlaltdel.png:system/etc/novnc/images/ctrlaltdel.png \
-    external/libvncserver/webclients/novnc/images/tab.png:system/etc/novnc/images/tab.png \
-    external/libvncserver/webclients/novnc/images/mouse_left.png:system/etc/novnc/images/mouse_left.png \
-    external/libvncserver/webclients/novnc/images/ctrl.png:system/etc/novnc/images/ctrl.png \
-    external/libvncserver/webclients/novnc/images/screen_320x460.png:system/etc/novnc/images/screen_320x460.png \
-    external/libvncserver/webclients/novnc/images/alt.png:system/etc/novnc/images/alt.png \
-    external/libvncserver/webclients/novnc/images/disconnect.png:system/etc/novnc/images/disconnect.png \
-    external/libvncserver/webclients/novnc/images/settings.png:system/etc/novnc/images/settings.png \
-    external/libvncserver/webclients/novnc/images/screen_57x57.png:system/etc/novnc/images/screen_57x57.png \
-    external/libvncserver/webclients/novnc/images/mouse_middle.png:system/etc/novnc/images/mouse_middle.png \
-    external/libvncserver/webclients/novnc/images/clipboard.png:system/etc/novnc/images/clipboard.png \
-    external/libvncserver/webclients/novnc/LICENSE.txt:system/etc/novnc/LICENSE.txt \
-    external/libvncserver/webclients/novnc/include/display.js:system/etc/novnc/include/display.js \
-    external/libvncserver/webclients/novnc/include/des.js:system/etc/novnc/include/des.js \
-    external/libvncserver/webclients/novnc/include/Orbitron700.woff:system/etc/novnc/include/Orbitron700.woff \
-    external/libvncserver/webclients/novnc/include/websock.js:system/etc/novnc/include/websock.js \
-    external/libvncserver/webclients/novnc/include/base64.js:system/etc/novnc/include/base64.js \
-    external/libvncserver/webclients/novnc/include/chrome-app/tcp-client.js:system/etc/novnc/include/chrome-app/tcp-client.js \
-    external/libvncserver/webclients/novnc/include/keyboard.js:system/etc/novnc/include/keyboard.js \
-    external/libvncserver/webclients/novnc/include/util.js:system/etc/novnc/include/util.js \
-    external/libvncserver/webclients/novnc/include/jsunzip.js:system/etc/novnc/include/jsunzip.js \
-    external/libvncserver/webclients/novnc/include/playback.js:system/etc/novnc/include/playback.js \
-    external/libvncserver/webclients/novnc/include/base.css:system/etc/novnc/include/base.css \
-    external/libvncserver/webclients/novnc/include/webutil.js:system/etc/novnc/include/webutil.js \
-    external/libvncserver/webclients/novnc/include/logo.js:system/etc/novnc/include/logo.js \
-    external/libvncserver/webclients/novnc/include/black.css:system/etc/novnc/include/black.css \
-    external/libvncserver/webclients/novnc/include/ui.js:system/etc/novnc/include/ui.js \
-    external/libvncserver/webclients/novnc/include/keysym.js:system/etc/novnc/include/keysym.js \
-    external/libvncserver/webclients/novnc/include/Orbitron700.ttf:system/etc/novnc/include/Orbitron700.ttf \
-    external/libvncserver/webclients/novnc/include/web-socket-js/web_socket.js:system/etc/novnc/include/web-socket-js/web_socket.js \
-    external/libvncserver/webclients/novnc/include/web-socket-js/WebSocketMain.swf:system/etc/novnc/include/web-socket-js/WebSocketMain.swf \
-    external/libvncserver/webclients/novnc/include/web-socket-js/swfobject.js:system/etc/novnc/include/web-socket-js/swfobject.js \
-    external/libvncserver/webclients/novnc/include/rfb.js:system/etc/novnc/include/rfb.js \
-    external/libvncserver/webclients/novnc/include/vnc.js:system/etc/novnc/include/vnc.js \
-    external/libvncserver/webclients/novnc/include/input.js:system/etc/novnc/include/input.js \
-    external/libvncserver/webclients/novnc/include/keysymdef.js:system/etc/novnc/include/keysymdef.js \
-    external/libvncserver/webclients/novnc/include/blue.css:system/etc/novnc/include/blue.css \
-    external/libvncserver/webclients/novnc/vnc_auto.html:system/etc/novnc/vnc_auto.html \
-    external/libvncserver/webclients/novnc/vnc.html:system/etc/novnc/vnc.html
-
-# Product full Treble requirements
-PRODUCT_ENFORCE_VINTF_MANIFEST_OVERRIDE := true
-
 # Packages for HAL implementations
 
 #
@@ -230,8 +176,8 @@
 #
 PRODUCT_PACKAGES += \
     audio.primary.vsoc \
-    android.hardware.audio@2.0-impl \
-    android.hardware.audio.effect@2.0-impl \
+    android.hardware.audio@4.0-impl \
+    android.hardware.audio.effect@4.0-impl \
     android.hardware.audio@2.0-service
 
 #
@@ -258,6 +204,14 @@
     android.hardware.camera.provider@2.4-service
 
 #
+# Gatekeeper
+#
+PRODUCT_PACKAGES += \
+    gatekeeper.vsoc \
+    android.hardware.gatekeeper@1.0-impl \
+    android.hardware.gatekeeper@1.0-service
+
+#
 # GPS
 #
 PRODUCT_PACKAGES += \
@@ -265,11 +219,9 @@
     android.hardware.gnss@1.0-impl \
     android.hardware.gnss@1.0-service
 
-#
 # Health
-#
 PRODUCT_PACKAGES += \
-    android.hardware.health@2.0-service
+    android.hardware.health@2.0-service.cuttlefish
 
 #
 # Sensors
@@ -311,4 +263,8 @@
 # TODO thermal
 
 PRODUCT_PACKAGES += \
-    vsoc_mem_json
+    cuttlefish_dtb
+
+# 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/phone/device.mk b/shared/phone/device.mk
index 440e3e2..2b77504 100644
--- a/shared/phone/device.mk
+++ b/shared/phone/device.mk
@@ -21,16 +21,15 @@
 PRODUCT_CHARACTERISTICS := nosdcard
 
 PRODUCT_PROPERTY_OVERRIDES += \
-    gsm.sim.operator.alpha=Android \
-    gsm.sim.operator.iso-country=us \
-    gsm.sim.operator.numeric=310260 \
     keyguard.no_require_sim=true \
     rild.libpath=libvsoc-ril.so \
     ro.cdma.home.operator.alpha=Android \
-    ro.cdma.home.operator.numeric=310260 \
-    ro.com.android.dataroaming=true \
+    ro.cdma.home.operator.numeric=302780 \
     ro.gsm.home.operator.alpha=Android \
-    ro.gsm.home.operator.numeric=310260 \
+    ro.gsm.home.operator.numeric=302780 \
+    gsm.sim.operator.numeric=302780 \
+    gsm.sim.operator.alpha=Android \
+    gsm.sim.operator.iso-country=us
 
 PRODUCT_PACKAGES += \
     MmsService \
@@ -42,7 +41,4 @@
     rild \
 
 PRODUCT_COPY_FILES += \
-    device/google/cuttlefish/shared/config/apns-conf.xml:system/etc/apns-conf.xml \
-    device/google/cuttlefish/shared/config/spn-conf.xml:system/etc/spn-conf.xml \
-    frameworks/native/data/etc/android.hardware.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml \
-
+    frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml
diff --git a/shared/sepolicy/device.te b/shared/sepolicy/device.te
index d00e56c..24c317f 100644
--- a/shared/sepolicy/device.te
+++ b/shared/sepolicy/device.te
@@ -1,3 +1,4 @@
 # Device types
 type region_e2e_test_device, dev_type;
 type virtual_serial_device, dev_type;
+type region_screen_device, dev_type;
\ No newline at end of file
diff --git a/shared/sepolicy/file.te b/shared/sepolicy/file.te
index bbbe4aa..fa8ea02 100644
--- a/shared/sepolicy/file.te
+++ b/shared/sepolicy/file.te
@@ -1,9 +1,5 @@
 # File types
-type fb_ctl_file, file_type;
 type initial_metadata_file, file_type;
 type sensors_hal_socket, file_type;
-# USB related portion of sysfs requiring privileged access, as opposed to sysfs_usb which is
-type sysfs_usb_priv, sysfs_type, file_type;
 type tombstone_snapshot_file, file_type;
-type userspace_fb_file, file_type;
 type var_run_system_file, file_type;
diff --git a/shared/sepolicy/file_contexts b/shared/sepolicy/file_contexts
index 0a46e4b..c08de58 100644
--- a/shared/sepolicy/file_contexts
+++ b/shared/sepolicy/file_contexts
@@ -5,8 +5,7 @@
 /dev/e2e_manager                   u:object_r:region_e2e_test_device:s0
 /dev/e2e_primary                   u:object_r:region_e2e_test_device:s0
 /dev/e2e_secondary                 u:object_r:region_e2e_test_device:s0
-/dev/framebuffer_control           u:object_r:fb_ctl_file:s0
-/dev/userspace_framebuffer         u:object_r:userspace_fb_file:s0
+/dev/screen                        u:object_r:region_screen_device:s0
 /dev/vport[0-9]p[0-9]*             u:object_r:virtual_serial_device:s0
 
 #############################
@@ -19,20 +18,16 @@
 /var/run/system(/.*)?              u:object_r:var_run_system_file:s0
 
 #############################
-# sysfs files
-#
-/sys/bus/usb(/.*)?                             u:object_r:sysfs_usb_priv:s0
-/sys/devices/platform/dummy_hcd\.[0-9](/.*)?   u:object_r:sysfs_usb_priv:s0
-
-#############################
 # Vendor files
 #
 /vendor/bin/gce_fs_monitor  u:object_r:gce_fs_monitor_exec:s0
 /vendor/bin/usbforward  u:object_r:usbforward_exec:s0
-/vendor/bin/vnc_server  u:object_r:vnc_server_exec:s0
+/vendor/bin/socket_forward_proxy  u:object_r:socket_forward_proxy_exec:s0
 /vendor/bin/vsoc_input_service  u:object_r:vsoc_input_service_exec:s0
 /vendor/bin/vsoc_guest_region_e2e_test  u:object_r:vsoc_guest_region_e2e_test_exec:s0
-/vendor/bin/wificlient  u:object_r:wificlient_exec:s0
-/vendor/bin/wifirouter  u:object_r:wifirouter_exec:s0
+/vendor/bin/wifi_relay  u:object_r:wifi_relay_exec:s0
+/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/android\.hardware\.bluetooth@1\.0-service\.sim             u:object_r:hal_bluetooth_sim_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\.health@2\.0-service.cuttlefish          u:object_r:hal_health_default_exec:s0
diff --git a/shared/sepolicy/gceservice.te b/shared/sepolicy/gceservice.te
index a4b8db7..4881309 100644
--- a/shared/sepolicy/gceservice.te
+++ b/shared/sepolicy/gceservice.te
@@ -5,9 +5,6 @@
 # Use system services exposed as part of Android framework public API
 allow gceservice app_api_service:service_manager find;
 
-# Export Binder service called "gce". Needed to make "dumpsys gce" work.
-add_service(gceservice, gce_service)
-
 # Read and write /data/data subdirectory (for its app-private persistent data).
 allow gceservice app_data_file:dir create_dir_perms;
 allow gceservice app_data_file:{ file lnk_file } create_file_perms;
diff --git a/shared/sepolicy/hal_graphics_allocator.te b/shared/sepolicy/hal_graphics_allocator.te
index ca372da..3136386 100644
--- a/shared/sepolicy/hal_graphics_allocator.te
+++ b/shared/sepolicy/hal_graphics_allocator.te
@@ -3,8 +3,4 @@
 
 # Read GCE initial metadata file
 allow hal_graphics_allocator_server initial_metadata_file:file r_file_perms;
-
-# Interact with the userspace framebuffer
-# TODO(b/64158954): Remove/update these	rules once gralloc impl	changes
-allow hal_graphics_allocator_server fb_ctl_file:file rw_file_perms;
-allow hal_graphics_allocator_server userspace_fb_file:file rw_file_perms;
+allow hal_graphics_allocator_server region_screen_device:chr_file rw_file_perms;
diff --git a/shared/sepolicy/hal_graphics_composer.te b/shared/sepolicy/hal_graphics_composer.te
index d98dbe8..089e59d 100644
--- a/shared/sepolicy/hal_graphics_composer.te
+++ b/shared/sepolicy/hal_graphics_composer.te
@@ -1,2 +1,2 @@
 allow hal_graphics_composer_server hal_graphics_allocator_default_tmpfs:file read;
-allow hal_graphics_composer_server userspace_fb_file:file ioctl;
+allow hal_graphics_composer_server region_screen_device:chr_file rw_file_perms;
diff --git a/shared/sepolicy/property_contexts b/shared/sepolicy/property_contexts
new file mode 100644
index 0000000..fc2a087
--- /dev/null
+++ b/shared/sepolicy/property_contexts
@@ -0,0 +1 @@
+sys.cf.ser.  u:object_r:sys_cf_ser_prop:s0
diff --git a/shared/sepolicy/rename_netiface.te b/shared/sepolicy/rename_netiface.te
new file mode 100644
index 0000000..1ec0f06
--- /dev/null
+++ b/shared/sepolicy/rename_netiface.te
@@ -0,0 +1,10 @@
+type rename_netiface, domain;
+type rename_netiface_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(rename_netiface)
+
+allow rename_netiface self:capability { net_admin net_raw sys_module };
+allow rename_netiface self:udp_socket { create ioctl };
+allow rename_netiface self:netlink_route_socket { bind create nlmsg_write read write };
+
+allow rename_netiface kernel:system module_request;
diff --git a/shared/sepolicy/socket_forward_proxy.te b/shared/sepolicy/socket_forward_proxy.te
new file mode 100644
index 0000000..50f688d
--- /dev/null
+++ b/shared/sepolicy/socket_forward_proxy.te
@@ -0,0 +1,5 @@
+type socket_forward_proxy, domain;
+type socket_forward_proxy_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(socket_forward_proxy)
+
diff --git a/shared/sepolicy/surfaceflinger.te b/shared/sepolicy/surfaceflinger.te
index e8edaf5..877d012 100644
--- a/shared/sepolicy/surfaceflinger.te
+++ b/shared/sepolicy/surfaceflinger.te
@@ -2,8 +2,3 @@
 
 # Read GCE initial metadata file
 allow surfaceflinger initial_metadata_file:file r_file_perms;
-
-# Interact with the userspace framebuffer
-# TODO(b/64158954): Remove/update these rules once gralloc impl changes
-allow surfaceflinger fb_ctl_file:file rw_file_perms;
-allow surfaceflinger userspace_fb_file:file rw_file_perms;
diff --git a/shared/sepolicy/system_server.te b/shared/sepolicy/system_server.te
index ff7e962..c4b3729 100644
--- a/shared/sepolicy/system_server.te
+++ b/shared/sepolicy/system_server.te
@@ -1,4 +1,8 @@
-# TODO(b/65062047): Remove these rules (incl. the two file type definitions) once vnc_server is gone
-# Create /var/run/system directory and sensors_hal_socket socket in the directory.
-allow system_server var_run_system_file:dir w_dir_perms;
-type_transition system_server var_run_system_file:sock_file sensors_hal_socket;
+# TODO(b/65201432): Switch into enforcing mode once execmem issue due to OpenGL is resolved. Also
+# remove the corresponding dontaudit.
+# The current (at the time of writing) implementation of OpenGL needs to create executable memory.
+# Unfortunately, we cannot grant execmem power using an allow rule because global policy
+# (system/sepolicy) contains a corresponding neverallow which would cause build-time errors if the
+# allow execmem rule were added here.
+permissive system_server;
+dontaudit system_server self:process execmem;
diff --git a/shared/sepolicy/usbforward.te b/shared/sepolicy/usbforward.te
index 55a925d..6d0833e 100644
--- a/shared/sepolicy/usbforward.te
+++ b/shared/sepolicy/usbforward.te
@@ -10,10 +10,7 @@
 allow usbforward usb_device:dir r_dir_perms;
 allow usbforward usb_device:chr_file rw_file_perms;
 
-# /sys/bus/usb/devices, /sys/devices/platform/dummy_hcd.0/usb1/1-1/busnum
-r_dir_file(usbforward, sysfs_usb_priv)
 # Read /sys/devices/platform/dummy_hcd.0/usb1/1-1/speed. Although this file is labelled
-# sysfs_usb_priv, during adb root and adb unroot usbforward sees the file as sysfs.
 # It is acceptable to give usbforward this wide access because usbforward is not a stock Android
 # domain and it does not run Android apps. Thus, the laxer access restrictions of this domain
 # do not impact how compatible the resulting Android emulator appears to system services and apps.
diff --git a/shared/sepolicy/vnc_server.te b/shared/sepolicy/vnc_server.te
deleted file mode 100644
index 7e0c140..0000000
--- a/shared/sepolicy/vnc_server.te
+++ /dev/null
@@ -1,22 +0,0 @@
-type vnc_server, domain;
-type vnc_server_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vnc_server)
-
-# Access to netd and network over TCP/UDP sockets
-net_domain(vnc_server)
-allow vnc_server self:capability net_raw;
-
-# Read GCE initial metadata file
-allow vnc_server initial_metadata_file:file r_file_perms;
-
-# Framebuffer I/O
-allow vnc_server fb_ctl_file:file rw_file_perms;
-allow vnc_server userspace_fb_file:file rw_file_perms;
-
-# TODO(b/65062047): Remove these rules (incl. the two file type definitions) once vnc_server is gone
-# I/O with system_server via sensors_hal_socket Unix domain socket. Needed for orientation changes.
-unix_socket_connect(vnc_server, sensors_hal, hal_sensors_server)
-# For some reason vnc_server attempts a search of /var/run/system directory instead of going
-# straight for opening the sensors_hal_socket
-allow vnc_server var_run_system_file:dir search;
diff --git a/shared/sepolicy/vport_trigger.te b/shared/sepolicy/vport_trigger.te
new file mode 100644
index 0000000..4a2e874
--- /dev/null
+++ b/shared/sepolicy/vport_trigger.te
@@ -0,0 +1,10 @@
+type vport_trigger, domain;
+type vport_trigger_exec, exec_type, vendor_file_type, file_type;
+
+type sys_cf_ser_prop, property_type;
+
+init_daemon_domain(vport_trigger)
+
+r_dir_file(vport_trigger, sysfs_type)
+
+set_prop(vport_trigger, sys_cf_ser_prop)
diff --git a/shared/sepolicy/vsoc_input_service.te b/shared/sepolicy/vsoc_input_service.te
index b5d463f..5b7d41c 100644
--- a/shared/sepolicy/vsoc_input_service.te
+++ b/shared/sepolicy/vsoc_input_service.te
@@ -7,5 +7,4 @@
 allow vsoc_input_service uhid_device:chr_file rw_file_perms;
 
 # Framebuffer I/O (needed to obtain the screen size)
-allow vsoc_input_service fb_ctl_file:file rw_file_perms;
-allow vsoc_input_service userspace_fb_file:file rw_file_perms;
+allow vsoc_input_service region_screen_device:chr_file rw_file_perms;
diff --git a/shared/sepolicy/wifi_relay.te b/shared/sepolicy/wifi_relay.te
new file mode 100644
index 0000000..1d2c122
--- /dev/null
+++ b/shared/sepolicy/wifi_relay.te
@@ -0,0 +1,5 @@
+type wifi_relay, domain;
+type wifi_relay_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(wifi_relay)
+allow wifi_relay self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
diff --git a/shared/sepolicy/wificlient.te b/shared/sepolicy/wificlient.te
deleted file mode 100644
index 45a0d60..0000000
--- a/shared/sepolicy/wificlient.te
+++ /dev/null
@@ -1,5 +0,0 @@
-type wificlient, domain;
-type wificlient_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(wificlient)
-allow wificlient self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
diff --git a/shared/sepolicy/wifirouter.te b/shared/sepolicy/wifirouter.te
deleted file mode 100644
index d9881d5..0000000
--- a/shared/sepolicy/wifirouter.te
+++ /dev/null
@@ -1,5 +0,0 @@
-type wifirouter, domain;
-type wifirouter_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(wifirouter)
-allow wifirouter self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
diff --git a/shared/sepolicy/zygote.te b/shared/sepolicy/zygote.te
new file mode 100644
index 0000000..38b67e0
--- /dev/null
+++ b/shared/sepolicy/zygote.te
@@ -0,0 +1,3 @@
+# TODO(b/65201432): Remove once execmem issue due to OpenGL is resolved.
+# external/swiftshader commit 10e1f74a65e44daafb6c8f3b10ee69d39a6ca024 triggers execmem in zygote
+allow zygote self:process execmem;
diff --git a/shared/tablet_3g/device.mk b/shared/tablet_3g/device.mk
index dec346d..917945c 100644
--- a/shared/tablet_3g/device.mk
+++ b/shared/tablet_3g/device.mk
@@ -21,16 +21,15 @@
 PRODUCT_CHARACTERISTICS := tablet,nosdcard
 
 PRODUCT_PROPERTY_OVERRIDES += \
-    gsm.sim.operator.alpha=Android \
-    gsm.sim.operator.iso-country=us \
-    gsm.sim.operator.numeric=310260 \
     keyguard.no_require_sim=true \
     rild.libpath=libvsoc-ril.so \
     ro.cdma.home.operator.alpha=Android \
-    ro.cdma.home.operator.numeric=310260 \
-    ro.com.android.dataroaming=true \
+    ro.cdma.home.operator.numeric=302780 \
     ro.gsm.home.operator.alpha=Android \
-    ro.gsm.home.operator.numeric=310260 \
+    ro.gsm.home.operator.numeric=302780 \
+    gsm.sim.operator.numeric=302780 \
+    gsm.sim.operator.alpha=Android \
+    gsm.sim.operator.iso-country=us \
 
 PRODUCT_PACKAGES += \
     MmsService \
@@ -42,8 +41,4 @@
     rild \
 
 PRODUCT_COPY_FILES += \
-    device/google/cuttlefish/shared/config/apns-conf.xml:system/etc/apns-conf.xml \
-    device/google/cuttlefish/shared/config/spn-conf.xml:system/etc/spn-conf.xml \
-    frameworks/native/data/etc/android.hardware.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml \
-
-
+    frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml
diff --git a/shared/wpa_supplicant_overlay.conf b/shared/wpa_supplicant_overlay.conf
new file mode 100644
index 0000000..e1f530d
--- /dev/null
+++ b/shared/wpa_supplicant_overlay.conf
@@ -0,0 +1,3 @@
+disable_scan_offload=1
+p2p_disabled=1
+tdls_external_control=1
diff --git a/vsoc_x86/BoardConfig.mk b/vsoc_x86/BoardConfig.mk
index 03d5ca2..1450fcb 100644
--- a/vsoc_x86/BoardConfig.mk
+++ b/vsoc_x86/BoardConfig.mk
@@ -20,8 +20,15 @@
 
 -include device/google/cuttlefish/shared/BoardConfig.mk
 
+TARGET_BOOTLOADER_BOARD_NAME := vsoc_x86
+TARGET_BOARD_PLATFORM := vsoc_x86
 TARGET_ARCH := x86
 TARGET_ARCH_VARIANT := x86
+TARGET_2ND_ARCH := arm
+TARGET_TRANSLATE_2ND_ARCH := true
 TARGET_CPU_ABI := x86
+TARGET_2ND_CPU_ABI := armeabi-v7a
+TARGET_2ND_CPU_ABI2 := armeabi
+TARGET_2ND_ARCH_VARIANT := armv7-a-neon
 TARGET_2ND_CPU_VARIANT := generic
 
diff --git a/vsoc_x86/tablet_3g/overlay/frameworks/base/core/res/res/values/config.xml b/vsoc_x86/tablet_3g/overlay/frameworks/base/core/res/res/values/config.xml
index 522712d..2e94ba8 100644
--- a/vsoc_x86/tablet_3g/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/vsoc_x86/tablet_3g/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,,,,,,,,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">true</bool>
diff --git a/vsoc_x86_64/BoardConfig.mk b/vsoc_x86_64/BoardConfig.mk
index 5f80634..5ff3c32 100644
--- a/vsoc_x86_64/BoardConfig.mk
+++ b/vsoc_x86_64/BoardConfig.mk
@@ -20,6 +20,8 @@
 
 -include device/google/cuttlefish/shared/BoardConfig.mk
 
+TARGET_BOOTLOADER_BOARD_NAME := vsoc_x86_64
+TARGET_BOARD_PLATFORM := vsoc_x86_64
 TARGET_ARCH := x86_64
 TARGET_ARCH_VARIANT := silvermont
 TARGET_CPU_ABI := x86_64
@@ -29,4 +31,5 @@
 TARGET_2ND_CPU_ABI2 := x86
 TARGET_2ND_ARCH_VARIANT := silvermont
 TARGET_2ND_CPU_VARIANT := silvermont
+TARGET_TRANSLATE_2ND_ARCH := false
 
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 f020ab2..149279a 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
@@ -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,,,,,,,,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">true</bool>