折腾:
【已解决】用jadx把安卓dex文件转换提取出jar包和java源代码
后,因为之前其他类似工具,比如JD-GUI,Luyten等,都是可以直接点击Launchpad
中的图标启动的:
此处希望也能把jadx弄成这种。
能想到的就是:
把jadx(和jadx-gui)放到Mac的应用程序中去
-》这样Launchpad中就自动出现图标,可供点击了。
去尝试把jadx和jadx-gui两个命令行工具,放到Mac中的Applications应用程序中
➜ bin ll total 48 -rwxr-xr-x@ 1 crifan staff 5.5K 2 12 09:26 jadx -rwxr-xr-x@ 1 crifan staff 6.0K 2 12 09:26 jadx-gui -rwxr-xr-x@ 1 crifan staff 3.1K 2 12 09:26 jadx-gui.bat -rwxr-xr-x@ 1 crifan staff 2.5K 2 12 09:26 jadx.bat ➜ bin pwd /Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin ➜ bin ll total 48 -rwxr-xr-x@ 1 crifan staff 5.5K 2 12 09:26 jadx -rwxr-xr-x@ 1 crifan staff 6.0K 2 12 09:26 jadx-gui -rwxr-xr-x@ 1 crifan staff 3.1K 2 12 09:26 jadx-gui.bat -rwxr-xr-x@ 1 crifan staff 2.5K 2 12 09:26 jadx.bat ➜ bin ln -s /Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/jadx /usr/local/bin/jadx ➜ bin ln -s /Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/jadx-gui /usr/local/bin/jadx-gui ➜ bin ll /usr/local/bin/jadx* lrwxr-xr-x 1 crifan admin 79B 4 3 13:41 /usr/local/bin/jadx -> /Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/jadx lrwxr-xr-x 1 crifan admin 83B 4 3 13:41 /usr/local/bin/jadx-gui -> /Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/jadx-gui
在直接把 应用程序 拖动到iTerm2
中后:
➜ /Applications pwd /Applications ➜ /Applications ls / Applications Users data home private var Library Volumes dev installer.failurerequests sbin Network bin etc net tmp System cores file opt usr
接着去拷贝:
➜ bin cp /usr/local/bin/jadx /Applications ➜ bin cp /usr/local/bin/jadx-gui /Applications
但是运行jadx-gui出错:
Last login: Wed Apr 3 13:43:13 on ttys010 /Applications/jadx-gui ; exit; ➜ ~ /Applications/jadx-gui ; exit; 错误: 找不到或无法加载主类 jadx.gui.JadxGUI [进程已完成]
所以是找不到类库
去看看jadx-gui的内容:
-》很明显是:
先去用pwd获取当前目录,然后根据当前目录下的libs,去找依赖的各种库,包括jadx-gui-0.9.0.jar等等。
-》所以这种直接把脚本放到Applications中的做法是行不通的
-》想到了,可以参考之前的procyon-decompiler:
【无法解决】用Procyon导出某个jar包中指定的包名的代码
去制参考:
➜ bin git:(master) ✗ cat procyon-decompiler #!/bin/bash exec java -jar /usr/local/Cellar/procyon-decompiler/0.5.30/libexec/procyon-decompiler-0.5.30.jar "$@"
作一个脚本,或许就可以了。
去试试:
➜ bin vi JadxGUI ➜ bin cat JadxGUI #!/bin/bash /Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/jadx-gui "$@" ➜ bin chmod +x JadxGUI ➜ bin ll total 56 -rwxr-xr-x 1 crifan staff 101B 4 3 13:55 JadxGUI -rwxr-xr-x@ 1 crifan staff 5.5K 2 12 09:26 jadx -rwxr-xr-x@ 1 crifan staff 6.0K 2 12 09:26 jadx-gui -rwxr-xr-x@ 1 crifan staff 3.1K 2 12 09:26 jadx-gui.bat -rwxr-xr-x@ 1 crifan staff 2.5K 2 12 09:26 jadx.bat ➜ bin cp /Users/crifan/dev/dev_tool/android/reverse_engineering/jadx/jadx-0.9.0/bin/JadxGUI /Applications/JadxGUI
结果是:
应用程序中是有图标了:
也可以点击启动了:
-》其中启动jadx-gui后,自动弹出打开文件的窗口,看来是因为脚本中加上了”$@”参数导致的。
也正是希望的,或者说 可以接受的效果。
-》但是LaunchPad中却还是没有出现图标。
问题转化为:
【未解决】Mac中如何把一个script脚本放到LaunchPad启动台中支持点击图标启动
然后是:
- 解决了应用程序中出现app:
- 【已解决】Mac中把一个shell script命令行脚本制作成一个app应用
- 但是没有解决LaunchPad中出现app
- 【未解决】Mac中如何把一个script脚本放到LaunchPad启动台中支持点击图标启动
转载请注明:在路上 » 【部分解决】把jadx和jadx-gui放到Mac的应用程序和LaunchPad中实现点击图标启动JadxGUI