对第三方工具 Jar 包的脚本拓展,或者对 Android SDK 工具的拓展比如 adb
(在 path/to/sdk/platform-tools
里), aapt
(在 path/to/sdk/build-tools/<version>
里面).
注:安装 build tools path/to/sdk/tools/bin/sdkmanager 'build-tools;29.0.3'
依赖 python3 和 msbase
包.
./launch-apk.py launch path/to/apk
注: 如何打出 application label (应用名)and package (包名):
./launch-apk.py label path/to/apk
./launch-apk.py package path/to/apk
python debug-sign.py <input-apk-path> <output-apk-path>
baksmali d path/to/apk -o path/to/output/dir
Version: 2.4.0, from https://github.com/JesusFreke/smali/
smali 的用法类似
apktool d path/to/apk -o path/to/output/dir
Version: 2.4.1, from https://ibotpeaches.github.io/Apktool/
pkg-classes path/to/apk path/to/txt
- 先用
debug-sign.apk
做一个可调试的版本 - (选项 1) 用 Android Studio,选 debug/profile
- Tools(工具) -> Layout Inspector(布局查看器)
- 选对应 Activity
- (选项 2) 用脚本工具:
./adb-uidump path/to/output/xml
./adb-uidump-compressed path/to/output/xml
aapt dump badging path/to/apk
application-label:
: 打出来应用名package: name
: 打出来包名
aapt dump permissions path/to/apk
: 打出来权限信息
adb shell pm list packages # find the package name from the output
adb shell pm path <package-name> # outputs <target-apk-path>
adb pull <target-apk-path> <apk-output>
adb install path/to/apk
注: 先构建 Docker 镜像:执行 make
保证 APK 的源文件 (not symbolic link) 在 apks/
文件夹里面.
./dare.py apks/example.apk <sha256sum>
输出在 output/dare/
注: 依赖上面的 "Dare" 工具. 主要要设置 ANDROID_SDK
环境变量到
Android SDK 文件夹,这样才能找到 $ANDROID_SDK/platforms/android-23/android.jar
.
path/to/ic3.py path/to/example.apk <sha256sum> <apk-package-name> path/to/dare/classes path/to/output.txt
输出在 path/to/output.txt
adb shell dumpsys activity