From 33df23c86a9c360ed82a874bf8f16e91477bf5ac Mon Sep 17 00:00:00 2001 From: Radiquum Date: Tue, 2 Sep 2025 10:19:52 +0500 Subject: [PATCH] feat: add separate util commands for patching and signing of apk --- main.py | 54 ++++++++++++++++++++++++++++++++---------------- scripts/utils.py | 6 ++++++ 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/main.py b/main.py index 566e16f..39ee836 100644 --- a/main.py +++ b/main.py @@ -12,26 +12,11 @@ parser = argparse.ArgumentParser(prog='anixart patcher') parser.add_argument("--no-decompile", action='store_true') parser.add_argument("--no-compile", action='store_true') -if __name__ == "__main__": - args = parser.parse_args() - - check_and_download_all_tools() - check_java_version() +parser.add_argument("--patch", action='store_true') +parser.add_argument("--sign", action='store_true') - apks = get_apks() - if not apks: - log.fatal(f"apks folder is empty") - exit(1) - apk = select_apk(apks) - if not apk: - log.info('cancelled') - exit(0) - - start_time = time() - - if not args.no_decompile: - decompile_apk(apk) +def patch(): patches = get_patches() patches = select_patches(patches) statuses = apply_patches(patches) @@ -45,6 +30,39 @@ if __name__ == "__main__": else: console.print(f"{status['name']}: ✘", style="bold red") statuses_err.append(status["name"]) + + return patches, statuses_ok, statuses_err + + +if __name__ == "__main__": + args = parser.parse_args() + + check_and_download_all_tools() + check_java_version() + + if not args.patch: + apks = get_apks() + if not apks: + log.fatal(f"apks folder is empty") + exit(1) + apk = select_apk(apks) + if not apk: + log.info('cancelled') + exit(0) + else: + patch() + exit(0) + + if args.sign: + sign_apk(f"{apk.removesuffix('.apk')}-patched.apk") + exit(0) + + start_time = time() + + if not args.no_decompile: + decompile_apk(apk) + + patches, statuses_ok, statuses_err = patch() if not args.no_compile: compile_apk(f"{apk.removesuffix(".apk")}-patched.apk") diff --git a/scripts/utils.py b/scripts/utils.py index 045b6ed..d72319e 100644 --- a/scripts/utils.py +++ b/scripts/utils.py @@ -79,6 +79,12 @@ def compile_apk(apk: str): def sign_apk(apk: str): log.info(f"sign and align apk: `{apk}`") + + if os.path.exists(f"{config['folders']['dist']}/{apk.removesuffix('.apk')}-aligned.apk"): + os.remove(f"{config['folders']['dist']}/{apk.removesuffix('.apk')}-aligned.apk") + if os.path.exists(f"{config['folders']['dist']}/{apk.removesuffix('.apk')}-aligned-signed.apk"): + os.remove(f"{config['folders']['dist']}/{apk.removesuffix('.apk')}-aligned-signed.apk") + command = "" try: command = (