summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/Makefile20
-rw-r--r--core/build_id.mk2
-rw-r--r--core/generate_extra_images.mk4
-rw-r--r--core/tasks/dt_image.mk3
-rw-r--r--core/version_defaults.mk2
-rw-r--r--tools/releasetools/edify_generator.py7
-rwxr-xr-xtools/releasetools/ota_from_target_files.py13
-rwxr-xr-xtools/roomservice.py2
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, "")