release-request-bd6aa7dd-7b02-4794-942c-14599bf61208-for-git_oc-mr1-release-4193791 snap-temp-L98700000083613807

Change-Id: Ia699ec83ac1559646600b7c0e26c74ead746c997
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
new file mode 100644
index 0000000..369b2d4
--- /dev/null
+++ b/AndroidProducts.mk
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 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.
+#
+
+PRODUCT_MAKEFILES := \
+    $(LOCAL_DIR)/uml.mk
\ No newline at end of file
diff --git a/BoardConfig.mk b/BoardConfig.mk
new file mode 100644
index 0000000..b6eb431
--- /dev/null
+++ b/BoardConfig.mk
@@ -0,0 +1,22 @@
+#
+# Product-specific compile-time definitions.
+#
+
+# The generic product target doesn't have any hardware-specific pieces.
+TARGET_NO_BOOTLOADER := true
+TARGET_NO_KERNEL := true
+TARGET_CPU_ABI := x86_64
+TARGET_ARCH := x86_64
+TARGET_ARCH_VARIANT := x86_64
+
+TARGET_USER_MODE_LINUX := true
+
+TARGET_USES_64_BIT_BINDER := true
+
+TARGET_USERIMAGES_USE_EXT4 := true
+# Let UML mount userdata.img in a non-sparse format
+TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
+
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 786432000
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
+BOARD_FLASH_BLOCK_SIZE := 512
diff --git a/fstab.uml b/fstab.uml
new file mode 100644
index 0000000..1131f38
--- /dev/null
+++ b/fstab.uml
@@ -0,0 +1,8 @@
+# Android fstab file.
+#<src>                                                  <mnt_point>         <type>    <mnt_flags and options>                              <fs_mgr_flags>
+# The filesystem that contains the filesystem checker binary (typically /system) cannot
+# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
+/dev/block/ubda                                         /system             ext4      ro                                                   wait
+/dev/block/ubdb                                         /data               ext4      noatime,nosuid,nodev,nomblk_io_submit,errors=panic   wait,check
+# When UML sees type "hostfs", it will mount the hostfs to the mount point instead of checking the <src>
+none                                                    /host               hostfs    defaults                                             none
diff --git a/init.uml.rc b/init.uml.rc
new file mode 100644
index 0000000..e5b5d7d
--- /dev/null
+++ b/init.uml.rc
@@ -0,0 +1,2 @@
+on fs
+    mount_all ./fstab.uml
diff --git a/surfaceflinger.rc b/surfaceflinger.rc
new file mode 100644
index 0000000..0f2cb32
--- /dev/null
+++ b/surfaceflinger.rc
@@ -0,0 +1,12 @@
+# This custom surfaceflinger.rc simply has `disabled' appended to it.
+# Since we are using UML without a screen, and embedded.mk is the
+# smallest mk file but still contains surfaceflinger, including this
+# custom surfaceflinger.rc will disable surfaceflinger from running.
+
+service surfaceflinger /system/bin/surfaceflinger
+    class core
+    user system
+    group graphics drmrpc readproc
+    onrestart restart zygote
+    writepid /dev/stune/foreground/tasks
+    disabled
diff --git a/uml.mk b/uml.mk
new file mode 100644
index 0000000..a7fa7f7
--- /dev/null
+++ b/uml.mk
@@ -0,0 +1,29 @@
+# Copyright (C) 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.
+
+$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/embedded.mk)
+
+PRODUCT_NAME := uml
+PRODUCT_DEVICE := uml
+PRODUCT_BRAND := Android
+PRODUCT_MODEL := UML for x86_64
+
+# default is nosdcard, S/W button enabled in resource
+DEVICE_PACKAGE_OVERLAYS := device/generic/x86/overlay
+PRODUCT_CHARACTERISTICS := nosdcard
+
+PRODUCT_COPY_FILES += $(LOCAL_PATH)/fstab.uml:root/fstab.uml
+PRODUCT_COPY_FILES += $(LOCAL_PATH)/init.uml.rc:root/init.uml.rc
+PRODUCT_COPY_FILES += $(LOCAL_PATH)/surfaceflinger.rc:system/etc/init/surfaceflinger.rc
diff --git a/vendorsetup.sh b/vendorsetup.sh
new file mode 100755
index 0000000..fd5fc0b
--- /dev/null
+++ b/vendorsetup.sh
@@ -0,0 +1 @@
+add_lunch_combo uml-userdebug