W.Y Luk
W.Y Luk
Developer
00:00:00
Loading...

给尼康 Z 系列相机注入 GPS

蓝牙写入定位 · 照片 EXIF 自动记录位置

Tracks

三条线并行

同一套尼康协议,三个版本各司其职。点击卡片进入详情。

Line 01 · Sandbox
🧪

NSG · 内部沙盘

协议逆向与验证试验场

Blowfish 握手、41 字节 GEO 载荷在此打磨成型,是 Z-Pin 的技术源头。

v0.7.0沙盘最新
进入详情
Line 02 · Release

Z-Pin · 对外分发版

面向用户的正式版

蓝牙直连、GPS 写入、守望门自动重连,GitHub 开源分发。

v1.19.0 MB
进入详情
Line 03 · Personal
🗺️

Z-Pin_person · 内部探索版

个人实验分支

高德地图实时定位、地图 / 日志滑动切换,新功能先跑通再回灌主线。

v0.1.3探索版
进入详情
← 返回
Line 01 · Sandbox

NSG · 内部沙盘

基于开源 NSG(Nikon Smart GPS)二次开发的协议研究主线,Z-Pin 的技术源头。

一句话定位

NSG 由 hurui200320(Rui Hu)开源,完整逆向尼康 Z 系列 BLE GPS 协议(AGPL-3.0)。Z-Pin 在此之上二次开发,从「协议验证 PoC」逐步打磨成可用工具。

三端参考实现

  • Android PoC — Kotlin / Compose,真机验证 Z50 II、Z8
  • Kotlin JVM 验证端 — Linux + BlueZ,专注协议核心
  • M5Stack Core2 — C++ / FreeRTOS,独立硬件端

核心协议成果

  • 4 阶段 Blowfish 握手 — CBC-MAC 哈希 + 8 组 salt 质询响应
  • 蓝牙双模绑定 — BLE GATT 握手 + 经典蓝牙 Bonding
  • 41 字节 GEO 载荷 — 度分编码 + 时间戳嵌入,写入相机

迭代历程(沙盘怎么演进)

v0.12026-07-08
克隆 NSG,假坐标改真 GPS,链路打通
v0.2 – v0.307-08/09
全界面汉化 + 应用内手册;青蓝主题、日志打磨
v0.407-09
品牌独立为 Z-Pin、守望门自动重连、GPS 自动发送
v0.5.0 → 0.5.207-10
连接重构引发崩溃 → 回滚直连;release 压至 9.1MB
v0.6.x07-13/19
GATT 直连优化、守望门 break 致命 bug 修复
v0.7.007-23
日志系统重写、连接修复、按钮统一、英文语言
沙盘线仅供内部迭代验证 · 对外发布以 Z-Pin 分发版为准
← 返回
Line 02 · Release

Z-Pin · 对外分发版

面向用户的正式 Android 应用,GitHub 开源分发,下载即装即用。

AGPL-3.0

基于 NSG 二次开发,遵循 AGPL-3.0 开源协议。完整协议文本见 仓库 LICENSE

功能特性

  • 蓝牙 BLE 直连 — 扫描、配对、连接尼康 Z 系列相机
  • GPS 坐标写入 — 经纬度 + 海拔,注入照片 EXIF
  • 地图验证 GPS 点位 — 一键跳转高德 / 百度 / 腾讯 / Google Maps,自动坐标转换
  • 前台常驻服务 — 锁屏 / 切应用不掉线
  • 守望门自动重连 — 断线自动扫描回连已保存相机
  • 事件日志面板 — 连接 / 配对 / GPS 事件实时可见

系统要求

  • Android 13(API 33)及以上
  • 支持 BLE + GPS 硬件
  • 已验证尼康 Z 系列(Z50 II、Z8、ZF 等)

构建参数

  • 包名 com.wyluk.zpin
  • minSdk 33
  • targetSdk 36
  • versionCode 71
  • versionName 1.1
  • APK 9.0 MB

🧪 在线演示

模拟器 · 非真实蓝牙连接
Z-Pin
Idle
已保存相机
模拟 GPS 坐标(GCJ-02 地图坐标)
📍坐标 1113°13'11.54"E 23°24'4.22"N
📍坐标 2112°49'12.32"E 23°8'43.75"N
📍坐标 3112°52'34.44"E 23°11'14.68"N
写入相机(WGS-84):--
事件日志 · 实时模拟

下载 Z-Pin

v1.1 · 9.0 MB · 开源免费

Android 13+BLE + GPS已验证尼康 Z 系列
← 返回
Line 03 · Personal

Z-Pin_person · 内部探索版

个人内部分支(仅供本人使用),在 NSG 主线上叠加高德地图,验证 GPS 写入精度。

一句话定位

独立工作目录 zpin-person-0728/,包名 com.luke.zpin_person,复用自建签名(与对外版三包可共存)。新功能先在此跑通,再回灌主线。

探索功能

  • 高德地图 + 图钉 — 实时显示当前 GPS 位置
  • 地图 / 日志滑动切换 — HorizontalPager 整块横滑
  • 卫星图层 — 2D 夜间 / 卫星图一键切换
  • 手动选点 + 度分秒输入 — 地图点选或手输经纬度
  • 地图锁定 — 锁定时禁用滑动,防误触切页

坐标系处理(关键沉淀)

GPS 原始输出为 WGS-84(相机 EXIF 国际标准),高德地图用 GCJ-02(火星坐标)。写入相机始终 WGS-84,地图显示时转 GCJ-02——曾踩过「图钉系统性偏移几百米」的坑。

迭代历程

v0.1.007-28
分支创建 + 高德地图 + 图钉 + 滑动切换
v0.1.207-30
地图加边框统一视觉;按钮改 2×2 布局
v0.1.307-30
高德定位优先(GCJ-02 反转 WGS-84)+ Z-Pin 金色
追加迭代07-31
手动选点、度分秒输入、地图锁定、卫星图层

🧪 在线演示

模拟器 · 非真实蓝牙连接
Z-Pin_person
Idle
高德地图 · 图钉位置
📍
--
模拟 GPS 坐标(GCJ-02 地图坐标)
📍坐标 1113°13'11.54"E 23°24'4.22"N
📍坐标 2112°49'12.32"E 23°8'43.75"N
📍坐标 3112°52'34.44"E 23°11'14.68"N
写入相机(WGS-84):--
事件日志 · 实时模拟
内部探索线不对外分发 · APK 仅个人归档