1# Rules to generate a zip file that contains google emulator images 2# and other files for distribution 3 4ifeq ($(filter $(TARGET_PRODUCT), qemu_trusty_arm64),) 5ifeq ($(filter $(MAKECMDGOALS), sdk win_sdk sdk_repo goog_emu_imgs),) 6emulator_img_source_prop := $(TARGET_OUT_INTERMEDIATES)/source.properties 7target_notice_file_txt := $(TARGET_OUT_INTERMEDIATES)/NOTICE.txt 8$(emulator_img_source_prop): $(PRODUCT_SDK_ADDON_SYS_IMG_SOURCE_PROP) 9 $(process_prop_template) 10 11INTERNAL_EMULATOR_PACKAGE_FILES := \ 12 $(target_notice_file_txt) \ 13 $(emulator_img_source_prop) \ 14 $(PRODUCT_OUT)/system/build.prop \ 15 16ifneq ($(filter $(TARGET_PRODUCT), sdk_goog3_x86 sdk_goog3_x86_64 sdk_goog3_x86_arm),) 17 INTERNAL_EMULATOR_PACKAGE_FILES += \ 18 $(HOST_OUT_EXECUTABLES)/dex2oat \ 19 $(HOST_OUT_EXECUTABLES)/dex2oatd 20endif 21 22ifeq ($(BUILD_QEMU_IMAGES),true) 23ifeq ($(BOARD_AVB_ENABLE),true) 24INTERNAL_EMULATOR_PACKAGE_FILES += \ 25 $(PRODUCT_OUT)/VerifiedBootParams.textproto 26endif 27endif 28 29INTERNAL_EMULATOR_PACKAGE_SOURCE := $(PRODUCT_OUT)/emulator 30 31INSTALLED_QEMU_SYSTEMIMAGE := $(PRODUCT_OUT)/system-qemu.img 32FINAL_INSTALLED_QEMU_SYSTEMIMAGE := $(INTERNAL_EMULATOR_PACKAGE_SOURCE)/$(TARGET_CPU_ABI)/system.img 33$(eval $(call copy-one-file,$(INSTALLED_QEMU_SYSTEMIMAGE),$(FINAL_INSTALLED_QEMU_SYSTEMIMAGE))) 34 35INSTALLED_QEMU_RAMDISKIMAGE := $(PRODUCT_OUT)/ramdisk-qemu.img 36FINAL_INSTALLED_QEMU_RAMDISKIMAGE := $(INTERNAL_EMULATOR_PACKAGE_SOURCE)/$(TARGET_CPU_ABI)/ramdisk.img 37$(eval $(call copy-one-file,$(INSTALLED_QEMU_RAMDISKIMAGE),$(FINAL_INSTALLED_QEMU_RAMDISKIMAGE))) 38 39INSTALLED_QEMU_VENDORIMAGE := $(PRODUCT_OUT)/vendor-qemu.img 40FINAL_INSTALLED_QEMU_VENDORIMAGE := $(INTERNAL_EMULATOR_PACKAGE_SOURCE)/$(TARGET_CPU_ABI)/vendor.img 41$(eval $(call copy-one-file,$(INSTALLED_QEMU_VENDORIMAGE),$(FINAL_INSTALLED_QEMU_VENDORIMAGE))) 42 43 44INTERNAL_EMULATOR_PACKAGE_FILES += device/generic/goldfish/data/etc/encryptionkey.img 45INTERNAL_EMULATOR_PACKAGE_FILES += device/generic/goldfish/data/etc/userdata.img 46 47INTERNAL_EMULATOR_FEATURE_DIR := . 48ifneq ($(filter sdk_phone64_% sdk_gphone64_% sdk_tablet% sdk_gtablet%, $(TARGET_PRODUCT)),) 49INTERNAL_EMULATOR_FEATURE_DIR := 64bit 50endif 51 52ADVANCED_FEATURES_FILENAME := advancedFeatures.ini 53ifneq ($(filter %_minigbm, $(TARGET_PRODUCT)),) 54ADVANCED_FEATURES_FILENAME := advancedFeatures.ini.minigbm 55endif 56 57ifneq ($(filter sdk_tablet% sdk_gtablet%, $(TARGET_PRODUCT)),) 58ADVANCED_FEATURES_FILENAME := advancedFeatures.ini.tablet 59endif 60 61ADVANCED_FEATURES_FILES := 62ifeq ($(TARGET_BUILD_VARIANT),user) 63ADVANCED_FEATURES_FILES += device/generic/goldfish/data/etc/google/$(INTERNAL_EMULATOR_FEATURE_DIR)/user/$(ADVANCED_FEATURES_FILENAME) 64ifeq ($(TARGET_ARCH),arm64) 65ADVANCED_FEATURES_FILES += device/generic/goldfish/data/etc/google/$(INTERNAL_EMULATOR_FEATURE_DIR)/user/arm64/$(ADVANCED_FEATURES_FILENAME) 66endif 67else 68ADVANCED_FEATURES_FILES += device/generic/goldfish/data/etc/google/$(INTERNAL_EMULATOR_FEATURE_DIR)/userdebug/$(ADVANCED_FEATURES_FILENAME) 69ifeq ($(TARGET_ARCH),arm64) 70ADVANCED_FEATURES_FILES += device/generic/goldfish/data/etc/google/$(INTERNAL_EMULATOR_FEATURE_DIR)/userdebug/arm64/$(ADVANCED_FEATURES_FILENAME) 71endif 72endif 73 74 75 76name := sdk-repo-linux-system-images-$(FILE_NAME_TAG) 77 78 79INTERNAL_EMULATOR_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip 80 81ifeq ($(TARGET_ARCH), arm) 82# This is wrong and should be retired. 83EMULATOR_KERNEL_FILE := prebuilts/qemu-kernel/arm/3.18/kernel-qemu2 84EMULATOR_KERNEL_DIST_NAME := kernel-ranchu 85else 86ifeq ($(TARGET_ARCH), x86) 87# Use 64-bit kernel even for 32-bit Android 88EMULATOR_KERNEL_DIST_NAME := kernel-ranchu-64 89else 90# All other arches are 64-bit 91EMULATOR_KERNEL_DIST_NAME := kernel-ranchu 92endif # x86 93endif # arm 94 95$(INTERNAL_EMULATOR_PACKAGE_TARGET): $(INTERNAL_EMULATOR_PACKAGE_FILES) $(FINAL_INSTALLED_QEMU_SYSTEMIMAGE) $(FINAL_INSTALLED_QEMU_RAMDISKIMAGE) $(FINAL_INSTALLED_QEMU_VENDORIMAGE) $(EMULATOR_KERNEL_FILE) $(ADVANCED_FEATURES_FILES) $(PRODUCT_OUT)/userdata.img 96 @echo "Package: $@" 97 $(hide) mkdir -p $(INTERNAL_EMULATOR_PACKAGE_SOURCE)/$(TARGET_CPU_ABI) 98 $(hide) $(foreach f,$(INTERNAL_EMULATOR_PACKAGE_FILES), $(ACP) $(f) $(INTERNAL_EMULATOR_PACKAGE_SOURCE)/$(TARGET_CPU_ABI)/$(notdir $(f));) 99 $(hide) $(foreach f,$(ADVANCED_FEATURES_FILES), $(ACP) $(f) $(INTERNAL_EMULATOR_PACKAGE_SOURCE)/$(TARGET_CPU_ABI)/advancedFeatures.ini;) 100 $(hide) ($(ACP) $(EMULATOR_KERNEL_FILE) $(INTERNAL_EMULATOR_PACKAGE_SOURCE)/$(TARGET_CPU_ABI)/${EMULATOR_KERNEL_DIST_NAME}) 101 $(hide) $(ACP) -r $(PRODUCT_OUT)/data $(INTERNAL_EMULATOR_PACKAGE_SOURCE)/$(TARGET_CPU_ABI) 102 $(hide) $(SOONG_ZIP) -o $@ -C $(INTERNAL_EMULATOR_PACKAGE_SOURCE) -D $(INTERNAL_EMULATOR_PACKAGE_SOURCE)/$(TARGET_CPU_ABI) 103 104.PHONY: emu_img_zip 105emu_img_zip: $(INTERNAL_EMULATOR_PACKAGE_TARGET) 106 107INTERNAL_EMULATOR_KERNEL_TARGET := $(PRODUCT_OUT)/emu-gki-$(TARGET_KERNEL_USE)-$(FILE_NAME_TAG).zip 108INTERNAL_GKI_SOURCE := $(INTERNAL_EMULATOR_PACKAGE_SOURCE)/GKI-$(TARGET_KERNEL_USE) 109$(INTERNAL_EMULATOR_KERNEL_TARGET): $(INSTALLED_QEMU_RAMDISKIMAGE) $(EMULATOR_KERNEL_FILE) 110 @echo "Package: $@" 111 $(hide) mkdir -p $(INTERNAL_GKI_SOURCE) 112 $(hide) ($(ACP) $(EMULATOR_KERNEL_FILE) $(INTERNAL_GKI_SOURCE)/${EMULATOR_KERNEL_DIST_NAME}) 113 $(hide) ($(ACP) $(INSTALLED_QEMU_RAMDISKIMAGE) $(INTERNAL_GKI_SOURCE)/ramdisk.img) 114 $(hide) $(SOONG_ZIP) -o $@ -C $(INTERNAL_GKI_SOURCE) -D $(INTERNAL_GKI_SOURCE) 115 116.PHONY: emu_kernel_zip 117emu_kernel_zip: $(INTERNAL_EMULATOR_KERNEL_TARGET) 118 119$(call dist-for-goals, emu_kernel_zip, $(INTERNAL_EMULATOR_KERNEL_TARGET)) 120endif 121endif 122