HOOKUI Sync
English | 中文
English
Overview
HOOKUI Sync is a VS Code extension that helps you sync JavaScript files to the HOOKUI Android Xposed module.
Features
- Quick sync JS files to Android devices
- Support for multiple devices
- Automatic device detection
- Real-time sync status display
- Auto restart target application
Usage
- Right-click on a JS file in VS Code
- Select "Sync to HOOKUI" from the context menu
- Choose your target device (if multiple devices are connected)
- The file will be synced automatically
Auto Restart Application
To enable auto restart feature:
- Add
//package:com.example.app
at the first line of your JS file
- Right-click and select "Sync JS to HOOKUI And Reboot hOOKed Application"
- The app will be force stopped and restarted automatically
Requirements
- Android device with HOOKUI installed
- ADB enabled on the device
- ADB tools installed on your computer
Example HOOKUI JS Code
//package:com.example.app
// First line specifies the package name for VSCode extension to auto restart!
// HOOKUI dynamic JS requires version after 2024-12-29 19:25:40
function handleLoadPackage(loadPackageParam) {
log.toast("COMMON_AAAJS:" + loadPackageParam.packageName);
log.v("COMMON_JS-AAFF->" + loadPackageParam.packageName);
// Hook View touch events
XposedBridge.hookMethod("android.view.View", "onTouchEvent", function(param, phase) {
if (phase === "before") {
var Arrays = Packages.java.util.Arrays;
let args = param.getArguments();
// Record touch event details
if(args && args[0]) {
let motionEvent = args[0];
let x = motionEvent.getX();
let y = motionEvent.getY();
let action = motionEvent.getAction();
log.v("Touch event: x=" + x + ", y=" + y + ", action=" + action);
}
log.v("Touch params: " + Arrays.toString(args));
param.setArguments(args);
} else if (phase === "after") {
log.v("Stack trace: " + log.getStackTraceString());
}
});
// Hook Activity creation
XposedBridge.hookMethod("android.app.Activity", "onCreate", function(param, phase) {
if (phase === "before") {
log.v("New Activity detected");
try {
log.v("Current time: " + new Date().toLocaleString());
} catch(e) {
log.v("Activity Hook triggered");
}
}
});
return true;
}
中文
概述
HOOKUI Sync 是一个 VS Code 扩展,用于将 JavaScript 文件同步到 HOOKUI Android Xposed 模块。
功能特点
- 快速同步 JS 文件到安卓设备
- 支持多设备选择
- 自动检测设备
- 实时同步状态显示
- 自动重启目标应用
使用方法
- 在 VS Code 中右键点击 JS 文件
- 从右键菜单中选择"同步到 HOOKUI"
- 选择目标设备(如果连接了多个设备)
- 文件将自动同步
自动重启应用
启用自动重启功能:
- 在 JS 文件第一行添加
//package:com.example.app
注释(替换为目标应用包名)
- 右键选择"同步到 HOOKUI 并重启目标应用"
- 插件会自动结束并重启目标应用
使用要求
- 安装了 HOOKUI 的安卓设备
- 设备已启用 ADB
- 电脑已安装 ADB 工具
HOOKUI JS 代码示例
//package:com.example.app
// 第一行指定被hook的包名,方便VSCode插件识别包名进行真正的重启!
// HOOKUI 动态js 仅限使用2024-12-29 19:25:40 之后版本使用
function handleLoadPackage(loadPackageParam) {
log.toast("COMMON_AAAJS:" + loadPackageParam.packageName);
log.v("COMMON_JS-AAFF->" + loadPackageParam.packageName);
// Hook View 的触摸事件
XposedBridge.hookMethod("android.view.View", "onTouchEvent", function(param, phase) {
if (phase === "before") {
var Arrays = Packages.java.util.Arrays;
let args = param.getArguments();
// 记录触摸事件的详细信息
if(args && args[0]) {
let motionEvent = args[0];
let x = motionEvent.getX();
let y = motionEvent.getY();
let action = motionEvent.getAction();
log.v("触摸事件: x=" + x + ", y=" + y + ", action=" + action);
}
log.v("触摸参数: " + Arrays.toString(args));
param.setArguments(args);
} else if (phase === "after") {
log.v("调用堆栈: " + log.getStackTraceString());
}
});
// Hook Activity 创建
XposedBridge.hookMethod("android.app.Activity", "onCreate", function(param, phase) {
if (phase === "before") {
log.v("检测到新Activity创建");
try {
log.v("当前时间: " + new Date().toLocaleString());
} catch(e) {
log.v("Activity Hook 触发");
}
}
});
return true;
}
注意事项
- 重启功能需要在文件首行正确配置目标应用包名
- 包名格式必须是:
//package:com.example.app
- 确保包名正确,否则可能无法重启应用
- 代码示例中展示了基本的 Hook 用法
- 支持 View 触摸事件和 Activity 生命周期的 Hook
- 提供了日志输出功能,方便调试