ATX 查看包名和 Main Activity 的小工具

codeskyblue · 2018年06月06日 · 最后由 cotyyang 回复于 2018年12月13日 · 3317 次阅读

前言

一直以来查看 apk 文件的包名和 main activity 都很麻烦。
以前有说用 aapt 工具的,但是还要安装 android sdk 和使用命令行操作,也不简单。
所以想着如果可以右键 APK 文件,就可以看到包名之类的信息该多好。
趁着因为工作原因要研究 Tkinter 的机会,顺手写了这么一个工具分享给大家。

依赖

  • 一台 Windows 电脑
  • Python3 的环境(PS: 对不起 Python2 的用户,已经抛弃你们了)
  • 安装好 Git

安装方法

$ pip install git+https://github.com/codeskyblue/apkutils

一切顺利的话,这样就安装好了。

安装完后先运行一下 python -m apkutils.gui 点击绑定按钮,那个按钮应该是英文的,反正点了就是。

然后随便找一个 APK 文件,右键这个安装包。选择APK Parser 就可以看到类似这样的界面了。

简单又方便。

源码地址

工具使用了 https://github.com/mikusjelly/apkutils 做 apk 的文件解析,使用 python 自带的 tkinter 做 GUI。

GUI 源码可以在这个里面看到: https://github.com/codeskyblue/apkutils

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 17 条回复 时间 点赞

Appetizer 的 APK 文件工具飘过😀

先赞为敬👍

—— 来自 TesterHome 官方 安卓客户端

点绑定按钮没任何反应,之后右键 apk 选择 APK Parser,报错:该文件没有与之关联的应用来执行该操作......

KD 回复

win 几啊

win10 64 位,python34.
刚才重启命令行,重新执行绑定命令。有如下报错信息:

<PyHKEY:0x000006C6>
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
    return self.func(*args)
  File "C:\Python34\lib\site-packages\apkutils\gui\__main__.py", line 24, in _bind_apk_right_menu
    "../../../imgs/android.ico").resolve())
  File "C:\Python34\lib\pathlib.py", line 1027, in resolve
    s = self._flavour.resolve(self)
  File "C:\Python34\lib\pathlib.py", line 182, in resolve
    return self._ext_to_normal(_getfinalpathname(s))
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'C:\\Python34\\lib\\site-packages\\apkutils\\gui\\__main__.py\\..\\..\\..\\imgs\\android.ico'
KD 回复

ico 路径写错了,已修复,多谢反馈。卸载重新安装下就好

pip uninstall apkutils
pip install git+https://github.com/codeskyblue/apkutils
codeskyblue 回复

卸载重装后,还是不行,路径应该还是不对

<PyHKEY:0x000006C6>
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
    return self.func(*args)
  File "C:\Python34\lib\site-packages\apkutils\gui\__main__.py", line 24, in _bind_apk_right_menu
    "../android.ico").resolve())
  File "C:\Python34\lib\pathlib.py", line 1027, in resolve
    s = self._flavour.resolve(self)
  File "C:\Python34\lib\pathlib.py", line 182, in resolve
    return self._ext_to_normal(_getfinalpathname(s))
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'C:\\Python34\\lib\\site-packages\\apkutils\\gui\\__main__.py\\..\\android.ico'
KD 回复

这么蛋疼,你试试 python 3.6 吧,改不动了

昨天看你在群里也发了 😁

不支持 mac,只支持 windows

codeskyblue 回复

升级了 python 最新版本 3.6.5,终于正常了

以前我是写 bat 借助 aapt 实现的

KD 回复

😀

@codeskyblue 我没看前置条件。我错了

大佬,这个工具我点了绑定后没反应。。python 是 3.6.5,应该没问题吧。
而且 uiautomator2 里面不是有个 d.current_app(),可以直接看到 package 和 activity 吗,感觉方便一点,还不用下 apk

codeskyblue 专栏文章:2018年 终总结 中提及了此贴 02月18日 10:26
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册