/QtADB

Primary LanguageC++MIT LicenseMIT

QtAdb

QtAdb 是一个基于 Qt 的 Android 工具集合。

官方网站

🧑‍💻开发目的

Android 调试桥 (adb) 是一种功能多样的命令行工具,可让开发者与设备之间进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。

Android 系统的可玩性在 adb 的加成下变得更加丰富,由此涌现出众多的命令用法。非开发者的Android 爱好者经常根据需求运行 adb 命令以提升使用体验。

但由于 adb 涉及到环境配置、终端执行等操作,对于不会使用的人可能造成困扰;一些命令行参数的记忆对于并不熟悉的人来说同样令人头疼。所以可供一键式操作,并且已内置环境的图形窗口有一定需求。

🔩特性

  • QtAdb 已内置 adb 环境,并可在运行时自行配置,使用者无需关心环境变量的配置情况。封装命令的具体内容将在后文说明。

  • 支持 Windows 11 中的 Android 子系统(WSA)。*仅可在 WSA 运行时连接 WSA。

  • 支持 Android R (11) 及以上版本的无线调试

  • 提供命令模板,使用者可直接复制命令并自行执行。

  • 支持多种状态显示及使用:开机、Recovery及 adb sideload.

注意:QtAdb 暂不支持比 Windows10 更早的 Windows 系统

🛠️功能

ℹ️设备信息

  • 获取设备型号、屏幕分辨率、屏幕密度(DPI)、Android Id、安卓版本以及处理器型号的信息
  • 修改 DPI、修改屏幕分辨率
  • 实时监控CPU使用率、内存使用率。

✔️激活

🎮设备控制

  • 电源控制:

    • 关机
    • 重启到系统
    • 重启到 Recovery
    • 重启到 Fastboot
  • 按键模拟:

    • 系统导航:返回键、主页键、菜单键、任务键
    • 实体按键:电源键、音量 + 、音量 - 、静音、拍照(处于相机应用中时)、唤起助理应用
    • 媒体控制:播放音乐、停止播放、上一曲、继续、暂停、下一曲
    • 其他指令:亮度 - 、亮度 + 、系统休眠、点亮屏幕、挂断电话
    • 拉起系统应用:设置、通讯录、拨号、浏览器、音乐、日历、计算器
  • 命令行:

    • 运行自定义的 adb 命令
    • 直接在 adb 环境中打开命令行窗口

📦软件包管理器:

  • 安装应用

  • 列出已知的权限

    • 可单独打开大窗口查看列表
    • 可按以下要求输出:
      • 按权限组进行整理
      • 输出所有信息
      • 输出简短摘要
      • 仅列出危险权限
      • 仅列出用户将看到的权限
  • 列出已知的权限组

  • 列出软件包

    • 卸载、停用、启用、清除数据
    • 获取软件包包名、安装者、关联文件等信息
  • 列出系统的所有功能

  • 列出当前设备支持的所有库

  • 用户

    • 列出当前设备中的所有用户
    • 删除选中用户

🔧Recovery 功能:

  • 侧载
    • 当设备处于 adb sideload 模式时,可使用侧载刷入zip刷机包
    • 这是危险功能,即使正确地使用也可能导致设备故障,请确保您有足够的排障能力后使用
    • 使用侧载功能时请不要关闭程序

🔮其它功能

  • 账户

    • 查看设备中各个用户已登录的账户
  • 去除叹号

    • 修改验证服务器,提供了多个预设选项(MIUI、EMUI等国内验证服务器)
  • 修改过渡动画

    • 修改动画时长
    • 修改过渡动画
    • 修改窗口动画
  • 状态栏与导航栏

    • 隐藏状态栏图标:静音/震动、定位、麦克风、录屏状态、WIFI、热点、飞行模式、耳机、闹钟、蓝牙、NFC
    • 重置状态栏图标
    • 全局隐藏状态栏、导航栏
  • 修改系统震感强度

🍘饼

Q:为什么刷机相关命令这么少?为什么没有修改系统文件衍生的玩法?

A:危险性较高,防小白。不过也不是不能加。

  • 跨平台
  • 文件管理
  • 集成scrcpy
  • 命令
    • 更改屏幕边距
    • 获取 Google 服务框架ID
  • 控制台
    • 优化 err 处理

💕Q&A

  • Q:还有其它名为 QtAdb 的项目/软件,此项目与它们是什么关系?

    A:我写这篇文档时才发现已经有好多个 QtAdb了(悲,这也没有办法,只能将错就错了😔。此前的几个项目有比本项目功能更丰富的,也有功能专一且强大的,但他们都已停更许久。在未来可能会参考这几个项目,不过目前并没有这样做(看不懂而且没时间)。

  • Q:不是有环境吗?怎么还是跑不了🥺

    A:您下载的是压缩包,请全部解压后再使用;请确保您的设备已打开USB调试并正确连接。

  • Q:我已经解压,仍然无法使用

    A:部分 ADB 工具,如秋之盒、搞机工具箱等在退出后不会杀死其拉起的 ADB 服务端;QtADB异常退出后也可能来不及杀死 adb 进程,请进入任务管理器中结束 “adb.exe” 进程后重试,若仍无法使用请尝试重新启动系统。

  • Q:怎么这么多类似乱码的报错😱

    A:我已经尽可能让它减少报错了,若弹出的“未知错误”对话框中的报错无法构成一个完整的句子,那么您可以根据它的内容视情况忽略它,并查看另一条报错。

    Tips:使用 Qt 所封装的进程类在获取 adb 输出的错误时,有时会将一条错误随机分成多段错误处理,而每一段错误将被报告为一条单独的错误。所以程序用于识别报错类型所需的关键字信息可能只在其中一条错误中,甚至可能被拦腰斩断,分散在两条报错中,此时 QtAdb 将无法分辨这些不包含关键字的信息,从而弹出“未知错误”对话框,并显示这些错误。这个问题目前没有找到彻底的解决办法。

  • Q:应用无法安装🙁

    A:请排查您是否为:降级安装、在不兼容的安卓版本上安装等等,请根据报错内容结合搜索引擎自行判断。

  • Q:侧载未响应

    A:侧载与应用安装类似,功能暂未完全实现,为不稳定功能。若侧载压缩包过大将会导致主界面阻塞时间过长,请不要进行操作,具体以 recovery 输出为准。请具备一定容错能力后再使用。

  • Q:按键模拟不生效🤨

    A:此功能因设备而异,部分ROM中并没有提供相关功能(比如播放音乐、拉起计算器等)。若弹出错误提示,可以进行反馈。

  • Q:连接无线调试卡死

    A:需要分情况讨论:若更换另一部手机可以连接,则可能是手机端 ROM 出现问题,请重启并尝试再次连接;若设备没有问题则可能是路由器出现问题,请更换其它WI-FI网络再尝试。

  • Q:无法连接WSA

    A:请确保 WSA 已安装并正在运行:仅仅安装完成是不够的,还需要在开始菜单中打开 “适用于 Android^TM^ 的 Windows 子系统设置” 应用,选择 “开发人员” ,并打开 “开发人员模式”。在此之后,你可能还需要选择“系统” ,打开 “文件” 以确保 WSA 正在运行中。

  • Q:闪退

    A:请提交反馈,并描述发生闪退之前您进行的操作,谢谢!

  • Q:我可以催更吗🥺

    A:你可以请我喝可乐吗🥺当然可以催更,它现在仍处于开发中,并没有正式发布,仍需要长时间的调试。

🙋反馈

若您对代码有优化建议,或是有新的命令用法想要添加,请直接提交 issue

若您有想要添加的可激活的应用,请告诉我它的命令,最好带上该应用的文档/官网,提交 issue 或联系我。

十分感谢你的建议!

🧬资源

图标

字体

构建

  • 建议使用 Qt 6.2.4 版本,Kit 请选择 MinGW 。
  • 运行环境将在 mainwindow 类构造时被更改至 ./Resources/platform-tools 请确保 debug 或 release 时,Resources文件夹位于正确的位置。

🤙联系