1# 2# Copyright 2019 The Android Open-Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17ifneq ($(filter emulator_% emulator64_% emu64%, $(TARGET_DEVICE)),) 18LOCAL_PATH:= $(call my-dir) 19 20include $(CLEAR_VARS) 21EMU_EXTRA_FILES := \ 22 $(PRODUCT_OUT)/system-qemu-config.txt \ 23 $(PRODUCT_OUT)/ramdisk-qemu.img \ 24 $(PRODUCT_OUT)/misc_info.txt \ 25 $(PRODUCT_OUT)/vbmeta.img \ 26 $(PRODUCT_OUT)/VerifiedBootParams.textproto \ 27 $(foreach p,$(BOARD_SUPER_PARTITION_PARTITION_LIST),$(PRODUCT_OUT)/$(p).img) 28 29ADVANCED_FEATURES_FILENAME := advancedFeatures.ini 30ifneq ($(filter %_minigbm, $(TARGET_PRODUCT)),) 31ADVANCED_FEATURES_FILENAME := advancedFeatures.ini.minigbm 32ADVANCED_FEATURES_FILES := 33 34endif 35ifeq ($(filter sdk_gphone_%, $(TARGET_PRODUCT)),) 36ifeq ($(TARGET_BUILD_VARIANT),user) 37ADVANCED_FEATURES_FILES += device/generic/goldfish/data/etc/user/$(ADVANCED_FEATURES_FILENAME) 38else 39ADVANCED_FEATURES_FILES += device/generic/goldfish/data/etc/$(ADVANCED_FEATURES_FILENAME) 40endif 41else 42ifeq ($(TARGET_BUILD_VARIANT),user) 43ADVANCED_FEATURES_FILES += device/generic/goldfish/data/etc/google/user/$(ADVANCED_FEATURES_FILENAME) 44else 45ADVANCED_FEATURES_FILES += device/generic/goldfish/data/etc/google/userdebug/$(ADVANCED_FEATURES_FILENAME) 46endif 47endif 48 49EMU_EXTRA_FILES += device/generic/goldfish/data/etc/config.ini 50EMU_EXTRA_FILES += device/generic/goldfish/data/etc/encryptionkey.img 51 52name := emu-extra-linux-system-images 53 54EMU_EXTRA_TARGET := $(PRODUCT_OUT)/$(name).zip 55 56ifeq ($(TARGET_ARCH), arm) 57# This is wrong and should be retired. 58EMULATOR_KERNEL_FILE := prebuilts/qemu-kernel/arm/3.18/kernel-qemu2 59EMULATOR_KERNEL_DIST_NAME := kernel-ranchu 60else 61ifeq ($(TARGET_ARCH), x86) 62# Use 64-bit kernel even for 32-bit Android 63EMULATOR_KERNEL_DIST_NAME := kernel-ranchu-64 64else 65# All other arches are 64-bit 66EMULATOR_KERNEL_DIST_NAME := kernel-ranchu 67endif # x86 68endif # arm 69 70$(EMU_EXTRA_TARGET): PRIVATE_PACKAGE_SRC := \ 71 $(call intermediates-dir-for, PACKAGING, emu_extra_target) 72 73$(EMU_EXTRA_TARGET): $(EMU_EXTRA_FILES) $(ADVANCED_FEATURES_FILES) $(EMULATOR_KERNEL_FILE) $(SOONG_ZIP) 74 @echo "Package: $@" 75 rm -rf $@ $(PRIVATE_PACKAGE_SRC) 76 mkdir -p $(PRIVATE_PACKAGE_SRC)/$(TARGET_ARCH)/system 77 $(foreach f,$(EMU_EXTRA_FILES), cp $(f) $(PRIVATE_PACKAGE_SRC)/$(TARGET_ARCH)/$(notdir $(f)) &&) true 78 $(foreach f,$(ADVANCED_FEATURES_FILES), cp $(f) $(PRIVATE_PACKAGE_SRC)/$(TARGET_ARCH)/advancedFeatures.ini &&) true 79 cp $(EMULATOR_KERNEL_FILE) $(PRIVATE_PACKAGE_SRC)/$(TARGET_ARCH)/${EMULATOR_KERNEL_DIST_NAME} 80 cp -r $(PRODUCT_OUT)/data $(PRIVATE_PACKAGE_SRC)/$(TARGET_ARCH) 81 cp $(PRODUCT_OUT)/system/build.prop $(PRIVATE_PACKAGE_SRC)/$(TARGET_ARCH)/system 82 $(SOONG_ZIP) -o $@ -C $(PRIVATE_PACKAGE_SRC) -D $(PRIVATE_PACKAGE_SRC)/$(TARGET_ARCH) 83 84.PHONY: emu_extra_imgs 85emu_extra_imgs: $(EMU_EXTRA_TARGET) 86 87$(call dist-for-goals-with-filenametag, emu_extra_imgs, $(EMU_EXTRA_TARGET)) 88 89include $(call all-makefiles-under,$(LOCAL_PATH)) 90endif 91