Create a minimal bootable image
It passes "make -j" but does not work further so far.
build completed successfully (18:59 (mm:ss))
Bug: 79601115
Test: make -j
Change-Id: I7f7c6c1056cb6cfab29426eda1eb0483ea0e212c
Signed-off-by: Roman Kiryanov <rkir@google.com>
diff --git a/kernel-tests/config.ini b/kernel-tests/config.ini
new file mode 100644
index 0000000..f58040f
--- /dev/null
+++ b/kernel-tests/config.ini
@@ -0,0 +1,4 @@
+avd.ini.encoding=UTF-8
+disk.dataPartition.size=2G
+hw.ramSize=2048
+image.sysdir.1=x86/
diff --git a/kernel-tests/fstab.ranchu b/kernel-tests/fstab.ranchu
new file mode 100644
index 0000000..12988ab
--- /dev/null
+++ b/kernel-tests/fstab.ranchu
@@ -0,0 +1,6 @@
+# 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/vdc /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,quota,forceencrypt=/dev/block/vdd,reservedsize=128M
+/devices/*/block/vdf auto auto defaults voldmanaged=sdcard:auto,encryptable=userdata
diff --git a/kernel-tests/goldfish_kernel_tests_x86_64.mk b/kernel-tests/goldfish_kernel_tests_x86_64.mk
index d499862..a21bc02 100644
--- a/kernel-tests/goldfish_kernel_tests_x86_64.mk
+++ b/kernel-tests/goldfish_kernel_tests_x86_64.mk
@@ -1,16 +1,124 @@
-$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
-$(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_common.mk)
-
-PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed
-
-PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST += \
- root/init.zygote32_64.rc \
- root/init.zygote64_32.rc \
-
-PRODUCT_COPY_FILES += \
- system/core/rootdir/init.zygote32_64.rc:root/init.zygote32_64.rc
-
PRODUCT_NAME := goldfish_kernel_tests_x86_64
PRODUCT_DEVICE := generic_x86_64
PRODUCT_BRAND := Android
PRODUCT_MODEL := Kernel tests for goldfish kernel
+PRODUCT_FULL_TREBLE_OVERRIDE := true
+
+BUILD_EMULATOR := false
+
+TARGET_NO_BOOTLOADER := true
+TARGET_NO_KERNEL := true
+TARGET_CPU_ABI := x86_64
+TARGET_ARCH := x86_64
+TARGET_ARCH_VARIANT := x86_64
+TARGET_SUPPORTS_64_BIT_APPS := true
+TARGET_USERIMAGES_USE_EXT4 := true
+TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
+
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2147483648
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
+BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
+BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_FLASH_BLOCK_SIZE := 512
+BOARD_HAVE_BLUETOOTH := false
+
+SRC1_ROOT_DIR := device/generic/goldfish/kernel-tests
+
+# libXYZ
+PRODUCT_PACKAGES += \
+ libc \
+ libstdc++ \
+ libm \
+ libdl \
+ libutils \
+ libsysutils \
+ libbinder \
+ libhardware \
+ libhardware_legacy \
+ linker \
+ linker64 \
+
+# important stuff
+PRODUCT_PACKAGES += \
+ android.hidl.allocator@1.0-service \
+ android.hidl.base-V1.0-java \
+ android.hidl.manager-V1.0-java \
+ android.hidl.memory@1.0-impl \
+ android.hidl.memory@1.0-impl.vendor \
+ android.system.suspend@1.0-service \
+ ashmemd \
+ libashmemd_client \
+
+# logs
+PRODUCT_PACKAGES += \
+ liblog \
+ logd \
+ logcat \
+ logwrapper \
+
+# debugger
+PRODUCT_PACKAGES += \
+ debuggerd \
+ debuggerd64 \
+ dumpstate \
+ dumpsys \
+ crash_dump \
+ adb \
+ adbd \
+
+# QEMU
+PRODUCT_PACKAGES += \
+ qemu-props \
+
+# Graphics
+PRODUCT_PACKAGES += \
+ gralloc.goldfish \
+ gralloc.goldfish.default \
+ gralloc.ranchu \
+ android.hardware.graphics.allocator@2.0-service \
+ android.hardware.graphics.allocator@2.0-impl \
+
+# Device modules
+PRODUCT_PACKAGES += \
+ servicemanager \
+ hwservicemanager \
+ vndservice \
+ vndservicemanager \
+ toolbox \
+ toybox \
+ vold \
+ init \
+ init.environ.rc \
+ init.rc \
+ reboot \
+ service \
+ cmd \
+ sh \
+ e2fsck \
+ gzip \
+
+# SELinux
+PRODUCT_PACKAGES += \
+ sepolicy \
+ selinux_policy_system \
+ selinux_policy \
+ file_contexts \
+ seapp_contexts \
+ property_contexts \
+ mac_permissions.xml \
+
+PRODUCT_COPY_FILES += \
+ $(SRC1_ROOT_DIR)/manifest.xml:$(TARGET_COPY_OUT_VENDOR)/manifest.xml \
+ $(SRC1_ROOT_DIR)/init.ranchu-core.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.ranchu-core.sh \
+ $(SRC1_ROOT_DIR)/init.ranchu.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.ranchu.rc \
+ $(SRC1_ROOT_DIR)/fstab.ranchu:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ranchu \
+ $(SRC1_ROOT_DIR)/config.ini:config.ini \
+
+# The set of packages we want to force 'speed' compilation on.
+PRODUCT_DEXPREOPT_SPEED_APPS := \
+
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
+ ro.zygote=zygote32
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.carrier=unknown
diff --git a/kernel-tests/init.ranchu-core.sh b/kernel-tests/init.ranchu-core.sh
new file mode 100644
index 0000000..62c64aa
--- /dev/null
+++ b/kernel-tests/init.ranchu-core.sh
@@ -0,0 +1,12 @@
+#!/vendor/bin/sh
+
+# take the wake lock
+allowsuspend=`getprop ro.kernel.qemu.allowsuspend`
+case "$allowsuspend" in
+ "") echo "emulator_wake_lock" > /sys/power/wake_lock
+ ;;
+ 1) echo "emulator_wake_lock" > /sys/power/wake_unlock
+ ;;
+ *) echo "emulator_wake_lock" > /sys/power/wake_lock
+ ;;
+esac
diff --git a/kernel-tests/init.ranchu.rc b/kernel-tests/init.ranchu.rc
new file mode 100644
index 0000000..1b8fc6c
--- /dev/null
+++ b/kernel-tests/init.ranchu.rc
@@ -0,0 +1,42 @@
+on fs
+ mount_all /vendor/etc/fstab.ranchu
+
+on early-init
+ mount debugfs debugfs /sys/kernel/debug mode=755
+
+on init
+ symlink /dev/goldfish_pipe /dev/android_pipe
+ symlink /dev/goldfish_pipe /dev/qemu_pipe
+
+on post-fs-data
+ # nothing
+
+on zygote-start
+ # nothing
+
+on boot
+ start goldfish-logcat
+
+on property:vendor.qemu.timezone=*
+ setprop persist.sys.timezone ${vendor.qemu.timezone}
+
+on property:dev.bootcomplete=1
+ setprop vendor.qemu.dev.bootcomplete 1
+
+service qemu-props /vendor/bin/qemu-props
+ class core
+ user root
+ group root
+ oneshot
+
+service goldfish-logcat /system/bin/logcat -Q
+ user logd
+ group log
+ oneshot
+
+service bugreport /system/bin/dumpstate -d -p -B -z \
+ -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
+ class main
+ disabled
+ oneshot
+ keycodes 114 115 116
diff --git a/kernel-tests/manifest.xml b/kernel-tests/manifest.xml
new file mode 100644
index 0000000..359b4ad
--- /dev/null
+++ b/kernel-tests/manifest.xml
@@ -0,0 +1,5 @@
+<manifest version="1.0" type="device" target-level="3">
+ <sepolicy>
+ <version>27.0</version>
+ </sepolicy>
+</manifest>