diff options
author | Ying Wang <wangying@google.com> | 2014-03-11 17:13:27 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2014-04-28 09:43:51 -0700 |
commit | b8888432f0bc0706d5e00e971dde3ac2e986f2af (patch) | |
tree | 65f8dac223dc0d754ba495f9df7661ec3c2ce719 /core | |
parent | 66750e63954ca00341a5187ebd6497b4e49b0faa (diff) | |
download | build-b8888432f0bc0706d5e00e971dde3ac2e986f2af.zip build-b8888432f0bc0706d5e00e971dde3ac2e986f2af.tar.gz build-b8888432f0bc0706d5e00e971dde3ac2e986f2af.tar.bz2 |
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
Diffstat (limited to 'core')
-rw-r--r-- | core/Makefile | 1 | ||||
-rw-r--r-- | core/base_rules.mk | 2 | ||||
-rw-r--r-- | core/clear_vars.mk | 1 | ||||
-rw-r--r-- | core/envsetup.mk | 9 | ||||
-rw-r--r-- | core/tasks/oem_image.mk | 46 |
5 files changed, 59 insertions, 0 deletions
diff --git a/core/Makefile b/core/Makefile index 9739730..480c719 100644 --- a/core/Makefile +++ b/core/Makefile @@ -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) diff --git a/core/base_rules.mk b/core/base_rules.mk index 8676170..7a1975f 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -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. diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 4912e35..9d83de9 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -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:= diff --git a/core/envsetup.mk b/core/envsetup.mk index b2122e9..88f35a6 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -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 diff --git a/core/tasks/oem_image.mk b/core/tasks/oem_image.mk new file mode 100644 index 0000000..26b9aba --- /dev/null +++ b/core/tasks/oem_image.mk @@ -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) |