resolved conflicts for merge of bd0c91c8 to gingerbread-plus-aosp
Change-Id: Ia4d8719337f84927f96a162b97df8a8bc62630e1
diff --git a/CleanSpec.mk b/CleanSpec.mk
index e70a50a..2663780 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -51,9 +51,6 @@
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/vendor)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/android-info.txt)
$(call add-clean-step, find $(PRODUCT_OUT) -name "*.apk" | xargs rm)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
-$(call add-clean-step, rm -rf $(OUT_DIR))
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
diff --git a/core/Makefile b/core/Makefile
index f4669f2..9766336 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -115,7 +115,7 @@
endef
BUILDINFO_SH := build/tools/buildinfo.sh
-$(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE)
+$(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(BUILD_SYSTEM)/version_defaults.mk $(wildcard $(TARGET_DEVICE_DIR)/system.prop)
@echo Target buildinfo: $@
@mkdir -p $(dir $@)
$(hide) TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \
@@ -572,8 +572,12 @@
endif
endif
+ifneq (true,$(TARGET_USERIMAGES_SPARSE_EXT_DISABLED))
+ INTERNAL_USERIMAGES_SPARSE_EXT_FLAG := -s
+endif
+
ifeq ($(INTERNAL_USERIMAGES_USE_EXT),true)
-INTERNAL_USERIMAGES_DEPS := $(MKEXT2USERIMG) $(MAKE_EXT4FS)
+INTERNAL_USERIMAGES_DEPS := $(MKEXTUSERIMG) $(MAKE_EXT4FS)
INTERNAL_USERIMAGES_BINARY_PATHS := $(sort $(dir $(INTERNAL_USERIMAGES_DEPS)))
# $(1): src directory
@@ -583,8 +587,8 @@
# $(5): size of the partition
define build-userimage-ext-target
@mkdir -p $(dir $(2))
- $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$(PATH) \
- $(MKEXT2USERIMG) $(1) $(2) $(4) $(3) $(5)
+ $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$(PATH) \
+ $(MKEXTUSERIMG) $(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG) $(1) $(2) $(4) $(3) $(5)
endef
else
INTERNAL_USERIMAGES_DEPS := $(MKYAFFS2)
@@ -696,8 +700,14 @@
mkyaffs2_extra_flags := -c $(BOARD_NAND_PAGE_SIZE)
else
mkyaffs2_extra_flags :=
+BOARD_NAND_PAGE_SIZE := 2048
endif
+ifneq ($(BOARD_NAND_SPARE_SIZE),)
+mkyaffs2_extra_flags += -s $(BOARD_NAND_SPARE_SIZE)
+else
+BOARD_NAND_SPARE_SIZE := 64
+endif
# -----------------------------------------------------------------
# system image
@@ -778,8 +788,12 @@
$(INSTALLED_SYSTEMTARBALL_TARGET)
endef
+ifndef SYSTEM_TARBALL_FORMAT
+ SYSTEM_TARBALL_FORMAT := bz2
+endif
+
system_tar := $(PRODUCT_OUT)/system.tar
-INSTALLED_SYSTEMTARBALL_TARGET := $(system_tar).bz2
+INSTALLED_SYSTEMTARBALL_TARGET := $(system_tar).$(SYSTEM_TARBALL_FORMAT)
$(INSTALLED_SYSTEMTARBALL_TARGET): PRIVATE_SYSTEM_TAR := $(system_tar)
$(INSTALLED_SYSTEMTARBALL_TARGET): $(FS_GET_STATS) $(INTERNAL_SYSTEMIMAGE_FILES)
$(build-systemtarball-target)
@@ -793,6 +807,34 @@
stnod: systemtarball-nodeps
+#######
+## boot tarball
+define build-boottarball-target
+ $(hide) echo "Target boot fs tarball: $(INSTALLED_BOOTTARBALL_TARGET)"
+ $(hide) mkdir -p $(PRODUCT_OUT)/boot
+ $(hide) cp -f $(INTERNAL_BOOTIMAGE_FILES) $(PRODUCT_OUT)/boot/.
+ $(hide) echo $(BOARD_KERNEL_CMDLINE) > $(PRODUCT_OUT)/boot/cmdline
+ $(hide) $(MKTARBALL) $(FS_GET_STATS) \
+ $(PRODUCT_OUT) boot $(PRIVATE_BOOT_TAR) \
+ $(INSTALLED_BOOTTARBALL_TARGET)
+endef
+
+ifndef BOOT_TARBALL_FORMAT
+ BOOT_TARBALL_FORMAT := bz2
+endif
+
+boot_tar := $(PRODUCT_OUT)/boot.tar
+INSTALLED_BOOTTARBALL_TARGET := $(boot_tar).$(BOOT_TARBALL_FORMAT)
+$(INSTALLED_BOOTTARBALL_TARGET): PRIVATE_BOOT_TAR := $(boot_tar)
+$(INSTALLED_BOOTTARBALL_TARGET): $(FS_GET_STATS) $(INTERNAL_BOOTIMAGE_FILES)
+ $(build-boottarball-target)
+
+.PHONY: boottarball-nodeps btnod
+boottarball-nodeps btnod: $(FS_GET_STATS) \
+ $(filter-out boottarball-nodeps btnod,$(MAKECMDGOALS))
+ $(build-boottarball-target)
+
+
# -----------------------------------------------------------------
# data partition image
INTERNAL_USERDATAIMAGE_FILES := \
@@ -1014,6 +1056,9 @@
ifdef mkyaffs2_extra_flags
$(hide) echo "mkyaffs2_extra_flags=$(mkyaffs2_extra_flags)" >> $(zip_root)/META/misc_info.txt
endif
+ifdef INTERNAL_USERIMAGES_SPARSE_EXT_FLAG
+ $(hide) echo "extfs_sparse_flag=$(INTERNAL_USERIMAGES_SPARSE_EXT_FLAG)" >> $(zip_root)/META/misc_info.txt
+endif
@# Zip everything up, preserving symlinks
$(hide) (cd $(zip_root) && zip -qry ../$(notdir $@) .)
@# Run fs_config on all the system files in the zip, and save the output
@@ -1219,7 +1264,7 @@
INTERNAL_EMULATOR_PACKAGE_FILES += \
$(HOST_OUT_EXECUTABLES)/emulator$(HOST_EXECUTABLE_SUFFIX) \
- prebuilt/android-arm/kernel/kernel-qemu \
+ prebuilt/android-$(TARGET_ARCH)/kernel/kernel-qemu \
$(INSTALLED_RAMDISK_TARGET) \
$(INSTALLED_SYSTEMIMAGE) \
$(INSTALLED_USERDATAIMAGE_TARGET)
@@ -1285,11 +1330,21 @@
atree_dir := development/build
+# sdk/build/tools.atree contains the generic rules, while
+#
+# sdk/build/tools.$(TARGET_ARCH).atree contains target-specific rules
+# the latter is optional.
+#
+sdk_tools_atree_files := sdk/build/tools.atree
+ifneq (,$(strip $(wildcard sdk/build/tools.$(TARGET_ARCH).atree)))
+ sdk_tools_atree_files += sdk/build/tools.$(TARGET_ARCH).atree
+endif
+
sdk_atree_files := \
$(atree_dir)/sdk.exclude.atree \
$(atree_dir)/sdk.atree \
$(atree_dir)/sdk-$(HOST_OS)-$(HOST_ARCH).atree \
- sdk/build/tools.atree
+ $(sdk_tools_atree_files)
deps := \
$(target_notice_file_txt) \
@@ -1303,7 +1358,7 @@
$(INSTALLED_BUILD_PROP_TARGET) \
$(ATREE_FILES) \
$(atree_dir)/sdk.atree \
- sdk/build/tools.atree \
+ $(sdk_tools_atree_files) \
$(HOST_OUT_EXECUTABLES)/atree \
$(HOST_OUT_EXECUTABLES)/line_endings
@@ -1317,6 +1372,12 @@
#
#SDK_GNU_ERROR := true
+ifeq ($(HOST_OS),darwin)
+HOST_STRIP_SDK_LLVM := strip
+else
+HOST_STRIP_SDK_LLVM := strip --strip-all
+endif
+
$(INTERNAL_SDK_TARGET): $(deps)
@echo "Package SDK: $@"
$(hide) rm -rf $(PRIVATE_DIR) $@
@@ -1337,12 +1398,18 @@
-I $(HOST_OUT) \
-I $(TARGET_COMMON_OUT_ROOT) \
-v "PLATFORM_NAME=android-$(PLATFORM_VERSION)" \
+ -v "OUT_DIR=$(OUT_DIR)" \
+ -v "TARGET_ARCH=$(TARGET_ARCH)" \
+ -v "TARGET_CPU_ABI=$(TARGET_CPU_ABI)" \
-o $(PRIVATE_DIR) && \
cp -f $(target_notice_file_txt) \
- $(PRIVATE_DIR)/platforms/android-$(PLATFORM_VERSION)/images/NOTICE.txt && \
+ $(PRIVATE_DIR)/platforms/android-$(PLATFORM_VERSION)/images/$(TARGET_CPU_ABI)/NOTICE.txt && \
cp -f $(tools_notice_file_txt) $(PRIVATE_DIR)/tools/NOTICE.txt && \
+ if [ -f $(PRIVATE_DIR)/platform-tools/llvm-rs-cc ]; then \
+ $(HOST_STRIP_SDK_LLVM) $(PRIVATE_DIR)/platform-tools/llvm-rs-cc; \
+ fi && \
HOST_OUT_EXECUTABLES=$(HOST_OUT_EXECUTABLES) HOST_OS=$(HOST_OS) \
- development/build/tools/sdk_clean.sh $(PRIVATE_DIR) && \
+ development/build/tools/sdk_clean.sh $(PRIVATE_DIR) && \
chmod -R ug+rwX $(PRIVATE_DIR) && \
cd $(dir $@) && zip -rq $(notdir $@) $(PRIVATE_NAME) \
) || ( rm -rf $(PRIVATE_DIR) $@ && exit 44 )
@@ -1386,4 +1453,3 @@
ifneq ($(sdk_repo_goal),)
include $(TOPDIR)development/build/tools/sdk_repo.mk
endif
-
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 3c11673..54bbb68 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -69,7 +69,7 @@
# Only the tags mentioned in this test are expected to be set by module
# makefiles. Anything else is either a typo or a source of unexpected
# behaviors.
-ifneq ($(filter-out user debug eng tests optional samples,$(LOCAL_MODULE_TAGS)),)
+ifneq ($(filter-out user debug eng tests optional samples shell_ash shell_mksh,$(LOCAL_MODULE_TAGS)),)
$(warning unusual tags $(LOCAL_MODULE_TAGS) on $(LOCAL_MODULE) at $(LOCAL_PATH))
endif
@@ -202,7 +202,7 @@
$(error $(LOCAL_PATH): Illegal use of LOCAL_UNINSTALLABLE_MODULE)
endif
else
- LOCAL_INSTALLED_MODULE := $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE_SUBDIR)$(LOCAL_INSTALLED_MODULE_STEM)
+ LOCAL_INSTALLED_MODULE := $(LOCAL_MODULE_PATH)/$(LOCAL_INSTALLED_MODULE_STEM)
endif
# Assemble the list of targets to create PRIVATE_ variables for.
@@ -267,6 +267,44 @@
endif
###########################################################
+## .proto files: Compile proto files to .java
+###########################################################
+proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES))
+# Because names of the .java files compiled from .proto files are unknown until the
+# .proto files are compiled, we use a timestamp file as depedency.
+proto_java_sources_file_stamp :=
+ifneq ($(proto_sources),)
+proto_sources_fullpath := $(addprefix $(TOP_DIR)$(LOCAL_PATH)/, $(proto_sources))
+# By putting the generated java files into $(LOCAL_INTERMEDIATE_SOURCE_DIR), they will be
+# automatically found by the java compiling function transform-java-to-classes.jar.
+ifneq ($(LOCAL_INTERMEDIATE_SOURCE_DIR),)
+proto_java_intemediate_dir := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/proto
+else
+# LOCAL_INTERMEDIATE_SOURCE_DIR may be not defined in non-java modules.
+proto_java_intemediate_dir := $(intermediates)/proto
+endif
+proto_java_sources_file_stamp := $(proto_java_intemediate_dir)/Proto.stamp
+proto_java_sources_dir := $(proto_java_intemediate_dir)/src
+
+$(proto_java_sources_file_stamp): PRIVATE_PROTO_INCLUDES := $(TOP)
+$(proto_java_sources_file_stamp): PRIVATE_PROTO_SRC_FILES := $(proto_sources_fullpath)
+$(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_DIR := $(proto_java_sources_dir)
+ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),micro)
+$(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --javamicro_out
+else
+$(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --java_out
+endif
+$(proto_java_sources_file_stamp): PRIVATE_PROTOC_FLAGS := $(LOCAL_PROTOC_FLAGS)
+$(proto_java_sources_file_stamp) : $(proto_sources_fullpath) $(PROTOC)
+ $(call transform-proto-to-java)
+
+#TODO: protoc should output the dependencies introduced by imports.
+
+LOCAL_INTERMEDIATE_TARGETS += $(proto_java_sources_file_stamp)
+endif # proto_sources
+
+
+###########################################################
## Java: Compile .java files to .class
###########################################################
#TODO: pull this into java.make once host and target are combined
diff --git a/core/binary.mk b/core/binary.mk
index 5fb0e75..dcac435 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -48,6 +48,12 @@
endif
###########################################################
+## Explicitly declare assembly-only __ASSEMBLY__ macro for
+## assembly source
+###########################################################
+LOCAL_ASFLAGS += -D__ASSEMBLY__
+
+###########################################################
## Define PRIVATE_ variables from global vars
###########################################################
ifdef LOCAL_NDK_VERSION
@@ -102,6 +108,7 @@
## Define arm-vs-thumb-mode flags.
###########################################################
LOCAL_ARM_MODE := $(strip $(LOCAL_ARM_MODE))
+ifeq ($(TARGET_ARCH),arm)
arm_objects_mode := $(if $(LOCAL_ARM_MODE),$(LOCAL_ARM_MODE),arm)
normal_objects_mode := $(if $(LOCAL_ARM_MODE),$(LOCAL_ARM_MODE),thumb)
@@ -110,6 +117,12 @@
# actually used (although they are usually empty).
arm_objects_cflags := $($(my_prefix)$(arm_objects_mode)_CFLAGS)
normal_objects_cflags := $($(my_prefix)$(normal_objects_mode)_CFLAGS)
+else
+arm_objects_mode :=
+normal_objects_mode :=
+arm_objects_cflags :=
+normal_objects_cflags :=
+endif
###########################################################
## Define per-module debugging flags. Users can turn on
@@ -133,6 +146,44 @@
###########################################################
+## Compile the .proto files to .cc and then to .o
+###########################################################
+proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES))
+proto_generated_objects :=
+proto_generated_headers :=
+ifneq ($(proto_sources),)
+proto_sources_fullpath := $(addprefix $(LOCAL_PATH)/, $(proto_sources))
+proto_generated_cc_sources_dir := $(intermediates)/proto
+proto_generated_cc_sources := $(addprefix $(proto_generated_cc_sources_dir)/, \
+ $(patsubst %.proto,%.pb.cc,$(proto_sources_fullpath)))
+proto_generated_objects := $(patsubst %.cc,%.o, $(proto_generated_cc_sources))
+
+$(proto_generated_cc_sources): PRIVATE_PROTO_INCLUDES := $(TOP)
+$(proto_generated_cc_sources): PRIVATE_PROTO_CC_OUTPUT_DIR := $(proto_generated_cc_sources_dir)
+$(proto_generated_cc_sources): PRIVATE_PROTOC_FLAGS := $(LOCAL_PROTOC_FLAGS)
+$(proto_generated_cc_sources): $(proto_generated_cc_sources_dir)/%.pb.cc: %.proto $(PROTOC)
+ $(transform-proto-to-cc)
+
+proto_generated_headers := $(patsubst %.pb.cc,%.pb.h, $(proto_generated_cc_sources))
+$(proto_generated_headers): $(proto_generated_cc_sources_dir)/%.pb.h: $(proto_generated_cc_sources_dir)/%.pb.cc
+
+$(proto_generated_cc_sources): PRIVATE_ARM_MODE := $(normal_objects_mode)
+$(proto_generated_cc_sources): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags)
+$(proto_generated_objects): $(proto_generated_cc_sources_dir)/%.o: $(proto_generated_cc_sources_dir)/%.cc
+ $(transform-$(PRIVATE_HOST)cpp-to-o)
+-include $(proto_generated_objects:%.o=%.P)
+
+LOCAL_C_INCLUDES += external/protobuf/src $(proto_generated_cc_sources_dir)
+LOCAL_CFLAGS += -DGOOGLE_PROTOBUF_NO_RTTI
+ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),full)
+LOCAL_STATIC_LIBRARIES += libprotobuf-cpp-2.3.0-full
+else
+LOCAL_STATIC_LIBRARIES += libprotobuf-cpp-2.3.0-lite
+endif
+endif
+
+
+###########################################################
## YACC: Compile .y files to .cpp and the to .o.
###########################################################
@@ -200,7 +251,7 @@
ifneq ($(strip $(cpp_objects)),)
$(cpp_objects): $(intermediates)/%.o: \
$(TOPDIR)$(LOCAL_PATH)/%$(LOCAL_CPP_EXTENSION) \
- $(yacc_cpps) $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(yacc_cpps) $(proto_generated_headers) $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)cpp-to-o)
-include $(cpp_objects:%.o=%.P)
endif
@@ -217,7 +268,7 @@
# TODO: support compiling certain generated files as arm.
$(gen_cpp_objects): PRIVATE_ARM_MODE := $(normal_objects_mode)
$(gen_cpp_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags)
-$(gen_cpp_objects): $(intermediates)/%.o: $(intermediates)/%$(LOCAL_CPP_EXTENSION) $(yacc_cpps) $(LOCAL_ADDITIONAL_DEPENDENCIES)
+$(gen_cpp_objects): $(intermediates)/%.o: $(intermediates)/%$(LOCAL_CPP_EXTENSION) $(yacc_cpps) $(proto_generated_headers) $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)cpp-to-o)
-include $(gen_cpp_objects:%.o=%.P)
endif
@@ -264,7 +315,7 @@
c_objects := $(c_arm_objects) $(c_normal_objects)
ifneq ($(strip $(c_objects)),)
-$(c_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.c $(yacc_cpps) $(LOCAL_ADDITIONAL_DEPENDENCIES)
+$(c_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.c $(yacc_cpps) $(proto_generated_headers) $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)c-to-o)
-include $(c_objects:%.o=%.P)
endif
@@ -281,7 +332,7 @@
# TODO: support compiling certain generated files as arm.
$(gen_c_objects): PRIVATE_ARM_MODE := $(normal_objects_mode)
$(gen_c_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags)
-$(gen_c_objects): $(intermediates)/%.o: $(intermediates)/%.c $(yacc_cpps) $(LOCAL_ADDITIONAL_DEPENDENCIES)
+$(gen_c_objects): $(intermediates)/%.o: $(intermediates)/%.c $(yacc_cpps) $(proto_generated_headers) $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)c-to-o)
-include $(gen_c_objects:%.o=%.P)
endif
@@ -294,7 +345,7 @@
objc_objects := $(addprefix $(intermediates)/,$(objc_sources:.m=.o))
ifneq ($(strip $(objc_objects)),)
-$(objc_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.m $(yacc_cpps) $(PRIVATE_ADDITIONAL_DEPENDENCIES)
+$(objc_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.m $(yacc_cpps) $(proto_generated_headers) $(PRIVATE_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)m-to-o)
-include $(objc_objects:%.o=%.P)
endif
@@ -337,8 +388,10 @@
$(gen_asm_objects) \
$(c_objects) \
$(gen_c_objects) \
+ $(objc_objects) \
$(yacc_objects) \
$(lex_objects) \
+ $(proto_generated_objects) \
$(addprefix $(TOPDIR)$(LOCAL_PATH)/,$(LOCAL_PREBUILT_OBJ_FILES))
LOCAL_C_INCLUDES += $(TOPDIR)$(LOCAL_PATH) $(intermediates) $(base_intermediates)
@@ -487,6 +540,7 @@
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_C_INCLUDES := $(LOCAL_C_INCLUDES)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_LDFLAGS := $(LOCAL_LDFLAGS)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_LDLIBS := $(LOCAL_LDLIBS)
+$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_NO_CRT := $(LOCAL_NO_CRT)
# this is really the way to get the files onto the command line instead
# of using $^, because then LOCAL_ADDITIONAL_DEPENDENCIES doesn't work
diff --git a/core/build-system.html b/core/build-system.html
index ce5e869..e547185 100644
--- a/core/build-system.html
+++ b/core/build-system.html
@@ -247,6 +247,7 @@
for <code>eng</code>.
<ul>
<li>Installs modules tagged with: <code>eng</code>, <code>debug</code>,
+ <code>shell_</code>$(TARGET_SHELL),
<code>user</code>, and/or <code>development</code>.
<li>Installs non-APK modules that have no tags specified.
<li>Installs APKs according to the product definition files, in
@@ -266,7 +267,7 @@
<p>
This is the flavor intended to be the final release bits.
<ul>
- <li>Installs modules tagged with <code>user</code>.
+ <li>Installs modules tagged with <code>shell_</code>$(TARGET_SHELL) and <code>user</code>.
<li>Installs non-APK modules that have no tags specified.
<li>Installs APKs according to the product definition files; tags
are ignored for APK modules.
@@ -681,7 +682,8 @@
<h4>LOCAL_MODULE_TAGS</h4>
<p>Set <code>LOCAL_MODULE_TAGS</code> to any number of whitespace-separated
tags. If the tag list is empty or contains <code>droid</code>, the module
-will get installed as part of a <code>make droid</code>. Otherwise, it will
+will get installed as part of a <code>make droid</code>. Modules with the tag
+<code>shell_</code>$(TARGET_SHELL) will also be installed. Otherwise, it will
only get installed by running <code>make <your-module></code>
or with the <code>make all</code> pseudotarget.</p>
diff --git a/core/build_id.mk b/core/build_id.mk
index 4b7b0e4..e954794 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -23,7 +23,7 @@
# (like "TC1-RC5"). It must be a single word, and is
# capitalized by convention.
#
-BUILD_ID := GINGERBREAD
+BUILD_ID := OPENMASTER
# DISPLAY_BUILD_NUMBER should only be set for development branches,
# If set, the BUILD_NUMBER (cl) is appended to the BUILD_ID for
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index ee28f21..792bd56 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -96,9 +96,13 @@
LOCAL_PROGUARD_FLAGS:=
LOCAL_PROGUARD_FLAG_FILES:=
LOCAL_EMMA_COVERAGE_FILTER:=
+LOCAL_WARNINGS_ENABLE:=
LOCAL_MANIFEST_FILE:=
LOCAL_BUILD_HOST_DEX:=
LOCAL_DEX_PREOPT:=
+LOCAL_PROTOC_OPTIMIZE_TYPE:= # lite(default),micro,full
+LOCAL_PROTOC_FLAGS:=
+LOCAL_NO_CRT:=
# Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to
# iterate over thousands of entries every time.
diff --git a/core/combo/HOST_darwin-x86.mk b/core/combo/HOST_darwin-x86.mk
index 093ecbe..121f89b 100644
--- a/core/combo/HOST_darwin-x86.mk
+++ b/core/combo/HOST_darwin-x86.mk
@@ -45,6 +45,8 @@
HOST_CC := $(CC)
HOST_CXX := $(CXX)
HOST_AR := $(AR)
+HOST_STRIP := $(STRIP)
+HOST_STRIP_COMMAND = $(HOST_STRIP) --strip-debug $< -o $@
HOST_SHLIB_SUFFIX := .dylib
HOST_JNILIB_SUFFIX := .jnilib
diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk
index ae1997c..f7a1756 100644
--- a/core/combo/TARGET_linux-arm.mk
+++ b/core/combo/TARGET_linux-arm.mk
@@ -52,6 +52,8 @@
TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
+TARGET_STRIP := $(HOST_OUT_EXECUTABLES)/soslim$(HOST_EXECUTABLE_SUFFIX)
+TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip --shady --quiet $< --outfile $@
TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
@@ -232,7 +234,7 @@
-Wl,-shared,-Bsymbolic \
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
$(PRIVATE_ALL_OBJECTS) \
- $(PRIVATE_TARGET_CRTBEGIN_SO_O) \
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \
-Wl,--whole-archive \
$(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
-Wl,--no-whole-archive \
@@ -243,7 +245,7 @@
$(PRIVATE_LDFLAGS) \
$(PRIVATE_TARGET_FDO_LIB) \
$(PRIVATE_TARGET_LIBGCC) \
- $(PRIVATE_TARGET_CRTEND_SO_O)
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_SO_O))
endef
define transform-o-to-executable-inner
@@ -255,14 +257,14 @@
$(TARGET_GLOBAL_LD_DIRS) \
-Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
- $(TARGET_CRTBEGIN_DYNAMIC_O) \
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTBEGIN_DYNAMIC_O)) \
$(PRIVATE_ALL_OBJECTS) \
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
$(TARGET_GLOBAL_LDFLAGS) \
$(PRIVATE_LDFLAGS) \
$(TARGET_FDO_LIB) \
$(TARGET_LIBGCC) \
- $(TARGET_CRTEND_O)
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTEND_O))
endef
define transform-o-to-static-executable-inner
@@ -270,12 +272,12 @@
-Wl,--gc-sections \
-o $@ \
$(TARGET_GLOBAL_LD_DIRS) \
- $(TARGET_CRTBEGIN_STATIC_O) \
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTBEGIN_STATIC_O)) \
$(TARGET_GLOBAL_LDFLAGS) \
$(PRIVATE_LDFLAGS) \
$(PRIVATE_ALL_OBJECTS) \
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
$(TARGET_FDO_LIB) \
$(TARGET_LIBGCC) \
- $(TARGET_CRTEND_O)
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTEND_O))
endef
diff --git a/core/combo/TARGET_linux-sh.mk b/core/combo/TARGET_linux-sh.mk
index f373d21..1fac6a0 100644
--- a/core/combo/TARGET_linux-sh.mk
+++ b/core/combo/TARGET_linux-sh.mk
@@ -28,6 +28,8 @@
TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
+TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
+TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@
TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
@@ -103,10 +105,11 @@
TARGET_CRTBEGIN_STATIC_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_static.o
TARGET_CRTBEGIN_DYNAMIC_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_dynamic.o
TARGET_CRTEND_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_android.o
+
TARGET_CRTBEGIN_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/sobegin.o
TARGET_CRTEND_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/soend.o
-TARGET_STRIP_MODULE:=false
+TARGET_STRIP_MODULE:=true
TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm
@@ -117,7 +120,7 @@
-Wl,--gc-sections -Wl,-z,norelro \
-Wl,-shared,-Bsymbolic \
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
- $(PRIVATE_TARGET_CRTBEGIN_SO_O) \
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \
$(PRIVATE_ALL_OBJECTS) \
-Wl,--whole-archive \
$(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
@@ -128,7 +131,7 @@
$(PRIVATE_LDFLAGS) \
$(subst -lrt,, $(subst -lpthread,,$(PRIVATE_LDLIBS))) \
$(PRIVATE_TARGET_LIBGCC) \
- $(PRIVATE_TARGET_CRTEND_SO_O)
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_SO_O))
endef
define transform-o-to-executable-inner
@@ -140,13 +143,13 @@
$(TARGET_GLOBAL_LD_DIRS) \
-Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
- $(TARGET_CRTBEGIN_DYNAMIC_O) \
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTBEGIN_DYNAMIC_O)) \
$(PRIVATE_ALL_OBJECTS) \
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
$(PRIVATE_LDFLAGS) \
$(TARGET_LIBGCC) \
$(subst -lrt,, $(subst -lpthread,,$(PRIVATE_LDLIBS))) \
- $(TARGET_CRTEND_O)
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTEND_O))
endef
define transform-o-to-static-executable-inner
@@ -154,11 +157,11 @@
-Wl,--gc-sections -Wl,-z,norelro \
-o $@ \
$(TARGET_GLOBAL_LD_DIRS) \
- $(TARGET_CRTBEGIN_STATIC_O) \
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTBEGIN_STATIC_O)) \
$(PRIVATE_LDFLAGS) \
$(PRIVATE_ALL_OBJECTS) \
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
$(TARGET_LIBGCC) \
$(subst -lrt,, $(subst -lpthread,,$(PRIVATE_LDLIBS))) \
- $(TARGET_CRTEND_O)
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTEND_O))
endef
diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk
index 6629cbd..449af83 100644
--- a/core/combo/TARGET_linux-x86.mk
+++ b/core/combo/TARGET_linux-x86.mk
@@ -25,7 +25,9 @@
TARGET_GLOBAL_CFLAGS := $(HOST_GLOBAL_CFLAGS) -m32
TARGET_GLOBAL_LDFLAGS := $(HOST_GLOBAL_LDFLAGS) -m32 -lpthread
TARGET_NO_UNDEFINED_LDFLAGS := $(HOST_NO_UNDEFINED_LDFLAGS)
+ifeq ($(strip $(TARGET_ARCH_VARIANT)),)
TARGET_ARCH_VARIANT := x86
+endif
else #simulator
# Provide a default variant.
@@ -36,7 +38,7 @@
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
ifeq ($(strip $(TARGET_TOOLS_PREFIX)),)
TARGET_TOOLS_PREFIX := \
- prebuilt/$(HOST_PREBUILT_TAG)/toolchain/i686-unknown-linux-gnu-4.2.1/bin/i686-unknown-linux-gnu-
+ prebuilt/$(HOST_PREBUILT_TAG)/toolchain/i686-android-linux-4.4.3/bin/i686-android-linux-
endif
TARGET_CC := $(TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)
@@ -44,11 +46,12 @@
TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
+TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
+TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@
ifneq ($(wildcard $(TARGET_CC)),)
TARGET_LIBGCC := \
- $(shell $(TARGET_CC) -m32 -print-file-name=libgcc.a) \
- $(shell $(TARGET_CC) -m32 -print-file-name=libgcc_eh.a)
+ $(shell $(TARGET_CC) -m32 -print-file-name=libgcc.a)
endif
TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
@@ -72,7 +75,7 @@
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
TARGET_GLOBAL_CFLAGS += \
- -march=i686 \
+ -Ulinux \
-m32 \
-fPIC \
-include $(call select-android-config-h,target_linux-x86)
@@ -80,6 +83,17 @@
TARGET_GLOBAL_CPPFLAGS += \
-fno-use-cxa-atexit
+ifeq ($(TARGET_ARCH_VARIANT),x86-atom)
+ TARGET_GLOBAL_CFLAGS += -march=atom -mstackrealign -DUSE_SSSE3 -DUSE_SSE2 -mfpmath=sse
+else
+ TARGET_GLOBAL_CFLAGS += -march=i686
+endif
+
+TARGET_GLOBAL_CFLAGS += -mbionic
+TARGET_GLOBAL_CFLAGS += -D__ANDROID__
+TARGET_GLOBAL_LDFLAGS += -m32
+
+
TARGET_C_INCLUDES := \
$(libc_root)/arch-x86/include \
$(libc_root)/include \
@@ -93,11 +107,10 @@
TARGET_CRTBEGIN_DYNAMIC_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_dynamic.o
TARGET_CRTEND_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_android.o
-
TARGET_CRTBEGIN_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_so.o
TARGET_CRTEND_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_so.o
-# TARGET_STRIP_MODULE:=true
+TARGET_STRIP_MODULE:=true
TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm
@@ -107,9 +120,9 @@
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
-nostdlib -Wl,-soname,$(notdir $@) \
-shared -Bsymbolic \
- -fPIC -march=i686 \
+ $(TARGET_GLOBAL_CFLAGS) \
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
- $(PRIVATE_TARGET_CRTBEGIN_SO_O) \
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTBEGIN_SO_O)) \
$(PRIVATE_ALL_OBJECTS) \
-Wl,--whole-archive \
$(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
@@ -119,7 +132,7 @@
-o $@ \
$(PRIVATE_LDFLAGS) \
$(PRIVATE_TARGET_LIBGCC) \
- $(PRIVATE_TARGET_CRTEND_SO_O)
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_SO_O))
endef
@@ -133,12 +146,12 @@
$(TARGET_GLOBAL_LD_DIRS) \
-Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
- $(TARGET_CRTBEGIN_DYNAMIC_O) \
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTBEGIN_DYNAMIC_O)) \
$(PRIVATE_ALL_OBJECTS) \
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
$(PRIVATE_LDFLAGS) \
$(TARGET_LIBGCC) \
- $(TARGET_CRTEND_O)
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTEND_O))
endef
define transform-o-to-static-executable-inner
@@ -147,17 +160,14 @@
-nostdlib -Bstatic \
-o $@ \
$(TARGET_GLOBAL_LD_DIRS) \
- $(TARGET_CRTBEGIN_STATIC_O) \
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTBEGIN_STATIC_O)) \
$(PRIVATE_LDFLAGS) \
$(PRIVATE_ALL_OBJECTS) \
-Wl,--start-group \
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
$(TARGET_LIBGCC) \
-Wl,--end-group \
- $(TARGET_CRTEND_O)
+ $(if $(filter true,$(PRIVATE_NO_CRT)),,$(TARGET_CRTEND_O))
endef
-TARGET_GLOBAL_CFLAGS += -m32
-TARGET_GLOBAL_LDFLAGS += -m32
-
endif #simulator
diff --git a/core/combo/select.mk b/core/combo/select.mk
index 797c573..d486255 100644
--- a/core/combo/select.mk
+++ b/core/combo/select.mk
@@ -28,6 +28,7 @@
$(combo_target)CC := $(CC)
$(combo_target)CXX := $(CXX)
$(combo_target)AR := $(AR)
+$(combo_target)STRIP := $(STRIP)
$(combo_target)BINDER_MINI := 0
@@ -61,13 +62,23 @@
include $(BUILD_COMBOS)/$(combo_target)$(combo_os_arch).mk
ifneq ($(USE_CCACHE),)
- ccache := prebuilt/$(HOST_PREBUILT_TAG)/ccache/ccache
- # prepend ccache if necessary
- ifneq ($(ccache),$(firstword $($(combo_target)CC)))
- $(combo_target)CC := $(ccache) $($(combo_target)CC)
+ CCACHE_HOST_TAG := $(HOST_PREBUILT_TAG)
+ # If we are cross-compiling Windows binaries on Linux
+ # then use the linux ccache binary instead.
+ ifeq ($(HOST_OS)-$(BUILD_OS),windows-linux)
+ CCACHE_HOST_TAG := linux-$(BUILD_ARCH)
endif
- ifneq ($(ccache),$(firstword $($(combo_target)CXX)))
- $(combo_target)CXX := $(ccache) $($(combo_target)CXX)
+ ccache := prebuilt/$(CCACHE_HOST_TAG)/ccache/ccache
+ # Check that the executable is here.
+ ccache := $(strip $(wildcard $(ccache)))
+ ifdef ccache
+ # prepend ccache if necessary
+ ifneq ($(ccache),$(firstword $($(combo_target)CC)))
+ $(combo_target)CC := $(ccache) $($(combo_target)CC)
+ endif
+ ifneq ($(ccache),$(firstword $($(combo_target)CXX)))
+ $(combo_target)CXX := $(ccache) $($(combo_target)CXX)
+ endif
+ ccache =
endif
- ccache =
endif
diff --git a/core/config.mk b/core/config.mk
index a3bcbf1..9b588cf 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -106,6 +106,9 @@
# Default is to prelink modules.
TARGET_PRELINK_MODULE := true
+# Default shell is ash. Other possible value is mksh.
+TARGET_SHELL := ash
+
# ###############################################################
# Include sub-configuration files
# ###############################################################
@@ -197,6 +200,7 @@
DOXYGEN:= doxygen
AAPT := $(HOST_OUT_EXECUTABLES)/aapt$(HOST_EXECUTABLE_SUFFIX)
AIDL := $(HOST_OUT_EXECUTABLES)/aidl$(HOST_EXECUTABLE_SUFFIX)
+PROTOC := $(HOST_OUT_EXECUTABLES)/aprotoc$(HOST_EXECUTABLE_SUFFIX)
ICUDATA := $(HOST_OUT_EXECUTABLES)/icudata$(HOST_EXECUTABLE_SUFFIX)
SIGNAPK_JAR := $(HOST_OUT_JAVA_LIBRARIES)/signapk$(COMMON_JAVA_PACKAGE_SUFFIX)
MKBOOTFS := $(HOST_OUT_EXECUTABLES)/mkbootfs$(HOST_EXECUTABLE_SUFFIX)
@@ -207,7 +211,7 @@
FS_GET_STATS := $(HOST_OUT_EXECUTABLES)/fs_get_stats$(HOST_EXECUTABLE_SUFFIX)
MKEXT2IMG := $(HOST_OUT_EXECUTABLES)/genext2fs$(HOST_EXECUTABLE_SUFFIX)
MAKE_EXT4FS := $(HOST_OUT_EXECUTABLES)/make_ext4fs$(HOST_EXECUTABLE_SUFFIX)
-MKEXT2USERIMG := $(HOST_OUT_EXECUTABLES)/mkuserimg.sh
+MKEXTUSERIMG := $(HOST_OUT_EXECUTABLES)/mkuserimg.sh
MKEXT2BOOTIMG := external/genext2fs/mkbootimg_ext2.sh
MKTARBALL := build/tools/mktarball.sh
TUNE2FS := tune2fs
@@ -232,7 +236,6 @@
# Binary prelinker/compressor tools
APRIORI := $(HOST_OUT_EXECUTABLES)/apriori$(HOST_EXECUTABLE_SUFFIX)
LSD := $(HOST_OUT_EXECUTABLES)/lsd$(HOST_EXECUTABLE_SUFFIX)
-SOSLIM := $(HOST_OUT_EXECUTABLES)/soslim$(HOST_EXECUTABLE_SUFFIX)
# Deal with archaic version of bison on Mac OS X.
ifeq ($(filter 1.28,$(shell $(YACC) -V)),)
@@ -347,3 +350,13 @@
$(wildcard $(HISTORICAL_NDK_VERSIONS_ROOT)/android-ndk-r*)))
INTERNAL_PLATFORM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/public_api.xml
+
+# This is the standard way to name a directory containing prebuilt target
+# objects. E.g., prebuilt/$(TARGET_PREBUILT_TAG)/libc.so
+ifeq ($(TARGET_SIMULATOR),true)
+ TARGET_PREBUILT_TAG := $(TARGET_OS)-$(TARGET_ARCH)
+else
+ TARGET_PREBUILT_TAG := android-$(TARGET_ARCH)
+endif
+
+include $(BUILD_SYSTEM)/dumpvar.mk
diff --git a/core/definitions.mk b/core/definitions.mk
index 11cea3f..17c8089 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -154,7 +154,7 @@
# $(1): List of directories to look for under this directory
define all-named-subdir-makefiles
-$(wildcard $(addsuffix /Android.mk, $(addprefix $(my-dir)/,$(1))))
+$(wildcard $(addsuffix /Android.mk, $(addprefix $(call my-dir)/,$(1))))
endef
###########################################################
@@ -236,6 +236,19 @@
endef
###########################################################
+## Find all of the .proto files under the named directories.
+## Meant to be used like:
+## SRC_FILES := $(call all-proto-files-under,src)
+###########################################################
+
+define all-proto-files-under
+$(patsubst ./%,%, \
+ $(shell cd $(LOCAL_PATH) ; \
+ find $(1) -name "*.proto" -and -not -name ".*") \
+ )
+endef
+
+###########################################################
## Find all of the html files under the named directories.
## Meant to be used like:
## SRC_FILES := $(call all-html-files-under,src tests)
@@ -666,6 +679,7 @@
@echo PRIVATE_ALL_STATIC_LIBRARIES=$(PRIVATE_ALL_STATIC_LIBRARIES);
@echo PRIVATE_ALL_WHOLE_STATIC_LIBRARIES=$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES);
@echo PRIVATE_ALL_OBJECTS=$(PRIVATE_ALL_OBJECTS);
+@echo PRIVATE_NO_CRT=$(PRIVATE_NO_CRT);
endef
###########################################################
@@ -746,6 +760,36 @@
###########################################################
+## Commands for running protoc to compile .proto into .java
+###########################################################
+
+define transform-proto-to-java
+@mkdir -p $(dir $@)
+@echo "Protoc: $@ <= $(PRIVATE_PROTO_SRC_FILES)"
+@rm -rf $(PRIVATE_PROTO_JAVA_OUTPUT_DIR)
+@mkdir -p $(PRIVATE_PROTO_JAVA_OUTPUT_DIR)
+$(hide) $(PROTOC) \
+ $(addprefix --proto_path=, $(PRIVATE_PROTO_INCLUDES)) \
+ $(PRIVATE_PROTO_JAVA_OUTPUT_OPTION)=$(PRIVATE_PROTO_JAVA_OUTPUT_DIR) \
+ $(PRIVATE_PROTOC_FLAGS) \
+ $(PRIVATE_PROTO_SRC_FILES)
+$(hide) touch $@
+endef
+
+######################################################################
+## Commands for running protoc to compile .proto into .pb.cc and .pb.h
+######################################################################
+define transform-proto-to-cc
+@mkdir -p $(dir $@)
+@echo "Protoc: $@ <= $<"
+$(hide) $(PROTOC) \
+ $(addprefix --proto_path=, $(PRIVATE_PROTO_INCLUDES)) \
+ $(PRIVATE_PROTOC_FLAGS) \
+ --cpp_out=$(PRIVATE_PROTO_CC_OUTPUT_DIR) $<
+endef
+
+
+###########################################################
## Commands for running gcc to compile a C++ file
###########################################################
@@ -927,7 +971,7 @@
$(call transform-host-c-or-s-to-o-no-deps)
endef
-define tranform-host-m-to-o
+define transform-host-m-to-o
$(transform-host-m-to-o-no-deps)
$(transform-d-to-p)
endef
@@ -1086,13 +1130,10 @@
## Commands for filtering a target executable or library
###########################################################
-# Because of bug 743462 ("Prelinked image magic gets stripped
-# by arm-elf-objcopy"), we have to use soslim to strip target
-# binaries.
define transform-to-stripped
@mkdir -p $(dir $@)
@echo "target Strip: $(PRIVATE_MODULE) ($@)"
-$(hide) $(SOSLIM) --strip --shady --quiet $< --outfile $@
+$(hide) $(TARGET_STRIP_COMMAND)
endef
define transform-to-prelinked
@@ -1231,7 +1272,7 @@
ifeq ($(HOST_OS),windows)
xlint_unchecked :=
else
-#xlint_unchecked := -Xlint:unchecked
+xlint_unchecked := -Xlint:unchecked
endif
# emit-line, <word list>, <output file>
@@ -1301,7 +1342,8 @@
$(hide) $(TARGET_JAVAC) -encoding ascii $(PRIVATE_BOOTCLASSPATH) \
$(addprefix -classpath ,$(strip \
$(call normalize-path-list,$(PRIVATE_ALL_JAVA_LIBRARIES)))) \
- $(PRIVATE_JAVACFLAGS) $(strip $(PRIVATE_JAVAC_DEBUG_FLAGS)) $(xlint_unchecked) \
+ $(PRIVATE_JAVACFLAGS) $(strip $(PRIVATE_JAVAC_DEBUG_FLAGS)) \
+ $(if $(findstring true,$(LOCAL_WARNINGS_ENABLE)),$(xlint_unchecked),) \
-extdirs "" -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) \
\@$(dir $(PRIVATE_CLASS_INTERMEDIATES_DIR))/java-source-list-uniq \
|| ( rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR) ; exit 41 )
@@ -1656,10 +1698,11 @@
# Convert a partition data size (eg, as reported in /proc/mtd) to the
# size of the image used to flash that partition (which includes a
-# 64-byte spare area for each 2048-byte page).
+# spare area for each page).
# $(1): the partition data size
define image-size-from-data-size
-$(shell echo $$(($(1) / 2048 * (2048+64))))
+$(shell echo $$(($(1) / $(BOARD_NAND_PAGE_SIZE) * \
+ ($(BOARD_NAND_PAGE_SIZE)+$(BOARD_NAND_SPARE_SIZE)))))
endef
# $(1): The file(s) to check (often $@)
diff --git a/core/dumpvar.mk b/core/dumpvar.mk
new file mode 100644
index 0000000..0c58559
--- /dev/null
+++ b/core/dumpvar.mk
@@ -0,0 +1,78 @@
+# ---------------------------------------------------------------
+# the setpath shell function in envsetup.sh uses this to figure out
+# what to add to the path given the config we have chosen.
+ifeq ($(CALLED_FROM_SETUP),true)
+
+ABP:=$(PWD)/$(HOST_OUT_EXECUTABLES)
+
+ifeq ($(TARGET_SIMULATOR),true)
+ ABP:=$(ABP):$(TARGET_OUT_EXECUTABLES)
+else
+ # this should be copied to HOST_OUT_EXECUTABLES instead
+ ABP:=$(ABP):$(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.4.3/bin
+endif
+ANDROID_BUILD_PATHS := $(ABP)
+ANDROID_PREBUILTS := prebuilt/$(HOST_PREBUILT_TAG)
+
+# The "dumpvar" stuff lets you say something like
+#
+# CALLED_FROM_SETUP=true \
+# make -f config/envsetup.make dumpvar-TARGET_OUT
+# or
+# CALLED_FROM_SETUP=true \
+# make -f config/envsetup.make dumpvar-abs-HOST_OUT_EXECUTABLES
+#
+# The plain (non-abs) version just dumps the value of the named variable.
+# The "abs" version will treat the variable as a path, and dumps an
+# absolute path to it.
+#
+dumpvar_goals := \
+ $(strip $(patsubst dumpvar-%,%,$(filter dumpvar-%,$(MAKECMDGOALS))))
+ifdef dumpvar_goals
+
+ ifneq ($(words $(dumpvar_goals)),1)
+ $(error Only one "dumpvar-" goal allowed. Saw "$(MAKECMDGOALS)")
+ endif
+
+ # If the goal is of the form "dumpvar-abs-VARNAME", then
+ # treat VARNAME as a path and return the absolute path to it.
+ absolute_dumpvar := $(strip $(filter abs-%,$(dumpvar_goals)))
+ ifdef absolute_dumpvar
+ dumpvar_goals := $(patsubst abs-%,%,$(dumpvar_goals))
+ DUMPVAR_VALUE := $(PWD)/$($(dumpvar_goals))
+ dumpvar_target := dumpvar-abs-$(dumpvar_goals)
+ else
+ DUMPVAR_VALUE := $($(dumpvar_goals))
+ dumpvar_target := dumpvar-$(dumpvar_goals)
+ endif
+
+.PHONY: $(dumpvar_target)
+$(dumpvar_target):
+ @echo $(DUMPVAR_VALUE)
+
+endif # dumpvar_goals
+
+ifneq ($(dumpvar_goals),report_config)
+PRINT_BUILD_CONFIG:=
+endif
+
+endif # CALLED_FROM_SETUP
+
+
+ifneq ($(PRINT_BUILD_CONFIG),)
+$(info ============================================)
+$(info PLATFORM_VERSION_CODENAME=$(PLATFORM_VERSION_CODENAME))
+$(info PLATFORM_VERSION=$(PLATFORM_VERSION))
+$(info TARGET_PRODUCT=$(TARGET_PRODUCT))
+$(info TARGET_BUILD_VARIANT=$(TARGET_BUILD_VARIANT))
+$(info TARGET_SIMULATOR=$(TARGET_SIMULATOR))
+$(info TARGET_BUILD_TYPE=$(TARGET_BUILD_TYPE))
+$(info TARGET_BUILD_APPS=$(TARGET_BUILD_APPS))
+$(info TARGET_ARCH=$(TARGET_ARCH))
+$(info TARGET_ARCH_VARIANT=$(TARGET_ARCH_VARIANT))
+$(info HOST_ARCH=$(HOST_ARCH))
+$(info HOST_OS=$(HOST_OS))
+$(info HOST_BUILD_TYPE=$(HOST_BUILD_TYPE))
+$(info BUILD_ID=$(BUILD_ID))
+$(info ============================================)
+endif
diff --git a/core/dynamic_binary.mk b/core/dynamic_binary.mk
index cfbe740..005ccf3 100644
--- a/core/dynamic_binary.mk
+++ b/core/dynamic_binary.mk
@@ -75,7 +75,7 @@
$(error Symbol compression not yet supported.)
compress_output := $(intermediates)/COMPRESSED-$(LOCAL_BUILT_MODULE_STEM)
-#TODO: write the real $(SOSLIM) rule.
+#TODO: write the real $(STRIPPER) rule.
#TODO: define a rule to build TARGET_SYMBOL_FILTER_FILE, and
# make it depend on ALL_ORIGINAL_DYNAMIC_BINARIES.
$(compress_output): $(compress_input) $(TARGET_SYMBOL_FILTER_FILE) | $(ACP)
@@ -94,7 +94,7 @@
# The output of the prelink step is the binary we want to use
# for symbolic debugging; the prelink step may move sections
# around, so we have to use this version.
-prelink_output := $(LOCAL_UNSTRIPPED_PATH)/$(LOCAL_MODULE_SUBDIR)$(LOCAL_BUILT_MODULE_STEM)
+prelink_output := $(LOCAL_UNSTRIPPED_PATH)/$(LOCAL_BUILT_MODULE_STEM)
# Skip prelinker if it is FDO instrumentation build.
ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),)
@@ -137,7 +137,7 @@
ifeq ($(LOCAL_STRIP_MODULE),true)
# Strip the binary
-$(strip_output): $(strip_input) | $(SOSLIM)
+$(strip_output): $(strip_input) | $(TARGET_STRIP)
$(transform-to-stripped)
else
# Don't strip the binary, just copy it. We can't skip this step
diff --git a/core/envsetup.mk b/core/envsetup.mk
index c70a5e2..e4c99d5 100644
--- a/core/envsetup.mk
+++ b/core/envsetup.mk
@@ -26,7 +26,7 @@
ifeq ($(TARGET_SIMULATOR),true)
TARGET_PRODUCT := sim
else
-TARGET_PRODUCT := generic
+TARGET_PRODUCT := full
endif
endif
@@ -158,14 +158,6 @@
TARGET_BUILD_TYPE := release
endif
-# This is the standard way to name a directory containing prebuilt target
-# objects. E.g., prebuilt/$(TARGET_PREBUILT_TAG)/libc.so
-ifeq ($(TARGET_SIMULATOR),true)
- TARGET_PREBUILT_TAG := $(TARGET_OS)-$(TARGET_ARCH)
-else
- TARGET_PREBUILT_TAG := android-$(TARGET_ARCH)
-endif
-
# ---------------------------------------------------------------
# figure out the output directories
@@ -283,81 +275,3 @@
ifeq ($(PRINT_BUILD_CONFIG),)
PRINT_BUILD_CONFIG := true
endif
-
-# ---------------------------------------------------------------
-# the setpath shell function in envsetup.sh uses this to figure out
-# what to add to the path given the config we have chosen.
-ifeq ($(CALLED_FROM_SETUP),true)
-
-ABP:=$(PWD)/$(HOST_OUT_EXECUTABLES)
-
-ifeq ($(TARGET_SIMULATOR),true)
- ABP:=$(ABP):$(TARGET_OUT_EXECUTABLES)
-else
- # this should be copied to HOST_OUT_EXECUTABLES instead
- ABP:=$(ABP):$(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.4.3/bin
-endif
-ANDROID_BUILD_PATHS := $(ABP)
-ANDROID_PREBUILTS := prebuilt/$(HOST_PREBUILT_TAG)
-
-# The "dumpvar" stuff lets you say something like
-#
-# CALLED_FROM_SETUP=true \
-# make -f config/envsetup.make dumpvar-TARGET_OUT
-# or
-# CALLED_FROM_SETUP=true \
-# make -f config/envsetup.make dumpvar-abs-HOST_OUT_EXECUTABLES
-#
-# The plain (non-abs) version just dumps the value of the named variable.
-# The "abs" version will treat the variable as a path, and dumps an
-# absolute path to it.
-#
-dumpvar_goals := \
- $(strip $(patsubst dumpvar-%,%,$(filter dumpvar-%,$(MAKECMDGOALS))))
-ifdef dumpvar_goals
-
- ifneq ($(words $(dumpvar_goals)),1)
- $(error Only one "dumpvar-" goal allowed. Saw "$(MAKECMDGOALS)")
- endif
-
- # If the goal is of the form "dumpvar-abs-VARNAME", then
- # treat VARNAME as a path and return the absolute path to it.
- absolute_dumpvar := $(strip $(filter abs-%,$(dumpvar_goals)))
- ifdef absolute_dumpvar
- dumpvar_goals := $(patsubst abs-%,%,$(dumpvar_goals))
- DUMPVAR_VALUE := $(PWD)/$($(dumpvar_goals))
- dumpvar_target := dumpvar-abs-$(dumpvar_goals)
- else
- DUMPVAR_VALUE := $($(dumpvar_goals))
- dumpvar_target := dumpvar-$(dumpvar_goals)
- endif
-
-.PHONY: $(dumpvar_target)
-$(dumpvar_target):
- @echo $(DUMPVAR_VALUE)
-
-endif # dumpvar_goals
-
-ifneq ($(dumpvar_goals),report_config)
-PRINT_BUILD_CONFIG:=
-endif
-
-endif # CALLED_FROM_SETUP
-
-
-ifneq ($(PRINT_BUILD_CONFIG),)
-$(info ============================================)
-$(info PLATFORM_VERSION_CODENAME=$(PLATFORM_VERSION_CODENAME))
-$(info PLATFORM_VERSION=$(PLATFORM_VERSION))
-$(info TARGET_PRODUCT=$(TARGET_PRODUCT))
-$(info TARGET_BUILD_VARIANT=$(TARGET_BUILD_VARIANT))
-$(info TARGET_SIMULATOR=$(TARGET_SIMULATOR))
-$(info TARGET_BUILD_TYPE=$(TARGET_BUILD_TYPE))
-$(info TARGET_BUILD_APPS=$(TARGET_BUILD_APPS))
-$(info TARGET_ARCH=$(TARGET_ARCH))
-$(info HOST_ARCH=$(HOST_ARCH))
-$(info HOST_OS=$(HOST_OS))
-$(info HOST_BUILD_TYPE=$(HOST_BUILD_TYPE))
-$(info BUILD_ID=$(BUILD_ID))
-$(info ============================================)
-endif
diff --git a/core/find-jdk-tools-jar.sh b/core/find-jdk-tools-jar.sh
index e772a15..20d7d4d 100755
--- a/core/find-jdk-tools-jar.sh
+++ b/core/find-jdk-tools-jar.sh
@@ -3,12 +3,12 @@
else
JAVAC=$(which javac)
if [ -z "$JAVAC" ] ; then
- echo "Please-install-JDK-6.0,-which-you-can-download-from-java.sun.com"
+ echo "Please-install-JDK-6,-which-you-can-download-from-java.sun.com"
exit 1
fi
- while [ -L $JAVAC ] ; do
- LSLINE=$(ls -l $JAVAC)
- JAVAC=$(echo -n $LSLINE | sed -e "s/.* -> //")
+ while [ -L "$JAVAC" ] ; do
+ LSLINE=$(ls -l "$JAVAC")
+ JAVAC=$(echo -n "$LSLINE" | sed -e "s/.* -> //")
done
echo $JAVAC | sed -e "s:\(.*\)/bin/javac.*:\\1/lib/tools.jar:"
fi
diff --git a/core/java.mk b/core/java.mk
index 6b8d04d..35b0343 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -32,6 +32,16 @@
LOCAL_JAVA_LIBRARIES := core core-junit ext framework $(LOCAL_JAVA_LIBRARIES)
endif
endif
+
+proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES))
+ifneq ($(proto_sources),)
+ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),micro)
+ LOCAL_STATIC_JAVA_LIBRARIES += libprotobuf-java-2.3.0-micro
+else
+ LOCAL_STATIC_JAVA_LIBRARIES += libprotobuf-java-2.3.0-lite
+endif
+endif
+
LOCAL_JAVA_LIBRARIES := $(sort $(LOCAL_JAVA_LIBRARIES))
LOCAL_BUILT_MODULE_STEM := $(strip $(LOCAL_BUILT_MODULE_STEM))
@@ -167,7 +177,8 @@
# Deps for generated source files must be handled separately,
# via deps on the target that generates the sources.
$(full_classes_compiled_jar): PRIVATE_JAVACFLAGS := $(LOCAL_JAVACFLAGS)
-$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) $(jar_manifest_file)
+$(full_classes_compiled_jar): $(java_sources) $(java_resource_sources) $(full_java_lib_deps) $(jar_manifest_file) \
+ $(RenderScript_file_stamp) $(proto_java_sources_file_stamp)
$(transform-java-to-classes.jar)
# All of the rules after full_classes_compiled_jar are very unlikely
diff --git a/core/main.mk b/core/main.mk
index b288080..bce1a9e 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -31,11 +31,11 @@
#endif
# check for broken versions of make
-ifeq (0,$(shell expr $$(echo $(MAKE_VERSION) | sed "s/[^0-9\.].*//") \>= 3.81))
+ifeq (0,$(shell expr $$(echo $(MAKE_VERSION) | sed "s/[^0-9\.].*//") = 3.81))
$(warning ********************************************************************************)
$(warning * You are using version $(MAKE_VERSION) of make.)
-$(warning * You must upgrade to version 3.81 or greater.)
-$(warning * see http://source.android.com/download)
+$(warning * Android can only be built by version 3.81.)
+$(warning * see http://source.android.com/source/download.html)
$(warning ********************************************************************************)
$(error stopping)
endif
@@ -124,7 +124,7 @@
$(info The correct version is: 1.6.)
$(info $(space))
$(info Please follow the machine setup instructions at)
-$(info $(space)$(space)$(space)$(space)http://source.android.com/download)
+$(info $(space)$(space)$(space)$(space)http://source.android.com/source/download.html)
$(info ************************************************************)
$(error stop)
endif
@@ -140,7 +140,7 @@
$(info The correct version is: 1.6.)
$(info $(space))
$(info Please follow the machine setup instructions at)
-$(info $(space)$(space)$(space)$(space)http://source.android.com/download)
+$(info $(space)$(space)$(space)$(space)http://source.android.com/source/download.html)
$(info ************************************************************)
$(error stop)
endif
@@ -152,7 +152,7 @@
# These are the modifier targets that don't do anything themselves, but
# change the behavior of the build.
# (must be defined before including definitions.make)
-INTERNAL_MODIFIER_TARGETS := showcommands checkbuild
+INTERNAL_MODIFIER_TARGETS := showcommands checkbuild all
# Bring in standard build system definitions.
include $(BUILD_SYSTEM)/definitions.mk
@@ -391,17 +391,18 @@
dalvik/libdex \
dalvik/tools/dmtracedump \
dalvik/tools/hprof-conv \
- development/tools/line_endings \
- development/tools/etc1tool \
- sdk/emulator/mksdcard \
- sdk/sdklauncher \
development/host \
+ development/tools/etc1tool \
+ development/tools/line_endings \
+ external/easymock \
external/expat \
external/libpng \
external/qemu \
external/sqlite/dist \
external/zlib \
frameworks/base \
+ sdk/emulator/mksdcard \
+ sdk/sdklauncher \
system/core/adb \
system/core/fastboot \
system/core/libcutils \
@@ -418,13 +419,16 @@
sdk/archquery \
sdk/androidprefs \
sdk/apkbuilder \
+ sdk/common \
+ sdk/ddms \
+ sdk/hierarchyviewer2 \
+ sdk/ide_common \
sdk/jarutils \
sdk/layoutlib_api \
- sdk/layoutlib_utils \
+ sdk/layoutopt \
sdk/ninepatch \
sdk/sdkstats \
sdk/sdkmanager \
- sdk/layoutopt \
development/apps \
development/tools/mkstubs \
packages
@@ -579,7 +583,7 @@
endif
# Use tags to get the non-APPS user modules. Use the product
# definition files to get the APPS user modules.
-user_MODULES := $(sort $(call get-tagged-modules,user))
+user_MODULES := $(sort $(call get-tagged-modules,user shell_$(TARGET_SHELL)))
user_MODULES := $(user_MODULES) $(user_PACKAGES)
eng_MODULES := $(sort $(call get-tagged-modules,eng))
@@ -678,6 +682,9 @@
.PHONY: systemtarball
systemtarball: $(INSTALLED_SYSTEMTARBALL_TARGET)
+.PHONY: boottarball
+boottarball: $(INSTALLED_BOOTTARBALL_TARGET)
+
.PHONY: userdataimage
userdataimage: $(INSTALLED_USERDATAIMAGE_TARGET)
diff --git a/core/notice_files.mk b/core/notice_files.mk
index fd76d51..74beb49 100644
--- a/core/notice_files.mk
+++ b/core/notice_files.mk
@@ -2,9 +2,9 @@
## Track NOTICE files
###########################################################
-notice_file:=$(shell find $(LOCAL_PATH) -maxdepth 1 -name NOTICE)
+notice_file:=$(strip $(wildcard $(LOCAL_PATH)/NOTICE))
-ifneq ($(strip $(notice_file)),)
+ifdef notice_file
# This relies on the name of the directory in PRODUCT_OUT matching where
# it's installed on the target - i.e. system, data, etc. This does
diff --git a/core/pathmap.mk b/core/pathmap.mk
index 6cd3b8f..fe7ba1a 100644
--- a/core/pathmap.mk
+++ b/core/pathmap.mk
@@ -82,6 +82,7 @@
graphics \
location \
media \
+ drm \
opengl \
sax \
telephony \
diff --git a/core/tasks/sdk-addon.mk b/core/tasks/sdk-addon.mk
index e21fedc..8408676 100644
--- a/core/tasks/sdk-addon.mk
+++ b/core/tasks/sdk-addon.mk
@@ -55,10 +55,10 @@
# All SDK add-ons have these files
files_to_copy += \
- $(BUILT_SYSTEMIMAGE):images/system.img \
- $(BUILT_USERDATAIMAGE_TARGET):images/userdata.img \
- $(BUILT_RAMDISK_TARGET):images/ramdisk.img \
- $(target_notice_file_txt):images/NOTICE.txt
+ $(BUILT_SYSTEMIMAGE):images/$(TARGET_CPU_ABI)/system.img \
+ $(BUILT_USERDATAIMAGE_TARGET):images/$(TARGET_CPU_ABI)/userdata.img \
+ $(BUILT_RAMDISK_TARGET):images/$(TARGET_CPU_ABI)/ramdisk.img \
+ $(target_notice_file_txt):images/$(TARGET_CPU_ABI)/NOTICE.txt
# Generate rules to copy the requested files
$(foreach cf,$(files_to_copy), \
diff --git a/core/user_tags.mk b/core/user_tags.mk
index 3d8e5a6..3eade8a 100644
--- a/core/user_tags.mk
+++ b/core/user_tags.mk
@@ -53,6 +53,8 @@
asm-3.1 \
atree \
audio \
+ badblocks \
+ badblocks_host \
bb2sym \
bb_dump \
bbprof \
@@ -79,6 +81,8 @@
dasm \
dbus-daemon \
ddmlib \
+ ddmlibTests \
+ ddmlib-prebuilt \
ddms \
ddmuilib \
debuggerd \
@@ -98,6 +102,8 @@
dumpstate \
dumpsys \
dx-tests \
+ e2fsck \
+ e2fsck_host \
easymock \
edify \
emmalib \
@@ -131,6 +137,9 @@
gzip \
hciattach \
hierarchyviewer \
+ hierarchyviewer1 \
+ hierarchyviewer2 \
+ hierarchyviewerlib \
hist_trace \
hosttestlib \
icudata \
@@ -150,6 +159,7 @@
jdwpspy \
jfreechart-1.0.9 \
jfreechart-1.0.9-swt \
+ jsilver \
jsr305 \
jsr305lib \
junit \
@@ -190,12 +200,14 @@
libcameraservice \
libcamerastub \
libc_common \
+ libchromium_net \
libc_nomalloc \
libctest \
libcutils \
libdb \
libdbus \
libdiskconfig \
+ libdiskconfig_host \
libdl \
libdrm1 \
libdrm1_jni \
@@ -212,6 +224,18 @@
libETC1 \
libexif \
libext \
+ libext2fs \
+ libext2fs_host \
+ libext2_blkid \
+ libext2_blkid_host \
+ libext2_com_err \
+ libext2_com_err_host \
+ libext2_e2p \
+ libext2_e2p_host \
+ libext2_profile \
+ libext2_profile_host \
+ libext2_uuid \
+ libext2_uuid_host \
libfdlibm \
libfdlibm-host \
libFFTEm \
@@ -222,11 +246,13 @@
libGLES_android \
libGLESv1_CM \
libGLESv2 \
+ libglib \
libglib_static \
libgui \
libhardware \
libhardware_legacy \
libhost \
+ libhyphenation \
libiprouteutil \
libiptc \
libjnigraphics \
@@ -348,6 +374,7 @@
libwpa_client \
libwrapsim \
libxml2 \
+ libxslt \
libzipfile \
lights.kraken \
lights.qsd8k \
@@ -368,6 +395,8 @@
minigzip \
mkbootfs \
mkbootimg \
+ mke2fs \
+ mke2fs_host \
mksdcard \
mksnapshot \
mkstubs \
@@ -375,10 +404,12 @@
mkyaffs2image \
monkey \
monkeyrunner \
+ MonkeyRunnerTest \
mtpd \
ndc \
netcfg \
netd \
+ network \
ninepatch \
oauth \
obbtool \
@@ -401,6 +432,7 @@
profile_trace \
q2dm \
q2g \
+ qemu-android \
qwerty2.kcm \
qwerty.kcm \
racoon \
@@ -408,6 +440,8 @@
read_method \
read_pid \
read_trace \
+ resize2fs \
+ resize2fs_host \
rgb2565 \
rild \
rsg-generator \
@@ -457,6 +491,8 @@
test_zipfile \
toolbox \
traceview \
+ tune2fs \
+ tune2fs_host \
tuttle2.kcm \
uix \
usbtest \
diff --git a/core/version_defaults.mk b/core/version_defaults.mk
index be4826f..2f57cf7 100644
--- a/core/version_defaults.mk
+++ b/core/version_defaults.mk
@@ -41,7 +41,7 @@
# which is the version that we reveal to the end user.
# Update this value when the platform version changes (rather
# than overriding it somewhere else). Can be an arbitrary string.
- PLATFORM_VERSION := 2.3.4
+ PLATFORM_VERSION := AOSP
endif
ifeq "" "$(PLATFORM_SDK_VERSION)"
@@ -59,7 +59,7 @@
ifeq "" "$(PLATFORM_VERSION_CODENAME)"
# This is the current development code-name, if the build is not a final
# release build. If this is a final release build, it is simply "REL".
- PLATFORM_VERSION_CODENAME := REL
+ PLATFORM_VERSION_CODENAME := AOSP
endif
ifeq "" "$(DEFAULT_APP_TARGET_SDK)"
diff --git a/envsetup.sh b/envsetup.sh
index a68f73e..cefe8ba 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -311,7 +311,7 @@
if [ "$TARGET_SIMULATOR" = true ] ; then
default_value=sim
else
- default_value=generic
+ default_value=full
fi
fi
@@ -376,7 +376,7 @@
export TARGET_BUILD_VARIANT=$default_value
elif (echo -n $ANSWER | grep -q -e "^[0-9][0-9]*$") ; then
if [ "$ANSWER" -le "${#VARIANT_CHOICES[@]}" ] ; then
- export TARGET_BUILD_VARIANT=${VARIANT_CHOICES[$(($ANSWER-$_arrayoffset))]}
+ export TARGET_BUILD_VARIANT=${VARIANT_CHOICES[$(($ANSWER-1))]}
fi
else
if check_variant $ANSWER
@@ -429,7 +429,9 @@
}
# add the default one here
-add_lunch_combo generic-eng
+add_lunch_combo full-eng
+add_lunch_combo full_x86-eng
+add_lunch_combo vbox_x86-eng
# if we're on linux, add the simulator. There is a special case
# in lunch to deal with the simulator
@@ -464,7 +466,7 @@
answer=$1
else
print_lunch_menu
- echo -n "Which would you like? [generic-eng] "
+ echo -n "Which would you like? [full-eng] "
read answer
fi
@@ -472,7 +474,7 @@
if [ -z "$answer" ]
then
- selection=generic-eng
+ selection=full-eng
elif [ "$answer" = "simulator" ]
then
selection=simulator
@@ -480,7 +482,7 @@
then
if [ $answer -le ${#LUNCH_MENU_CHOICES[@]} ]
then
- selection=${LUNCH_MENU_CHOICES[$(($answer-$_arrayoffset))]}
+ selection=${LUNCH_MENU_CHOICES[$(($answer-1))]}
fi
elif (echo -n $answer | grep -q -e "^[^\-][^\-]*-[^\-][^\-]*$")
then
@@ -560,7 +562,7 @@
apps=all
fi
- export TARGET_PRODUCT=generic
+ export TARGET_PRODUCT=full
export TARGET_BUILD_VARIANT=$variant
export TARGET_SIMULATOR=false
export TARGET_BUILD_TYPE=release
@@ -905,10 +907,10 @@
{
# process standard adb options
local adbTarget=""
- if [ $1 = "-d" -o $1 = "-e" ]; then
+ if [ "$1" = "-d" -o "$1" = "-e" ]; then
adbTarget=$1
shift 1
- elif [ $1 = "-s" ]; then
+ elif [ "$1" = "-s" ]; then
adbTarget="$1 $2"
shift 2
fi
@@ -1059,10 +1061,9 @@
echo "Invalid choice"
continue
fi
- pathname=${lines[$(($choice-$_arrayoffset))]}
+ pathname=${lines[$(($choice-1))]}
done
else
- # even though zsh arrays are 1-based, $foo[0] is an alias for $foo[1]
pathname=${lines[0]}
fi
cd $T/$pathname
@@ -1082,18 +1083,16 @@
fi
}
-# determine whether arrays are zero-based (bash) or one-based (zsh)
-_xarray=(a b c)
-if [ -z "${_xarray[${#_xarray[@]}]}" ]
-then
- _arrayoffset=1
-else
- _arrayoffset=0
-fi
-unset _xarray
+case `ps -o command -p $$` in
+ *bash*)
+ ;;
+ *)
+ echo "WARNING: Only bash is supported, use of other shell would lead to erroneous results"
+ ;;
+esac
# Execute the contents of any vendorsetup.sh files we can find.
-for f in `/bin/ls vendor/*/vendorsetup.sh vendor/*/build/vendorsetup.sh device/*/*/vendorsetup.sh 2> /dev/null`
+for f in `/bin/ls vendor/*/vendorsetup.sh vendor/*/*/vendorsetup.sh device/*/*/vendorsetup.sh 2> /dev/null`
do
echo "including $f"
. $f
diff --git a/libs/host/CopyFile.c b/libs/host/CopyFile.c
index a822b41..3cbe34a 100644
--- a/libs/host/CopyFile.c
+++ b/libs/host/CopyFile.c
@@ -63,6 +63,22 @@
}
/*
+ * Returns true if the source file has high resolution modification
+ * date. Cygwin doesn't support st_mtim in normal build, so always
+ * return false.
+ */
+static bool isHiresMtime(const struct stat* pSrcStat)
+{
+#if defined(WIN32) || defined(USE_MINGW)
+ return 0;
+#elif defined(MACOSX_RSRC)
+ return pSrcStat->st_mtimespec.tv_nsec > 0;
+#else
+ return pSrcStat->st_mtim.tv_nsec > 0;
+#endif
+}
+
+/*
* Returns true if the source and destination files are actually the
* same thing. We detect this by checking the inode numbers, which seems
* to work on Cygwin.
@@ -151,6 +167,8 @@
*/
ut.actime = pSrcStat->st_atime;
ut.modtime = pSrcStat->st_mtime;
+ if (isHiresMtime(pSrcStat))
+ ut.modtime += 1;
if (utime(dst, &ut) != 0) {
DBUG(("--- unable to set timestamps on '%s': %s\n",
dst, strerror(errno)));
diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk
index 9e52d25..26bf6ab 100644
--- a/target/board/generic/BoardConfig.mk
+++ b/target/board/generic/BoardConfig.mk
@@ -12,3 +12,6 @@
# no hardware camera
USE_CAMERA_STUB := true
+
+# Set /system/bin/sh to mksh, not ash, to test the transition.
+TARGET_SHELL := mksh
diff --git a/target/board/generic/device.mk b/target/board/generic/device.mk
new file mode 100644
index 0000000..0b4dc27
--- /dev/null
+++ b/target/board/generic/device.mk
@@ -0,0 +1,26 @@
+#
+# Copyright (C) 2009 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.
+#
+
+# This is a build configuration for the product aspects that
+# are specific to the emulator.
+
+PRODUCT_PROPERTY_OVERRIDES := \
+ ro.ril.hsxpa=1 \
+ ro.ril.gprsclass=10
+
+PRODUCT_COPY_FILES := \
+ development/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
+ development/data/etc/vold.conf:system/etc/vold.conf
diff --git a/target/board/generic_x86/AndroidBoard.mk b/target/board/generic_x86/AndroidBoard.mk
index ff46149..8fb68f8 100644
--- a/target/board/generic_x86/AndroidBoard.mk
+++ b/target/board/generic_x86/AndroidBoard.mk
@@ -1,17 +1,3 @@
LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE := init.rc
-LOCAL_SRC_FILES := init.rc
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
-include $(BUILD_PREBUILT)
-
-ifeq ($(TARGET_PREBUILT_KERNEL),)
-LOCAL_KERNEL := prebuilt/android-x86/kernel/kernel
-else
-LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL)
-endif
-
-PRODUCT_COPY_FILES += \
- $(LOCAL_KERNEL):kernel
+#
diff --git a/target/board/generic_x86/BoardConfig.mk b/target/board/generic_x86/BoardConfig.mk
index 608aee1..1bad20d 100644
--- a/target/board/generic_x86/BoardConfig.mk
+++ b/target/board/generic_x86/BoardConfig.mk
@@ -1,20 +1,23 @@
-TARGET_COMPRESS_MODULE_SYMBOLS := false
-TARGET_PRELINK_MODULE := false
-TARGET_NO_RECOVERY := true
-TARGET_HARDWARE_3D := false
-BOARD_USES_GENERIC_AUDIO := true
-USE_CAMERA_STUB := true
-TARGET_PROVIDES_INIT_RC := true
-USE_CUSTOM_RUNTIME_HEAP_MAX := "32M"
-TARGET_CPU_ABI := x86
-TARGET_USERIMAGES_USE_EXT2 := true
-TARGET_BOOTIMAGE_USE_EXT2 := true
+# config.mk
+#
+# Product-specific compile-time definitions.
+#
-# For VirtualBox and likely other emulators
-BOARD_INSTALLER_CMDLINE := init=/init console=ttyS0 console=tty0 androidboot.hardware=generic_x86 vga=788 verbose
-BOARD_KERNEL_CMDLINE := init=/init console=tty0 console=ttyS0 androidboot.hardware=generic_x86 vga=788
-TARGET_USE_DISKINSTALLER := true
-TARGET_DISK_LAYOUT_CONFIG := build/target/board/generic_x86/disk_layout.conf
-BOARD_BOOTIMAGE_MAX_SIZE := 8388608
-BOARD_SYSLOADER_MAX_SIZE := 7340032
-BOARD_FLASH_BLOCK_SIZE := 512
+# The generic product target doesn't have any hardware-specific pieces.
+TARGET_NO_BOOTLOADER := true
+TARGET_NO_KERNEL := true
+TARGET_CPU_ABI := x86
+TARGET_ARCH := x86
+TARGET_ARCH_VARIANT := x86-atom
+TARGET_PRELINK_MODULE := false
+
+# The IA emulator (qemu) uses the Goldfish devices
+HAVE_HTC_AUDIO_DRIVER := true
+BOARD_USES_GENERIC_AUDIO := true
+
+# no hardware camera
+USE_CAMERA_STUB := true
+
+# Set /system/bin/sh to mksh, not ash, to test the transition.
+TARGET_SHELL := mksh
+
diff --git a/target/board/generic_x86/README.txt b/target/board/generic_x86/README.txt
index 97e2d5b..938d982 100644
--- a/target/board/generic_x86/README.txt
+++ b/target/board/generic_x86/README.txt
@@ -1,33 +1,8 @@
-The generic_x86 board target provides basic services on very basic
-hardware (really for an emulation). To build with generic_x86, you will
-need an appropriate kernel for your emulation (or device).
+The "generic_x86" product defines a non-hardware-specific IA target
+without a kernel or bootloader.
-A1. Create a new top level directory and pull the AOSP repository
- mkdir $HOME/AOSP
- cd $HOME/AOSP
- repo init -u git://android.git.kernel.org/platform/manifest.git
- repo sync
+It can be used to build the entire user-level system, and
+will work with the IA version of the emulator,
-A2. Copy in the buildspeck.mk
- cd $HOME/AOSP
- cp build/target/board/generic_x86/buildspec-generic_x86.mk buildspec.mk
-
-A3. Copy in the kernel
- cd $HOME/AOSP
- cp ~/bzImage.your_device $HOME/AOSP/prebuilt/android-x86/kernel/kernel
-
-A4. Build
- cd $HOME/AOSP
- source build/envsetup.sh
- lunch generic_x86-eng
- make -j8
-
-The build will generate some image files whose format may or may not be correct for your
-device. You can build an installer image disk for the VirtualBox emulator using the command:
-
-A5. Build a VirtualBox installer image
- cd $HOME/AOSP
- source build/envsetup.sh
- lunch generic_x86-eng
- make -j8 installer_vdi
-
+It is not a product "base class"; no other products inherit
+from it or use it in any way.
diff --git a/target/board/generic_x86/buildspec-generic_x86.mk b/target/board/generic_x86/buildspec-generic_x86.mk
deleted file mode 100644
index fbc3947..0000000
--- a/target/board/generic_x86/buildspec-generic_x86.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-BUILD_ENV_SEQUENCE_NUMBER := 9
-DISABLE_DEXPREOPT := true
-TARGET_ARCH := x86
-
-# The eth0 device should be started with dhcp on boot.
-# Useful for emulators that don't provide a wifi connection.
-NET_ETH0_STARTONBOOT := true
diff --git a/target/board/generic_x86/device.mk b/target/board/generic_x86/device.mk
new file mode 100644
index 0000000..0b4dc27
--- /dev/null
+++ b/target/board/generic_x86/device.mk
@@ -0,0 +1,26 @@
+#
+# Copyright (C) 2009 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.
+#
+
+# This is a build configuration for the product aspects that
+# are specific to the emulator.
+
+PRODUCT_PROPERTY_OVERRIDES := \
+ ro.ril.hsxpa=1 \
+ ro.ril.gprsclass=10
+
+PRODUCT_COPY_FILES := \
+ development/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
+ development/data/etc/vold.conf:system/etc/vold.conf
diff --git a/target/board/generic_x86/disk_layout.conf b/target/board/generic_x86/disk_layout.conf
deleted file mode 100644
index 7b073ee..0000000
--- a/target/board/generic_x86/disk_layout.conf
+++ /dev/null
@@ -1,54 +0,0 @@
-device {
- path /dev/block/sda
-
- scheme mbr
-
- # bytes in a disk sector (== 1 LBA), must be a power of 2!
- sector_size 512
-
- # What LBA should the partitions start at?
- start_lba 2048
-
- # Autodetect disk size if == 0
- num_lba 0
-
- partitions {
- sysloader {
- active y
- type linux
- len 7M
- }
-
- recovery {
- active y
- type linux
- len 16M
- }
-
- boot {
- active y
- type linux
- len 8M
- }
-
- cache {
- type linux
- len 512M
- }
-
- system {
- type linux
- len 512M
- }
-
- third_party {
- type linux
- len 512M
- }
-
- data {
- type linux
- len -1
- }
- }
-}
diff --git a/target/board/generic_x86/init.rc b/target/board/generic_x86/init.rc
deleted file mode 100644
index 235083d..0000000
--- a/target/board/generic_x86/init.rc
+++ /dev/null
@@ -1,254 +0,0 @@
-
-on init
-
-sysclktz 0
-
-loglevel 3
-
-# setup the global environment
- export PATH /sbin:/system/sbin:/system/bin:/system/xbin
- export LD_LIBRARY_PATH /system/lib
- export ANDROID_BOOTLOGO 1
- export ANDROID_ROOT /system
- export ANDROID_ASSETS /system/app
- export ANDROID_DATA /data
- export EXTERNAL_STORAGE /sdcard
- export BOOTCLASSPATH /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar
-
-# Backward compatibility
- symlink /system/etc /etc
-
-# create mountpoints and mount tmpfs on sqlite_stmt_journals and debugfs on d
- mkdir /d
- mkdir /sdcard 0000 system system
- mkdir /system
- mkdir /data 0771 system system
- mkdir /cache 0770 system cache
- mkdir /sqlite_stmt_journals 01777 root root
- mount tmpfs tmpfs /sqlite_stmt_journals
- mount debugfs debugfs /d
-
- mount rootfs rootfs / rw remount
-
- write /proc/sys/kernel/panic_on_oops 1
- write /proc/sys/kernel/hung_task_timeout_secs 0
- write /proc/cpu/alignment 4
- write /proc/sys/kernel/sched_latency_ns 10000000
- write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
-
-# mount mtd partitions
- # Hack...
- # We'll attempt to mount both as sdcard and harddisk...
- # Only one or the other will actually work... this way, we can
- # use the same init.rc for both
- mount ext3 /dev/block/mmcblk0p6 /system
- mount ext3 /dev/block/mmcblk0p6 /system rw remount
- mount ext3 /dev/block/mmcblk0p2 /data nosuid nodev
- mount ext3 /dev/block/mmcblk0p7 /cache nosuid nodev
- mount ext3 /dev/block/sda6 /system
- mount ext3 /dev/block/sda6 /system rw remount
- mount ext3 /dev/block/sda8 /data
-
- # We chown/chmod /data again so because mount is run as root + defaults
- chown system system /data
- chmod 0771 /data
-
- # Same reason as /data above
- chown system cache /cache
- chmod 0770 /cache
-
- # This may have been created by the recovery system with odd permissions
- chown system system /cache/recovery
- chmod 0770 /cache/recovery
-
-# create basic filesystem structure
- mkdir /data/misc 01771 system misc
- mkdir /data/misc/hcid 0770 bluetooth bluetooth
- mkdir /data/local 0771 shell shell
- mkdir /data/local/tmp 0771 shell shell
- mkdir /data/data 0771 system system
- mkdir /data/app-private 0771 system system
- mkdir /data/app 0771 system system
- mkdir /data/property 0700 root root
-
- # create dalvik-cache and double-check the perms
- mkdir /data/dalvik-cache 0771 system system
- chown system system /data/dalvik-cache
- chmod 0771 /data/dalvik-cache
-
- # create the lost+found directories, so as to enforce our permissions
- mkdir /system/lost+found 0770
- mkdir /data/lost+found 0770
- mkdir /cache/lost+found 0770
-
- # double check the perms, in case lost+found already exists, and set owner
- chown root root /data/lost+found
- chmod 0770 /data/lost+found
- chown root root /cache/lost+found
- chmod 0770 /cache/lost+found
-
-on boot
-
-### Load some modules
-
-# basic network init
- ifup lo
- hostname localhost
- domainname localdomain
-
-
-# set RLIMIT_NICE to allow priorities from 19 to -20
- setrlimit 13 40 40
- mkdir /data/core 0777
- write /proc/sys/kernel/core_pattern /data/core/%e.%p
- setrlimit 4 -1 -1
-
-# Define the oom_adj values for the classes of processes that can be
-# killed by the kernel. These are used in ActivityManagerService.
- setprop ro.FOREGROUND_APP_ADJ 0
- setprop ro.VISIBLE_APP_ADJ 1
- setprop ro.SECONDARY_SERVER_ADJ 2
- setprop ro.HIDDEN_APP_MIN_ADJ 7
- setprop ro.CONTENT_PROVIDER_ADJ 14
- setprop ro.EMPTY_APP_ADJ 15
- setprop ro.BACKUP_APP_ADJ 2
- setprop ro.HOME_APP_ADJ 4
-
-
-# Define the memory thresholds at which the above process classes will
-# be killed. These numbers are in pages (4k).
- setprop ro.FOREGROUND_APP_MEM 1536
- setprop ro.VISIBLE_APP_MEM 2048
- setprop ro.SECONDARY_SERVER_MEM 4096
- setprop ro.BACKUP_APP_MEM 4096
- setprop ro.HOME_APP_MEM 4096
- setprop ro.HIDDEN_APP_MEM 5120
- setprop ro.CONTENT_PROVIDER_MEM 5632
- setprop ro.EMPTY_APP_MEM 6144
-
-
-# Write value must be consistent with the above properties.
- write /sys/module/lowmemorykiller/parameters/adj 0,1,2,7,14,15
-
- write /proc/sys/vm/overcommit_memory 1
- write /sys/module/lowmemorykiller/parameters/minfree 1536,2048,4096,8192,16384
-
- # Set init its forked children's oom_adj.
- write /proc/1/oom_adj -16
-
- # Permissions for System Server and daemons.
- chown radio system /sys/android_power/state
- chown radio system /sys/android_power/request_state
- chown radio system /sys/android_power/acquire_full_wake_lock
- chown radio system /sys/android_power/acquire_partial_wake_lock
- chown radio system /sys/android_power/release_wake_lock
- chown radio system /sys/power/state
- chown radio system /sys/power/wake_lock
- chown radio system /sys/power/wake_unlock
- chmod 0660 /sys/power/state
- chmod 0660 /sys/power/wake_lock
- chmod 0660 /sys/power/wake_unlock
-
- chown system system /sys/class/timed_output/vibrator/enable
- chown system system /sys/class/leds/keyboard-backlight/brightness
- chown system system /sys/class/leds/lcd-backlight/brightness
- chown system system /sys/class/leds/button-backlight/brightness
- chown system system /sys/class/leds/red/brightness
- chown system system /sys/class/leds/green/brightness
- chown system system /sys/class/leds/blue/brightness
- chown system system /sys/class/leds/red/device/grpfreq
- chown system system /sys/class/leds/red/device/grppwm
- chown system system /sys/class/leds/red/device/blink
- chown system system /sys/class/leds/red/brightness
- chown system system /sys/class/leds/green/brightness
- chown system system /sys/class/leds/blue/brightness
- chown system system /sys/class/leds/red/device/grpfreq
- chown system system /sys/class/leds/red/device/grppwm
- chown system system /sys/class/leds/red/device/blink
- chown system system /sys/class/timed_output/vibrator/enable
- chown bluetooth bluetooth /sys/module/board_trout/parameters/bluetooth_power_on
- chown system system /sys/module/sco/parameters/disable_esco
- chmod 0660 /sys/module/board_trout/parameters/bluetooth_power_on
- chown radio audio /system/etc/AudioPara4.csv
- chown system system /sys/kernel/ipv4/tcp_wmem_min
- chown system system /sys/kernel/ipv4/tcp_wmem_def
- chown system system /sys/kernel/ipv4/tcp_wmem_max
- chown system system /sys/kernel/ipv4/tcp_rmem_min
- chown system system /sys/kernel/ipv4/tcp_rmem_def
- chown system system /sys/kernel/ipv4/tcp_rmem_max
- chown root radio /proc/cmdline
-
-# Enable audio based on existing /dev/dsp
- chmod 0666 /dev/snd/dsp
-
-# Define TCP buffer sizes for various networks
-# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
- setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
- setprop net.tcp.buffersize.wifi 4095,87380,110208,4096,16384,110208
- setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
- setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
- setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
-
- class_start default
-
-
-## Daemon processes to be run by init.
-##
-service console /system/bin/sh
- console
-
-# adbd is controlled by the persist.service.adb.enable system property
-service adbd /sbin/adbd
-# disabled
-
-# adbd on at boot in emulator
-on property:ro.kernel.qemu=1
- start adbd
-
-# adbd on at boot in insecure builds
-on property:ro.secure=0
- start adbd
-
-on property:persist.service.adb.enable=1
- start adbd
-
-on property:persist.service.adb.enable=0
- stop adbd
-
-service servicemanager /system/bin/servicemanager
- user system
- critical
- onrestart restart zygote
- onrestart restart media
-
-service vold /system/bin/vold
- socket vold stream 0660 root mount
-
-service zygote /system/bin/app_process -Xzygote -Xint:fast /system/bin --zygote --start-system-server
- socket zygote stream 666
- onrestart write /sys/android_power/request_state wake
-
-service media /system/bin/mediaserver
- user media
- group system audio camera graphics inet net_bt net_bt_admin
-
-service dbus /system/bin/dbus-daemon --system --nofork
- socket dbus stream 660 bluetooth bluetooth
- user bluetooth
- group bluetooth net_bt_admin
-
-service brick /system/bin/wipe nuke
- disabled
-
-service installd /system/bin/installd
- socket installd stream 600 system system
-
-#
-# Set by PRODUCT_PROPERTY_OVERRIDES in <product>.mk
-on property:net.eth0.startonboot=1
- setprop ro.com.android.dataroaming true
- start start_eth0
-
-service start_eth0 /system/bin/netcfg eth0 dhcp
- oneshot
- disabled
diff --git a/target/board/generic_x86/system.prop b/target/board/generic_x86/system.prop
new file mode 100644
index 0000000..137a0f9
--- /dev/null
+++ b/target/board/generic_x86/system.prop
@@ -0,0 +1,6 @@
+#
+# system.prop for generic sdk
+#
+
+rild.libpath=/system/lib/libreference-ril.so
+rild.libargs=-d /dev/ttyS0
diff --git a/target/board/vbox_x86/AndroidBoard.mk b/target/board/vbox_x86/AndroidBoard.mk
new file mode 100644
index 0000000..2af7dcd
--- /dev/null
+++ b/target/board/vbox_x86/AndroidBoard.mk
@@ -0,0 +1,7 @@
+LOCAL_PATH := $(call my-dir)
+
+LOCAL_KERNEL := prebuilt/android-x86/kernel/kernel-vbox
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_KERNEL):kernel \
+ $(LOCAL_PATH)/init.rc:root/init.rc
diff --git a/target/board/vbox_x86/BoardConfig.mk b/target/board/vbox_x86/BoardConfig.mk
new file mode 100644
index 0000000..525074e
--- /dev/null
+++ b/target/board/vbox_x86/BoardConfig.mk
@@ -0,0 +1,35 @@
+#
+# IA target for VitualBox
+#
+
+TARGET_ARCH=x86
+DISABLE_DEXPREOPT := true
+TARGET_COMPRESS_MODULE_SYMBOLS := false
+TARGET_PRELINK_MODULE := false
+TARGET_NO_RECOVERY := true
+TARGET_HARDWARE_3D := false
+BOARD_USES_GENERIC_AUDIO := true
+USE_CAMERA_STUB := true
+TARGET_PROVIDES_INIT_RC := true
+USE_CUSTOM_RUNTIME_HEAP_MAX := "32M"
+TARGET_CPU_ABI := x86
+TARGET_USERIMAGES_USE_EXT4 := true
+TARGET_BOOTIMAGE_USE_EXT2 := true
+
+# For VirtualBox and likely other emulators
+BOARD_INSTALLER_CMDLINE := init=/init console=ttyS0 console=tty0 vga=788 verbose
+BOARD_KERNEL_CMDLINE := init=/init console=ttyS0 console=tty0 vga=788 verbose androidboot.hardware=generic_x86 androidboot.console=ttyS0
+TARGET_USE_DISKINSTALLER := true
+
+TARGET_DISK_LAYOUT_CONFIG := build/target/board/vbox_x86/disk_layout.conf
+BOARD_BOOTIMAGE_MAX_SIZE := 8388608
+BOARD_SYSLOADER_MAX_SIZE := 7340032
+BOARD_FLASH_BLOCK_SIZE := 512
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 50M
+BOARD_INSTALLERIMAGE_PARTITION_SIZE := 500M
+TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
+
+
+# The eth0 device should be started with dhcp on boot.
+# Useful for emulators that don't provide a wifi connection.
+NET_ETH0_STARTONBOOT := true
diff --git a/target/board/vbox_x86/README.txt b/target/board/vbox_x86/README.txt
new file mode 100644
index 0000000..568dc5f
--- /dev/null
+++ b/target/board/vbox_x86/README.txt
@@ -0,0 +1,9 @@
+The "vbox_x86" product defines a non-hardware-specific target intended
+to run on the VirtualBox emulator.
+
+Most of the Android devices (networking, phones, sound, etc) do not work.
+
+ADB via ethernet works with this target. You can use 'adb install' to
+test applications that do not require network, phone or sound support.
+This emulation is useful because VirtualBox runs much faster then does the
+QEMU emulators (at least until a KVM enabled QEMU emulator is available).
diff --git a/target/board/vbox_x86/device.mk b/target/board/vbox_x86/device.mk
new file mode 100644
index 0000000..0b4dc27
--- /dev/null
+++ b/target/board/vbox_x86/device.mk
@@ -0,0 +1,26 @@
+#
+# Copyright (C) 2009 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.
+#
+
+# This is a build configuration for the product aspects that
+# are specific to the emulator.
+
+PRODUCT_PROPERTY_OVERRIDES := \
+ ro.ril.hsxpa=1 \
+ ro.ril.gprsclass=10
+
+PRODUCT_COPY_FILES := \
+ development/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
+ development/data/etc/vold.conf:system/etc/vold.conf
diff --git a/target/board/vbox_x86/disk_layout.conf b/target/board/vbox_x86/disk_layout.conf
new file mode 100644
index 0000000..12241ab
--- /dev/null
+++ b/target/board/vbox_x86/disk_layout.conf
@@ -0,0 +1,76 @@
+# Best to align all partion start/ends on a cylinder boundary (fdisk prefers it)
+# 512 bytes/sector
+# 63 sectors/track
+# 32 tracks/cylinder
+
+# LBAs are in 'k', so...
+# 1008 blocks (1k each) (1032192 bytes) / cylinder
+
+device {
+
+ path /dev/block/sda
+
+ scheme mbr
+
+ # bytes in a disk sector (== 1 LBA), must be a power of 2!
+ sector_size 512
+
+ # Start_lba should be on a cylindar boundary.
+ start_lba 63
+
+ # Autodetect disk size if == 0
+ num_lba 0
+
+ partitions {
+ # /dev/sdX1
+ sysloader {
+ active y
+ type linux
+ # 8 cyls in length... about 8M
+ len 8064
+ }
+
+ # /dev/sdX2
+ recovery {
+ active y
+ type linux
+ # 8 cyls in length... about 8M
+ len 8064
+ }
+
+ # /dev/sdX3
+ boot {
+ active y
+ type linux
+ # 8 cyls in length... about 8M
+ len 8064
+ }
+
+ # /dev/sdX4
+ # (extended partion begins)
+
+ # /dev/sdX5
+ cache {
+ type linux
+ len 512M
+ }
+
+ # /dev/sdX6
+ system {
+ type linux
+ len 512M
+ }
+
+ # /dev/sdX7
+ third_party {
+ type linux
+ len 512M
+ }
+
+ # /dev/sdX8
+ data {
+ type linux
+ len -1
+ }
+ }
+}
diff --git a/target/board/vbox_x86/init.rc b/target/board/vbox_x86/init.rc
new file mode 100644
index 0000000..100cc09
--- /dev/null
+++ b/target/board/vbox_x86/init.rc
@@ -0,0 +1,426 @@
+on early-init
+ start ueventd
+
+on init
+
+sysclktz 0
+
+loglevel 3
+
+# setup the global environment
+ export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
+ export LD_LIBRARY_PATH /vendor/lib:/system/lib
+ export ANDROID_BOOTLOGO 1
+ export ANDROID_ROOT /system
+ export ANDROID_ASSETS /system/app
+ export ANDROID_DATA /data
+ export EXTERNAL_STORAGE /mnt/sdcard
+ export ASEC_MOUNTPOINT /mnt/asec
+ export LOOP_MOUNTPOINT /mnt/obb
+ export BOOTCLASSPATH /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar
+
+# Backward compatibility
+ symlink /system/etc /etc
+ symlink /sys/kernel/debug /d
+
+# Right now vendor lives on the same filesystem as system,
+# but someday that may change.
+ symlink /system/vendor /vendor
+
+# create mountpoints
+ mkdir /mnt 0775 root system
+ mkdir /mnt/sdcard 0000 system system
+
+# Create cgroup mount point for cpu accounting
+ mkdir /acct
+ mount cgroup none /acct cpuacct
+ mkdir /acct/uid
+
+# Backwards Compat - XXX: Going away in G*
+ symlink /mnt/sdcard /sdcard
+
+ mkdir /system
+ mkdir /data 0771 system system
+ mkdir /cache 0770 system cache
+ mkdir /config 0500 root root
+
+ # Directory for putting things only root should see.
+ mkdir /mnt/secure 0700 root root
+
+ # Directory for staging bindmounts
+ mkdir /mnt/secure/staging 0700 root root
+
+ # Directory-target for where the secure container
+ # imagefile directory will be bind-mounted
+ mkdir /mnt/secure/asec 0700 root root
+
+ # Secure container public mount points.
+ mkdir /mnt/asec 0700 root system
+ mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000
+
+ # Filesystem image public mount points.
+ mkdir /mnt/obb 0700 root system
+ mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000
+
+ write /proc/sys/kernel/panic_on_oops 1
+ write /proc/sys/kernel/hung_task_timeout_secs 0
+ write /proc/cpu/alignment 4
+ write /proc/sys/kernel/sched_latency_ns 10000000
+ write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
+ write /proc/sys/kernel/sched_compat_yield 1
+ write /proc/sys/kernel/sched_child_runs_first 0
+
+# Create cgroup mount points for process groups
+ mkdir /dev/cpuctl
+ mount cgroup none /dev/cpuctl cpu
+ chown system system /dev/cpuctl
+ chown system system /dev/cpuctl/tasks
+ chmod 0777 /dev/cpuctl/tasks
+ write /dev/cpuctl/cpu.shares 1024
+
+ mkdir /dev/cpuctl/fg_boost
+ chown system system /dev/cpuctl/fg_boost/tasks
+ chmod 0777 /dev/cpuctl/fg_boost/tasks
+ write /dev/cpuctl/fg_boost/cpu.shares 1024
+
+ mkdir /dev/cpuctl/bg_non_interactive
+ chown system system /dev/cpuctl/bg_non_interactive/tasks
+ chmod 0777 /dev/cpuctl/bg_non_interactive/tasks
+ # 5.0 %
+ write /dev/cpuctl/bg_non_interactive/cpu.shares 52
+
+on fs
+# mount sda partitions
+ mount ext4 /dev/block/sda6 /system
+ mount ext4 /dev/block/sda6 /system ro remount
+ mount ext4 /dev/block/sda7 /data nosuid nodev
+ mount ext4 /dev/block/sda8 /cache nosuid nodev
+
+on post-fs
+ # once everything is setup, no need to modify /
+ mount rootfs rootfs / ro remount
+
+ # We chown/chmod /data again so because mount is run as root + defaults
+ chown system system /data
+ chmod 0771 /data
+
+ # Create dump dir and collect dumps.
+ # Do this before we mount cache so eventually we can use cache for
+ # storing dumps on platforms which do not have a dedicated dump partition.
+
+ mkdir /data/dontpanic
+ chown root log /data/dontpanic
+ chmod 0750 /data/dontpanic
+
+ # Collect apanic data, free resources and re-arm trigger
+ copy /proc/apanic_console /data/dontpanic/apanic_console
+ chown root log /data/dontpanic/apanic_console
+ chmod 0640 /data/dontpanic/apanic_console
+
+ copy /proc/apanic_threads /data/dontpanic/apanic_threads
+ chown root log /data/dontpanic/apanic_threads
+ chmod 0640 /data/dontpanic/apanic_threads
+
+ write /proc/apanic_console 1
+
+ # Same reason as /data above
+ chown system cache /cache
+ chmod 0770 /cache
+
+ # This may have been created by the recovery system with odd permissions
+ chown system cache /cache/recovery
+ chmod 0770 /cache/recovery
+
+ #change permissions on vmallocinfo so we can grab it from bugreports
+ chown root log /proc/vmallocinfo
+ chmod 0440 /proc/vmallocinfo
+
+ #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks
+ chown root system /proc/kmsg
+ chmod 0440 /proc/kmsg
+ chown root system /proc/sysrq-trigger
+ chmod 0220 /proc/sysrq-trigger
+
+# create basic filesystem structure
+ mkdir /data/misc 01771 system misc
+ mkdir /data/misc/bluetoothd 0770 bluetooth bluetooth
+ mkdir /data/misc/bluetooth 0770 system system
+ mkdir /data/misc/keystore 0700 keystore keystore
+ mkdir /data/misc/vpn 0770 system system
+ mkdir /data/misc/systemkeys 0700 system system
+ mkdir /data/misc/vpn/profiles 0770 system system
+ # give system access to wpa_supplicant.conf for backup and restore
+ mkdir /data/misc/wifi 0770 wifi wifi
+ chmod 0770 /data/misc/wifi
+ chmod 0660 /data/misc/wifi/wpa_supplicant.conf
+ mkdir /data/local 0771 shell shell
+ mkdir /data/local/tmp 0771 shell shell
+ mkdir /data/data 0771 system system
+ mkdir /data/app-private 0771 system system
+ mkdir /data/app 0771 system system
+ mkdir /data/property 0700 root root
+
+ # create dalvik-cache and double-check the perms
+ mkdir /data/dalvik-cache 0771 system system
+ chown system system /data/dalvik-cache
+ chmod 0771 /data/dalvik-cache
+
+ # create the lost+found directories, so as to enforce our permissions
+ mkdir /data/lost+found 0770
+ mkdir /cache/lost+found 0770
+
+ # double check the perms, in case lost+found already exists, and set owner
+ chown root root /data/lost+found
+ chmod 0770 /data/lost+found
+ chown root root /cache/lost+found
+ chmod 0770 /cache/lost+found
+
+ # create data/drm directory
+ mkdir /data/drm 0774 drm drm
+ chown drm drm /data/drm
+ chmod 0774 /data/drm
+
+on boot
+# basic network init
+ ifup lo
+ hostname localhost
+ domainname localdomain
+
+# set RLIMIT_NICE to allow priorities from 19 to -20
+ setrlimit 13 40 40
+
+# Define the oom_adj values for the classes of processes that can be
+# killed by the kernel. These are used in ActivityManagerService.
+ setprop ro.FOREGROUND_APP_ADJ 0
+ setprop ro.VISIBLE_APP_ADJ 1
+ setprop ro.PERCEPTIBLE_APP_ADJ 2
+ setprop ro.HEAVY_WEIGHT_APP_ADJ 3
+ setprop ro.SECONDARY_SERVER_ADJ 4
+ setprop ro.BACKUP_APP_ADJ 5
+ setprop ro.HOME_APP_ADJ 6
+ setprop ro.HIDDEN_APP_MIN_ADJ 7
+ setprop ro.EMPTY_APP_ADJ 15
+
+# Define the memory thresholds at which the above process classes will
+# be killed. These numbers are in pages (4k).
+ setprop ro.FOREGROUND_APP_MEM 2048
+ setprop ro.VISIBLE_APP_MEM 3072
+ setprop ro.PERCEPTIBLE_APP_MEM 4096
+ setprop ro.HEAVY_WEIGHT_APP_MEM 4096
+ setprop ro.SECONDARY_SERVER_MEM 6144
+ setprop ro.BACKUP_APP_MEM 6144
+ setprop ro.HOME_APP_MEM 6144
+ setprop ro.HIDDEN_APP_MEM 7168
+ setprop ro.EMPTY_APP_MEM 8192
+
+# Write value must be consistent with the above properties.
+# Note that the driver only supports 6 slots, so we have combined some of
+# the classes into the same memory level; the associated processes of higher
+# classes will still be killed first.
+ write /sys/module/lowmemorykiller/parameters/adj 0,1,2,4,7,15
+
+ write /proc/sys/vm/overcommit_memory 1
+ write /proc/sys/vm/min_free_order_shift 4
+ write /sys/module/lowmemorykiller/parameters/minfree 2048,3072,4096,6144,7168,8192
+
+ # Set init its forked children's oom_adj.
+ write /proc/1/oom_adj -16
+
+ # Tweak background writeout
+ write /proc/sys/vm/dirty_expire_centisecs 200
+ write /proc/sys/vm/dirty_background_ratio 5
+
+ # Permissions for System Server and daemons.
+ chown radio system /sys/android_power/state
+ chown radio system /sys/android_power/request_state
+ chown radio system /sys/android_power/acquire_full_wake_lock
+ chown radio system /sys/android_power/acquire_partial_wake_lock
+ chown radio system /sys/android_power/release_wake_lock
+ chown radio system /sys/power/state
+ chown radio system /sys/power/wake_lock
+ chown radio system /sys/power/wake_unlock
+ chmod 0660 /sys/power/state
+ chmod 0660 /sys/power/wake_lock
+ chmod 0660 /sys/power/wake_unlock
+ chown system system /sys/class/timed_output/vibrator/enable
+ chown system system /sys/class/leds/keyboard-backlight/brightness
+ chown system system /sys/class/leds/lcd-backlight/brightness
+ chown system system /sys/class/leds/button-backlight/brightness
+ chown system system /sys/class/leds/jogball-backlight/brightness
+ chown system system /sys/class/leds/red/brightness
+ chown system system /sys/class/leds/green/brightness
+ chown system system /sys/class/leds/blue/brightness
+ chown system system /sys/class/leds/red/device/grpfreq
+ chown system system /sys/class/leds/red/device/grppwm
+ chown system system /sys/class/leds/red/device/blink
+ chown system system /sys/class/leds/red/brightness
+ chown system system /sys/class/leds/green/brightness
+ chown system system /sys/class/leds/blue/brightness
+ chown system system /sys/class/leds/red/device/grpfreq
+ chown system system /sys/class/leds/red/device/grppwm
+ chown system system /sys/class/leds/red/device/blink
+ chown system system /sys/class/timed_output/vibrator/enable
+ chown system system /sys/module/sco/parameters/disable_esco
+ chown system system /sys/kernel/ipv4/tcp_wmem_min
+ chown system system /sys/kernel/ipv4/tcp_wmem_def
+ chown system system /sys/kernel/ipv4/tcp_wmem_max
+ chown system system /sys/kernel/ipv4/tcp_rmem_min
+ chown system system /sys/kernel/ipv4/tcp_rmem_def
+ chown system system /sys/kernel/ipv4/tcp_rmem_max
+ chown root radio /proc/cmdline
+
+# Define TCP buffer sizes for various networks
+# ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
+ setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208
+ setprop net.tcp.buffersize.wifi 4095,87380,110208,4096,16384,110208
+ setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208
+ setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040
+ setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680
+
+ class_start default
+
+## Daemon processes to be run by init.
+##
+service ueventd /sbin/ueventd
+ critical
+
+service console /system/bin/sh
+ console
+ disabled
+ user shell
+ group log
+
+on property:ro.secure=0
+ start console
+
+# adbd is controlled by the persist.service.adb.enable system property
+service adbd /sbin/adbd
+ disabled
+
+# adbd on at boot in emulator
+on property:ro.kernel.qemu=1
+ start adbd
+
+on property:persist.service.adb.enable=1
+ start adbd
+
+on property:persist.service.adb.enable=0
+ stop adbd
+
+service servicemanager /system/bin/servicemanager
+ user system
+ critical
+ onrestart restart zygote
+ onrestart restart media
+
+service vold /system/bin/vold
+ socket vold stream 0660 root mount
+ ioprio be 2
+
+service netd /system/bin/netd
+ socket netd stream 0660 root system
+ socket dnsproxyd stream 0660 root inet
+
+service debuggerd /system/bin/debuggerd
+
+service ril-daemon /system/bin/rild
+ socket rild stream 660 root radio
+ socket rild-debug stream 660 radio system
+ user root
+ group radio cache inet misc audio sdcard_rw
+
+service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
+ socket zygote stream 666
+ onrestart write /sys/android_power/request_state wake
+ onrestart write /sys/power/state on
+ onrestart restart media
+ onrestart restart netd
+
+service drm /system/bin/drmserver
+ user drm
+ group system root inet
+
+service drmio /system/bin/drmioserver
+ user drmio
+
+service media /system/bin/mediaserver
+ user media
+ group system audio camera graphics inet net_bt net_bt_admin net_raw
+ ioprio rt 4
+
+service bootanim /system/bin/bootanimation
+ user graphics
+ group graphics
+ disabled
+ oneshot
+
+service dbus /system/bin/dbus-daemon --system --nofork
+ socket dbus stream 660 bluetooth bluetooth
+ user bluetooth
+ group bluetooth net_bt_admin
+
+service bluetoothd /system/bin/bluetoothd -n
+ socket bluetooth stream 660 bluetooth bluetooth
+ socket dbus_bluetooth stream 660 bluetooth bluetooth
+ # init.rc does not yet support applying capabilities, so run as root and
+ # let bluetoothd drop uid to bluetooth with the right linux capabilities
+ group bluetooth net_bt_admin misc
+ disabled
+
+service hfag /system/bin/sdptool add --channel=10 HFAG
+ user bluetooth
+ group bluetooth net_bt_admin
+ disabled
+ oneshot
+
+service hsag /system/bin/sdptool add --channel=11 HSAG
+ user bluetooth
+ group bluetooth net_bt_admin
+ disabled
+ oneshot
+
+service opush /system/bin/sdptool add --channel=12 OPUSH
+ user bluetooth
+ group bluetooth net_bt_admin
+ disabled
+ oneshot
+
+service pbap /system/bin/sdptool add --channel=19 PBAP
+ user bluetooth
+ group bluetooth net_bt_admin
+ disabled
+ oneshot
+
+service installd /system/bin/installd
+ socket installd stream 600 system system
+
+service flash_recovery /system/etc/install-recovery.sh
+ oneshot
+
+service racoon /system/bin/racoon
+ socket racoon stream 600 system system
+ # racoon will setuid to vpn after getting necessary resources.
+ group net_admin
+ disabled
+ oneshot
+
+service mtpd /system/bin/mtpd
+ socket mtpd stream 600 system system
+ user vpn
+ group vpn net_admin net_raw
+ disabled
+ oneshot
+
+service keystore /system/bin/keystore /data/misc/keystore
+ user keystore
+ group keystore
+ socket keystore stream 666
+
+service dumpstate /system/bin/dumpstate -s
+ socket dumpstate stream 0660 shell log
+ disabled
+ oneshot
+
+# Enable networking so that adb can connect
+service netcfg /system/bin/netcfg eth0 dhcp
+ oneshot
diff --git a/target/board/vbox_x86/system.prop b/target/board/vbox_x86/system.prop
new file mode 100644
index 0000000..137a0f9
--- /dev/null
+++ b/target/board/vbox_x86/system.prop
@@ -0,0 +1,6 @@
+#
+# system.prop for generic sdk
+#
+
+rild.libpath=/system/lib/libreference-ril.so
+rild.libargs=-d /dev/ttyS0
diff --git a/target/product/AndroidProducts.mk b/target/product/AndroidProducts.mk
index 9a91da9..6096a89 100644
--- a/target/product/AndroidProducts.mk
+++ b/target/product/AndroidProducts.mk
@@ -25,17 +25,21 @@
# it includes.
#
-# An unbundled app build needs only generic.mk.
+# Unbundled apps will be built with the default product config.
ifneq ($(TARGET_BUILD_APPS),)
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/core.mk \
- $(LOCAL_DIR)/generic.mk
+ $(LOCAL_DIR)/generic.mk \
+ $(LOCAL_DIR)/full.mk
else
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/core.mk \
$(LOCAL_DIR)/generic.mk \
$(LOCAL_DIR)/generic_x86.mk \
$(LOCAL_DIR)/full.mk \
+ $(LOCAL_DIR)/full_x86.mk \
+ $(LOCAL_DIR)/vbox_x86.mk \
$(LOCAL_DIR)/sdk.mk \
+ $(LOCAL_DIR)/sdk_x86.mk \
$(LOCAL_DIR)/sim.mk
endif
diff --git a/target/product/core.mk b/target/product/core.mk
index 0b906e0..55d6c26 100644
--- a/target/product/core.mk
+++ b/target/product/core.mk
@@ -41,6 +41,7 @@
framework-res \
hprof-conv \
icu.dat \
+ ip-up-vpn \
jasmin \
jasmin.jar \
libcrypto \
diff --git a/target/product/full.mk b/target/product/full.mk
index c204aad..c563bcc 100644
--- a/target/product/full.mk
+++ b/target/product/full.mk
@@ -16,44 +16,14 @@
# This is a build configuration for a full-featured build of the
# Open-Source part of the tree. It's geared toward a US-centric
-# build of the emulator, but all those aspects can be overridden
-# in inherited configurations.
+# build quite specifically for the emulator, and might not be
+# entirely appropriate to inherit from for on-device configurations.
-PRODUCT_PACKAGES := \
- OpenWnn \
- PinyinIME \
- VoiceDialer \
- libWnnEngDic \
- libWnnJpnDic \
- libwnndict
-
-# Additional settings used in all AOSP builds
-PRODUCT_PROPERTY_OVERRIDES := \
- keyguard.no_require_sim=true \
- ro.com.android.dateformat=MM-dd-yyyy \
- ro.com.android.dataroaming=true \
- ro.ril.hsxpa=1 \
- ro.ril.gprsclass=10
-
-PRODUCT_COPY_FILES := \
- development/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
- development/data/etc/vold.conf:system/etc/vold.conf
-
-# Pick up some sounds - stick with the short list to save space
-# on smaller devices.
-$(call inherit-product, frameworks/base/data/sounds/OriginalAudio.mk)
-
-# Get the TTS language packs
-$(call inherit-product-if-exists, external/svox/pico/lang/all_pico_languages.mk)
-
-# Get a list of languages. We use the small list to save space
-# on smaller devices.
-$(call inherit-product, build/target/product/languages_small.mk)
-
-$(call inherit-product, build/target/product/generic.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/board/generic/device.mk)
# Overrides
PRODUCT_NAME := full
-PRODUCT_BRAND := generic
PRODUCT_DEVICE := generic
-PRODUCT_MODEL := Full Android
+PRODUCT_BRAND := Android
+PRODUCT_MODEL := Full Android on Emulator
diff --git a/target/product/full_base.mk b/target/product/full_base.mk
new file mode 100644
index 0000000..8715e44
--- /dev/null
+++ b/target/product/full_base.mk
@@ -0,0 +1,50 @@
+#
+# Copyright (C) 2009 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.
+#
+
+# This is a build configuration for a full-featured build of the
+# Open-Source part of the tree. This is a base configuration to
+# bes used for AOSP builds on various target devices.
+
+PRODUCT_PACKAGES := \
+ OpenWnn \
+ PinyinIME \
+ VoiceDialer \
+ libWnnEngDic \
+ libWnnJpnDic \
+ libwnndict \
+ WAPPushManager
+
+# Additional settings used in all AOSP builds
+PRODUCT_PROPERTY_OVERRIDES := \
+ keyguard.no_require_sim=true \
+ ro.com.android.dateformat=MM-dd-yyyy \
+ ro.com.android.dataroaming=true \
+ ro.config.ringtone=Ring_Synth_04.ogg \
+ ro.config.notification_sound=pixiedust.ogg
+
+# Put en_US first in the list, to make it default.
+PRODUCT_LOCALES := en_US
+
+# Get some sounds
+$(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk)
+
+# Get the TTS language packs
+$(call inherit-product-if-exists, external/svox/pico/lang/all_pico_languages.mk)
+
+# Get the list of languages.
+$(call inherit-product, $(SRC_TARGET_DIR)/product/locales_full.mk)
+
+$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
diff --git a/target/product/full_x86.mk b/target/product/full_x86.mk
new file mode 100644
index 0000000..e33ef14
--- /dev/null
+++ b/target/product/full_x86.mk
@@ -0,0 +1,29 @@
+#
+# Copyright (C) 2009 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.
+#
+
+# This is a build configuration for a full-featured build of the
+# Open-Source part of the tree. It's geared toward a US-centric
+# build quite specifically for the emulator, and might not be
+# entirely appropriate to inherit from for on-device configurations.
+
+$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/board/generic/device.mk)
+
+# Overrides
+PRODUCT_NAME := full_x86
+PRODUCT_DEVICE := generic_x86
+PRODUCT_BRAND := Android
+PRODUCT_MODEL := Full Android on x86 Emulator
diff --git a/target/product/generic_x86.mk b/target/product/generic_x86.mk
index 9713900..7e77a27 100644
--- a/target/product/generic_x86.mk
+++ b/target/product/generic_x86.mk
@@ -1,34 +1,26 @@
+#
+# Copyright (C) 2007 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.
+#
+
# This is a generic product that isn't specialized for a specific device.
-# It includes the base Android platform. If you need Google-specific features,
-# you should derive from generic_with_google.mk
+# It includes the base Android platform.
-PRODUCT_PACKAGES := \
- AlarmClock \
- AlarmProvider \
- Calendar \
- Camera \
- DrmProvider \
- LatinIME \
- Mms \
- Music \
- Settings \
- Sync \
- Updater \
- CalendarProvider \
- SubscribedFeedsProvider \
- SyncProvider
-
+$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk)
# Overrides
PRODUCT_BRAND := generic_x86
PRODUCT_DEVICE := generic_x86
PRODUCT_NAME := generic_x86
-PRODUCT_POLICY := android.policy_phone
-
-# If running on an emulator or some other device that has a LAN connection
-# that isn't a wifi connection. This will instruct init.rc to enable the
-# network connection so that you can use it with ADB
-ifdef NET_ETH0_STARTONBOOT
- PRODUCT_PROPERTY_OVERRIDES += net.eth0.startonboot=1
-endif
diff --git a/target/product/locales_full.mk b/target/product/locales_full.mk
new file mode 100644
index 0000000..cf10392
--- /dev/null
+++ b/target/product/locales_full.mk
@@ -0,0 +1,5 @@
+# The locales from the ICU "-large.dat" data set.
+# See external/icu4c/stubdata.
+# This is distinct from "languages_full.mk", which contains those locales for
+# which we have translations. If you like, this file is i18n rather than l18n.
+PRODUCT_LOCALES := cs_CZ da_DK de_AT de_CH de_DE de_LI el_GR en_AU en_CA en_GB en_NZ en_SG en_US es_ES fr_CA fr_CH fr_BE fr_FR it_CH it_IT ja_JP ko_KR nb_NO nl_BE nl_NL pl_PL pt_PT ru_RU sv_SE tr_TR zh_CN zh_HK zh_TW
diff --git a/target/product/sdk.mk b/target/product/sdk.mk
index d73e702..40d12b3 100644
--- a/target/product/sdk.mk
+++ b/target/product/sdk.mk
@@ -49,7 +49,12 @@
GestureBuilder \
SoftKeyboard \
CubeLiveWallpapers \
- QuickSearchBox
+ QuickSearchBox \
+ monkeyrunner \
+ guavalib \
+ jsr305lib \
+ jython \
+ jsilver
# Host tools that are parts of the SDK.
# See development/build/sdk.atree
@@ -60,13 +65,16 @@
hprof-conv \
mksdcard \
emulator \
+ bios.bin \
+ vgabios-cirrus.bin \
ddms \
hierarchyviewer \
draw9patch \
layoutopt \
traceview \
android \
- dexdump
+ dexdump \
+ monkeyrunner
# Native host Java libraries that are parts of the SDK.
# See development/build/sdk.atree
@@ -99,7 +107,17 @@
org.eclipse.equinox.common_3.4.0.v20080421-2006 \
org.eclipse.jface_3.4.2.M20090107-0800 \
osgi \
- layoutlib
+ layoutlib \
+ monkeyrunner \
+ guavalib \
+ jsr305lib \
+ jython \
+ ddmlib-tests \
+ ninepatch-tests \
+ common-tests \
+ sdklib-tests \
+ sdkuilib-tests
+
PRODUCT_PACKAGE_OVERLAYS := development/sdk_overlay
diff --git a/target/product/sdk_x86.mk b/target/product/sdk_x86.mk
new file mode 100644
index 0000000..6c5e746
--- /dev/null
+++ b/target/product/sdk_x86.mk
@@ -0,0 +1,28 @@
+#
+# Copyright (C) 2009 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.
+#
+
+# This is a build configuration for a full-featured build of the
+# Open-Source part of the tree. It's geared toward a US-centric
+# build quite specifically for the emulator, and might not be
+# entirely appropriate to inherit from for on-device configurations.
+
+$(call inherit-product, $(SRC_TARGET_DIR)/product/sdk.mk)
+
+# Overrides
+PRODUCT_BRAND := generic_x86
+PRODUCT_NAME := sdk_x86
+PRODUCT_DEVICE := generic_x86
+PRODUCT_MODEL := Android SDK built for x86
diff --git a/target/product/sim.mk b/target/product/sim.mk
index 51b3676..09722d6 100644
--- a/target/product/sim.mk
+++ b/target/product/sim.mk
@@ -1,6 +1,6 @@
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/locales_full.mk)
# Overrides
PRODUCT_NAME := sim
PRODUCT_DEVICE := sim
-PRODUCT_LOCALES := en_US
diff --git a/target/product/vbox_x86.mk b/target/product/vbox_x86.mk
new file mode 100644
index 0000000..c32b1eb
--- /dev/null
+++ b/target/product/vbox_x86.mk
@@ -0,0 +1,26 @@
+#
+# Copyright (C) 2009 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.
+#
+
+# This is a build configuration for a full-featured build of the
+# Open-Source part of the tree. It's geared toward a US-centric
+# build quite specifically for the emulator, and might not be
+# entirely appropriate to inherit from for on-device configurations.
+
+$(call inherit-product, $(SRC_TARGET_DIR)/product/full_x86.mk)
+
+PRODUCT_NAME := vbox_x86
+PRODUCT_DEVICE := vbox_x86
+PRODUCT_MODEL := Full Android on x86 VirtualBox
diff --git a/tools/Android.mk b/tools/Android.mk
index fa9d0b7..92603f5 100644
--- a/tools/Android.mk
+++ b/tools/Android.mk
@@ -14,7 +14,7 @@
# limitations under the License.
#
-LOCAL_PATH := $(my-dir)
+LOCAL_PATH := $(call my-dir)
# If we're building only unbundled apps, this is the only tool we need.
ifneq ($(TARGET_BUILD_APPS),)
diff --git a/tools/mktarball.sh b/tools/mktarball.sh
index ea1a8ed..3e32006 100755
--- a/tools/mktarball.sh
+++ b/tools/mktarball.sh
@@ -39,7 +39,14 @@
done
if [ $? -eq 0 ] ; then
- bzip2 -c ${target_tar} > ${target_tarball}
+ case "${target_tarball}" in
+ *.bz2 )
+ bzip2 -c ${target_tar} > ${target_tarball}
+ ;;
+ *.gz )
+ gzip -c ${target_tar} > ${target_tarball}
+ ;;
+ esac
success=$?
[ $success -eq 0 ] || rm -f ${target_tarball}
rm -f ${target_tar}
diff --git a/tools/releasetools/img_from_target_files b/tools/releasetools/img_from_target_files
index 78fd141..4a23ab4 100755
--- a/tools/releasetools/img_from_target_files
+++ b/tools/releasetools/img_from_target_files
@@ -61,10 +61,13 @@
img = tempfile.NamedTemporaryFile()
build_command = []
- if OPTIONS.info_dict["fstab"]["/data"].fs_type.startswith("ext"):
- build_command = ["mkuserimg.sh",
- user_dir, img.name,
- OPTIONS.info_dict["fstab"]["/data"].fs_type, "data"]
+ fstab = OPTIONS.info_dict["fstab"]
+ if fstab and fstab["/data"].fs_type.startswith("ext"):
+ build_command = ["mkuserimg.sh"]
+ if "extfs_sparse_flag" in OPTIONS.info_dict:
+ build_command.append(OPTIONS.info_dict["extfs_sparse_flag"])
+ build_command.extend([user_dir, img.name,
+ fstab["/data"].fs_type, "data"])
if "userdata_size" in OPTIONS.info_dict:
build_command.append(str(OPTIONS.info_dict["userdata_size"]))
else:
@@ -109,10 +112,14 @@
pass
build_command = []
- if OPTIONS.info_dict["fstab"]["/system"].fs_type.startswith("ext"):
- build_command = ["mkuserimg.sh",
- os.path.join(OPTIONS.input_tmp, "system"), img.name,
- OPTIONS.info_dict["fstab"]["/system"].fs_type, "system"]
+ fstab = OPTIONS.info_dict["fstab"]
+ if fstab and fstab["/system"].fs_type.startswith("ext"):
+
+ build_command = ["mkuserimg.sh"]
+ if "extfs_sparse_flag" in OPTIONS.info_dict:
+ build_command.append(OPTIONS.info_dict["extfs_sparse_flag"])
+ build_command.extend([os.path.join(OPTIONS.input_tmp, "system"), img.name,
+ fstab["/system"].fs_type, "system"])
if "system_size" in OPTIONS.info_dict:
build_command.append(str(OPTIONS.info_dict["system_size"]))
else: