Merge "Disable OEM hook." into pi-dev
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/host_package.mk b/host_package.mk
index 24718c8..f45fbf6 100644
--- a/host_package.mk
+++ b/host_package.mk
@@ -22,8 +22,9 @@
 cvd_host_executables := \
     launch_cvd \
     socket_forward_proxy \
-    wificlient \
     vnc_server \
+    wifi_relay \
+    record_audio \
 
 cvd_host_tests := \
     auto_free_buffer_test \
diff --git a/shared/BoardConfig.mk b/shared/BoardConfig.mk
index 60a9dcb..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
diff --git a/shared/config/init.hardware.usb.rc b/shared/config/init.hardware.usb.rc
index 8a527fd..89d24b8 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,20 @@
     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
+    mount functionfs ptp /dev/usb-ffs/ptp 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
     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 +69,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 d8fa700..5b87b4f 100644
--- a/shared/config/init.vsoc.rc
+++ b/shared/config/init.vsoc.rc
@@ -64,8 +64,9 @@
 
 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
@@ -112,15 +113,11 @@
     user root
 
 
-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
diff --git a/shared/config/manifest.xml b/shared/config/manifest.xml
index d00124a..2d16d6f 100644
--- a/shared/config/manifest.xml
+++ b/shared/config/manifest.xml
@@ -16,7 +16,7 @@
 ** limitations under the License.
 */
 -->
-<manifest version="1.0" type="device" target-level="3">
+<manifest version="1.0" type="device" target-level="1">
     <hal format="hidl">
         <name>android.hardware.audio</name>
         <transport>hwbinder</transport>
diff --git a/shared/device.mk b/shared/device.mk
index 9e169a2..f0e3558 100644
--- a/shared/device.mk
+++ b/shared/device.mk
@@ -65,11 +65,9 @@
     socket_forward_proxy \
     usbforward \
     VSoCService \
-    wifirouter \
-    wificlient \
+    wifi_relay \
     wpa_supplicant.vsoc.conf \
     vsoc_input_service \
-    record_audio \
 
 #
 # Packages for AOSP-available stuff we use from the framework
@@ -271,4 +269,3 @@
 # 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/file.te b/shared/sepolicy/file.te
index 28f7454..fa8ea02 100644
--- a/shared/sepolicy/file.te
+++ b/shared/sepolicy/file.te
@@ -1,7 +1,5 @@
 # File types
 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 var_run_system_file, file_type;
diff --git a/shared/sepolicy/file_contexts b/shared/sepolicy/file_contexts
index 06ca2b8..2cf5b6c 100644
--- a/shared/sepolicy/file_contexts
+++ b/shared/sepolicy/file_contexts
@@ -18,12 +18,6 @@
 /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
@@ -33,6 +27,7 @@
 /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/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/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/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;