Tool sử dụng
- Apktool
https://github.com/iBotPeaches/Apktool
- Jadx
https://github.com/skylot/jadx
- Adb
https://developer.android.com/tools/adb
Danh sách package trên thiết bị
adb shell pm list packages | grep "bird"
Pull tất cả apk và decode 1 app
# pull.sh
#!/bin/sh
# package name, e.g. com.example.helloandroid expected as first argument
# ./pull.sh com.example.helloandroid
# apktool expected on $PATH env var
APK_PATH=data/$1/apks
DECOMPILE_PATH=data/$1/decompile
JADX_DECOMPILE_PATH=data/$1/jadx-decompile
mkdir -p $APK_PATH
adb shell pm path $1 | awk -F: '{print $2}' | xargs -L1 adb pull
ALL_APKS=$(ls -1 *.apk)
for apk in ${ALL_APKS}; do
mv ${apk} $APK_PATH
done
ALL_APKS=$(ls -1 $APK_PATH/*.apk)
echo "Output APKs: ${ALL_APKS}"
# SPLIT_CONFIG_APKS=$(ls -1 split_config*.apk | sed -e 's/\.apk//g')
for apk in ${ALL_APKS}; do
echo "Decompiling ${apk}";
apktool d -f ${apk} -o $DECOMPILE_PATH/`basename ${apk%.*}`;
jadx -d ${JADX_DECOMPILE_PATH} ${apk}
done
- Bạn chỉ cần chạy lệnh sau để decode lấy mã smali và mã .java:
pull.sh <package_name>