Skip to content

Commit

Permalink
BETA: fixing input apk file part 2
Browse files Browse the repository at this point in the history
  • Loading branch information
Veha0001 committed Jan 26, 2025
1 parent 284d6e0 commit 8788088
Showing 1 changed file with 34 additions and 21 deletions.
55 changes: 34 additions & 21 deletions autogen.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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:
Expand Down

0 comments on commit 8788088

Please sign in to comment.