Merge "Add CleanSpec.mk file"
diff --git a/shared/config/init.vsoc.rc b/shared/config/init.vsoc.rc
index 738db6b..379a7ed 100644
--- a/shared/config/init.vsoc.rc
+++ b/shared/config/init.vsoc.rc
@@ -38,13 +38,10 @@
     mount_all /vendor/etc/fstab.${ro.hardware}
     restorecon_recursive /vendor
 
-    start rename_eth0
+    start setup_wifi
     # works around framework netiface enumeration issue
     start rename_eth1
 
-    # wait until rename_eth0 is done before attempting to stack wifi
-    wait /proc/self/net/xt_qtaguid/iface_stat/buried_eth0
-    start create_wifi
 
     # TODO(ender): Find better way to talk to serial port.
     chmod 622 /dev/kmsg
@@ -83,7 +80,7 @@
     start socket_forward_proxy
 
 
-service rename_eth0 /vendor/bin/rename_netiface eth0 buried_eth0
+service setup_wifi /vendor/bin/setup_wifi
     oneshot
 
 
@@ -91,10 +88,6 @@
     oneshot
 
 
-service create_wifi /vendor/bin/ip_link_add virt_wifi buried_eth0 wlan0
-    oneshot
-
-
 on property:sys.boot_completed=1
     trigger sys-boot-completed-set
 
diff --git a/shared/device.mk b/shared/device.mk
index 7b01f22..b363f7a 100644
--- a/shared/device.mk
+++ b/shared/device.mk
@@ -72,6 +72,7 @@
     vport_trigger \
     rename_netiface \
     ip_link_add \
+    setup_wifi \
 
 #
 # Packages for AOSP-available stuff we use from the framework
@@ -282,6 +283,23 @@
     android.hardware.power@1.0-impl \
     android.hardware.power@1.0-service
 
+
+#
+# PowerStats HAL
+#
+PRODUCT_PACKAGES += \
+    android.hardware.power.stats@1.0-service.mock
+
+#
+# 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
+
 #
 # USB
 PRODUCT_PACKAGES += \
diff --git a/shared/sepolicy/file_contexts b/shared/sepolicy/file_contexts
index 1366321..d6a14a9 100644
--- a/shared/sepolicy/file_contexts
+++ b/shared/sepolicy/file_contexts
@@ -1,22 +1,22 @@
 ##########################
 # Devices
 #
-/dev/e2e_managed                   u:object_r:region_e2e_test_device:s0
-/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/screen                        u:object_r:region_screen_device:s0
-/dev/vport[0-9]p[0-9]*             u:object_r:virtual_serial_device:s0
-/dev/block/zram0                   u:object_r:swap_block_device:s0
+/dev/e2e_managed  u:object_r:region_e2e_test_device:s0
+/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/screen  u:object_r:region_screen_device:s0
+/dev/vport[0-9]p[0-9]*  u:object_r:virtual_serial_device:s0
+/dev/block/zram0  u:object_r:swap_block_device:s0
 
 #############################
 # Root files
-/initial\.metadata                 u:object_r:initial_metadata_file:s0
-/ts_snap\.txt                      u:object_r:tombstone_snapshot_file:s0
+/initial\.metadata  u:object_r:initial_metadata_file:s0
+/ts_snap\.txt  u:object_r:tombstone_snapshot_file:s0
 
 #############################
 # var files
-/var/run/system(/.*)?              u:object_r:var_run_system_file:s0
+/var/run/system(/.*)?  u:object_r:var_run_system_file:s0
 
 #############################
 # Vendor files
@@ -28,8 +28,12 @@
 /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/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
-/vendor/bin/hw/android\.hardware\.health\.storage@1\.0-service.cuttlefish          u:object_r:hal_health_storage_default_exec:s0
-/vendor/bin/ip_link_add    u:object_r:ip_link_add_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\.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
+/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/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\.thermal@2\.0-service\.mock  u:object_r:hal_thermal_default_exec:s0
diff --git a/shared/sepolicy/gceservice.te b/shared/sepolicy/gceservice.te
index 4881309..6c77ed8 100644
--- a/shared/sepolicy/gceservice.te
+++ b/shared/sepolicy/gceservice.te
@@ -1,5 +1,6 @@
 # GceService app
 type gceservice, domain;
+type gceservice_tmpfs, file_type;
 app_domain(gceservice)
 
 # Use system services exposed as part of Android framework public API
diff --git a/shared/sepolicy/hal_neuralnetworks_sample.te b/shared/sepolicy/hal_neuralnetworks_sample.te
new file mode 100644
index 0000000..44b5c84
--- /dev/null
+++ b/shared/sepolicy/hal_neuralnetworks_sample.te
@@ -0,0 +1,5 @@
+type hal_neuralnetworks_sample, domain;
+hal_server_domain(hal_neuralnetworks_sample, hal_neuralnetworks)
+
+type hal_neuralnetworks_sample_exec, exec_type, vendor_file_type, file_type;
+init_daemon_domain(hal_neuralnetworks_sample)
diff --git a/shared/sepolicy/setup_wifi.te b/shared/sepolicy/setup_wifi.te
new file mode 100644
index 0000000..e6ec279
--- /dev/null
+++ b/shared/sepolicy/setup_wifi.te
@@ -0,0 +1,10 @@
+type setup_wifi, domain;
+type setup_wifi_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(setup_wifi)
+
+allow setup_wifi self:capability { net_admin net_raw sys_module };
+allow setup_wifi self:udp_socket { create ioctl };
+allow setup_wifi self:netlink_route_socket { bind create nlmsg_write read write };
+
+allow setup_wifi kernel:system module_request;