Skip to content

About

Back up your phone's photo album locally easily without worrying about privacy leakage and keep the date.轻松本地备份手机相册,无需担心隐私泄露,并保留日期

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

本地相册备份

一款面向 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。

使用便携版

  1. 从 GitHub Releases 下载 本地相册备份-win32-x64.zip 并解压。
  2. 运行 本地相册备份.exe。
  3. 创建仓库时选择一个本地磁盘目录,软件会在其下创建 BackupRepository。
  4. 用 USB 连接并解锁安卓手机,选择“照片传输 PTP”或“文件传输 MTP”。
  5. 选择设备和目录后开始备份。软件不会删除手机上的任何文件。

仓库需要位于支持硬链接的本地或直连移动磁盘;网络共享和映射网络驱动器会被拒绝。仓库内容不做应用内加密,敏感数据建议存放在启用 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。

About

Back up your phone's photo album locally easily without worrying about privacy leakage and keep the date.轻松本地备份手机相册,无需担心隐私泄露,并保留日期

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages