33 lines
940 B
Python
33 lines
940 B
Python
#!/usr/bin/env python3
|
|
import argparse
|
|
import logging
|
|
import os
|
|
from pathlib import Path
|
|
|
|
from frigida import (
|
|
get_package_name, decompress_apk, inject_frida_gadget, rebuild_apk,
|
|
resign_apk, prepare_gadget_script
|
|
)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("apk", help="Path to the original APK file.")
|
|
parser.add_argument("arch", help="Architecture to target (e.g. arm64).")
|
|
args = parser.parse_args()
|
|
|
|
package_name = get_package_name(args.apk)
|
|
|
|
uncompressed_apk_path = os.path.splitext(os.path.basename(args.apk))[0]
|
|
|
|
decompress_apk(args.apk)
|
|
inject_frida_gadget(uncompressed_apk_path, args.arch)
|
|
rebuild_apk(uncompressed_apk_path)
|
|
|
|
rebuilt_apk_path = Path(uncompressed_apk_path) / 'dist' / os.path.basename(args.apk)
|
|
resign_apk(rebuilt_apk_path)
|
|
|
|
prepare_gadget_script(args.apk, package_name)
|