forked from openkylin/platform_build
Set up rules to build oem.img
To build oem.img: - You must define BOARD_OEMIMAGE_PARTITION_SIZE in your BoardConfig.mk - The file system type will be the same as system.img and userdata.img. - To install a module to oem.img, use "LOCAL_OEM_MODULE := true" - run "make -j48 showcommands oem_image dist". By default it's not built. Bug: 13367676 Change-Id: I1a26d4d0c61b72ecffe60279667b1b3de050780d
This commit is contained in:
parent
66750e6395
commit
b8888432f0
|
@ -661,6 +661,7 @@ $(if $(BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "cache_fs_type=$(BOARD_CA
|
|||
$(if $(BOARD_CACHEIMAGE_PARTITION_SIZE),$(hide) echo "cache_size=$(BOARD_CACHEIMAGE_PARTITION_SIZE)" >> $(1))
|
||||
$(if $(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE),$(hide) echo "vendor_fs_type=$(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE)" >> $(1))
|
||||
$(if $(BOARD_VENDORIMAGE_PARTITION_SIZE),$(hide) echo "vendor_size=$(BOARD_VENDORIMAGE_PARTITION_SIZE)" >> $(1))
|
||||
$(if $(BOARD_OEMIMAGE_PARTITION_SIZE),$(hide) echo "oem_size=$(BOARD_OEMIMAGE_PARTITION_SIZE)" >> $(1))
|
||||
$(if $(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG),$(hide) echo "extfs_sparse_flag=$(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG)" >> $(1))
|
||||
$(if $(mkyaffs2_extra_flags),$(hide) echo "mkyaffs2_extra_flags=$(mkyaffs2_extra_flags)" >> $(1))
|
||||
$(hide) echo "selinux_fc=$(SELINUX_FC)" >> $(1)
|
||||
|
|
|
@ -120,6 +120,8 @@ ifeq ($(my_module_path),)
|
|||
else
|
||||
ifeq (true,$(LOCAL_PROPRIETARY_MODULE))
|
||||
partition_tag := _VENDOR
|
||||
else ifeq (true,$(LOCAL_OEM_MODULE))
|
||||
partition_tag := _OEM
|
||||
else
|
||||
# The definition of should-install-to-system will be different depending
|
||||
# on which goal (e.g., sdk or just droid) is being built.
|
||||
|
|
|
@ -127,6 +127,7 @@ LOCAL_PROTOC_FLAGS:=
|
|||
LOCAL_PROTO_JAVA_OUTPUT_PARAMS:=
|
||||
LOCAL_NO_CRT:=
|
||||
LOCAL_PROPRIETARY_MODULE:=
|
||||
LOCAL_OEM_MODULE:=
|
||||
LOCAL_PRIVILEGED_MODULE:=
|
||||
LOCAL_MODULE_OWNER:=
|
||||
LOCAL_CTS_TEST_PACKAGE:=
|
||||
|
|
|
@ -107,6 +107,7 @@ endif
|
|||
TARGET_COPY_OUT_SYSTEM := system
|
||||
TARGET_COPY_OUT_DATA := data
|
||||
TARGET_COPY_OUT_VENDOR := system/vendor
|
||||
TARGET_COPY_OUT_OEM := oem
|
||||
TARGET_COPY_OUT_ROOT := root
|
||||
TARGET_COPY_OUT_RECOVERY := recovery
|
||||
|
||||
|
@ -282,6 +283,14 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDO
|
|||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(TARGET_OUT_VENDOR)/lib
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS := $(TARGET_OUT_VENDOR_APPS)
|
||||
|
||||
TARGET_OUT_OEM := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_OEM)
|
||||
TARGET_OUT_OEM_EXECUTABLES:= $(TARGET_OUT_OEM)/bin
|
||||
TARGET_OUT_OEM_SHARED_LIBRARIES:= $(TARGET_OUT_OEM)/lib
|
||||
# We don't expect Java libraries in the oem.img.
|
||||
# TARGET_OUT_OEM_JAVA_LIBRARIES:= $(TARGET_OUT_OEM)/framework
|
||||
TARGET_OUT_OEM_APPS:= $(TARGET_OUT_OEM)/app
|
||||
TARGET_OUT_OEM_ETC := $(TARGET_OUT_OEM)/etc
|
||||
|
||||
TARGET_OUT_UNSTRIPPED := $(PRODUCT_OUT)/symbols
|
||||
TARGET_OUT_EXECUTABLES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/bin
|
||||
TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/lib
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
#
|
||||
# Copyright (C) 2014 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.
|
||||
#
|
||||
|
||||
# We build oem.img only if it's asked for.
|
||||
ifneq ($(filter $(MAKECMDGOALS),oem_image),)
|
||||
ifndef BOARD_OEMIMAGE_PARTITION_SIZE
|
||||
$(error BOARD_OEMIMAGE_PARTITION_SIZE is not set.)
|
||||
endif
|
||||
|
||||
INTERNAL_OEMIMAGE_FILES := \
|
||||
$(filter $(TARGET_OUT_OEM)/%,$(ALL_DEFAULT_INSTALLED_MODULES))
|
||||
|
||||
oemimage_intermediates := \
|
||||
$(call intermediates-dir-for,PACKAGING,oem)
|
||||
BUILT_OEMIMAGE_TARGET := $(PRODUCT_OUT)/oem.img
|
||||
# We just build this directly to the install location.
|
||||
INSTALLED_OEMIMAGE_TARGET := $(BUILT_OEMIMAGE_TARGET)
|
||||
|
||||
$(INSTALLED_OEMIMAGE_TARGET) : $(INTERNAL_USERIMAGES_DEPS) $(INTERNAL_OEMIMAGE_FILES)
|
||||
$(call pretty,"Target oem fs image: $@")
|
||||
@mkdir -p $(TARGET_OUT_OEM)
|
||||
@mkdir -p $(oemimage_intermediates) && rm -rf $(oemimage_intermediates)/oem_image_info.txt
|
||||
$(call generate-userimage-prop-dictionary, $(oemimage_intermediates)/oem_image_info.txt, skip_fsck=true)
|
||||
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
|
||||
./build/tools/releasetools/build_image.py \
|
||||
$(TARGET_OUT_OEM) $(oemimage_intermediates)/oem_image_info.txt $@
|
||||
$(hide) $(call assert-max-image-size,$@,$(BOARD_OEMIMAGE_PARTITION_SIZE))
|
||||
|
||||
.PHONY: oem_image
|
||||
oem_image : $(INSTALLED_OEMIMAGE_TARGET)
|
||||
$(call dist-for-goals, oem_image, $(INSTALLED_OEMIMAGE_TARGET))
|
||||
|
||||
endif # oem_image in $(MAKECMDGOALS)
|
|
@ -325,6 +325,9 @@ def ImagePropFromGlobalDict(glob_dict, mount_point):
|
|||
elif mount_point == "vendor":
|
||||
copy_prop("vendor_fs_type", "fs_type")
|
||||
copy_prop("vendor_size", "partition_size")
|
||||
elif mount_point == "oem":
|
||||
copy_prop("fs_type", "fs_type")
|
||||
copy_prop("oem_size", "partition_size")
|
||||
|
||||
return d
|
||||
|
||||
|
@ -363,6 +366,8 @@ def main(argv):
|
|||
mount_point = "cache"
|
||||
elif image_filename == "vendor.img":
|
||||
mount_point = "vendor"
|
||||
elif image_filename == "oem.img":
|
||||
mount_point = "oem"
|
||||
else:
|
||||
print >> sys.stderr, "error: unknown image file name ", image_filename
|
||||
exit(1)
|
||||
|
|
Loading…
Reference in New Issue