APP
出于公开发布和项目边界考虑,本仓库不会内置任何有关与官方服务器通讯的内容与计算逻辑
本仓库是 NFCAiME 的公开版本,用于展示客户端结构、自定义服务器配置流程、RSA 加密上传接口和最小服务端接收逻辑
公开源码与发布安装包的边界如下:
- 公开源码保留 UI、NFC 读取流程、自定义服务器列表、RSA 上传、错误日志和服务端 webhook 扩展点
- 公开源码不包含官方服务器通讯与aime加解密部分
NFCAiME AiMEIO 是本项目的电脑端配套插件,需要与 NFCAiME App 一起使用
手机读取卡片后,数据会通过相同的 session-key 转发到电脑端,由 AiMEIO Mod 接入 maimai DX 的读卡流程
安装、配置和 Release 下载请查看
https://github.com/Project-HashCat/NFCAiME-AiMEIO
Android-APP/ Android 客户端公开源码
iOS_APP/ iOS 客户端公开源码
server/ 自部署服务端公开源码
iOS 和 Android 公开源码提供同一类能力:
- 本地读取卡片基础信息
- 用户自行添加远端服务器 URL 和 RSA 公钥
- 远端模式下上传加密后的卡片安全数据和认证块
- 显示服务器返回的 Access Code、Konami Card Number、IDM 等字段
- 保存卡片记录、隐私显示、错误日志上传和 Release 跳转
客户端不会内置默认公开服务器地址
需要远端功能时,请在 App 内添加自己的服务器地址和该服务器提供的 RSA 公钥
cd server
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
mkdir -p data
openssl genrsa -out data/spad0_private_key.pem 2048
chmod 600 data/spad0_private_key.pem
cp .env.example .env
python server.py最小配置:
CARD_SERVER_HOST=0.0.0.0
CARD_SERVER_PORT=8000
SPAD0_RSA_PRIVATE_KEY_FILE=./data/spad0_private_key.pem
DEBUG_LOG_SECRET=NFCAimeDebugLog-v1
NFCAIME_CARD_WEBHOOK_URL=
NFCAIME_CARD_WEBHOOK_TOKEN=启动后检查:
curl http://127.0.0.1:8000/health
curl http://127.0.0.1:8000/public-key客户端服务器地址填写 /card 入口,例如:
https://example.com/aime_reader/card
同级路径需要能访问:
/public-key
/debug-log
/health
如果你要实现账号系统、Bot 绑定、私服联动或其他自定义功能,把 webhook 配到服务端:
NFCAIME_CARD_WEBHOOK_URL=https://your-server.example.com/nfcaime/card-webhook
NFCAIME_CARD_WEBHOOK_TOKEN=your-secret-token服务端会将解密后的读卡记录转发给 webhook
webhook 返回 JSON 时,会合并进客户端响应
示例响应:
{
"ok": true,
"code": "YOUR-CARD-CODE",
"accessCodeHex": "50110000000000000000",
"konamiCardNumber": "ABCD1234EFGH5678",
"privateNetworkNumber": "00080000000000000000"
}健康检查
返回 RSA 公钥 PEM,客户端会使用它加密卡片安全数据
接收客户端上传的读卡数据
服务端只接受加密字段:
{
"spad0Encrypted": "base64..."
}接收客户端手动上传的加密错误日志