diff options
-rw-r--r-- | core/Makefile | 20 | ||||
-rw-r--r-- | core/build_id.mk | 2 | ||||
-rw-r--r-- | core/generate_extra_images.mk | 4 | ||||
-rw-r--r-- | core/tasks/dt_image.mk | 3 | ||||
-rw-r--r-- | core/version_defaults.mk | 2 | ||||
-rw-r--r-- | tools/releasetools/edify_generator.py | 7 | ||||
-rwxr-xr-x | tools/releasetools/ota_from_target_files.py | 13 | ||||
-rwxr-xr-x | tools/roomservice.py | 2 |
8 files changed, 43 insertions, 10 deletions
diff --git a/core/Makefile b/core/Makefile index 16eb5a1..683013f 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1657,6 +1657,15 @@ ifeq ($(BOARD_USES_UBOOT_MULTIIMAGE),true) endif +ifneq ($(CM_BUILD),) +ifneq ($(TARGET_BUILD_VARIANT),user) +ifneq ($(WITH_SU),true) +# Build su without installing it +$(BUILT_TARGET_FILES_PACKAGE): $(ALL_MODULES.su.BUILT) +endif +endif +endif + # Depending on the various images guarantees that the underlying # directories are up-to-date. include $(BUILD_SYSTEM)/tasks/oem_image.mk @@ -1848,6 +1857,17 @@ else endif $(hide) echo "ota_override_device=$(OTA_SCRIPT_OVERRIDE_DEVICE)" >> $(zip_root)/META/misc_info.txt $(hide) echo "ota_override_prop=$(OTA_SCRIPT_OVERRIDE_PROP)" >> $(zip_root)/META/misc_info.txt + +ifneq ($(CM_BUILD),) +ifneq ($(TARGET_BUILD_VARIANT),user) +ifneq ($(WITH_SU),true) + $(hide) echo "addonsu_updater=true" >> $(zip_root)/META/misc_info.txt + $(hide) mkdir $(zip_root)/EXTRA + $(hide) cp $(ALL_MODULES.su.BUILT) $(zip_root)/EXTRA +endif +endif +endif + @# Zip everything up, preserving symlinks $(hide) (cd $(zip_root) && zip -qry ../$(notdir $@) .) @# Run fs_config on all the system, vendor, boot ramdisk, diff --git a/core/build_id.mk b/core/build_id.mk index 8928324..ca6a6c6 100644 --- a/core/build_id.mk +++ b/core/build_id.mk @@ -18,4 +18,4 @@ # (like "CRB01"). It must be a single word, and is # capitalized by convention. -export BUILD_ID=MOB31K +export BUILD_ID=MOB31T diff --git a/core/generate_extra_images.mk b/core/generate_extra_images.mk index f7fb0c5..664b963 100644 --- a/core/generate_extra_images.mk +++ b/core/generate_extra_images.mk @@ -18,10 +18,8 @@ ifeq ($(TARGET_BOOTIMG_SIGNED),true) INSTALLED_SEC_BOOTIMAGE_TARGET := $(PRODUCT_OUT)/boot.img.secure INSTALLED_SEC_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img.secure -ifneq ($(BUILD_TINY_ANDROID),true) intermediates := $(call intermediates-dir-for,PACKAGING,recovery_patch) RECOVERY_FROM_BOOT_PATCH := $(intermediates)/recovery_from_boot.p -endif ifndef TARGET_SHA_TYPE TARGET_SHA_TYPE := sha256 @@ -47,10 +45,8 @@ ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SEC_BOOTIMAGE_TARGET) $(INSTALLED_SEC_RECOVERYIMAGE_TARGET): $(INSTALLED_RECOVERYIMAGE_TARGET) $(RECOVERY_FROM_BOOT_PATCH) $(hide) $(call build-sec-image,$(INSTALLED_RECOVERYIMAGE_TARGET)) -ifneq ($(BUILD_TINY_ANDROID),true) ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_SEC_RECOVERYIMAGE_TARGET) ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_SEC_RECOVERYIMAGE_TARGET) -endif # !BUILD_TINY_ANDROID endif # TARGET_BOOTIMG_SIGNED #---------------------------------------------------------------------- diff --git a/core/tasks/dt_image.mk b/core/tasks/dt_image.mk index 60d45cc..3bca467 100644 --- a/core/tasks/dt_image.mk +++ b/core/tasks/dt_image.mk @@ -4,9 +4,6 @@ ifeq ($(strip $(BOARD_CUSTOM_BOOTIMG_MK)),) ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true) ifneq ($(strip $(BOARD_KERNEL_PREBUILT_DT)),true) -ifeq ($(strip $(BUILD_TINY_ANDROID)),true) -include device/qcom/common/dtbtool/Android.mk -endif ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),) DTBTOOL_NAME := dtbToolCM diff --git a/core/version_defaults.mk b/core/version_defaults.mk index 65bbf74..ffd15d4 100644 --- a/core/version_defaults.mk +++ b/core/version_defaults.mk @@ -105,7 +105,7 @@ ifeq "" "$(PLATFORM_SECURITY_PATCH)" # It must match one of the Android Security Patch Level strings of the Public Security Bulletins. # # If there is no $PLATFORM_SECURITY_PATCH set, keep it empty. - PLATFORM_SECURITY_PATCH := 2017-01-01 + PLATFORM_SECURITY_PATCH := 2017-04-01 endif ifeq "" "$(PLATFORM_BASE_OS)" diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index e0f0a98..8ecc551 100644 --- a/tools/releasetools/edify_generator.py +++ b/tools/releasetools/edify_generator.py @@ -411,3 +411,10 @@ class EdifyGenerator(object): data = open(input_path, "rb").read() common.ZipWriteStr(output_zip, "META-INF/com/google/android/update-binary", data, perms=0o755) + + def AppenSuUpdater(self): + self.AppendExtra('if (run_program("test", "-f", "/system/addon.d/51-addonsu.sh") == "0" && run_program("test", "-f", "/system/xbin/su") == "0") then') + self.AppendExtra('package_extract_file("extra/su", "/system/xbin/su");') + self.SetPermissions("/system/xbin/su", 0, 2000, 0o755, "u:object_r:su_exec:s0", None) + self.MakeSymlinks([("/system/xbin/su", "/system/bin/su")]) + self.AppendExtra('endif;') diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py index 293bd00..21d5ed2 100755 --- a/tools/releasetools/ota_from_target_files.py +++ b/tools/releasetools/ota_from_target_files.py @@ -515,6 +515,15 @@ def CopyInstallTools(output_zip): output_zip.write(install_source, install_target) +def CopyExtra(output_zip): + install_path = os.path.join(OPTIONS.input_tmp, "EXTRA") + for root, subdirs, files in os.walk(install_path): + for f in files: + install_source = os.path.join(root, f) + install_target = os.path.join("extra", os.path.relpath(root, install_path), f) + output_zip.write(install_source, install_target) + + def WriteFullOTAPackage(input_zip, output_zip): # TODO: how to determine this? We don't know what version it will # be installed on top of. For now, we expect the API just won't @@ -620,6 +629,8 @@ else if get_stage("%(bcb_dev)s") == "3/3" then if OPTIONS.backuptool: script.Mount("/system") script.RunBackup("backup") + if OPTIONS.info_dict.get("addonsu_updater") == "true": + CopyExtra(output_zip) script.Unmount("/system") system_progress = 0.75 @@ -709,6 +720,8 @@ else if get_stage("%(bcb_dev)s") == "3/3" then if block_based: script.Mount("/system") script.RunBackup("restore") + if OPTIONS.info_dict.get("addonsu_updater") == "true": + script.AppenSuUpdater() # This must be done after backup restore if block_based: script.Unmount("/system") diff --git a/tools/roomservice.py b/tools/roomservice.py index 691456e..da8fa93 100755 --- a/tools/roomservice.py +++ b/tools/roomservice.py @@ -251,7 +251,7 @@ if depsonly: else: for repository in repositories: repo_name = repository['name'] - if repo_name.startswith("android_device_") and repo_name.endswith("_" + device): + if re.match(r"^android_device_[^_]*_" + device + "$", repo_name): print("Found repository: %s" % repository['name']) manufacturer = repo_name.replace("android_device_", "").replace("_" + device, "") |