反编译

83 阅读1分钟

使用命令反编译apk

# 反编译 APK
apktool d xxx.apk -o outdir
# 或者用 jadx
jadx-gui xxx.apk

如果apktool未安装

macos

brew install apktool

Arch Linux

sudo pacman -S apktool

手动安装

1、下载 apktool.jar 和 wrapper 脚本

wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.3.jar -O apktool.jar

2、移动并赋权

chmod +x apktool
sudo mv apktool /usr/local/bin/
sudo mv apktool.jar /usr/local/bin/

反编译后重新打包

apktool b outdir -o new_app.apk

重新签名

# 安装 apksigner 工具(如果没有)
sudo apt install apksigner     # Ubuntu
# 或者用 Android SDK 自带的 apksigner

# 签名 APK
apksigner sign --ks ~/.android/debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android --key-pass pass:android new_app.apk

安装apksigner

1、下载 Android Command Line Tools

mkdir -p ~/android-sdk/cmdline-tools
cd ~/android-sdk

# 下载最新命令行工具(适用于 Linux,如果你是 macOS,请告诉我)
wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip

# 解压
unzip commandlinetools-linux-*.zip
mkdir cmdline-tools/latest
mv cmdline-tools/* cmdline-tools/latest/

如果你用的是 macOS,请替换下载链接为:

https://dl.google.com/android/repository/commandlinetools-mac-10406996_latest.zip

然后执行以下命令使其生效:

source ~/.zshrc   # 或 source ~/.bashrc

2、配置环境变量

将以下内容添加到 ~/.zshrc~/.bashrc

export ANDROID_HOME=$HOME/android-sdk
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH

3、使用 sdkmanager 安装 build-tools

sdkmanager --licenses     # 接受所有协议(输入 `y` 一直回车)
sdkmanager "build-tools;34.0.0"

执行sdkmanager命令显示jdk版本过低

升级jdk

升级到 Java 17 或更高(建议使用 Java 17,因为 Android SDK 工具通常支持 Java 17)

macOS(用 Homebrew):

brew update
brew install openjdk@17
Ubuntu / Debian:
sudo apt update
sudo apt install openjdk-17-jdk

升级安装完成后,执行:

sudo ln -sfn $(brew --prefix)/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
export PATH="/usr/local/opt/openjdk@17/bin:$PATH"
切换默认 Java 版本(如果你有多个 Java)

macOS 用:

export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH

安装

adb install -r new_app.apk