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

feat: introduce config path argument

This commit is contained in:
Kentai Radiquum 2025-09-03 10:55:15 +05:00
parent 8269d0d5b6
commit bf59b2bbae
Signed by: Radiquum
GPG key ID: 858E8EE696525EED
5 changed files with 23 additions and 21 deletions

4
.gitignore vendored
View file

@ -7,4 +7,6 @@ decompiled
dist dist
__pycache__ __pycache__
keystore.jks keystore.jks
help help
dev_patches
dev.config.json

View file

@ -1,3 +1,4 @@
import argparse
import json import json
import logging import logging
import os import os
@ -42,19 +43,26 @@ class Config(TypedDict):
xml_ns: ConfigXmlNS xml_ns: ConfigXmlNS
parser = argparse.ArgumentParser(prog="anixart patcher")
parser.add_argument("--config", help="path to config.json file", default="config.json")
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")
args = parser.parse_args()
def load_config() -> Config: def load_config() -> Config:
config = None config = None
if not os.path.exists("config.json"): if not os.path.exists(args.config):
log.exception("file `config.json` is not found!") log.exception("file `config.json` is not found!")
exit(1) exit(1)
with open("./config.json", "r", encoding="utf-8") as file: with open(args.config, "r", encoding="utf-8") as file:
config = json.loads(file.read()) config = json.loads(file.read())
log.setLevel(config.get("log_level", "NOTSET").upper()) log.setLevel(config.get("log_level", "NOTSET").upper())
return config return config
config = load_config()
config = load_config()

18
main.py
View file

@ -2,28 +2,20 @@ from scripts.download_tools import check_and_download_all_tools
from scripts.select_apk import get_apks, select_apk from scripts.select_apk import get_apks, select_apk
from scripts.select_patches import apply_patches, get_patches, select_patches 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 scripts.utils import check_java_version, compile_apk, decompile_apk, sign_apk
from config import config, log, console from config import args, config, log, console
from time import time from time import time
import math import math
import argparse
import yaml import yaml
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(): def patch():
patches = get_patches() patches = get_patches()
patches = select_patches(patches) patches = select_patches(patches)
statuses = apply_patches(patches) statuses = apply_patches(patches)
statuses_ok = [] statuses_ok = []
statuses_err = [] statuses_err = []
for status in statuses: for status in statuses:
if status["status"]: if status["status"]:
console.print(f"{status['name']}: ✔", style="bold green") console.print(f"{status['name']}: ✔", style="bold green")
@ -35,8 +27,6 @@ def patch():
if __name__ == "__main__": if __name__ == "__main__":
args = parser.parse_args()
check_and_download_all_tools() check_and_download_all_tools()
check_java_version() check_java_version()
@ -78,7 +68,9 @@ if __name__ == "__main__":
sign_apk(f"{apk.removesuffix(".apk")}-patched.apk") sign_apk(f"{apk.removesuffix(".apk")}-patched.apk")
log.info("Finished") log.info("Finished")
log.info(f"install this apk file: `{config["folders"]["dist"]}/{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 successful patches: {", ".join(statuses_ok)}")
log.info(f"used and unsuccessful patches: {", ".join(statuses_err)}") log.info(f"used and unsuccessful patches: {", ".join(statuses_err)}")
log.info(f"time taken: {math.floor(end_time - start_time)}s") log.info(f"time taken: {math.floor(end_time - start_time)}s")

View file

@ -1,3 +1,3 @@
{ {
"new_package_name": "com.radiquum.anixart" "new_package_name": "com.swiftsoft.anixartd"
} }

View file

@ -1,5 +1,5 @@
{ {
"base_url": "https://anix-api.wah.su/", "base_url": "https://api-s.anixsekai.com/",
"values": [ "values": [
{ {
"file_path": "smali_classes2/com/swiftsoft/anixartd/network/api/ConfigApi.smali", "file_path": "smali_classes2/com/swiftsoft/anixartd/network/api/ConfigApi.smali",