一款面向 Windows 11 x64 的本地安卓相册备份软件。它通过 Windows Portable Devices(WPD)读取 USB PTP/MTP 设备,照片、视频、目录信息和索引全部保存在用户选择的本地仓库中,不依赖云服务。
作者:ecLieKing
许可证:MIT
- 图形化创建、选择和迁移固定名称为
BackupRepository的备份仓库。 - 自动识别 PTP/MTP,默认选择
DCIM和Pictures,支持选择其他手机目录。 - 使用
.partial暂存、SHA-256 校验和原子提交,断线或取消不会产生伪装成完整媒体的文件。 - 以
SHA-256 + 文件大小去重;不同设备引用相同内容时使用 NTFS 硬链接。 - 支持平铺和按设备分目录两种实体布局,并可中断恢复或回滚。
- 保留 WPD 提供的拍摄、创建、修改日期,并恢复 Windows 文件创建/修改时间。
- 按设备、类型、日期浏览图片和视频封面;单击缩略图后由 Windows 默认应用打开原文件。
- 仓库迁移支持暂停、跨重启继续、完整哈希校验以及迁移后保留或删除原仓库。
- 手机端始终只读;应用不包含云同步、遥测、自动更新或手机文件删除功能。
完整设计说明参见 架构与实现细节。项目的初版 vibe coding 提示词保存在 call-word.md。
- 从 GitHub Releases 下载
本地相册备份-win32-x64.zip并解压。 - 运行
本地相册备份.exe。 - 创建仓库时选择一个本地磁盘目录,软件会在其下创建
BackupRepository。 - 用 USB 连接并解锁安卓手机,选择“照片传输 PTP”或“文件传输 MTP”。
- 选择设备和目录后开始备份。软件不会删除手机上的任何文件。
仓库需要位于支持硬链接的本地或直连移动磁盘;网络共享和映射网络驱动器会被拒绝。仓库内容不做应用内加密,敏感数据建议存放在启用 BitLocker 的磁盘。
要求:
- Windows 11 x64
- Node.js 24 或更高版本
- Visual Studio C++、Windows SDK、CMake
- PowerShell 5.1 或更高版本
项目不使用 Python。依赖安装固定使用国内镜像且不会自动回退境外源:
npm run bootstrap
npm run typecheck
npm test
npm run package- npm:
https://registry.npmmirror.com - Electron:
https://npmmirror.com/mirrors/electron/
构建输出:
dist/native/wpd-helper.exe:WPD 与 Windows 文件日期辅助进程。release/本地相册备份-win32-x64/:便携目录。release/本地相册备份-win32-x64.zip:GitHub Release 附件。
- 渲染进程启用沙箱和上下文隔离,不能直接访问 Node.js 或任意本地路径。
- 主进程只接受媒体 ID、任务 ID和固定枚举参数,所有真实路径均在可信层解析与校验。
- 仓库路径拒绝越界、符号链接、重解析点和网络文件系统。
- 仓库迁移和布局转换始终先建立新实体,再移除旧路径,避免删除最后一个有效副本。
公开仓库和 GitHub Release 的创建步骤参见 PUBLISHING.md。