merge intel x86 patches into gingerbread branch

This commit is contained in:
David 'Digit' Turner
2011-07-08 18:19:01 +02:00
32 changed files with 421 additions and 561 deletions

View File

@@ -1219,7 +1219,7 @@ ifneq ($(TARGET_SIMULATOR),true)
INTERNAL_EMULATOR_PACKAGE_FILES += \ INTERNAL_EMULATOR_PACKAGE_FILES += \
$(HOST_OUT_EXECUTABLES)/emulator$(HOST_EXECUTABLE_SUFFIX) \ $(HOST_OUT_EXECUTABLES)/emulator$(HOST_EXECUTABLE_SUFFIX) \
prebuilt/android-arm/kernel/kernel-qemu \ prebuilt/android-$(TARGET_ARCH)/kernel/kernel-qemu \
$(INSTALLED_RAMDISK_TARGET) \ $(INSTALLED_RAMDISK_TARGET) \
$(INSTALLED_SYSTEMIMAGE) \ $(INSTALLED_SYSTEMIMAGE) \
$(INSTALLED_USERDATAIMAGE_TARGET) $(INSTALLED_USERDATAIMAGE_TARGET)
@@ -1291,6 +1291,14 @@ sdk_atree_files := \
$(atree_dir)/sdk-$(HOST_OS)-$(HOST_ARCH).atree \ $(atree_dir)/sdk-$(HOST_OS)-$(HOST_ARCH).atree \
sdk/build/tools.atree sdk/build/tools.atree
# development/build/sdk-android-<abi>.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 := \ deps := \
$(target_notice_file_txt) \ $(target_notice_file_txt) \
$(tools_notice_file_txt) \ $(tools_notice_file_txt) \
@@ -1337,9 +1345,11 @@ $(INTERNAL_SDK_TARGET): $(deps)
-I $(HOST_OUT) \ -I $(HOST_OUT) \
-I $(TARGET_COMMON_OUT_ROOT) \ -I $(TARGET_COMMON_OUT_ROOT) \
-v "PLATFORM_NAME=android-$(PLATFORM_VERSION)" \ -v "PLATFORM_NAME=android-$(PLATFORM_VERSION)" \
-v "TARGET_ARCH=$(TARGET_ARCH)" \
-v "TARGET_CPU_ABI=$(TARGET_CPU_ABI)" \
-o $(PRIVATE_DIR) && \ -o $(PRIVATE_DIR) && \
cp -f $(target_notice_file_txt) \ 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 && \ cp -f $(tools_notice_file_txt) $(PRIVATE_DIR)/tools/NOTICE.txt && \
HOST_OUT_EXECUTABLES=$(HOST_OUT_EXECUTABLES) HOST_OS=$(HOST_OS) \ 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) && \

View File

@@ -45,6 +45,8 @@ HOST_NO_UNDEFINED_LDFLAGS := -Wl,-undefined,error
HOST_CC := $(CC) HOST_CC := $(CC)
HOST_CXX := $(CXX) HOST_CXX := $(CXX)
HOST_AR := $(AR) HOST_AR := $(AR)
HOST_STRIP := $(STRIP)
HOST_STRIP_COMMAND = $(HOST_STRIP) --strip-debug $< -o $@
HOST_SHLIB_SUFFIX := .dylib HOST_SHLIB_SUFFIX := .dylib
HOST_JNILIB_SUFFIX := .jnilib HOST_JNILIB_SUFFIX := .jnilib

View File

@@ -52,6 +52,8 @@ TARGET_CXX := $(TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX)
TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX) TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX) TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(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 TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined

View File

@@ -28,6 +28,8 @@ TARGET_CXX := $(TARGET_TOOLS_PREFIX)c++$(HOST_EXECUTABLE_SUFFIX)
TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX) TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX) TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(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 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_CRTBEGIN_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/sobegin.o
TARGET_CRTEND_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/soend.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 TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm

View File

@@ -25,7 +25,9 @@ TARGET_AR := $(HOST_AR)
TARGET_GLOBAL_CFLAGS := $(HOST_GLOBAL_CFLAGS) -m32 TARGET_GLOBAL_CFLAGS := $(HOST_GLOBAL_CFLAGS) -m32
TARGET_GLOBAL_LDFLAGS := $(HOST_GLOBAL_LDFLAGS) -m32 -lpthread TARGET_GLOBAL_LDFLAGS := $(HOST_GLOBAL_LDFLAGS) -m32 -lpthread
TARGET_NO_UNDEFINED_LDFLAGS := $(HOST_NO_UNDEFINED_LDFLAGS) TARGET_NO_UNDEFINED_LDFLAGS := $(HOST_NO_UNDEFINED_LDFLAGS)
ifeq ($(strip $(TARGET_ARCH_VARIANT)),)
TARGET_ARCH_VARIANT := x86 TARGET_ARCH_VARIANT := x86
endif
else #simulator else #simulator
# Provide a default variant. # Provide a default variant.
@@ -36,7 +38,7 @@ endif
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else # You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
ifeq ($(strip $(TARGET_TOOLS_PREFIX)),) ifeq ($(strip $(TARGET_TOOLS_PREFIX)),)
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 endif
TARGET_CC := $(TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX) 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_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX) TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(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)),) ifneq ($(wildcard $(TARGET_CC)),)
TARGET_LIBGCC := \ TARGET_LIBGCC := \
$(shell $(TARGET_CC) -m32 -print-file-name=libgcc.a) \ $(shell $(TARGET_CC) -m32 -print-file-name=libgcc.a)
$(shell $(TARGET_CC) -m32 -print-file-name=libgcc_eh.a)
endif endif
TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
@@ -72,14 +75,48 @@ endif
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH) KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
TARGET_GLOBAL_CFLAGS += \ TARGET_GLOBAL_CFLAGS += \
-march=i686 \ -O2 \
-m32 \ -Ulinux \
-Wa,--noexecstack \
-Werror=format-security \
-Wstrict-aliasing=2 \
-fPIC \ -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) -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 += \ TARGET_GLOBAL_CPPFLAGS += \
-fno-use-cxa-atexit -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 := \ TARGET_C_INCLUDES := \
$(libc_root)/arch-x86/include \ $(libc_root)/arch-x86/include \
$(libc_root)/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_CRTBEGIN_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_so.o
TARGET_CRTEND_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_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 TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm
@@ -107,7 +144,7 @@ $(TARGET_CXX) \
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
-nostdlib -Wl,-soname,$(notdir $@) \ -nostdlib -Wl,-soname,$(notdir $@) \
-shared -Bsymbolic \ -shared -Bsymbolic \
-fPIC -march=i686 \ $(TARGET_GLOBAL_CFLAGS) \
$(PRIVATE_TARGET_GLOBAL_LD_DIRS) \ $(PRIVATE_TARGET_GLOBAL_LD_DIRS) \
$(PRIVATE_TARGET_CRTBEGIN_SO_O) \ $(PRIVATE_TARGET_CRTBEGIN_SO_O) \
$(PRIVATE_ALL_OBJECTS) \ $(PRIVATE_ALL_OBJECTS) \
@@ -157,7 +194,4 @@ $(TARGET_CXX) \
$(TARGET_CRTEND_O) $(TARGET_CRTEND_O)
endef endef
TARGET_GLOBAL_CFLAGS += -m32
TARGET_GLOBAL_LDFLAGS += -m32
endif #simulator endif #simulator

View File

@@ -28,6 +28,7 @@ combo_os_arch := $($(combo_target)OS)-$($(combo_target)ARCH)
$(combo_target)CC := $(CC) $(combo_target)CC := $(CC)
$(combo_target)CXX := $(CXX) $(combo_target)CXX := $(CXX)
$(combo_target)AR := $(AR) $(combo_target)AR := $(AR)
$(combo_target)STRIP := $(STRIP)
$(combo_target)BINDER_MINI := 0 $(combo_target)BINDER_MINI := 0

View File

@@ -142,6 +142,16 @@ include $(board_config_mk)
TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk))) TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk)))
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. # Clean up/verify variables defined by the board config file.
TARGET_BOOTLOADER_BOARD_NAME := $(strip $(TARGET_BOOTLOADER_BOARD_NAME)) TARGET_BOOTLOADER_BOARD_NAME := $(strip $(TARGET_BOOTLOADER_BOARD_NAME))
TARGET_CPU_ABI := $(strip $(TARGET_CPU_ABI)) 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 # Binary prelinker/compressor tools
APRIORI := $(HOST_OUT_EXECUTABLES)/apriori$(HOST_EXECUTABLE_SUFFIX) APRIORI := $(HOST_OUT_EXECUTABLES)/apriori$(HOST_EXECUTABLE_SUFFIX)
LSD := $(HOST_OUT_EXECUTABLES)/lsd$(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. # Deal with archaic version of bison on Mac OS X.
ifeq ($(filter 1.28,$(shell $(YACC) -V)),) ifeq ($(filter 1.28,$(shell $(YACC) -V)),)

View File

@@ -1086,13 +1086,10 @@ endef
## Commands for filtering a target executable or library ## 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 define transform-to-stripped
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@echo "target Strip: $(PRIVATE_MODULE) ($@)" @echo "target Strip: $(PRIVATE_MODULE) ($@)"
$(hide) $(SOSLIM) --strip --shady --quiet $< --outfile $@ $(hide) $(TARGET_STRIP_COMMAND)
endef endef
define transform-to-prelinked define transform-to-prelinked

78
core/dumpvar.mk Normal file
View File

@@ -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

View File

@@ -75,7 +75,7 @@ ifeq ($(LOCAL_COMPRESS_MODULE_SYMBOLS),true)
$(error Symbol compression not yet supported.) $(error Symbol compression not yet supported.)
compress_output := $(intermediates)/COMPRESSED-$(LOCAL_BUILT_MODULE_STEM) 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 #TODO: define a rule to build TARGET_SYMBOL_FILTER_FILE, and
# make it depend on ALL_ORIGINAL_DYNAMIC_BINARIES. # make it depend on ALL_ORIGINAL_DYNAMIC_BINARIES.
$(compress_output): $(compress_input) $(TARGET_SYMBOL_FILTER_FILE) | $(ACP) $(compress_output): $(compress_input) $(TARGET_SYMBOL_FILTER_FILE) | $(ACP)
@@ -137,7 +137,7 @@ endif
ifeq ($(LOCAL_STRIP_MODULE),true) ifeq ($(LOCAL_STRIP_MODULE),true)
# Strip the binary # Strip the binary
$(strip_output): $(strip_input) | $(SOSLIM) $(strip_output): $(strip_input) | $(TARGET_STRIP)
$(transform-to-stripped) $(transform-to-stripped)
else else
# Don't strip the binary, just copy it. We can't skip this step # Don't strip the binary, just copy it. We can't skip this step

View File

@@ -26,7 +26,7 @@ ifeq ($(TARGET_PRODUCT),)
ifeq ($(TARGET_SIMULATOR),true) ifeq ($(TARGET_SIMULATOR),true)
TARGET_PRODUCT := sim TARGET_PRODUCT := sim
else else
TARGET_PRODUCT := generic TARGET_PRODUCT := full
endif endif
endif endif
@@ -158,14 +158,6 @@ ifneq ($(TARGET_BUILD_TYPE),debug)
TARGET_BUILD_TYPE := release TARGET_BUILD_TYPE := release
endif 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 # figure out the output directories
@@ -283,81 +275,3 @@ endif
ifeq ($(PRINT_BUILD_CONFIG),) ifeq ($(PRINT_BUILD_CONFIG),)
PRINT_BUILD_CONFIG := true PRINT_BUILD_CONFIG := true
endif 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

View File

@@ -55,10 +55,11 @@ files_to_copy += $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SDK_ADDON_COPY_FILES)
# All SDK add-ons have these files # All SDK add-ons have these files
files_to_copy += \ files_to_copy += \
$(BUILT_SYSTEMIMAGE):images/system.img \ $(BUILT_SYSTEMIMAGE):images/$(TARGET_CPU_ABI)/system.img \
$(BUILT_USERDATAIMAGE_TARGET):images/userdata.img \ $(BUILT_USERDATAIMAGE_TARGET):images/$(TARGET_CPU_ABI)/userdata.img \
$(BUILT_RAMDISK_TARGET):images/ramdisk.img \ $(BUILT_RAMDISK_TARGET):images/$(TARGET_CPU_ABI)/ramdisk.img \
$(target_notice_file_txt):images/NOTICE.txt $(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 # Generate rules to copy the requested files
$(foreach cf,$(files_to_copy), \ $(foreach cf,$(files_to_copy), \

View File

@@ -314,7 +314,7 @@ function chooseproduct()
if [ "$TARGET_SIMULATOR" = true ] ; then if [ "$TARGET_SIMULATOR" = true ] ; then
default_value=sim default_value=sim
else else
default_value=generic default_value=full
fi fi
fi fi
@@ -432,7 +432,8 @@ function add_lunch_combo()
} }
# add the default one here # 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 # if we're on linux, add the simulator. There is a special case
# in lunch to deal with the simulator # in lunch to deal with the simulator
@@ -467,7 +468,7 @@ function lunch()
answer=$1 answer=$1
else else
print_lunch_menu print_lunch_menu
echo -n "Which would you like? [generic-eng] " echo -n "Which would you like? [full-eng] "
read answer read answer
fi fi
@@ -475,7 +476,7 @@ function lunch()
if [ -z "$answer" ] if [ -z "$answer" ]
then then
selection=generic-eng selection=full-eng
elif [ "$answer" = "simulator" ] elif [ "$answer" = "simulator" ]
then then
selection=simulator selection=simulator
@@ -563,7 +564,7 @@ function tapas()
apps=all apps=all
fi fi
export TARGET_PRODUCT=generic export TARGET_PRODUCT=full
export TARGET_BUILD_VARIANT=$variant export TARGET_BUILD_VARIANT=$variant
export TARGET_SIMULATOR=false export TARGET_SIMULATOR=false
export TARGET_BUILD_TYPE=release export TARGET_BUILD_TYPE=release
@@ -1096,7 +1097,7 @@ fi
unset _xarray unset _xarray
# Execute the contents of any vendorsetup.sh files we can find. # 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 do
echo "including $f" echo "including $f"
. $f . $f

View File

@@ -6,9 +6,30 @@
# The generic product target doesn't have any hardware-specific pieces. # The generic product target doesn't have any hardware-specific pieces.
TARGET_NO_BOOTLOADER := true TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := 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 HAVE_HTC_AUDIO_DRIVER := true
BOARD_USES_GENERIC_AUDIO := true BOARD_USES_GENERIC_AUDIO := true
# no hardware camera # no hardware camera
USE_CAMERA_STUB := true 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

View File

@@ -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

View File

@@ -1,17 +1,3 @@
LOCAL_PATH := $(call my-dir) 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

View File

@@ -1,20 +1,28 @@
TARGET_COMPRESS_MODULE_SYMBOLS := false # config.mk
TARGET_PRELINK_MODULE := false #
TARGET_NO_RECOVERY := true # Product-specific compile-time definitions.
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
# For VirtualBox and likely other emulators # The generic product target doesn't have any hardware-specific pieces.
BOARD_INSTALLER_CMDLINE := init=/init console=ttyS0 console=tty0 androidboot.hardware=generic_x86 vga=788 verbose TARGET_NO_BOOTLOADER := true
BOARD_KERNEL_CMDLINE := init=/init console=tty0 console=ttyS0 androidboot.hardware=generic_x86 vga=788 TARGET_NO_KERNEL := true
TARGET_USE_DISKINSTALLER := true TARGET_CPU_ABI := x86
TARGET_DISK_LAYOUT_CONFIG := build/target/board/generic_x86/disk_layout.conf TARGET_ARCH := x86
BOARD_BOOTIMAGE_MAX_SIZE := 8388608 TARGET_ARCH_VARIANT := x86-atom
BOARD_SYSLOADER_MAX_SIZE := 7340032 TARGET_PRELINK_MODULE := false
BOARD_FLASH_BLOCK_SIZE := 512
# 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

View File

@@ -1,33 +1,8 @@
The generic_x86 board target provides basic services on very basic The "generic_x86" product defines a non-hardware-specific IA target
hardware (really for an emulation). To build with generic_x86, you will without a kernel or bootloader.
need an appropriate kernel for your emulation (or device).
A1. Create a new top level directory and pull the AOSP repository It can be used to build the entire user-level system, and
mkdir $HOME/AOSP will work with the IA version of the emulator,
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 is not a product "base class"; no other products inherit
from it or use it in any way.

View File

@@ -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

View File

@@ -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

View File

@@ -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
}
}
}

View File

@@ -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

View File

@@ -0,0 +1,6 @@
#
# system.prop for generic sdk
#
rild.libpath=/system/lib/libreference-ril.so
rild.libargs=-d /dev/ttyS0

View File

@@ -36,6 +36,8 @@ PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/generic.mk \ $(LOCAL_DIR)/generic.mk \
$(LOCAL_DIR)/generic_x86.mk \ $(LOCAL_DIR)/generic_x86.mk \
$(LOCAL_DIR)/full.mk \ $(LOCAL_DIR)/full.mk \
$(LOCAL_DIR)/full_x86.mk \
$(LOCAL_DIR)/sdk.mk \ $(LOCAL_DIR)/sdk.mk \
$(LOCAL_DIR)/sdk_x86.mk \
$(LOCAL_DIR)/sim.mk $(LOCAL_DIR)/sim.mk
endif endif

View File

@@ -16,44 +16,14 @@
# This is a build configuration for a full-featured build of the # 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 # Open-Source part of the tree. It's geared toward a US-centric
# build of the emulator, but all those aspects can be overridden # build quite specifically for the emulator, and might not be
# in inherited configurations. # entirely appropriate to inherit from for on-device configurations.
PRODUCT_PACKAGES := \ $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)
OpenWnn \ $(call inherit-product, $(SRC_TARGET_DIR)/board/generic/device.mk)
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)
# Overrides # Overrides
PRODUCT_NAME := full PRODUCT_NAME := full
PRODUCT_BRAND := generic
PRODUCT_DEVICE := generic PRODUCT_DEVICE := generic
PRODUCT_MODEL := Full Android PRODUCT_BRAND := Android
PRODUCT_MODEL := Full Android on Emulator

View File

@@ -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)

View File

@@ -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

View File

@@ -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. # 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, # It includes the base Android platform.
# you should derive from generic_with_google.mk
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) $(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk)
# Overrides # Overrides
PRODUCT_BRAND := generic_x86 PRODUCT_BRAND := generic_x86
PRODUCT_DEVICE := generic_x86 PRODUCT_DEVICE := generic_x86
PRODUCT_NAME := 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

View File

@@ -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

View File

@@ -60,6 +60,8 @@ PRODUCT_PACKAGES += \
hprof-conv \ hprof-conv \
mksdcard \ mksdcard \
emulator \ emulator \
bios.bin \
vgabios-cirrus.bin \
ddms \ ddms \
hierarchyviewer \ hierarchyviewer \
draw9patch \ draw9patch \

28
target/product/sdk_x86.mk Normal file
View File

@@ -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

View File

@@ -1,6 +1,6 @@
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/locales_full.mk)
# Overrides # Overrides
PRODUCT_NAME := sim PRODUCT_NAME := sim
PRODUCT_DEVICE := sim PRODUCT_DEVICE := sim
PRODUCT_LOCALES := en_US