diff options
| author | Kacper Sagalara <mail@kasesag.me> | 2026-06-19 19:08:11 +0200 |
|---|---|---|
| committer | Kacper Sagalara <mail@kasesag.me> | 2026-06-19 19:08:11 +0200 |
| commit | 7821c02171d77229797e3a57edd0502e942373cc (patch) | |
| tree | 2856fdb7f36144c6e539cfedacd475bf10458ce1 /utils/scripts/modify_apk.sh | |
| parent | 0339c6b9e1cafffc2e37c47df4277157fc678041 (diff) | |
Diffstat (limited to 'utils/scripts/modify_apk.sh')
| -rwxr-xr-x | utils/scripts/modify_apk.sh | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/utils/scripts/modify_apk.sh b/utils/scripts/modify_apk.sh new file mode 100755 index 0000000..e682598 --- /dev/null +++ b/utils/scripts/modify_apk.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +TMP_DIR="/tmp/driedlamu/modify_apk" + +decompile() { + local file="$1" + local file_name="$(basename "$file" .apk)" + local working_dir="$TMP_DIR/$file_name" + + mkdir -p "$working_dir" + + if ! java -Xmx2048m -jar "./utils/jar/apktool.jar" d -q -f "$file" -o "$working_dir/decompile"; then + echo "Error: Failed to decompile $file with apktool" + exit 1 + fi +} + +repack() { + local file="$1" + local file_name="$(basename "$file" .apk)" + local output_location="$2" + local working_dir="$TMP_DIR/$file_name" + local modified_apk="$working_dir/${file_name}_unsigned.apk" + + if ! java -Xmx2048m -jar "./utils/jar/apktool.jar" b -q -f "$working_dir/decompile" -o "$working_dir/${file_name}_unsigned.apk"; then + echo "Error: Failed to recompile $file with apktool" + exit 1 + fi + + apksigcopier copy "$file" "$modified_apk" "${output_location}/${file_name}.apk" +} + +mkdir -p $TMP_DIR + +apk_cli() { + case $1 in + unpack) + decompile "$2" + ;; + repack) + repack "$2" "$3" + ;; + *) + echo "Please specify a valid type of task you wish to do (unpack, repack)." + exit 1 + ;; + esac +} + +apk_cli "$1" "$2" "$3" |
