diff options
-rw-r--r-- | core/Makefile | 10 | ||||
-rw-r--r-- | core/base_rules.mk | 2 | ||||
-rw-r--r-- | core/combo/HOST_darwin-x86.mk | 7 | ||||
-rw-r--r-- | core/tasks/kernel.mk | 14 | ||||
-rw-r--r-- | envsetup.sh | 7 | ||||
-rw-r--r-- | target/board/generic/BoardConfig.mk | 8 | ||||
-rw-r--r-- | target/board/generic/recovery.fstab | 6 | ||||
-rw-r--r-- | target/board/generic_mips/BoardConfig.mk | 8 | ||||
-rw-r--r-- | target/board/generic_x86/BoardConfig.mk | 8 | ||||
-rw-r--r-- | target/product/security/cm.x509.pem | 23 | ||||
-rwxr-xr-x | tools/releasetools/build_image.py | 2 | ||||
-rwxr-xr-x | tools/repopick.py | 38 |
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('') |