From 8788088624bf1696b2558fc09f365fa10ebada8a Mon Sep 17 00:00:00 2001 From: Veha0001 Date: Sun, 26 Jan 2025 19:00:23 +0700 Subject: [PATCH] BETA: fixing input apk file part 2 --- autogen.py | 55 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/autogen.py b/autogen.py index 3c9d280..4d5f16f 100755 --- a/autogen.py +++ b/autogen.py @@ -641,19 +641,24 @@ def main(): if apk_dir.endswith(".apk"): dex_folder_exists = False + decoded_dir = apk_dir + "_decoded" else: apk_dir = verify_apk_directory(apk_dir) dex_folder_exists = check_for_dex_folder(apk_dir) + decoded_dir = apk_dir - android_manifest = os.path.join(apk_dir, "AndroidManifest.xml") - resources_folder = os.path.join(apk_dir, "resources") - smali_folder = os.path.join(apk_dir, "smali") - value_strings = os.path.join(resources_folder, "package_1/res/values/strings.xml") + if not apk_dir.endswith(".apk"): + android_manifest = os.path.join(apk_dir, "AndroidManifest.xml") + resources_folder = os.path.join(apk_dir, "resources") + smali_folder = os.path.join(apk_dir, "smali") + value_strings = os.path.join(resources_folder, "package_1/res/values/strings.xml") - package_orig_name, package_orig_path = extract_package_info(android_manifest) + package_orig_name, package_orig_path = extract_package_info(android_manifest) + else: + package_orig_name, package_orig_path = None, None - for item in config.get("DEMODAPK", []): - if item.get("package") == package_orig_name: + for item in config.get("DemodAPK", []): + if item.get("package") == package_orig_name or apk_dir.endswith(".apk"): update_config = item.get("update", {}) log_level = item.get("log", 0) manifest_edit_level = update_config.get("level", 0) @@ -669,32 +674,40 @@ def main(): # Decode APK if input is an APK file and command is present if "command" in item and apk_dir.endswith(".apk"): - decoded_dir = apk_dir + "_decoded" decode_apk(editor_jar, apk_dir, decoded_dir, dex=dex_folder_exists) apk_dir = decoded_dir + # Update paths after decoding + android_manifest = os.path.join(apk_dir, "AndroidManifest.xml") + resources_folder = os.path.join(apk_dir, "resources") + smali_folder = os.path.join(apk_dir, "smali") + value_strings = os.path.join(resources_folder, "package_1/res/values/strings.xml") + + package_orig_name, package_orig_path = extract_package_info(android_manifest) + # Run begin commands if present if "command" in item: begin_commands = item.get("command", {}).get("begin", []) run_commands(begin_commands) - if "facebook" in update_config: - update_facebook_app_values(value_strings, facebook_appid, fb_client_token, fb_login_protocol_scheme) + if not apk_dir.endswith(".apk"): + if "facebook" in update_config: + update_facebook_app_values(value_strings, facebook_appid, fb_client_token, fb_login_protocol_scheme) - replace_files_from_loaded(update_config, apk_dir) + replace_files_from_loaded(update_config, apk_dir) - if not args.no_rename_package and "package" in update_config: - rename_package_in_manifest(android_manifest, package_orig_name, new_package_name, manifest_edit_level) - rename_package_in_resources(resources_folder, package_orig_name, new_package_name) + if not args.no_rename_package and "package" in update_config: + rename_package_in_manifest(android_manifest, package_orig_name, new_package_name, manifest_edit_level) + rename_package_in_resources(resources_folder, package_orig_name, new_package_name) - if not dex_folder_exists and args.move_rename_smali: - update_smali_path_package(smali_folder, package_orig_path, new_package_path) - update_smali_directory(smali_folder, package_orig_path, new_package_path) - if not dex_folder_exists: - update_application_id_in_smali(smali_folder, package_orig_name, new_package_name) + if not dex_folder_exists and args.move_rename_smali: + update_smali_path_package(smali_folder, package_orig_path, new_package_path) + update_smali_directory(smali_folder, package_orig_path, new_package_path) + if not dex_folder_exists: + update_application_id_in_smali(smali_folder, package_orig_name, new_package_name) - if "metadata_to_remove" in update_config: - remove_metadata_from_manifest(android_manifest, update_config) + if "metadata_to_remove" in update_config: + remove_metadata_from_manifest(android_manifest, update_config) # Run end commands if present if "command" in item: