#!/bin/bash # This script requires Google's depot_tools for Breakpad, a Minecraft PE APK and a crash .DMP file if [ "$#" -ne 2 ]; then echo "Usage: $0 " exit 1 fi APK_FILE="$1" if [ ! -f "$APK_FILE" ]; then echo "$APK_FILE does not exist" echo "Usage: $0 " exit 1 fi CRASH_FILE="$2" if [ ! -f "$CRASH_FILE" ]; then echo "$CRASH_FILE does not exist" echo "Usage: $0 " exit 1 fi rm -rf .apk mkdir .apk unzip "$APK_FILE" -d .apk SO_FILE=libminecraftpe.so SO_PATH=./.apk/lib/armeabi-v7a/"$SO_FILE" dump_syms "$SO_PATH" > ./"$SO_FILE.sym" HEX_PATH=$(head -n1 "$SO_FILE.sym" | cut -f4 -d" ") MODULE_NAME=$(head -n1 "$SO_FILE.sym" | cut -f5 -d" ") mkdir -p ./symbols/"$MODULE_NAME"/"$HEX_PATH" mv ./"$SO_FILE.sym" ./symbols/"$MODULE_NAME"/"$HEX_PATH"/ OUTPUT_FILE="$CRASH_FILE.decoded.txt" minidump_stackwalk "$CRASH_FILE" ./symbols > "$OUTPUT_FILE" echo "Wrote decoded crashdump to $OUTPUT_FILE"