# QtAdb QtAdb 是一个基于 [Qt](https://www.qt.io/) 的 Android 工具集合。 > ~~QtAdb 仍处于开发中,暂未正式发布,但您仍可以下载体验版本。~~ > > QtAdb 已于 2022/8/17 发布第一个正式可用的版本 beta-v0.6 ,将进入功能添加与细节优化阶段。 ## 🧑‍💻开发目的 [Android 调试桥 (adb)](https://developer.android.google.cn/studio/command-line/adb?hl=zh-cn) 是一种功能多样的命令行工具,可让开发者与设备之间进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。 Android 系统的可玩性在 adb 的加成下变得更加丰富,由此涌现出众多的命令用法。非开发者的Android 爱好者经常根据需求运行 adb 命令以提升使用体验。 但由于 adb 涉及到环境配置、终端执行等操作,对于不会使用的人可能造成困扰;一些命令行参数的记忆对于并不熟悉的人来说同样令人头疼。所以可供一键式操作,并且已内置环境的图形窗口有一定需求。 ~~其实就是拿来练练手,不写代码憋得慌~~ ## 🔩特性 - QtAdb 已**内置 adb 环境**,并可在运行时自行配置,使用者无需关心环境变量的配置情况。封装命令的具体内容将在后文说明。 - 支持 Windows 11 中的 Android 子系统(**WSA**)。*仅可在 WSA 运行时连接 WSA。 - 支持 Android R (11) 及以上版本的**无线调试**。 - ~~不仅支持 adb 命令,还集成了一定数量的 **Fastboot** 命令,方便刷机等操作。~~*暂未实现* - 提供命令模板,使用者可直接复制命令并自行执行。 - 支持多种状态显示及使用:开机、Recovery、~~Fastboot~~及 adb sideload. *注意:QtAdb 暂不支持比 Windows10 更早的 Windows 系统,具体原因正在排查* ## 🛠️功能 ### ℹ️设备信息 - 获取设备型号、屏幕分辨率、屏幕密度(DPI)、Android Id、安卓版本以及处理器型号的信息 - 修改 DPI、修改屏幕分辨率 - 实时监控CPU使用率、内存使用率。 ### ✔️激活 - 提供主流工具应用的激活:[黑阈](https://brevent.jianyv.com/)、[冰箱](https://iceboxdoc.catchingnow.com/)、[小黑屋](https://stopapp.https.gs/)、[Shizuku](https://shizuku.rikka.app/zh-hans/)、*黑洞*、[太极](https://taichi.cool/)、[Island](https://island.oasisfeng.com/)、Scene、[看帧数+](https://www.coolapk.com/apk/com.watchfps)、[权限狗](https://www.coolapk.com/apk/com.web1n.permissiondog)、[雹](https://github.com/aistra0528/Hail)、[安装狮](https://www.coolapk.com/apk/com.modosa.apkinstaller) - 为应用授予其所需的权限:BatteryGuru(使用情况访问、修改安全系统设置、读取DUMP) - 更多应用正在添加中。 ### 🎮设备控制 - 电源控制: - 关机 - 重启到系统 - 重启到 Recovery - 重启到 Fastboot - 按键模拟: - 系统导航:返回键、主页键、菜单键、任务键 - 实体按键:电源键、音量 + 、音量 - 、静音、拍照(处于相机应用中时)、唤起助理应用 - 媒体控制:播放音乐、停止播放、上一曲、继续、暂停、下一曲 - 其他指令:亮度 - 、亮度 + 、系统休眠、点亮屏幕、挂断电话 - 拉起系统应用:设置、通讯录、拨号、浏览器、音乐、日历、计算器 - 命令行: - 运行自定义的 adb 命令 - 直接在 adb 环境中打开命令行窗口 ### 📦软件包管理器: - 安装应用 - 列出已知的权限 - 可单独打开大窗口查看列表 - 可按以下要求输出: - 按权限组进行整理 - 输出所有信息 - 输出简短摘要 - 仅列出危险权限 - 仅列出用户将看到的权限 - 列出已知的权限组 - 列出软件包 - 卸载、停用、启用、清除数据 - 获取软件包包名、安装者、关联文件等信息 - 列出系统的所有功能 - 列出当前设备支持的所有库 - 用户 - 列出当前设备中的所有用户 - 删除选中用户 ### 🔧Recovery 功能: - 侧载 - 当设备处于 adb sideload 模式时,可使用侧载刷入zip刷机包 - **这是危险功能,即使正确地使用也可能导致设备故障,请确保您有足够的排障能力后使用** - **使用侧载功能时请不要关闭程序** ### 🔮其它功能 - 账户 - 查看设备中各个用户已登录的账户 - 去除叹号 - 修改验证服务器,提供了多个预设选项(MIUI、EMUI等国内验证服务器) - 修改过渡动画 - 修改动画时长 - 修改过渡动画 - 修改窗口动画 - 状态栏与导航栏 - 隐藏状态栏图标:静音/震动、定位、麦克风、录屏状态、WIFI、热点、飞行模式、耳机、闹钟、蓝牙、NFC - 重置状态栏图标 - 全局隐藏状态栏、导航栏 ### 💣不稳定功能 - ~~*安装应用*~~ *暂未实现错误提示细节* - ~~*侧载:未实现进度条且侧载不稳定,**不建议使用该功能**,可能导致刷入失败,无法开机*~~ 已实现稳定运行 ### *🍘饼* > *由于个人学业紧迫(**已经**考不上研了),饼中的内容添加将十分缓慢,可能在过年后,甚至再多一年后才能开始全力开发,请见谅!* - ~~完整的软件包管理器~~ - 跨平台 - 完善网站 - 文件管理(~~都连上电脑了,为什么不直接用电脑的文件管理~~) - ~~设备插拔检测~~ - 集成scrcpy - ~~视觉反馈~~ - ~~页面切换加载进度条~~ - ~~页面切换动画效果~~ - ~~安装应用进度条~~ - ~~侧载进度条~~ - 命令 - ~~获取 Google 服务框架 Android ID~~ (需要 Root,暂时不涉及 Root 操作) - ~~更改屏幕分辨率~~ - 更改屏幕边距 - 控制台 - ~~唤起 adb shell 窗口~~ - ~~显示输出~~ - 优化 err 处理 - Fastboot - 可实现完整的刷机流程 - 刷写特定分区 ## 💕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:~~应用安装功能暂未完全实现,为不稳定功能。应用安装完成后没有视觉反馈,请查看您的启动器先确认它确实没有安装上,其次注意安装包大小,过大的安装包可能导致 QtAdb 主界面未响应,此时不要进行任何操作,更不要杀死 adb 进程,等待手机上出现应用图标即可。若有报错可进行反馈。~~请排查您是否为:降级安装、在不兼容的安卓版本上安装等等,错误提示暂时没有完全实现,请自行判断。降级安装等功能请期待后续版本。 ~~Tips:发出命令后QtAdb并没有监视命令的运行情况,若安装仍在进行且时间较长,可能主窗口会恢复到可以操作的状态,看上去就像什么都没有发生,侧载未响应原理与此相同。监视运行情况的功能正在开发中,请尽量不要使用此功能。(QtAdb 提供了命令模板,您可自行运行此命令)~~ - ~~**Q:侧载未响应**~~ ~~A:侧载与应用安装类似,功能暂未完全实现,为不稳定功能。若侧载压缩包过大将会导致主界面阻塞时间过长,请不要进行操作,具体以 recovery 输出为准。~~**请具备一定查错能力后再使用。** - **Q:按键模拟不生效🤨** A:此功能因设备而异,部分ROM中并没有提供相关功能(比如播放音乐、拉起计算器等)。若弹出错误提示,可以进行反馈。 - **Q:连接无线调试卡死** A:需要分情况讨论:若更换另一部手机可以连接,则可能是手机端 ROM 出现问题,请重启并尝试再次连接;若设备没有问题则可能是路由器出现问题,请更换其它WI-FI网络再尝试。 - ~~**Q:连续报了一大堆错并闪退**~~ ~~A:可能是您在拔出设备后执行了命令,重新打开并连接即可。QtAdb 仍处于开发中,这是不稳定因素之一。~~ - **Q:无法连接WSA** A:请确保 **WSA 已安装并正在运行**:仅仅安装完成是不够的,还需要在开始菜单中打开 “适用于 Android^TM^ 的 Windows 子系统设置” 应用,选择 “开发人员” ,并打开 “开发人员模式”。在此之后,你可能还需要选择“系统” ,打开 “文件” 以确保 WSA 正在运行中。 - **Q:闪退** ~~A:您可能连续点击了两次杀死 ”adb进程“ 按钮,请不要这样做;也可能是您在拔出设备后执行了命令,重新打开并连接即可。~~ A:请提交反馈,并描述发生闪退之前您进行的操作,谢谢! - **Q:我可以催更吗**🥺 A:~~你可以请我喝可乐吗🥺~~当然可以催更,它现在仍处于开发中,并没有正式发布,仍需要长时间的调试。 ## 🙋反馈 若您对代码有优化建议,或是有新的命令用法想要添加,请直接提交 issue 若您有想要添加的可激活的应用,请告诉我它的命令,最好带上该应用的文档/官网,提交 issue 或联系我。 十分感谢你的建议! ## 🧬资源 ### 图标 - 主要:[RemixIcon](https://github.com/Remix-Design/RemixIcon) - 补充:[IconPark](https://github.com/bytedance/IconPark) ### 字体 - [Misans](https://web.vip.miui.com/page/info/mio/mio/detail?postId=33935854) - *没有应用上 Misans 的地方一定是 bug,请进行反馈。* ## 🤙联系 - Github:@[LapplandSp](https://github.com/LapplandSP) - 邮箱:DXLin666@outlook.com - Telegram:@[LapplandSP](https://t.me/LapplandSP)