Merge "Set up IRadioConfig 1.3"
diff --git a/CleanSpec.mk b/CleanSpec.mk
index a3eb81c..b72c9d0 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -54,3 +54,6 @@
 
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.health@2.0-service.cuttlefish)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/init/android.hardware.health@2.0-service.cuttlefish.rc)
+
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/init/android.hardware.keymaster@4.0-service)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/init/android.hardware.keymaster@4.0-service.rc)
diff --git a/host_package.mk b/host_package.mk
index 5aa22ab..2681d11 100644
--- a/host_package.mk
+++ b/host_package.mk
@@ -18,19 +18,15 @@
 cvd_host_executables := \
     adb \
     adbshell \
-    host_region_e2e_test \
     launch_cvd \
     lpmake \
     lpunpack \
-    socket_forward_proxy \
     socket_vsock_proxy \
     adb_connector \
     stop_cvd \
     vnc_server \
-    record_audio \
     cf_qemu.sh \
     cf_bpttool \
-    ivserver \
     virtual_usb_manager \
     kernel_log_monitor \
     extract-vmlinux \
@@ -54,20 +50,13 @@
     cvd_status \
 
 cvd_host_tests := \
-    auto_free_buffer_test \
-    circqueue_test \
     cuttlefish_thread_test \
-    hald_client_test \
-    lock_test \
     monotonic_time_test \
-    vsoc_graphics_test \
     cuttlefish_net_tests \
 
 cvd_host_shared_libraries := \
     libbase.so \
-    vsoc_lib.so \
     libcuttlefish_fs.so \
-    cuttlefish_auto_resources.so \
     libcuttlefish_strings.so \
     libcuttlefish_utils.so \
     cuttlefish_tcp_socket.so \
diff --git a/shared/BoardConfig.mk b/shared/BoardConfig.mk
index f862dfe..f4cded4 100644
--- a/shared/BoardConfig.mk
+++ b/shared/BoardConfig.mk
@@ -151,6 +151,7 @@
 # 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_KERNEL_CMDLINE += firmware_class.path=/vendor/etc/
 
 BOARD_INCLUDE_DTB_IN_BOOTIMG := true
 BOARD_BOOT_HEADER_VERSION := 3
@@ -158,3 +159,4 @@
 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/config/fstab b/shared/config/fstab
index 234e01b..1016b62 100644
--- a/shared/config/fstab
+++ b/shared/config/fstab
@@ -1,7 +1,7 @@
 boot /boot emmc defaults recoveryonly
 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/userdata /data ext4 nodev,noatime,nosuid,errors=panic wait,fileencryption=aes-256-xts:aes-256-cts,fsverity
 /dev/block/by-name/metadata /metadata ext4 nodev,noatime,nosuid,errors=panic wait,formattable,first_stage_mount
 /dev/block/by-name/cache /cache ext4 nodev,noatime,nosuid,errors=panic wait
 /dev/block/by-name/misc /misc emmc defaults defaults
diff --git a/shared/config/fstab.composite b/shared/config/fstab.composite
index f64e510..afacfe4 100644
--- a/shared/config/fstab.composite
+++ b/shared/config/fstab.composite
@@ -1,7 +1,7 @@
 boot /boot emmc defaults recoveryonly
 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/userdata /data ext4 nodev,noatime,nosuid,errors=panic wait,fileencryption=aes-256-xts:aes-256-cts,fsverity
 /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,first_stage_mount
 /dev/block/by-name/misc /misc emmc defaults defaults
diff --git a/shared/config/init.cutf_ivsh.rc b/shared/config/init.cutf_ivsh.rc
deleted file mode 100644
index 1ad69b6..0000000
--- a/shared/config/init.cutf_ivsh.rc
+++ /dev/null
@@ -1,54 +0,0 @@
-# This file should contain entries specific to the vsoc hardware only, for
-# common entries use common file instead.
-import /vendor/etc/init/hw/init.common.rc
-
-on init
-    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 early-boot
-    start vsoc_input_service
-
-
-on boot
-    start socket_forward_proxy
-
-
-on boot && property:ro.boot.vsoc_e2e_test=1
-    mkdir /data/vendor/cf-tmp
-    start vsoc_guest_region_e2e_test
-
-
-service vsoc_guest_region_e2e_test /vendor/bin/vsoc_guest_region_e2e_test /data/vendor/cf-tmp
-    user root
-    oneshot
-
-
-service vsoc_input_service /vendor/bin/vsoc_input_service
-    group root uhid
-    oneshot
-
-
-service socket_forward_proxy /vendor/bin/socket_forward_proxy
-
-
-on property:vendor.ser.cf-gadget-usb-v1=*
-    symlink ${vendor.ser.cf-gadget-usb-v1} /dev/cf-gadget-usb-v1
-    enable usbforward
-
-
-service usbforward /vendor/bin/usbforward /dev/cf-gadget-usb-v1
-    class late_start
-    user root
-    disabled
diff --git a/shared/config/manifest.xml b/shared/config/manifest.xml
index dd2fa97..51887e5 100644
--- a/shared/config/manifest.xml
+++ b/shared/config/manifest.xml
@@ -69,7 +69,7 @@
     <hal format="hidl">
         <name>android.hardware.bluetooth</name>
         <transport>hwbinder</transport>
-        <version>1.0</version>
+        <version>1.1</version>
         <interface>
             <name>IBluetoothHci</name>
             <instance>default</instance>
@@ -186,7 +186,7 @@
     <hal format="hidl">
         <name>android.hardware.keymaster</name>
         <transport>hwbinder</transport>
-        <version>4.0</version>
+        <version>4.1</version>
         <interface>
             <name>IKeymasterDevice</name>
             <instance>default</instance>
diff --git a/shared/device.mk b/shared/device.mk
index 70ae3c8..3f570b4 100644
--- a/shared/device.mk
+++ b/shared/device.mk
@@ -60,18 +60,9 @@
     wlan.driver.status=ok
 
 #
-# Packages for various cuttlefish-specific tests
-#
-PRODUCT_PACKAGES += \
-    vsoc_guest_region_e2e_test \
-    vsoc_managed_region_e2e_test \
-    vsoc_driver_test
-
-#
 # Packages for various GCE-specific utilities
 #
 PRODUCT_PACKAGES += \
-    socket_forward_proxy \
     socket_vsock_proxy \
     usbforward \
     CuttlefishService \
@@ -121,7 +112,6 @@
     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 \
     device/google/cuttlefish/shared/config/init.common.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.common.rc \
-    device/google/cuttlefish/shared/config/init.cutf_ivsh.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.cutf_ivsh.rc \
     device/google/cuttlefish/shared/config/init.cutf_cvm.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 \
@@ -214,7 +204,7 @@
 # Bluetooth HAL and Compatibility Bluetooth library (for older revs).
 #
 PRODUCT_PACKAGES += \
-    android.hardware.bluetooth@1.0-service.sim \
+    android.hardware.bluetooth@1.1-service.sim \
     android.hardware.bluetooth.audio@2.0-impl
 
 #
@@ -305,8 +295,7 @@
 # Keymaster HAL
 #
 PRODUCT_PACKAGES += \
-     android.hardware.keymaster@4.0-impl \
-     android.hardware.keymaster@4.0-service
+     android.hardware.keymaster@4.1-service
 
 #
 # Power HAL
@@ -357,7 +346,6 @@
 
 PRODUCT_COPY_FILES += \
     device/google/cuttlefish/shared/config/init.recovery.common.rc:recovery/root/init.recovery.common.rc \
-    device/google/cuttlefish/shared/config/init.recovery.cutf_ivsh.rc:recovery/root/init.recovery.cutf_ivsh.rc \
     device/google/cuttlefish/shared/config/init.recovery.cutf_cvm.rc:recovery/root/init.recovery.cutf_cvm.rc \
 
 endif
@@ -369,6 +357,6 @@
    $(LOCAL_PATH)/config/init.insmod.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.insmod.sh \
 
 # Host packages to install
-PRODUCT_HOST_PACKAGES += socket_forward_proxy socket_vsock_proxy
+PRODUCT_HOST_PACKAGES += socket_vsock_proxy
 
 PRODUCT_EXTRA_VNDK_VERSIONS := 28 29
diff --git a/shared/sepolicy/vendor/file_contexts b/shared/sepolicy/vendor/file_contexts
index 1209ec4..fd3305e 100644
--- a/shared/sepolicy/vendor/file_contexts
+++ b/shared/sepolicy/vendor/file_contexts
@@ -48,16 +48,14 @@
 # Vendor files
 #
 /vendor/bin/usbforward  u:object_r:usbforward_exec:s0
-/vendor/bin/socket_forward_proxy  u:object_r:socket_forward_proxy_exec:s0
 /vendor/bin/socket_vsock_proxy  u:object_r:socket_vsock_proxy_exec:s0
 /vendor/bin/vsock_logcat  u:object_r:vsock_logcat_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/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\.power\.stats@1\.0-service\.mock  u:object_r:hal_power_stats_default_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\.bluetooth@1\.1-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
diff --git a/shared/sepolicy/vendor/gmscore_app.te b/shared/sepolicy/vendor/gmscore_app.te
new file mode 100644
index 0000000..7745106
--- /dev/null
+++ b/shared/sepolicy/vendor/gmscore_app.te
@@ -0,0 +1 @@
+get_prop(gmscore_app, hal_camera_prop)
diff --git a/shared/sepolicy/vendor/google/platform_app.te b/shared/sepolicy/vendor/google/platform_app.te
new file mode 100644
index 0000000..def6ca2
--- /dev/null
+++ b/shared/sepolicy/vendor/google/platform_app.te
@@ -0,0 +1 @@
+get_prop(platform_app, vendor_aware_available_prop)
diff --git a/shared/sepolicy/vendor/google/priv_app.te b/shared/sepolicy/vendor/google/priv_app.te
new file mode 100644
index 0000000..caa61b7
--- /dev/null
+++ b/shared/sepolicy/vendor/google/priv_app.te
@@ -0,0 +1 @@
+get_prop(priv_app, vendor_aware_available_prop)
\ No newline at end of file
diff --git a/shared/sepolicy/vendor/google/property.te b/shared/sepolicy/vendor/google/property.te
new file mode 100644
index 0000000..1d026f7
--- /dev/null
+++ b/shared/sepolicy/vendor/google/property.te
@@ -0,0 +1,2 @@
+# Vendor aware available type
+type vendor_aware_available_prop, property_type;
diff --git a/shared/sepolicy/vendor/google/property_contexts b/shared/sepolicy/vendor/google/property_contexts
new file mode 100644
index 0000000..126cf1c
--- /dev/null
+++ b/shared/sepolicy/vendor/google/property_contexts
@@ -0,0 +1 @@
+ro.vendor.aware_available  u:object_r:vendor_aware_available_prop:s0
diff --git a/shared/sepolicy/vendor/google/system_app.te b/shared/sepolicy/vendor/google/system_app.te
new file mode 100644
index 0000000..326d9fd
--- /dev/null
+++ b/shared/sepolicy/vendor/google/system_app.te
@@ -0,0 +1 @@
+get_prop(system_app, vendor_aware_available_prop)
diff --git a/shared/sepolicy/vendor/property_contexts b/shared/sepolicy/vendor/property_contexts
index 383c3ec..aa30cd7 100644
--- a/shared/sepolicy/vendor/property_contexts
+++ b/shared/sepolicy/vendor/property_contexts
@@ -1,3 +1,4 @@
+bt.rootcanal_mac_address  u:object_r:hal_bluetooth_sim_prop:s0
 bt.rootcanal_test_console  u:object_r:hal_bluetooth_sim_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
diff --git a/shared/sepolicy/vendor/socket_forward_proxy.te b/shared/sepolicy/vendor/socket_forward_proxy.te
deleted file mode 100644
index 0b7f2fc..0000000
--- a/shared/sepolicy/vendor/socket_forward_proxy.te
+++ /dev/null
@@ -1,7 +0,0 @@
-type socket_forward_proxy, domain, netdomain;
-type socket_forward_proxy_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(socket_forward_proxy)
-
-allow socket_forward_proxy socket_forward_device:chr_file rw_file_perms;
-allow socket_forward_proxy self:capability net_raw;
diff --git a/shared/sepolicy/vendor/vsoc_guest_region_e2e_test.te b/shared/sepolicy/vendor/vsoc_guest_region_e2e_test.te
deleted file mode 100644
index db5749f..0000000
--- a/shared/sepolicy/vendor/vsoc_guest_region_e2e_test.te
+++ /dev/null
@@ -1,13 +0,0 @@
-type vsoc_guest_region_e2e_test, domain;
-type vsoc_guest_region_e2e_test_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vsoc_guest_region_e2e_test)
-
-# Access region test devices
-allow vsoc_guest_region_e2e_test region_e2e_test_device:chr_file rw_file_perms;
-allow vsoc_guest_region_e2e_test vendor_data_file:file { create_file_perms };
-allow vsoc_guest_region_e2e_test vendor_data_file:dir { create_file_perms create_dir_perms };
-
-# gtest checks access() on /data/local/tmp. However, vendor processes are
-# neverallow'ed /data access outside of /data/vendor.
-dontaudit vsoc_guest_region_e2e_test self:capability dac_override;
diff --git a/vsoc_arm64/phone/aosp_cf.mk b/vsoc_arm64/phone/aosp_cf.mk
index 7fd370d..ce1947f 100644
--- a/vsoc_arm64/phone/aosp_cf.mk
+++ b/vsoc_arm64/phone/aosp_cf.mk
@@ -23,6 +23,12 @@
 PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed
 
 #
+# All components inherited here go to system_ext image (same as GSI system_ext)
+#
+$(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_system_ext.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_system_ext.mk)
+
+#
 # All components inherited here go to product image (same as GSI product)
 #
 $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_product.mk)
diff --git a/vsoc_x86/pasan/aosp_cf.mk b/vsoc_x86/pasan/aosp_cf.mk
index a1e1abf..e6b2adc 100644
--- a/vsoc_x86/pasan/aosp_cf.mk
+++ b/vsoc_x86/pasan/aosp_cf.mk
@@ -22,6 +22,12 @@
 PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed
 
 #
+# All components inherited here go to system_ext image (same as GSI system_ext)
+#
+$(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_system_ext.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_system_ext.mk)
+
+#
 # All components inherited here go to product image (same as GSI product)
 #
 $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_product.mk)
diff --git a/vsoc_x86/phone/aosp_cf.mk b/vsoc_x86/phone/aosp_cf.mk
index 7ed1407..e2230fc 100644
--- a/vsoc_x86/phone/aosp_cf.mk
+++ b/vsoc_x86/phone/aosp_cf.mk
@@ -22,6 +22,12 @@
 PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed
 
 #
+# All components inherited here go to system_ext image (same as GSI system_ext)
+#
+$(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_system_ext.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_system_ext.mk)
+
+#
 # All components inherited here go to product image (same as GSI product)
 #
 $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_product.mk)
diff --git a/vsoc_x86_64/phone/aosp_cf.mk b/vsoc_x86_64/phone/aosp_cf.mk
index c0b59bf..791a720 100644
--- a/vsoc_x86_64/phone/aosp_cf.mk
+++ b/vsoc_x86_64/phone/aosp_cf.mk
@@ -23,6 +23,12 @@
 PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed
 
 #
+# All components inherited here go to system_ext image (same as GSI system_ext)
+#
+$(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_system_ext.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_system_ext.mk)
+
+#
 # All components inherited here go to product image (same as GSI product)
 #
 $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_product.mk)