gjgjxweb README

The project's README from github.com/CzJam/gjgjxweb. As one markdown file: README.md.

搞机工具箱 Web - 网页版 Android 玩机工具

使用教程  在线体验

《搞机工具箱》是一款ADB图形化工具。

本项目移植于个人开发的 《搞机工具箱》PC版 。借助 Tango 实现了 WebADB,并通过 xterm.js 打通 Android 原生 Shell 交互式终端,可运行在基于Chromium内核的浏览器中,实现免下载、免安装的跨平台使用体验。

作者 @晨钟酱Official

官网: jamcz.com

功能

页面 主要功能
主页 设备与系统信息、CPU 频率、主板 ID 隐藏、重启、关机、重启至 Bootloader / Fastbootd / Recovery / EDL
软件管理 包名与前台活动读取、启用/禁用、运行、强行停止、卸载与保留数据卸载、清除数据、软件信息、恢复系统软件、卸载锁定、操作记录、Google 套件批量管理
安装与文件传输 APK 安装、拆分 APK 安装、推送文件、提取安装包
显示控制 分辨率、显示密度(DPI / dp)、按键模拟、截图
系统界面 状态栏图标隐藏、时钟与快捷设置、沉浸模式、Wi-Fi 网络检测相关设置
电池管理 电池信息、电池参数模拟与恢复、定时统计、可选功率记录、CSV 导出
无极调节 字体大小倍数、窗口/过渡/程序动画倍率、自动锁屏时间
控机脚本 脚本编辑与导入导出、命令插入、文件关联、部分 BAT 语法解释执行
ADB 终端 Android Shell 交互会话、ANSI 显示、命令历史、补全、复制、清屏与中断
软件设置 默认启动页、主题配色、界面缩放、CPU 更新间隔、文件接收路径、安装与截图选项、设置导入导出

当前界面提供 USB 有线连接。功能是否生效取决于设备的 Android 版本、ROM 和 ADB Shell 权限。进入 Fastboot 的按钮仅发送重启命令,本工具暂不提供 Fastboot 刷机功能。

快速开始

使用条件

本地运行

仓库默认为 HTML、CSS、JavaScript的前端分离版 ,同时提供AIO的 单HTML整合版。页面和第三方依赖均保存在本地,可直接本地部署或执行,无需构建或安装 npm 依赖。

方法1: 整合版

下载项目docs中的index.html。已内嵌完整依赖,使用Chromium内核浏览器直接本地运行。

方法2: 分离版

  1. 下载并解压完整项目,保留目录结构。

  2. 安装 Node.js,在包含 server.cjs 的目录打开终端。

  3. 运行:

    node server.cjs
    
  4. 使用 Chrome 或 Edge 打开 http://127.0.0.1:8124。

  5. 点击“连接设备”,在浏览器中选择手机;首次连接时,在手机上确认 USB 调试授权。

按 Ctrl+C 停止服务。服务只监听本机地址 127.0.0.1。

若默认端口被占用,可在 PowerShell 中更换端口:

$env:PORT = "8080"
node server.cjs

随后打开 http://127.0.0.1:8080。也可以使用其他能够正确提供 ES 模块的静态网页服务器。

请通过网页服务器打开分离版。 直接双击 index.html 会使用 file:// 地址,外部 ES 模块可能因浏览器的跨源限制而加载失败,导致连接按钮不可用。参见 MDN:JavaScript 模块。

部署到网站

将本目录中的完整文件上传到支持 HTTPS 的静态托管服务或 Web 服务器,以 index.html 为入口即可。第三方依赖已包含在 js/vendor/ 中,运行时无需额外从 CDN 下载依赖,也不需要部署 ADB 后端。

WebUSB 的授权和使用条件可参考 Chrome WebUSB 文档。

目录结构

.
├── index.html                 # 页面结构与模块入口
├── README.md                  # 项目说明
├── LICENSE                    # 项目 GPLv3 许可证全文
├── server.cjs                 # 本地静态服务器(Node.js 标准库)
├── LICENSE-Tango.txt          # Tango 相关组件许可
├── LICENSE-xterm.txt          # xterm.js 相关组件许可
├── assets/
│   └── favicon.svg            # 页面图标
├── docs/
│   └── index.html             # 完整本地运行文件
├── css/
│   ├── styles.css             # 工具箱样式
│   └── xterm.css              # 终端样式
└── js/
    ├── app.js                 # 页面初始化、交互、连接状态与设置
    ├── core.js                # 命令执行与各功能逻辑
    ├── transport.js           # Tango / WebUSB 连接与传输
    ├── terminal.js            # 交互式终端会话
    ├── batch.js               # BAT 语法子集解释器
    └── vendor/                # 本地第三方依赖

终端与脚本

ADB 终端

终端连接的是手机上的 Android Shell,可直接输入 Shell 命令:

getprop ro.product.model
wm size
settings get system font_scale

同一连接中的终端会话保留当前目录和环境变量;切换页面不会重新创建会话。历史记录和补全由设备上的 Shell 提供,Ctrl+C 可中断正在运行的命令。断开设备或重新启动终端会结束当前会话。

BAT 脚本

控机脚本通过 JavaScript 解释部分 BAT 语法,将其中的 ADB 操作转换为浏览器端调用,不会启动 Windows 的 cmd.exe 或执行电脑上的 EXE。

例如,可以导入并执行以下脚本:

@echo off
echo 读取设备型号
adb shell getprop ro.product.model
timeout /t 1
adb shell wm size

支持的语法包括 echo、rem、set、set /a、set /p、变量替换、标签与 goto、部分 if 条件、if errorlevel、多行括号形式的 for /l、timeout、choice /t、pause 和 exit /b。具体支持范围以解释器实现为准。

涉及 adb push、adb install 等本地文件操作时,需要先在页面中关联对应文件。浏览器无法仅凭脚本中的 Windows 路径读取电脑文件。

这套解释器兼容的是 BAT 语法子集。依赖外部程序、PowerShell、for /f 或复杂 CMD 语法的脚本需要调整;遇到不支持的命令时会报告错误。

数据保存与文件下载

设备命令通过浏览器与手机之间的 USB 连接执行,不经过本项目的远程 ADB 服务。文件与目录访问需要用户通过浏览器选择或授权。

常见问题

问题 排查方法
连接按钮是灰色的 使用 Chrome / Edge,通过本地服务器或 HTTPS 打开完整目录;检查开发者工具中的模块加载错误、404 和 MIME 类型错误。
提示当前 ADB 接口被占用 在任务管理器中结束占用接口的 adb.exe,关闭其他 ADB 工具及已连接设备的 WebADB 页面,再重新连接。
浏览器找不到设备 检查 USB 调试、数据线与 USB 接口,以及 Windows 下的 ADB 驱动;确认数据线支持数据传输。
手机没有授权弹框 解锁手机并检查 USB 调试;已有有效授权时可能不会再次弹框。仍无法连接时,可在手机开发者选项撤销 USB 调试授权后重试。
资源被屏蔽为 mixed-content HTTPS 页面引用了 HTTP 资源,需将相关资源及其依赖改为 HTTPS。
提示 application/octet-stream 或 MIME 错误 检查静态资源服务器的响应头,按扩展名设置正确的 JavaScript / CSS 类型。
命令返回权限不足、设置不生效 Android 版本、厂商 ROM 和系统策略可能限制 ADB Shell 权限;部分设备还需开启厂商提供的 USB 调试安全选项。
CPU 频率、功率或主板 ID 无法读取 部分设备不开放对应系统节点。功率记录依赖设备提供的电流、电压等数据,不等同于外接充电功率计测量值。
关闭或刷新页面后连接断开 USB 会话依附于当前页面,需要重新连接;请提前下载需要保留的数据。

开发与反馈

本分离版直接使用原生 JavaScript ES 模块。修改后启动 server.cjs 并刷新页面即可查看效果,无需执行依赖安装或打包命令。

欢迎通过仓库的 Issues 反馈问题或提交 Pull Request。反馈时请提供工具版本、浏览器版本、电脑系统、设备型号、Android / ROM 版本、复现步骤和相关错误信息。提交截图或命令输出前,请隐藏设备序列号、主板 ID 等个人设备信息。

涉及设备行为的修改,请说明实际测试设备及结果;未经实机验证的行为请明确注明。

第三方项目

感谢以下开源项目:

项目 使用组件与版本 许可
Tango / ya-webadb @yume-chan/adb 2.6.4、adb-daemon-webusb 2.3.2、adb-credential-web 2.1.0、stream-extra 2.6.1、struct 2.3.2、event 2.0.0、async 4.1.3、no-data-view 2.0.0 MIT
xterm.js @xterm/xterm 5.5.0、@xterm/addon-fit 0.10.0 MIT

项目许可

本项目的原创代码采用 GNU General Public License v3.0(GPL-3.0-only),许可证全文见 LICENSE。

Copyright (C) 2026 晨钟酱Official。

第三方组件保留各自的版权与 MIT 许可,详见 LICENSE-Tango.txt 和 LICENSE-xterm.txt。分发时请保留这些声明。

本软件按许可证所述提供,不附带任何担保。

使用说明

本工具为全安卓通用软件。使用本工具则代表您有一定玩机知识储备。若盲目操作导致无法开机或丢失数据则后果自负,作者不承担任何责任。

gjgjxweb (CzJam/gjgjxweb)

battery
Searching Database…

What is this?A web port of the 'Jam Android Toolbox' (搞机工具箱), a graphical ADB tool for managing Android phones. It runs in Chrome or Edge over WebUSB with nothing to install.
Is it a website or a program I install?It's a web app: a static page opened in a Chromium browser that talks to the phone over USB through WebUSB, so there is nothing to install.
How do I get it running?Simplest: download docs/index.html (the all-in-one version with dependencies embedded) and open it in Chrome or Edge. For the split version, keep the folder structure and serve it from localhost or HTTPS. server.cjs is an optional Node.js helper, and no npm install or build is needed.
What do I need before connecting?A Chromium browser (Chrome or Edge), an Android phone with developer options and USB debugging on, a data-capable USB cable, and approval of the USB debugging prompt on the phone the first time. On Windows the ADB USB interface must also be recognised.
What's the catch?Only wired USB for now. Results depend on the Android version, ROM and ADB shell permissions, and some devices don't expose CPU or board ID data. The Fastboot button only sends a reboot, with no flashing. Refreshing the page drops the USB session.
How is the web version built?It uses Tango / ya-webadb for the WebUSB ADB connection and xterm.js for the terminal, with the BAT script runner written in JavaScript. It is a port of the author's PC toolbox and is open source under GPL-3.0.
Can I use the ADB terminal like a normal Android shell?Yes. It opens an interactive Android Shell with ANSI output, command history, completion, copy, clear, and Ctrl+C to interrupt. The session keeps its directory and variables across page switches but ends when the device disconnects.
How do the BAT scripts work on the web?A JavaScript interpreter runs a subset of BAT syntax (echo, set, goto, if, for /l, timeout, choice, pause) and turns ADB commands into browser calls. It does not run cmd.exe or PC EXEs. Scripts that push or install local files need those files linked in the page first, and external programs or PowerShell are not supported.
Creator
CzJam
Size
1.4 MB
Stars
714
Updated
CommitNov 07
Age
4d
Commits · 90 Days