From 927d262dfd2769f5f5800f37cbe165ba28965dab Mon Sep 17 00:00:00 2001 From: Sam Mortimer Date: Tue, 17 Jan 2017 12:30:20 -0800 Subject: build sign_target_files_apks.py: clean tmp on exit Currently, this script creates and leaves nearly 2GB in tmp per run. Clean up on exit. Change-Id: I4247dd2508e9d27de57c611c18e70800d7a47f33 (cherry picked from commit 462425468899f264155a3413aab75a099d1bbd25) --- tools/releasetools/sign_target_files_apks.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tools') diff --git a/tools/releasetools/sign_target_files_apks.py b/tools/releasetools/sign_target_files_apks.py index 54460e6..e3bcbbc 100755 --- a/tools/releasetools/sign_target_files_apks.py +++ b/tools/releasetools/sign_target_files_apks.py @@ -531,3 +531,5 @@ if __name__ == '__main__': print(" ERROR: %s" % e) print() sys.exit(1) + finally: + common.Cleanup() -- cgit v1.1 From 77e2f324e773d9ce71decb1a551e059438bcdddf Mon Sep 17 00:00:00 2001 From: Gabriele M Date: Sun, 22 Jan 2017 22:50:11 +0100 Subject: Update su binary added with addonsu zip Generate zips that include the su binary out of the system image when WITH_SU is not true. This allows to update the binary that was installed with the addonsu zip. Note: this requires backuptool to work and user builds are excluded. Change-Id: Idc905e3397816b7d3701c43bbb809878f0d22b9b --- tools/releasetools/edify_generator.py | 7 +++++++ tools/releasetools/ota_from_target_files.py | 13 +++++++++++++ 2 files changed, 20 insertions(+) (limited to 'tools') diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py index 8025235..ca06c8a 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 66db227..682d1a9 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") -- cgit v1.1 From 0384560c9220a5c21f37b1f509504dbd5362324d Mon Sep 17 00:00:00 2001 From: Michael Gernoth Date: Sun, 26 Mar 2017 14:33:05 +0200 Subject: roomservice: handle devices with underscores This change correctly handles devices with underscores in their name even if there is a device with the same name after the last underscore (spyder, umts_spyder) by not allowing any underscores in the manufacturers name. Without this change, spyder gets resolved to: device/motorola_umts/spyder device/motorola/spyder Only the last one is valid. With this change, both spyder and umts_spyder get resolved correctly. Change-Id: I0c95ff126d827a2d6b58875dfcb9327e999f4913 --- tools/roomservice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tools') 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, "") -- cgit v1.1