1
0
Fork 0
mirror of https://github.com/Radiquum/anixart-patcher.git synced 2025-09-05 10:45:32 +05:00

feat: read apk name when --sign arg is provided from apktool.yml

This commit is contained in:
Kentai Radiquum 2025-09-03 10:41:55 +05:00
parent 6981ae7d84
commit 8269d0d5b6
Signed by: Radiquum
GPG key ID: 858E8EE696525EED
2 changed files with 28 additions and 23 deletions

48
main.py
View file

@ -2,18 +2,19 @@ from scripts.download_tools import check_and_download_all_tools
from scripts.select_apk import get_apks, select_apk
from scripts.select_patches import apply_patches, get_patches, select_patches
from scripts.utils import check_java_version, compile_apk, decompile_apk, sign_apk
from config import log, console
from config import config, log, console
from time import time
import math
import argparse
parser = argparse.ArgumentParser(prog='anixart patcher')
parser.add_argument("--no-decompile", action='store_true')
parser.add_argument("--no-compile", action='store_true')
import yaml
parser.add_argument("--patch", action='store_true')
parser.add_argument("--sign", action='store_true')
parser = argparse.ArgumentParser(prog="anixart patcher")
parser.add_argument("--no-decompile", action="store_true")
parser.add_argument("--no-compile", action="store_true")
parser.add_argument("--patch", action="store_true")
parser.add_argument("--sign", action="store_true")
def patch():
@ -30,51 +31,54 @@ def patch():
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:
if not args.patch and not args.sign:
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')
log.info("cancelled")
exit(0)
else:
elif args.patch:
patch()
exit(0)
if args.sign:
sign_apk(f"{apk.removesuffix('.apk')}-patched.apk")
elif args.sign:
apkFileName = None
with open(
f"{config["folders"]["decompiled"]}/apktool.yml", "r", encoding="utf-8"
) as f:
data = yaml.load(f.read(), Loader=yaml.Loader)
apkFileName = data.get("apkFileName", None)
if not apkFileName:
log.fatal(
f"can't find apk file name in {config['folders']['decompiled']}/apktool.yml"
)
exit(1)
sign_apk(f"{apkFileName.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")
end_time = time()
if not args.no_compile:
sign_apk(f"{apk.removesuffix(".apk")}-patched.apk")
log.info("Finished")
log.info(f"install this apk file: {apk.removesuffix(".apk")}-patched-aligned-signed.apk")
log.info(f"install this apk file: `{config["folders"]["dist"]}/{apk.removesuffix(".apk")}-patched-aligned-signed.apk`")
log.info(f"used and successful patches: {", ".join(statuses_ok)}")
log.info(f"used and unsuccessful patches: {", ".join(statuses_err)}")
log.info(f"time taken: {math.floor(end_time - start_time)}s")