Merge "Split the build of the CTS infrastructure from the tests."
diff --git a/core/Makefile b/core/Makefile
index b406da8..cdf54bb 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -171,7 +171,7 @@
else
system_prop_file := $(wildcard $(TARGET_DEVICE_DIR)/system.prop)
endif
-$(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(BUILD_SYSTEM)/version_defaults.mk $(system_prop_file)
+$(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(BUILD_SYSTEM)/version_defaults.mk $(system_prop_file) $(INSTALLED_ANDROID_INFO_TXT_TARGET)
@echo Target buildinfo: $@
@mkdir -p $(dir $@)
$(hide) echo > $@
@@ -226,6 +226,7 @@
echo "#" >> $@; )
$(hide) $(foreach line,$(ADDITIONAL_BUILD_PROPERTIES), \
echo "$(line)" >> $@;)
+ $(hide) cat $(INSTALLED_ANDROID_INFO_TXT_TARGET) | grep 'require version-' | sed -e 's/require version-/ro.build.expect./g' >> $@
$(hide) build/tools/post_process_props.py $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_PROPERTY_BLACKLIST)
build_desc :=
@@ -486,23 +487,7 @@
INSTALLED_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img
ifeq ($(TARGET_BOOTIMAGE_USE_EXT2),true)
-tmp_dir_for_image := $(call intermediates-dir-for,EXECUTABLES,boot_img)/bootimg
-INTERNAL_BOOTIMAGE_ARGS += --tmpdir $(tmp_dir_for_image)
-INTERNAL_BOOTIMAGE_ARGS += --genext2fs $(MKEXT2IMG)
-
-ifeq ($(TARGET_BOOTIMAGE_USE_EXTLINUX),true)
-INTERNAL_BOOTIMAGE_ARGS += --extlinuxconf $(TARGET_BOOTIMAGE_EXTLINUX_CONFIG)
-endif
-
-$(INSTALLED_BOOTIMAGE_TARGET): $(MKEXT2IMG) $(INTERNAL_BOOTIMAGE_FILES)
- $(call pretty,"Target boot image: $@")
- $(hide) $(MKEXT2BOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --output $@
-
-.PHONY: bootimage-nodeps
-bootimage-nodeps: $(MKEXT2IMG)
- @echo "make $@: ignoring dependencies"
- $(hide) $(MKEXT2BOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --output $(INSTALLED_BOOTIMAGE_TARGET)
-
+$(error TARGET_BOOTIMAGE_USE_EXT2 is not supported anymore)
else ifeq (true,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY)) # TARGET_BOOTIMAGE_USE_EXT2 != true
$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOT_SIGNER)
@@ -1459,7 +1444,8 @@
$(hide) echo "oem_fingerprint_properties=$(OEM_THUMBPRINT_PROPERTIES)" >> $(zip_root)/META/misc_info.txt
endif
$(call generate-userimage-prop-dictionary, $(zip_root)/META/misc_info.txt)
- $(hide) ./build/tools/releasetools/make_recovery_patch $(zip_root) $(zip_root)
+ $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
+ ./build/tools/releasetools/make_recovery_patch $(zip_root) $(zip_root)
@# Zip everything up, preserving symlinks
$(hide) (cd $(zip_root) && zip -qry ../$(notdir $@) .)
@# Run fs_config on all the system, vendor, boot ramdisk,
@@ -1469,7 +1455,8 @@
$(hide) zipinfo -1 $@ | awk 'BEGIN { FS="BOOT/RAMDISK/" } /^BOOT\/RAMDISK\// {print $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -S $(SELINUX_FC) > $(zip_root)/META/boot_filesystem_config.txt
$(hide) zipinfo -1 $@ | awk 'BEGIN { FS="RECOVERY/RAMDISK/" } /^RECOVERY\/RAMDISK\// {print $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -S $(SELINUX_FC) > $(zip_root)/META/recovery_filesystem_config.txt
$(hide) (cd $(zip_root) && zip -q ../$(notdir $@) META/*filesystem_config.txt)
- $(hide) ./build/tools/releasetools/add_img_to_target_files -p $(HOST_OUT) $@
+ $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH \
+ ./build/tools/releasetools/add_img_to_target_files -p $(HOST_OUT) $@
.PHONY: target-files-package
target-files-package: $(BUILT_TARGET_FILES_PACKAGE)
@@ -1498,7 +1485,7 @@
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
@echo "Package OTA: $@"
- $(hide) MKBOOTIMG=$(MKBOOTIMG) \
+ $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH MKBOOTIMG=$(MKBOOTIMG) \
./build/tools/releasetools/ota_from_target_files -v \
--block \
-p $(HOST_OUT) \
@@ -1527,7 +1514,7 @@
$(INTERNAL_UPDATE_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
@echo "Package: $@"
- $(hide) MKBOOTIMG=$(MKBOOTIMG) \
+ $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH MKBOOTIMG=$(MKBOOTIMG) \
./build/tools/releasetools/img_from_target_files -v \
-p $(HOST_OUT) \
$(BUILT_TARGET_FILES_PACKAGE) $@
diff --git a/core/config.mk b/core/config.mk
index add068e..475cba7 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -392,12 +392,10 @@
endif
APICHECK := $(HOST_OUT_EXECUTABLES)/apicheck$(HOST_EXECUTABLE_SUFFIX)
FS_GET_STATS := $(HOST_OUT_EXECUTABLES)/fs_get_stats$(HOST_EXECUTABLE_SUFFIX)
-MKEXT2IMG := $(HOST_OUT_EXECUTABLES)/genext2fs$(HOST_EXECUTABLE_SUFFIX)
MAKE_EXT4FS := $(HOST_OUT_EXECUTABLES)/make_ext4fs$(HOST_EXECUTABLE_SUFFIX)
MKEXTUSERIMG := $(HOST_OUT_EXECUTABLES)/mkuserimg.sh
MAKE_F2FS := $(HOST_OUT_EXECUTABLES)/make_f2fs$(HOST_EXECUTABLE_SUFFIX)
MKF2FSUSERIMG := $(HOST_OUT_EXECUTABLES)/mkf2fsuserimg.sh
-MKEXT2BOOTIMG := external/genext2fs/mkbootimg_ext2.sh
SIMG2IMG := $(HOST_OUT_EXECUTABLES)/simg2img$(HOST_EXECUTABLE_SUFFIX)
E2FSCK := $(HOST_OUT_EXECUTABLES)/e2fsck$(HOST_EXECUTABLE_SUFFIX)
MKTARBALL := build/tools/mktarball.sh
diff --git a/core/host_dalvik_java_library.mk b/core/host_dalvik_java_library.mk
index f5da638..502016b 100644
--- a/core/host_dalvik_java_library.mk
+++ b/core/host_dalvik_java_library.mk
@@ -133,7 +133,11 @@
@echo Building with Jack: $@
$(jack-java-to-dex)
+# The empty command was added because, without it, make misses the fact the $(built_dex) also
+# change $(full_classes_jack). Looks like it would test the date before running $(built_dex)
+# command.
$(full_classes_jack): $(built_dex)
+ @echo
$(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex)
$(LOCAL_BUILT_MODULE): $(built_dex) $(java_resource_sources)
diff --git a/core/install_jni_libs_internal.mk b/core/install_jni_libs_internal.mk
index 944420b..c28bb15 100644
--- a/core/install_jni_libs_internal.mk
+++ b/core/install_jni_libs_internal.mk
@@ -100,9 +100,15 @@
my_prebuilt_jni_libs := $(addprefix $(LOCAL_PATH)/, \
$(filter-out @%, $(my_prebuilt_jni_libs)))
ifdef my_prebuilt_jni_libs
+ifdef my_embed_jni
+# Embed my_prebuilt_jni_libs to the apk
+my_jni_shared_libraries += $(my_prebuilt_jni_libs)
+else # not my_embed_jni
+# Install my_prebuilt_jni_libs as separate files.
$(foreach lib, $(my_prebuilt_jni_libs), \
$(eval $(call copy-one-file, $(lib), $(my_app_lib_path)/$(notdir $(lib)))))
$(LOCAL_INSTALLED_MODULE) : | $(addprefix $(my_app_lib_path)/, $(notdir $(my_prebuilt_jni_libs)))
+endif # my_embed_jni
endif # inner my_prebuilt_jni_libs
endif # outer my_prebuilt_jni_libs
diff --git a/core/java.mk b/core/java.mk
index d4f0039..4725fd4 100644
--- a/core/java.mk
+++ b/core/java.mk
@@ -610,7 +610,12 @@
@echo Building with Jack: $@
$(jack-java-to-dex)
+# The empty command was added because, without it, make misses the fact the $(built_dex) also
+# change $(full_classes_jack). Looks like it would test the date before running $(built_dex)
+# command.
$(full_classes_jack): $(built_dex_intermediate)
+ @echo
+
# nothing to do it's built as a side effect of $(built_dex_intermediate)
endif #LOCAL_IS_STATIC_JAVA_LIBRARY
diff --git a/envsetup.sh b/envsetup.sh
index 766ddb4..4fa74e6 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -1,3 +1,13 @@
+# These unsets should stay to clear the old functions from any long running
+# shells.
+# TODO(danalbert): Remove this in a day or so.
+unset -f gdbwrapper
+unset -f get_symbols_directory
+unset -f adb_get_product_device
+unset -f adb_get_traced_by
+unset -f gdbclient
+unset -f gdbclient_old
+
function hmm() {
cat <<EOF
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
@@ -1035,18 +1045,6 @@
fi
}
-function gdbwrapper()
-{
- local GDB_CMD="$1"
- shift 1
- $GDB_CMD -x "$@"
-}
-
-function get_symbols_directory()
-{
- echo $(get_abs_build_var TARGET_OUT_UNSTRIPPED)
-}
-
# Read the ELF header from /proc/$PID/exe to determine if the process is
# 64-bit.
function is64bit()
@@ -1063,291 +1061,6 @@
fi
}
-function adb_get_product_device() {
- local candidate=`adb shell getprop ro.product.device | sed s/.$//`
- if [ -z $candidate ]; then
- candidate=`adb shell getprop ro.hardware | sed s/.$//`
- fi
- echo $candidate
-}
-
-# returns 0 when process is not traced
-function adb_get_traced_by() {
- echo `adb shell cat /proc/$1/status | grep -e "^TracerPid:" | sed "s/^TracerPid:\t//" | sed s/.$//`
-}
-
-function gdbclient() {
- # TODO:
- # 1. Check for ANDROID_SERIAL/multiple devices
- local PROCESS_NAME="n/a"
- local PID=$1
- local PORT=5039
- if [ -z "$PID" ]; then
- echo "Usage: gdbclient <pid|processname> [port number]"
- return -1
- fi
- local DEVICE=$(adb_get_product_device)
-
- if [ -z "$DEVICE" ]; then
- echo "Error: Unable to get device name. Please check if device is connected and ANDROID_SERIAL is set."
- return -2
- fi
-
- if [ -n "$2" ]; then
- PORT=$2
- fi
-
- local ROOT=$(gettop)
- if [ -z "$ROOT" ]; then
- # This is for the situation with downloaded symbols (from the build server)
- # we check if they are available.
- ROOT=`realpath .`
- fi
-
- local OUT_ROOT="$ROOT/out/target/product/$DEVICE"
- local SYMBOLS_DIR="$OUT_ROOT/symbols"
- local IS_TAPAS_USER="$(get_build_var TARGET_BUILD_APPS)"
- local TAPAS_SYMBOLS_DIR=
-
- if [ $IS_TAPAS_USER ]; then
- TAPAS_SYMBOLS_DIR=$(get_symbols_directory)
- fi
-
- if [ ! -d $SYMBOLS_DIR ]; then
- if [ $IS_TAPAS_USER ]; then
- mkdir -p $SYMBOLS_DIR/system/bin
- else
- echo "Error: couldn't find symbols: $SYMBOLS_DIR does not exist or is not a directory."
- return -3
- fi
- fi
-
- # let's figure out which executable we are about to debug
-
- # check if user specified a name -> resolve to pid
- if [[ ! "$PID" =~ ^[0-9]+$ ]] ; then
- PROCESS_NAME=$PID
- PID=$(pid --exact $PROCESS_NAME)
- if [ -z "$PID" ]; then
- echo "Error: couldn't resolve pid by process name: $PROCESS_NAME"
- return -4
- else
- echo "Resolved pid for $PROCESS_NAME is $PID"
- fi
- fi
-
- local EXE=`adb shell readlink /proc/$PID/exe | sed s/.$//`
-
- if [ -z "$EXE" ]; then
- echo "Error: no such pid=$PID - is process still alive?"
- return -4
- fi
-
- local LOCAL_EXE_PATH=$SYMBOLS_DIR$EXE
-
- if [ ! -f $LOCAL_EXE_PATH ]; then
- if [ $IS_TAPAS_USER ]; then
- adb pull $EXE $LOCAL_EXE_PATH
- else
- echo "Error: unable to find symbols for executable $EXE: file $LOCAL_EXE_PATH does not exist"
- return -5
- fi
- fi
-
- local USE64BIT=""
-
- if [[ "$(file $LOCAL_EXE_PATH)" =~ 64-bit ]]; then
- USE64BIT="64"
- fi
-
- # and now linker for tapas users...
- if [ -n "$IS_TAPAS_USER" -a ! -f "$SYMBOLS_DIR/system/bin/linker$USE64BIT" ]; then
- adb pull /system/bin/linker$USE64BIT $SYMBOLS_DIR/system/bin/linker$USE64BIT
- fi
-
- local GDB=
- local GDB64=
- local CPU_ABI=`adb shell getprop ro.product.cpu.abilist | sed s/.$//`
- # TODO: we assume these are available via $PATH
- if [[ $CPU_ABI =~ (^|,)arm64 ]]; then
- GDB=arm-linux-androideabi-gdb
- GDB64=aarch64-linux-android-gdb
- elif [[ $CPU_ABI =~ (^|,)arm ]]; then
- GDB=arm-linux-androideabi-gdb
- elif [[ $CPU_ABI =~ (^|,)x86_64 ]]; then
- GDB=x86_64-linux-android-gdb
- elif [[ $CPU_ABI =~ (^|,)x86 ]]; then
- GDB=x86_64-linux-android-gdb
- elif [[ $CPU_ABI =~ (^|,)mips64 ]]; then
- GDB=mipsel-linux-android-gdb
- GDB64=mips64el-linux-android-gdb
- elif [[ $CPU_ABI =~ (^|,)mips ]]; then
- GDB=mipsel-linux-android-gdb
- else
- echo "Error: unrecognized cpu.abilist: $CPU_ABI"
- return -6
- fi
-
- # TODO: check if tracing process is gdbserver and not some random strace...
- if [ "$(adb_get_traced_by $PID)" -eq 0 ]; then
- # start gdbserver
- echo "Starting gdbserver..."
- # TODO: check if adb is already listening $PORT
- # to avoid unnecessary calls
- echo ". adb forward for port=$PORT..."
- adb forward tcp:$PORT tcp:$PORT
- echo ". starting gdbserver to attach to pid=$PID..."
- adb shell gdbserver$USE64BIT :$PORT --attach $PID &
- echo ". give it couple of seconds to start..."
- sleep 2
- echo ". done"
- else
- echo "It looks like gdbserver is already attached to $PID (process is traced), trying to connect to it using local port=$PORT"
- adb forward tcp:$PORT tcp:$PORT
- fi
-
- local OUT_SO_SYMBOLS=$SYMBOLS_DIR/system/lib$USE64BIT
- local TAPAS_OUT_SO_SYMBOLS=$TAPAS_SYMBOLS_DIR/system/lib$USE64BIT
- local OUT_VENDOR_SO_SYMBOLS=$SYMBOLS_DIR/vendor/lib$USE64BIT
- local ART_CMD=""
-
- local SOLIB_SYSROOT=$SYMBOLS_DIR
- local SOLIB_SEARCHPATH=$OUT_SO_SYMBOLS:$OUT_SO_SYMBOLS/hw:$OUT_SO_SYMBOLS/ssl/engines:$OUT_SO_SYMBOLS/drm:$OUT_SO_SYMBOLS/egl:$OUT_SO_SYMBOLS/soundfx:$OUT_VENDOR_SO_SYMBOLS:$OUT_VENDOR_SO_SYMBOLS/hw:$OUT_VENDOR_SO_SYMBOLS/egl
-
- if [ $IS_TAPAS_USER ]; then
- SOLIB_SYSROOT=$TAPAS_SYMBOLS_DIR:$SOLIB_SYSROOT
- SOLIB_SEARCHPATH=$TAPAS_OUT_SO_SYMBOLS:$SOLIB_SEARCHPATH
- fi
-
- echo >|"$OUT_ROOT/gdbclient.cmds" "set solib-absolute-prefix $SOLIB_SYSROOT"
- echo >>"$OUT_ROOT/gdbclient.cmds" "set solib-search-path $SOLIB_SEARCHPATH"
- local DALVIK_GDB_SCRIPT=$ROOT/development/scripts/gdb/dalvik.gdb
- if [ -f $DALVIK_GDB_SCRIPT ]; then
- echo >>"$OUT_ROOT/gdbclient.cmds" "source $DALVIK_GDB_SCRIPT"
- ART_CMD="art-on"
- else
- echo "Warning: couldn't find $DALVIK_GDB_SCRIPT - ART debugging options will not be available"
- fi
- echo >>"$OUT_ROOT/gdbclient.cmds" "target remote :$PORT"
- if [[ $EXE =~ (^|/)(app_process|dalvikvm)(|32|64)$ ]]; then
- echo >> "$OUT_ROOT/gdbclient.cmds" $ART_CMD
- fi
-
- echo >>"$OUT_ROOT/gdbclient.cmds" ""
-
- local WHICH_GDB=$GDB
-
- if [ -n "$USE64BIT" -a -n "$GDB64" ]; then
- WHICH_GDB=$GDB64
- fi
-
- gdbwrapper $WHICH_GDB "$OUT_ROOT/gdbclient.cmds" "$LOCAL_EXE_PATH"
-}
-
-# gdbclient now determines whether the user wants to debug a 32-bit or 64-bit
-# executable, set up the approriate gdbserver, then invokes the proper host
-# gdb.
-function gdbclient_old()
-{
- local OUT_ROOT=$(get_abs_build_var PRODUCT_OUT)
- local OUT_SYMBOLS=$(get_abs_build_var TARGET_OUT_UNSTRIPPED)
- local OUT_SO_SYMBOLS=$(get_abs_build_var TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)
- local OUT_VENDOR_SO_SYMBOLS=$(get_abs_build_var TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED)
- local OUT_EXE_SYMBOLS=$(get_symbols_directory)
- local PREBUILTS=$(get_abs_build_var ANDROID_PREBUILTS)
- local ARCH=$(get_build_var TARGET_ARCH)
- local GDB
- case "$ARCH" in
- arm) GDB=arm-linux-androideabi-gdb;;
- arm64) GDB=arm-linux-androideabi-gdb; GDB64=aarch64-linux-android-gdb;;
- mips|mips64) GDB=mips64el-linux-android-gdb;;
- x86) GDB=x86_64-linux-android-gdb;;
- x86_64) GDB=x86_64-linux-android-gdb;;
- *) echo "Unknown arch $ARCH"; return 1;;
- esac
-
- if [ "$OUT_ROOT" -a "$PREBUILTS" ]; then
- local EXE="$1"
- if [ "$EXE" ] ; then
- EXE=$1
- if [[ $EXE =~ ^[^/].* ]] ; then
- EXE="system/bin/"$EXE
- fi
- else
- EXE="app_process"
- fi
-
- local PORT="$2"
- if [ "$PORT" ] ; then
- PORT=$2
- else
- PORT=":5039"
- fi
-
- local PID="$3"
- if [ "$PID" ] ; then
- if [[ ! "$PID" =~ ^[0-9]+$ ]] ; then
- PID=`pid $3`
- if [[ ! "$PID" =~ ^[0-9]+$ ]] ; then
- # that likely didn't work because of returning multiple processes
- # try again, filtering by root processes (don't contain colon)
- PID=`adb shell ps | \grep $3 | \grep -v ":" | awk '{print $2}'`
- if [[ ! "$PID" =~ ^[0-9]+$ ]]
- then
- echo "Couldn't resolve '$3' to single PID"
- return 1
- else
- echo ""
- echo "WARNING: multiple processes matching '$3' observed, using root process"
- echo ""
- fi
- fi
- fi
- adb forward "tcp$PORT" "tcp$PORT"
- local USE64BIT="$(is64bit $PID)"
- adb shell gdbserver$USE64BIT $PORT --attach $PID &
- sleep 2
- else
- echo ""
- echo "If you haven't done so already, do this first on the device:"
- echo " gdbserver $PORT /system/bin/$EXE"
- echo " or"
- echo " gdbserver $PORT --attach <PID>"
- echo ""
- fi
-
- OUT_SO_SYMBOLS=$OUT_SO_SYMBOLS$USE64BIT
- OUT_VENDOR_SO_SYMBOLS=$OUT_VENDOR_SO_SYMBOLS$USE64BIT
-
- echo >|"$OUT_ROOT/gdbclient.cmds" "set solib-absolute-prefix $OUT_SYMBOLS"
- echo >>"$OUT_ROOT/gdbclient.cmds" "set solib-search-path $OUT_SO_SYMBOLS:$OUT_SO_SYMBOLS/hw:$OUT_SO_SYMBOLS/ssl/engines:$OUT_SO_SYMBOLS/drm:$OUT_SO_SYMBOLS/egl:$OUT_SO_SYMBOLS/soundfx:$OUT_VENDOR_SO_SYMBOLS:$OUT_VENDOR_SO_SYMBOLS/hw:$OUT_VENDOR_SO_SYMBOLS/egl"
- echo >>"$OUT_ROOT/gdbclient.cmds" "source $ANDROID_BUILD_TOP/development/scripts/gdb/dalvik.gdb"
- echo >>"$OUT_ROOT/gdbclient.cmds" "target remote $PORT"
- # Enable special debugging for ART processes.
- if [[ $EXE =~ (^|/)(app_process|dalvikvm)(|32|64)$ ]]; then
- echo >> "$OUT_ROOT/gdbclient.cmds" "art-on"
- fi
- echo >>"$OUT_ROOT/gdbclient.cmds" ""
-
- local WHICH_GDB=
- # 64-bit exe found
- if [ "$USE64BIT" != "" ] ; then
- WHICH_GDB=$ANDROID_TOOLCHAIN/$GDB64
- # 32-bit exe / 32-bit platform
- elif [ "$(get_build_var TARGET_2ND_ARCH)" = "" ]; then
- WHICH_GDB=$ANDROID_TOOLCHAIN/$GDB
- # 32-bit exe / 64-bit platform
- else
- WHICH_GDB=$ANDROID_TOOLCHAIN_2ND_ARCH/$GDB
- fi
-
- gdbwrapper $WHICH_GDB "$OUT_ROOT/gdbclient.cmds" "$OUT_EXE_SYMBOLS/$EXE"
- else
- echo "Unable to determine build system output dir."
- fi
-
-}
-
case `uname -s` in
Darwin)
function sgrep()
diff --git a/target/board/generic_mips/BoardConfig.mk b/target/board/generic_mips/BoardConfig.mk
index 736ad7f..ff5a4e4 100644
--- a/target/board/generic_mips/BoardConfig.mk
+++ b/target/board/generic_mips/BoardConfig.mk
@@ -53,7 +53,7 @@
USE_OPENGL_RENDERER := true
TARGET_USERIMAGES_USE_EXT4 := true
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 786432000
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 838860800
BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
diff --git a/target/board/generic_mips64/BoardConfig.mk b/target/board/generic_mips64/BoardConfig.mk
index caebacc..958c427 100644
--- a/target/board/generic_mips64/BoardConfig.mk
+++ b/target/board/generic_mips64/BoardConfig.mk
@@ -65,7 +65,7 @@
USE_OPENGL_RENDERER := true
TARGET_USERIMAGES_USE_EXT4 := true
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 786432000
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 943718400
BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
diff --git a/target/board/generic_x86_64/BoardConfig.mk b/target/board/generic_x86_64/BoardConfig.mk
index c4fd958..295ee2b 100755
--- a/target/board/generic_x86_64/BoardConfig.mk
+++ b/target/board/generic_x86_64/BoardConfig.mk
@@ -41,7 +41,7 @@
USE_OPENGL_RENDERER := true
TARGET_USERIMAGES_USE_EXT4 := true
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 943718400 # 900MB
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1073741824 # 1GB
BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
diff --git a/target/product/core_minimal.mk b/target/product/core_minimal.mk
index 33b49a6..d1e5d81 100644
--- a/target/product/core_minimal.mk
+++ b/target/product/core_minimal.mk
@@ -92,8 +92,8 @@
voip-common \
ims-common \
mms-common \
- android.policy \
apache-xml \
+ org.apache.http.legacy
# The order of PRODUCT_SYSTEM_SERVER_JARS matters.
PRODUCT_SYSTEM_SERVER_JARS := \
diff --git a/target/product/core_tiny.mk b/target/product/core_tiny.mk
index 39789d9..f66db8c 100644
--- a/target/product/core_tiny.mk
+++ b/target/product/core_tiny.mk
@@ -92,9 +92,9 @@
voip-common \
ims-common \
mms-common \
- android.policy \
apache-xml \
nullwebview \
+ org.apache.http.legacy
# The order of PRODUCT_SYSTEM_SERVER_JARS matters.
PRODUCT_SYSTEM_SERVER_JARS := \
diff --git a/tools/droiddoc/templates-sdk/assets/js/docs.js b/tools/droiddoc/templates-sdk/assets/js/docs.js
index b0ee279..7f4be4e 100644
--- a/tools/droiddoc/templates-sdk/assets/js/docs.js
+++ b/tools/droiddoc/templates-sdk/assets/js/docs.js
@@ -603,9 +603,12 @@
return frameHeight - (marginTop * 2);
}
+var mPlayerPaused = false;
+
function startYouTubePlayer(videoId) {
$("#video-container").show();
$("#video-frame").show();
+ mPlayerPaused = false;
// compute the size of the player so it's centered in window
var maxWidth = 940; // the width of the web site content
@@ -645,7 +648,7 @@
// reset the size in case the user adjusted the window since last play
youTubePlayer.setSize(videoWidth, videoHeight);
// if a video different from the one already playing was requested, cue it up
- if (videoId != youTubePlayer.getVideoUrl().split('?v=')[1]) {
+ if (videoId != youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0]) {
youTubePlayer.cueVideoById(videoId);
}
youTubePlayer.playVideo();
@@ -654,16 +657,13 @@
function onPlayerReady(event) {
event.target.playVideo();
- // track the start playing event so we know from which page the video was selected
- ga('send', 'event', 'Videos', 'Start: ' +
- youTubePlayer.getVideoUrl().split('?v=')[1], 'on: ' + document.location.href);
+ mPlayerPaused = false;
}
function closeVideo() {
try {
youTubePlayer.pauseVideo();
} catch(e) {
- console.log('Video not available');
}
$("#video-container").fadeOut(200);
}
@@ -672,18 +672,30 @@
function onPlayerStateChange(event) {
// Video starts, send the video ID
if (event.data == YT.PlayerState.PLAYING) {
- ga('send', 'event', 'Videos', 'Play',
- youTubePlayer.getVideoUrl().split('?v=')[1]);
+ if (mPlayerPaused) {
+ ga('send', 'event', 'Videos', 'Resume',
+ youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0]);
+ } else {
+ // track the start playing event so we know from which page the video was selected
+ ga('send', 'event', 'Videos', 'Start: ' +
+ youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0],
+ 'on: ' + document.location.href);
+ }
+ mPlayerPaused = false;
}
// Video paused, send video ID and video elapsed time
if (event.data == YT.PlayerState.PAUSED) {
ga('send', 'event', 'Videos', 'Paused',
- youTubePlayer.getVideoUrl().split('?v=')[1], youTubePlayer.getCurrentTime());
+ youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0],
+ youTubePlayer.getCurrentTime());
+ mPlayerPaused = true;
}
// Video finished, send video ID and video elapsed time
if (event.data == YT.PlayerState.ENDED) {
ga('send', 'event', 'Videos', 'Finished',
- youTubePlayer.getVideoUrl().split('?v=')[1], youTubePlayer.getCurrentTime());
+ youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0],
+ youTubePlayer.getCurrentTime());
+ mPlayerPaused = true;
}
}
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index bf96568..0a0c433 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -1068,14 +1068,14 @@
self.partition = partition
self.check_first_block = check_first_block
- version = 1
+ self.version = 1
if OPTIONS.info_dict:
- version = max(
+ self.version = max(
int(i) for i in
OPTIONS.info_dict.get("blockimgdiff_versions", "1").split(","))
b = blockimgdiff.BlockImageDiff(tgt, src, threads=OPTIONS.worker_threads,
- version=version)
+ version=self.version)
tmpdir = tempfile.mkdtemp()
OPTIONS.tempfiles.append(tmpdir)
self.path = os.path.join(tmpdir, partition)
@@ -1098,10 +1098,15 @@
if not self.src:
script.Print("Image %s will be patched unconditionally." % (partition,))
else:
- script.AppendExtra(('if block_image_verify("%s", '
- 'package_extract_file("%s.transfer.list"), '
- '"%s.new.dat", "%s.patch.dat") then') %
- (self.device, partition, partition, partition))
+ if self.version >= 3:
+ script.AppendExtra(('if block_image_verify("%s", '
+ 'package_extract_file("%s.transfer.list"), '
+ '"%s.new.dat", "%s.patch.dat") then') %
+ (self.device, partition, partition, partition))
+ else:
+ script.AppendExtra('if range_sha1("%s", "%s") == "%s" then' %
+ (self.device, self.src.care_map.to_string_raw(),
+ self.src.TotalSha1()))
script.Print("Verified %s image..." % (partition,))
script.AppendExtra('else');