summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/Makefile10
-rw-r--r--core/base_rules.mk2
-rw-r--r--core/combo/HOST_darwin-x86.mk7
-rw-r--r--core/tasks/kernel.mk14
-rw-r--r--envsetup.sh7
-rw-r--r--target/board/generic/BoardConfig.mk8
-rw-r--r--target/board/generic/recovery.fstab6
-rw-r--r--target/board/generic_mips/BoardConfig.mk8
-rw-r--r--target/board/generic_x86/BoardConfig.mk8
-rw-r--r--target/product/security/cm.x509.pem23
-rwxr-xr-xtools/releasetools/build_image.py2
-rwxr-xr-xtools/repopick.py38
12 files changed, 113 insertions, 20 deletions
diff --git a/core/Makefile b/core/Makefile
index 44338de..ae64e28 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -313,6 +313,9 @@ endif
# exist with the suffixes ".x509.pem" and ".pk8".
DEFAULT_KEY_CERT_PAIR := $(DEFAULT_SYSTEM_DEV_CERTIFICATE)
+ifneq ($(OTA_PACKAGE_SIGNING_KEY),)
+ DEFAULT_KEY_CERT_PAIR := $(OTA_PACKAGE_SIGNING_KEY)
+endif
# Rules that need to be present for the all targets, even
# if they don't do anything.
@@ -687,6 +690,13 @@ INTERNAL_RECOVERY_FILES := $(filter $(TARGET_RECOVERY_OUT)/%, \
# substitute other keys for this one.
OTA_PUBLIC_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE).x509.pem
+ifneq ($(OTA_PACKAGE_SIGNING_KEY),)
+ OTA_PUBLIC_KEYS := $(OTA_PACKAGE_SIGNING_KEY).x509.pem
+ PRODUCT_EXTRA_RECOVERY_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE)
+endif
+
+PRODUCT_EXTRA_RECOVERY_KEYS += build/target/product/security/cm
+
# Generate a file containing the keys that will be read by the
# recovery binary.
RECOVERY_INSTALL_OTA_KEYS := \
diff --git a/core/base_rules.mk b/core/base_rules.mk
index 40d1fa6..4a58e49 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -510,7 +510,7 @@ endif
ifdef LOCAL_DEX_PREOPT
installed_odex := $(basename $(LOCAL_INSTALLED_MODULE)).odex
built_odex := $(basename $(LOCAL_BUILT_MODULE)).odex
-$(installed_odex) : $(built_odex) | $(ACP)
+$(installed_odex) : $(built_odex) $(LOCAL_BUILT_MODULE) | $(ACP)
@echo -e ${CL_CYN}"Install: $@"${CL_RST}
$(copy-file-to-target)
diff --git a/core/combo/HOST_darwin-x86.mk b/core/combo/HOST_darwin-x86.mk
index aadee19..78261b6 100644
--- a/core/combo/HOST_darwin-x86.mk
+++ b/core/combo/HOST_darwin-x86.mk
@@ -38,7 +38,7 @@ build_mac_version := $(shell sw_vers -productVersion)
ifneq ($(strip $(BUILD_MAC_SDK_EXPERIMENTAL)),)
# SDK 10.7 and higher is not fully compatible with Android.
-mac_sdk_versions_supported := 10.7 10.8
+mac_sdk_versions_supported := 10.9 10.7 10.8
else
mac_sdk_versions_supported := 10.6
endif # BUILD_MAC_SDK_EXPERIMENTAL
@@ -76,6 +76,11 @@ HOST_GLOBAL_LDFLAGS += -isysroot $(mac_sdk_root) -Wl,-syslibroot,$(mac_sdk_root)
HOST_GLOBAL_CFLAGS += -fPIC -funwind-tables
HOST_NO_UNDEFINED_LDFLAGS := -Wl,-undefined,error
+ifeq ($(mac_sdk_version),10.9)
+HOST_GLOBAL_CFLAGS += -I$(mac_sdk_root)/usr/include/c++/4.2.1 -arch i386 -Wno-nested-anon-types -Wno-unused-parameter
+HOST_GLOBAL_LDFLAGS += -Wl,-arch,i386,-lstdc++
+endif
+
HOST_CC := gcc
HOST_CXX := g++
HOST_AR := $(AR)
diff --git a/core/tasks/kernel.mk b/core/tasks/kernel.mk
index a6942ca..dc51e7c 100644
--- a/core/tasks/kernel.mk
+++ b/core/tasks/kernel.mk
@@ -146,6 +146,10 @@ ifeq ($(TARGET_ARCH),arm)
ccache =
endif
+ifeq ($(HOST_OS),darwin)
+ MAKE_FLAGS := C_INCLUDE_PATH=$(ANDROID_BUILD_TOP)/external/elfutils/libelf
+endif
+
ifeq ($(TARGET_KERNEL_MODULES),)
TARGET_KERNEL_MODULES := no-external-modules
endif
@@ -155,15 +159,15 @@ $(KERNEL_OUT):
mkdir -p $(KERNEL_MODULES_OUT)
$(KERNEL_CONFIG): $(KERNEL_OUT)
- $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)
+ $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)
$(KERNEL_OUT)/piggy : $(TARGET_PREBUILT_INT_KERNEL)
$(hide) gunzip -c $(KERNEL_OUT)/arch/$(TARGET_ARCH)/boot/compressed/piggy.gzip > $(KERNEL_OUT)/piggy
TARGET_KERNEL_BINARIES: $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL)
- $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE)
- -$(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules
- -$(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules_install
+ $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) $(TARGET_PREBUILT_INT_KERNEL_TYPE)
+ -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules
+ -$(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) modules_install
$(mv-modules)
$(clean-module-folder)
@@ -174,7 +178,7 @@ $(TARGET_PREBUILT_INT_KERNEL): $(TARGET_KERNEL_MODULES)
$(clean-module-folder)
$(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG)
- $(MAKE) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) headers_install
+ $(MAKE) $(MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_OUT) ARCH=$(TARGET_ARCH) $(ARM_CROSS_COMPILE) headers_install
endif # FULL_KERNEL_BUILD
diff --git a/envsetup.sh b/envsetup.sh
index 602a301..7f9bb4c 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -241,7 +241,7 @@ function settitle()
PROMPT_COMMAND="echo -ne \"\033]0;${USER}@${HOSTNAME}: ${PWD}\007\";${PROMPT_COMMAND}"
fi
if [ ! -z "$ANDROID_PROMPT_PREFIX" ]; then
- PROMPT_COMMAND=$(echo $PROMPT_COMMAND | sed -e 's/$ANDROID_PROMPT_PREFIX //g')
+ PROMPT_COMMAND="$(echo $PROMPT_COMMAND | sed -e 's/$ANDROID_PROMPT_PREFIX //g')"
fi
if [ -z "$apps" ]; then
@@ -1810,8 +1810,9 @@ function dopush()
# Get target file name (i.e. system/bin/adb)
TARGET=$(echo $FILE | sed "s#$OUT/##")
- # Don't send files that are not in /system.
- if ! echo $TARGET | egrep '^system\/' > /dev/null ; then
+ # Don't send files that are not under /system or /data
+ if [ ! "echo $TARGET | egrep '^system\/' > /dev/null" -o \
+ "echo $TARGET | egrep '^data\/' > /dev/null" ] ; then
continue
else
case $TARGET in
diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk
index 415bdc6..9749d2e 100644
--- a/target/board/generic/BoardConfig.mk
+++ b/target/board/generic/BoardConfig.mk
@@ -45,3 +45,11 @@ BUILD_EMULATOR_OPENGL_DRIVER := true
# Build and enable the OpenGL ES View renderer. When running on the emulator,
# the GLES renderer disables itself if host GL acceleration isn't available.
USE_OPENGL_RENDERER := true
+
+TARGET_USERIMAGES_USE_EXT4 := true
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 576716800
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 209715200
+BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
+BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_FLASH_BLOCK_SIZE := 512
+TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
diff --git a/target/board/generic/recovery.fstab b/target/board/generic/recovery.fstab
index 5205901..6c269fe 100644
--- a/target/board/generic/recovery.fstab
+++ b/target/board/generic/recovery.fstab
@@ -1,7 +1,7 @@
# mount point fstype device
-/system yaffs2 system
-/cache yaffs2 cache
-/data yaffs2 userdata
+/system ext4 system
+/cache ext4 cache
+/data ext4 userdata
/sdcard vfat /dev/block/mmcblk0
diff --git a/target/board/generic_mips/BoardConfig.mk b/target/board/generic_mips/BoardConfig.mk
index 8c2371f..3d9f15b 100644
--- a/target/board/generic_mips/BoardConfig.mk
+++ b/target/board/generic_mips/BoardConfig.mk
@@ -51,3 +51,11 @@ BUILD_EMULATOR_OPENGL := true
# Build and enable the OpenGL ES View renderer. When running on the emulator,
# the GLES renderer disables itself if host GL acceleration isn't available.
USE_OPENGL_RENDERER := true
+
+TARGET_USERIMAGES_USE_EXT4 := true
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 576716800
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 209715200
+BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
+BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_FLASH_BLOCK_SIZE := 512
+TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
diff --git a/target/board/generic_x86/BoardConfig.mk b/target/board/generic_x86/BoardConfig.mk
index 4a9e5fe..ed7da38 100644
--- a/target/board/generic_x86/BoardConfig.mk
+++ b/target/board/generic_x86/BoardConfig.mk
@@ -33,3 +33,11 @@ BUILD_EMULATOR_OPENGL := true
# Build and enable the OpenGL ES View renderer. When running on the emulator,
# the GLES renderer disables itself if host GL acceleration isn't available.
USE_OPENGL_RENDERER := true
+
+TARGET_USERIMAGES_USE_EXT4 := true
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 576716800
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 209715200
+BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
+BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_FLASH_BLOCK_SIZE := 512
+TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
diff --git a/target/product/security/cm.x509.pem b/target/product/security/cm.x509.pem
new file mode 100644
index 0000000..8f36aeb
--- /dev/null
+++ b/target/product/security/cm.x509.pem
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIID6zCCAtOgAwIBAgIJANb37GkrbfxOMA0GCSqGSIb3DQEBBQUAMIGLMQswCQYD
+VQQGEwJVUzELMAkGA1UECAwCV0ExEDAOBgNVBAcMB1NlYXR0bGUxFDASBgNVBAoM
+C0N5YW5vZ2VuTW9kMRQwEgYDVQQLDAtDeWFub2dlbk1vZDELMAkGA1UEAwwCQ00x
+JDAiBgkqhkiG9w0BCQEWFWxlZ2FsQGN5YW5vZ2VubW9kLm9yZzAeFw0xMzA2MTMy
+MzAxMzlaFw00MDEwMjkyMzAxMzlaMIGLMQswCQYDVQQGEwJVUzELMAkGA1UECAwC
+V0ExEDAOBgNVBAcMB1NlYXR0bGUxFDASBgNVBAoMC0N5YW5vZ2VuTW9kMRQwEgYD
+VQQLDAtDeWFub2dlbk1vZDELMAkGA1UEAwwCQ00xJDAiBgkqhkiG9w0BCQEWFWxl
+Z2FsQGN5YW5vZ2VubW9kLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBALB2NmZpMaqKNbp5KHs51cM6rGmd85/OrRTmRXx6Y9G4iLAeE3s1csQH32kJ
+3c28Ze8W2w3bj7sZgzeBGNoPmYRNL/Cql1tDcH6OJ9ur6/3GG0kYZzww4uEf4jGa
+EAJwrv+yW4W46HFEqsOYkHtkRXPVVodoRjTgtXLu9l/ZaNqBr7BfkHV5eaFbro24
+A6jGjSpQ5CHqJR9uptSC6WeeO+/ix/mhJLxexfEtiTO2mtFqMGjnJT+5UHOvKQ8h
+gHtXQ3Trn5fQ5+AHDKv4Cz2Ut3CAf52l7aJzbAjGhqvBKDMgFeQUGBZbm+jL9fP6
+uOLdIYh01C/MXUuJgHXH7ocr7cMCAwEAAaNQME4wHQYDVR0OBBYEFLk80Nl+iM8V
+ZO9E8o6Yaps8FT+KMB8GA1UdIwQYMBaAFLk80Nl+iM8VZO9E8o6Yaps8FT+KMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKYMxXvGuQLXlyd4bScF6w14
+WR68XtHGDudDQWRMwYWKIVjsbL+oXD/tQK9HgZidvIUp0gWPEtktycQNQmq7sBjs
+IS6vRWahqI0JR2O+pjWPk3xel3KydIGSGnt8vq1+9aQe0Dqik+4/QG6iiYl4NVP4
+MWN5UzZXNrNI2eIbYNyNfMd1b1YIVyLhabkmUS98CFZZUdh/+zFbRkyYS9rQVurJ
+sZcd2VF9Ze4VHHujT1oqmu9qzipRGk+Euwr8exiNgIrsFuwM38ucPWmjMlRwjF2r
+k7bmCQRMtOifWGNXr25qOqsZALrPRHQBcvaG3FSQpUwHurWcs4ZyriioiqcESTY=
+-----END CERTIFICATE-----
diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py
index 94a9fda..358d718 100755
--- a/tools/releasetools/build_image.py
+++ b/tools/releasetools/build_image.py
@@ -56,7 +56,7 @@ def BuildImage(in_dir, prop_dict, out_file):
build_command = ["mkuserimg.sh"]
if "extfs_sparse_flag" in prop_dict:
build_command.append(prop_dict["extfs_sparse_flag"])
- run_fsck = True
+ #run_fsck = True
build_command.extend([in_dir, out_file, fs_type,
prop_dict["mount_point"]])
if "partition_size" in prop_dict:
diff --git a/tools/repopick.py b/tools/repopick.py
index 7336e78..ace7155 100755
--- a/tools/repopick.py
+++ b/tools/repopick.py
@@ -182,15 +182,28 @@ for change in args.change_number:
print('Fetching from: %s\n' % url)
f = urllib.request.urlopen(url)
d = f.read().decode("utf-8")
-
- # Parse the result
if args.verbose:
print('Result from request:\n' + d)
+
+ # Clean up the result
d = d.split('\n')[1]
+ matchObj = re.match(r'\[\s*\]', d)
+ if matchObj:
+ sys.stderr.write('ERROR: Change number %s was not found on the server\n' % change)
+ sys.exit(1)
d = re.sub(r'\[(.*)\]', r'\1', d)
- data = json.loads(d)
+
+ # Parse the JSON
+ try:
+ data = json.loads(d)
+ except ValueError:
+ sys.stderr.write('ERROR: The response from the server could not be parsed properly\n')
+ if not args.verbose:
+ sys.stderr.write('The malformed response was: %s\n' % d)
+ sys.exit(1)
# Extract information from the JSON response
+ date_fluff = '.000000000'
project_name = data['project']
change_number = data['_number']
current_revision = data['revisions'][data['current_revision']]
@@ -199,10 +212,10 @@ for change in args.change_number:
fetch_ref = current_revision['fetch']['http']['ref']
author_name = current_revision['commit']['author']['name']
author_email = current_revision['commit']['author']['email']
- author_date = current_revision['commit']['author']['date']
+ author_date = current_revision['commit']['author']['date'].replace(date_fluff, '')
committer_name = current_revision['commit']['committer']['name']
committer_email = current_revision['commit']['committer']['email']
- committer_date = current_revision['commit']['committer']['date']
+ committer_date = current_revision['commit']['committer']['date'].replace(date_fluff, '')
subject = current_revision['commit']['subject']
# Get the list of projects that repo knows about
@@ -242,8 +255,21 @@ for change in args.change_number:
print('--> Author: %s <%s> %s' % (author_name, author_email, author_date))
print('--> Committer: %s <%s> %s' % (committer_name, committer_email, committer_date))
+ # Try fetching from GitHub first
+ if args.verbose:
+ print('Trying to fetch the change from GitHub')
+ cmd = 'cd %s && git fetch github %s' % (project_path, fetch_ref)
+ execute_cmd(cmd)
+ # Check if it worked
+ FETCH_HEAD = '%s/.git/FETCH_HEAD' % project_path
+ if os.stat(FETCH_HEAD).st_size == 0:
+ # That didn't work, fetch from Gerrit instead
+ if args.verbose:
+ print('Fetching from GitHub didn\'t work, trying to fetch the change from Gerrit')
+ cmd = 'cd %s && git fetch %s %s' % (project_path, fetch_url, fetch_ref)
+ execute_cmd(cmd)
# Perform the cherry-pick
- cmd = 'cd %s && git fetch %s %s && git cherry-pick FETCH_HEAD' % (project_path, fetch_url, fetch_ref)
+ cmd = 'cd %s && git cherry-pick FETCH_HEAD' % (project_path)
execute_cmd(cmd)
if not args.quiet:
print('')