1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#+TITLE: VBHelper
#+AUTHOR: cytrogen
#+DESCRIPTION: Vital Bracelet 系列设备的 Android 辅助应用
* 简介
VBHelper 是一个用于与 Vital Bracelet 系列设备(VB、VH、VBC、VBBE)交互的 Android 应用。通过 NFC 读取/写入角色数据,管理卡片,追踪冒险任务,并处理与设备通信所需的加密密钥。
#+begin_quote
项目仍在积极开发中。在进一步通知之前,数据库更新可能需要清除应用数据。
#+end_quote
* 功能
** 核心功能
- 通过 NFC 读取角色数据并查看角色属性
- 将角色写回手表
- 对角色使用道具(特殊任务、计时器等)
- 角色仓库管理
- 冒险任务系统——完成任务可获得新道具
- 图鉴系统——读取新角色时自动更新,可查看进化条件和当前冒险阶段
- 数据库导入/导出
** 推送通知(新功能)
基于 [[https://unifiedpush.org][UnifiedPush]] 协议的推送通知系统,在计时器到期时通知用户:
- 冒险任务完成提醒
- 角色进化倒计时提醒
- 特殊任务到期提醒
- BE 训练计时提醒
- BE 道具效果到期提醒
需要自部署推送服务器(项目包含 Ktor 服务端)和 UnifiedPush 分发器(如 [[https://ntfy.sh][ntfy]])。
* 使用方法
** 1. 获取 VB Arena APK
从可信来源下载最新版 VB Arena APK。如果下载的是 XAPK 格式:
1. 将 XAPK 重命名为 ZIP 并解压
2. 找到 =com.bandai.vitalbraceletarena.apk= 文件并保存备用
** 2. 安装 VBHelper
从 [[http://github.com/nacabaro/vbhelper/releases][Releases]] 下载最新的 APK 并安装。
#+begin_quote
在当前开发阶段,更新时可能需要先卸载旧版本。如果安装后闪退,请清除应用数据和存储。
#+end_quote
** 3. 导入密钥
密钥用于与手表通信。在主界面点击齿轮图标,然后选择「Import secrets」,选择之前获取的 VB Arena APK 文件。
** 4. 导入卡片
由于版权限制,应用不包含角色和素材数据。你需要使用自己的 DiM/BEm 卡片:
1. 使用 [[http://mrblinky.net/digimon/vb/dimcardtool/][DiM Card Tool]] 将卡片数据导出到电脑
2. 将导出的文件传输到手机
3. 在应用中点击「Import card」,选择对应的 BIN 文件
#+begin_warning
如果未导入对应卡片就读取手表中的角色,该角色数据将被删除。
#+end_warning
** 5. 设置推送通知(可选)
*** 部署推送服务器
项目包含一个 Ktor 服务端,用于调度计时器和发送推送通知。
*Docker 部署(推荐):*
#+begin_src bash
cd server
docker compose up -d
#+end_src
*手动运行:*
#+begin_src bash
JAVA_HOME=/path/to/jdk17 ./gradlew :server:buildFatJar
java -jar server/build/libs/server-all.jar
#+end_src
服务器默认监听 =0.0.0.0:8080= 。
*** 配置应用
1. 在手机上安装 UnifiedPush 分发器(如 [[https://ntfy.sh][ntfy]])
2. 打开 VBHelper → 设置 → Notifications
3. 设置推送服务器地址(如 =http://your-server:8080= )
4. 启用推送通知
5. 使用「Test Notification」验证配置
* 构建
** 前置条件
- JDK 17
- Android SDK(compileSdk 36)
- =vb-nfc-reader= 0.2.0-SNAPSHOT 和 =vb-dim-reader= 2.1.0 需安装到 mavenLocal
** 构建应用
#+begin_src bash
JAVA_HOME=/path/to/jdk17 ./gradlew :app:assembleDebug
#+end_src
** 构建服务端
#+begin_src bash
JAVA_HOME=/path/to/jdk17 ./gradlew :server:buildFatJar
#+end_src
* 计划功能
- 在线对战——由 =lightheel= 开发中
- VitalWear 兼容——由 =cfogrady= 开发中
- 多语言支持——尚未开始
- 数据库备份/恢复
* 致谢
- [[https://github.com/nacabaro][nacabaro]] — 项目原作者
- =cyanic= — 帮助理解 VB 通信协议
- [[https://github.com/cfogrady][cfogrady]] — 开发了 [[https://github.com/cfogrady/VB-DIM-Reader][VB-DIM-Reader]] 和 [[https://github.com/cfogrady/lib-vb-nfc][lib-vb-nfc]]
- =lightheel= — 开发在线对战组件(服务端和客户端)
- =shvstrz= — 应用图标设计
* 许可证
本项目基于 [[file:LICENSE][MIT 许可证]] 开源。
Copyright (c) 2026 cytrogen