diff --git a/core/Makefile b/core/Makefile index f4669f27be..10f82df37f 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1219,7 +1219,7 @@ ifneq ($(TARGET_SIMULATOR),true) 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) @@ -1291,6 +1291,14 @@ sdk_atree_files := \ $(atree_dir)/sdk-$(HOST_OS)-$(HOST_ARCH).atree \ sdk/build/tools.atree +# development/build/sdk-android-.atree is used to differentiate +# between architecture models (e.g. ARMv5TE versus ARMv7) when copying +# files like the kernel image. We use TARGET_CPU_ABI because we don't +# have a better way to distinguish between CPU models. +ifneq (,$(strip $(wildcard $(atree_dir)/sdk-android-$(TARGET_CPU_ABI).atree))) + sdk_atree_files += $(atree_dir)/sdk-android-$(TARGET_CPU_ABI).atree +endif + deps := \ $(target_notice_file_txt) \ $(tools_notice_file_txt) \ @@ -1337,9 +1345,11 @@ $(INTERNAL_SDK_TARGET): $(deps) -I $(HOST_OUT) \ -I $(TARGET_COMMON_OUT_ROOT) \ -v "PLATFORM_NAME=android-$(PLATFORM_VERSION)" \ + -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 && \ HOST_OUT_EXECUTABLES=$(HOST_OUT_EXECUTABLES) HOST_OS=$(HOST_OS) \ development/build/tools/sdk_clean.sh $(PRIVATE_DIR) && \ diff --git a/core/combo/HOST_darwin-x86.mk b/core/combo/HOST_darwin-x86.mk index 093ecbe212..121f89b030 100644 --- a/core/combo/HOST_darwin-x86.mk +++ b/core/combo/HOST_darwin-x86.mk @@ -45,6 +45,8 @@ HOST_NO_UNDEFINED_LDFLAGS := -Wl,-undefined,error 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 ae1997c4f4..6139b676ae 100644 --- a/core/combo/TARGET_linux-arm.mk +++ b/core/combo/TARGET_linux-arm.mk @@ -52,6 +52,8 @@ TARGET_CXX := $(TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX) 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 diff --git a/core/combo/TARGET_linux-sh.mk b/core/combo/TARGET_linux-sh.mk index f373d21d70..cf945fec6a 100644 --- a/core/combo/TARGET_linux-sh.mk +++ b/core/combo/TARGET_linux-sh.mk @@ -28,6 +28,8 @@ TARGET_CXX := $(TARGET_TOOLS_PREFIX)c++$(HOST_EXECUTABLE_SUFFIX) 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 @@ -106,7 +108,7 @@ 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 diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk index 6629cbd812..a683a0ec67 100644 --- a/core/combo/TARGET_linux-x86.mk +++ b/core/combo/TARGET_linux-x86.mk @@ -25,7 +25,9 @@ TARGET_AR := $(HOST_AR) 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 @@ endif # 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_CXX := $(TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX) 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,14 +75,48 @@ endif KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH) TARGET_GLOBAL_CFLAGS += \ - -march=i686 \ - -m32 \ + -O2 \ + -Ulinux \ + -Wa,--noexecstack \ + -Werror=format-security \ + -Wstrict-aliasing=2 \ -fPIC \ + -ffunction-sections \ + -finline-functions \ + -finline-limit=300 \ + -fno-inline-functions-called-once \ + -fno-short-enums \ + -fstrict-aliasing \ + -funswitch-loops \ + -funwind-tables \ -include $(call select-android-config-h,target_linux-x86) +TARGET_GLOBAL_CFLAGS += -fstack-protector + +# Needs to be added for RELEASE +#TARGET_GLOBAL_CFLAGS += \ +# -DNDEBUG + + +# Fix this after ssp.c is fixed for x86 +# TARGET_GLOBAL_CFLAGS += -fstack-protector + 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_GLOBAL_LDFLAGS += -Wl,-z,noexecstack +TARGET_GLOBAL_LDFLAGS += -Wl,--gc-sections + TARGET_C_INCLUDES := \ $(libc_root)/arch-x86/include \ $(libc_root)/include \ @@ -97,7 +134,7 @@ 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,7 +144,7 @@ $(TARGET_CXX) \ $(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) \ $(PRIVATE_ALL_OBJECTS) \ @@ -157,7 +194,4 @@ $(TARGET_CXX) \ $(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 797c573972..c8863424a4 100644 --- a/core/combo/select.mk +++ b/core/combo/select.mk @@ -28,6 +28,7 @@ combo_os_arch := $($(combo_target)OS)-$($(combo_target)ARCH) $(combo_target)CC := $(CC) $(combo_target)CXX := $(CXX) $(combo_target)AR := $(AR) +$(combo_target)STRIP := $(STRIP) $(combo_target)BINDER_MINI := 0 diff --git a/core/config.mk b/core/config.mk index f8bee808a8..e20afe9c65 100644 --- a/core/config.mk +++ b/core/config.mk @@ -142,6 +142,16 @@ include $(board_config_mk) TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk))) board_config_mk := +# 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 + # Clean up/verify variables defined by the board config file. TARGET_BOOTLOADER_BOARD_NAME := $(strip $(TARGET_BOOTLOADER_BOARD_NAME)) TARGET_CPU_ABI := $(strip $(TARGET_CPU_ABI)) @@ -232,7 +242,6 @@ EMMA_JAR := external/emma/lib/emma$(COMMON_JAVA_PACKAGE_SUFFIX) # 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)),) diff --git a/core/definitions.mk b/core/definitions.mk index 11cea3fb0e..cd50f62d83 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1086,13 +1086,10 @@ endef ## 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 diff --git a/core/dumpvar.mk b/core/dumpvar.mk new file mode 100644 index 0000000000..0c585590c9 --- /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 cfbe7402ef..0fa7647d24 100644 --- a/core/dynamic_binary.mk +++ b/core/dynamic_binary.mk @@ -75,7 +75,7 @@ ifeq ($(LOCAL_COMPRESS_MODULE_SYMBOLS),true) $(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) @@ -137,7 +137,7 @@ endif 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 c70a5e2c68..e4c99d5f43 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -26,7 +26,7 @@ ifeq ($(TARGET_PRODUCT),) ifeq ($(TARGET_SIMULATOR),true) TARGET_PRODUCT := sim else -TARGET_PRODUCT := generic +TARGET_PRODUCT := full endif endif @@ -158,14 +158,6 @@ ifneq ($(TARGET_BUILD_TYPE),debug) 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 @@ endif 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/tasks/sdk-addon.mk b/core/tasks/sdk-addon.mk index e21fedcb36..2641a31f63 100644 --- a/core/tasks/sdk-addon.mk +++ b/core/tasks/sdk-addon.mk @@ -55,10 +55,11 @@ files_to_copy += $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ADDON_COPY_FILES) # 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 \ + $(ANDROID_PRODUCT_OUT)/system/build.prop:images/$(TARGET_CPU_ABI)/build.prop \ + $(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/envsetup.sh b/envsetup.sh index 2911fd7350..5a36b27032 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -314,7 +314,7 @@ function chooseproduct() if [ "$TARGET_SIMULATOR" = true ] ; then default_value=sim else - default_value=generic + default_value=full fi fi @@ -432,7 +432,8 @@ function add_lunch_combo() } # add the default one here -add_lunch_combo generic-eng +add_lunch_combo full-eng +add_lunch_combo full_x86-eng # if we're on linux, add the simulator. There is a special case # in lunch to deal with the simulator @@ -467,7 +468,7 @@ function lunch() 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 @@ -475,7 +476,7 @@ function lunch() if [ -z "$answer" ] then - selection=generic-eng + selection=full-eng elif [ "$answer" = "simulator" ] then selection=simulator @@ -563,7 +564,7 @@ function tapas() 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 @@ -1096,7 +1097,7 @@ fi unset _xarray # 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/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk index 9e52d25c4d..64b1dbebc2 100644 --- a/target/board/generic/BoardConfig.mk +++ b/target/board/generic/BoardConfig.mk @@ -6,9 +6,30 @@ # The generic product target doesn't have any hardware-specific pieces. TARGET_NO_BOOTLOADER := true TARGET_NO_KERNEL := true -TARGET_CPU_ABI := armeabi + +# Note: we build the platform images for ARMv7-A _without_ NEON. +# +# Technically, the emulator supports ARMv7-A _and_ NEON instructions, but +# emulated NEON code paths typically ends up 2x slower than the normal C code +# it is supposed to replace (unlike on real devices where it is 2x to 3x +# faster). +# +# What this means is that the platform image will not use NEON code paths +# that are slower to emulate. On the other hand, it is possible to emulate +# application code generated with the NDK that uses NEON in the emulator. +# +TARGET_ARCH_VARIANT := armv7-a +TARGET_CPU_ABI := armeabi-v7a +TARGET_CPU_ABI2 := armeabi + HAVE_HTC_AUDIO_DRIVER := true BOARD_USES_GENERIC_AUDIO := true # no hardware camera USE_CAMERA_STUB := true + +# Enable dex-preoptimization to speed up the first boot sequence +# of an SDK AVD. Note that this operation only works on Linux for now +ifeq ($(HOST_OS),linux) +WITH_DEXPREOPT := true +endif diff --git a/target/board/generic/device.mk b/target/board/generic/device.mk new file mode 100644 index 0000000000..0b4dc271c8 --- /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 ff461499e7..8fb68f80a4 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 608aee1dc6..02064342e2 100644 --- a/target/board/generic_x86/BoardConfig.mk +++ b/target/board/generic_x86/BoardConfig.mk @@ -1,20 +1,28 @@ -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 + +# Enable dex-preoptimization to speed up the first boot sequence +# of an SDK AVD. Note that this operation only works on Linux for now +ifeq ($(HOST_OS),linux) +WITH_DEXPREOPT := true +endif diff --git a/target/board/generic_x86/README.txt b/target/board/generic_x86/README.txt index 97e2d5b801..938d982e94 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 - -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 can be used to build the entire user-level system, and +will work with the IA version of the emulator, +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 fbc3947b3e..0000000000 --- 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 0000000000..0b4dc271c8 --- /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 7b073eef54..0000000000 --- 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 235083df29..0000000000 --- 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 .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 0000000000..137a0f9b1f --- /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/product/AndroidProducts.mk b/target/product/AndroidProducts.mk index 9a91da916c..eb17b3b36e 100644 --- a/target/product/AndroidProducts.mk +++ b/target/product/AndroidProducts.mk @@ -36,6 +36,8 @@ PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/generic.mk \ $(LOCAL_DIR)/generic_x86.mk \ $(LOCAL_DIR)/full.mk \ + $(LOCAL_DIR)/full_x86.mk \ $(LOCAL_DIR)/sdk.mk \ + $(LOCAL_DIR)/sdk_x86.mk \ $(LOCAL_DIR)/sim.mk endif diff --git a/target/product/full.mk b/target/product/full.mk index c204aad2e0..c563bccca4 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 0000000000..76907ce76e --- /dev/null +++ b/target/product/full_base.mk @@ -0,0 +1,48 @@ +# +# 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 + +# 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 + +# Put en_US first in the list, to make it default. +PRODUCT_LOCALES := en_US + +# Pick up some sounds - stick with the short list to save space +# on smaller devices. +$(call inherit-product-if-exists, 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 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 0000000000..e33ef142ed --- /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 971390055e..7e77a273ae 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 - -PRODUCT_PACKAGES := \ - AlarmClock \ - AlarmProvider \ - Calendar \ - Camera \ - DrmProvider \ - LatinIME \ - Mms \ - Music \ - Settings \ - Sync \ - Updater \ - CalendarProvider \ - SubscribedFeedsProvider \ - SyncProvider +# It includes the base Android platform. +$(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 0000000000..eb6a9c5729 --- /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 := en_US diff --git a/target/product/sdk.mk b/target/product/sdk.mk index d73e7025bb..4349463c90 100644 --- a/target/product/sdk.mk +++ b/target/product/sdk.mk @@ -60,6 +60,8 @@ PRODUCT_PACKAGES += \ hprof-conv \ mksdcard \ emulator \ + bios.bin \ + vgabios-cirrus.bin \ ddms \ hierarchyviewer \ draw9patch \ diff --git a/target/product/sdk_x86.mk b/target/product/sdk_x86.mk new file mode 100644 index 0000000000..6c5e7467cf --- /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 51b36766cb..09722d6c18 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