apktool反编译

wget https://github.com/iBotPeaches/Apktool/releases/download/v3.0.1/apktool_3.0.1.jar apktool.jar

# 反编译
java -jar apktool.jar d ./gaode.apk -o app_workspace

# 回编译
java -jar apktool.jar if framework-res.apk
# I: Framework installed to: /home/jcleng/.var/app/com.visualstudio.code/data/apktool/framework/1.apk
java -jar apktool.jar b app_workspace -o app_unsigned.apk -f
# 重新签名
keytool -genkey -v \
  -keystore gaode.keystore \
  -storepass gaodepassword -alias gaodekey -keypass gaodepassword \
  -storetype PKCS12 \
  -keyalg RSA -keysize 2048 -validity 10000 \
  -dname "CN=Android Debug,O=Android,C=US"

# 使用 debug.keystore 签名
jarsigner -verbose \
    -sigalg SHA256withRSA \
    -digestalg SHA-256 \
    -keystore gaode.keystore \
    -storepass gaodepassword \
    -keypass gaodepassword \
    -signedjar app_signed.apk \
    app_unsigned.apk \
    gaodekey
  • 修改高德dpi

# 搜索app_workspace内容
iget v0, v0, Landroid/util/DisplayMetrics;->densityDpi:I
# 修改下面一行的
const v0,0x8c

使用 dex2jar 将 apk 转换成 jar

d2j-dex2jar -f <apk文件>

使用图形化查看源码

java -jar jd-gui-版本.jar