Skip to content

About

See both sides. Pair with evidence. Rename with care. A local-first Android tool for aligning related photo sets.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PairRename

See both sides. Pair with evidence. Rename with care.

「先看清对应关系,再安心整理图片。」

CI Latest release MIT License

English · 中文

PairRename is a local-first Android photo workbench for reconciling two related sets—camera originals and edited exports, for example. Two panes keep the images, not only their filenames, in view while you compare, review suggested pairings, and approve changes.

A bulk rename should never have to feel like a guess. PairRename aims to make relationships visible, suggestions reviewable, and file operations understandable before they happen. The final decision stays with the person who owns the photos.

Why PairRename?

When a photo set has been copied, edited, or reorganized, matching files by filename alone can be unreliable. PairRename puts both sides on screen and gives you room to check the relationship before changing a name.

  • Compare side by side — browse two folders, preview images, and inspect file details in one workspace.
  • Pair with context — match by tapping, drag-and-drop, or order; review suggestions informed by filenames, numbering, capture time/EXIF, dimensions, and other available evidence.
  • Review before applying — inspect the proposed mapping and conflicts before a batch rename or supported organization workflow.
  • Keep a recovery path — use operation history, undo/redo, and in-app trash/recovery where the selected storage provider supports them.
  • Make the workspace yours — filter, sort, select, inspect duplicates or mismatches, and use tablet/keyboard-friendly navigation.

Workflow at a glance

Workflow illustration: compare two folders, review pairings and the rename plan, then apply or adjust.

Workflow illustration—not an in-app screenshot.

View the actual Chinese interface screenshot (empty state)

User-provided screenshot of PairRename's Chinese comparison screen; neither folder is selected, so both panes show the empty state.

This is a user-provided capture of the running app. The app version is not visible in the screenshot; both folder panes are unselected, so it demonstrates the workspace layout rather than a completed pairing session.

For the product's safety and privacy commitments, see Project Principles. Feature availability can vary by Android version and storage provider; review each plan and try unfamiliar workflows on copies first.

Download and get started

Current release: v6.2.3 · versionCode 61 · Android 8.0+ (API 26+)

  1. Get the signed APK and its SHA-256 file from GitHub Releases.
  2. Verify the APK against PairRename-v6.2.3-SHA256SUMS.txt before installing. Install only software from a source you trust.
  3. Choose the left and right folders through Android's system folder picker, granting access only to the folders you intend to manage.
  4. Compare the images, review suggested matches, then inspect the rename plan and conflicts before applying it.

A careful first run: use a small copy of your photos. In-app history and trash are safeguards—not a backup.

Build from source

Requirements: Android Studio or Android SDK, JDK 17, and the Android SDK platform/build tools for API 35. The Gradle wrapper downloads Gradle 8.9 on first use.

git clone https://github.com/aWorlding1/pairrename-android.git
cd pairrename-android
./gradlew :app:assembleDebug

The debug APK is written to app/build/outputs/apk/debug/. On Windows, use gradlew.bat :app:assembleDebug.

To create a signed release build, provide your own signing key through the ignored app/keystore.properties file or the PAIRRENAME_* environment variables described in app/keystore.properties.example. Never commit or share a private signing key or its passwords. A build signed with your key is not update-compatible with builds signed by another key.

Run the source-level checks

These checks do not require an Android SDK or Gradle. They exercise source-level invariants; they do not replace Android builds, device testing, or storage-provider testing.

./verify_all.sh

Version and validation

The main branch contains v6.2.4 source (versionCode 62), with R8 code minification and resource shrinking enabled for Release builds. Download the latest signed APK and its matching checksum manifest from GitHub Releases. The verified v6.2.4 APK measures 2.03 MiB—about 83% smaller than the v6.2.3 APK. Its package/version metadata match, its APK Signature Scheme v2 signature verifies, and its signer certificate matches the previously published v6.2.3 APK. These checks establish signature validity and signing continuity, not a reproducible source-to-binary build. See the build and verification guide for commands and limits.

Project-supplied notes report that v6.2.4 was installed over v6.2.3 with user data retained and that interaction checks were performed on a MuMu Android 15 emulator. These are project-attributed results, not independently reproduced here and not a claim that every Android device or document provider has been tested. The live CI badge above tracks the default-branch workflow; use workflow history to inspect current runs and their exact jobs rather than relying on a hard-coded run number.

Project documentation

Documentation index · Roadmap · Changelog · v6.2.4 release notes · v6.2.3 release notes · Project principles

Privacy and file safety

  • The app manifest does not request Android's INTERNET permission. PairRename is designed for local use and does not require an account or cloud service.
  • Folder access is granted through Android's system picker. The app also declares optional MANAGE_EXTERNAL_STORAGE; grant broader access only if you understand and need it.
  • Renaming and organizing changes files in the folders you select. Review each operation, keep an independent backup, and test on copies first. Undo, history, and in-app trash are conveniences—not backups.
  • App-private history, settings, and work state may be removed when the app is uninstalled or its data is cleared.
  • For security concerns, see SECURITY.md. Do not post private photos, credentials, or sensitive folder details in public issues.

Contribute and learn more

Thoughtful bug reports, focused improvements, and documentation contributions are welcome. Start with CONTRIBUTING.md, follow the Code of Conduct, and find support in SUPPORT.md. Please report vulnerabilities privately as described in SECURITY.md.

License

PairRename is released under the MIT License. Third-party dependencies remain subject to their respective licenses.


PairRename 中文说明

PairRename 是一款本地优先的 Android 图片工作台,适合整理两组彼此关联的照片,例如「相机原片」与「修图导出件」。左右双栏让图片本身始终在视野里;你可以核对配对建议,再决定是否批量统一文件名。

我们希望批量改名不必依赖「猜」:图片之间的关系要看得见,配对建议要能复核,真正执行的改动也要先讲清楚。照片由你拥有,最后的决定权也在你手中。

为什么选择 PairRename?

照片经过复制、编辑或重新整理后,单靠文件名不一定足以判断对应关系。PairRename 把两侧图片并列展示,让你先核对,再操作。

  • 并排对照:同时浏览两个目录,查看缩略图和文件信息。
  • 结合上下文配对:可点选、拖放或按顺序配对;系统也会依据文件名、序号、拍摄时间/EXIF、尺寸等可用信息给出建议,供你核对。
  • 执行前复核:批量改名或受支持的整理操作前,先查看对应关系与冲突。
  • 留有恢复路径:操作历史、撤销/重做与应用内回收/恢复能力,取决于 Android 版本和所选存储提供方。
  • 按习惯整理:筛选、排序、多选、重复/差异核查,并支持平板和键盘操作。

工作流程一览

流程示意:比对两个目录、复核配对与改名方案,再执行或调整。

这是流程示意图,不是应用界面截图。

实际界面截图

查看用户提供的真实中文界面截图。图中左右目录尚未选择,因此两栏显示空状态;截图没有显示应用版本,也尚未展示一组已经完成的配对流程。后续演示计划见路线图。

关于数据安全和隐私的设计约定,参见项目原则。不同 Android 版本及存储提供方的行为可能不同;新流程请先在副本上验证。

下载与快速开始

**最新公开下载版:**请从 GitHub Releases 获取 APK 与同一发布页附带的 SHA-256 校验文件 · Android 8.0+(API 26+)

main 源码版本: v6.2.4 · versionCode 62;其 APK 尚未发布到 GitHub Releases。

  1. 在 GitHub Releases 下载签名 APK 与 SHA-256 校验文件。
  2. 安装前使用该 Release 同页的 SHA-256 清单核对 APK;只安装你信任来源的软件。
  3. 通过 Android 系统文件夹选择器选择左右目录,只授予确实需要管理的目录权限。
  4. 对照图片、核对配对建议,并在执行前检查改名方案与冲突。

**第一次使用建议:**先拿一小份照片副本试用。应用内历史和回收站是保护措施,不能替代独立备份。

从源码编译

环境要求:Android Studio 或 Android SDK、JDK 17、API 35 Android SDK 平台与构建工具。首次运行 Gradle Wrapper 会下载 Gradle 8.9。

git clone https://github.com/aWorlding1/pairrename-android.git
cd pairrename-android
./gradlew :app:assembleDebug

调试 APK 输出在 app/build/outputs/apk/debug/。Windows 可运行 gradlew.bat :app:assembleDebug。如需自行构建 Release 包,请使用你自己的签名密钥;请参照 app/keystore.properties.example,勿把签名材料或密码提交到 Git。

运行源码级检查:

./verify_all.sh

这些脚本验证源码层面的不变量,不代替 Android 编译、真机测试或各存储提供方测试。

构建环境、APK 核验命令及「可复现构建」的当前边界见构建与核验指南。

版本与验证

main 分支包含 v6.2.4 源码(versionCode 62),Release 构建开启 R8 代码压缩和资源收缩。已核验的 v6.2.4 APK 为 2.03 MiB,较 v6.2.3 缩小约 83%;其包名/版本元数据匹配,APK Signature Scheme v2 签名有效,签名证书与此前公开的 v6.2.3 APK 一致。这证明签名有效及签名连续性,不代表源码到二进制可复现构建。最新可下载版本和对应校验清单以 GitHub Releases 为准。

项目提供的记录称,v6.2.4 曾覆盖安装 v6.2.3 并保留用户数据,且在 MuMu Android 15 模拟器进行了交互检查。这些是项目归属的测试记录,本次没有独立复现,也不表示已经覆盖所有 Android 设备或文档/存储提供方。上方 CI 徽章跟踪默认分支工作流;可在工作流运行记录中查看每次运行及具体任务。

隐私与文件安全

  • Manifest 未申请 Android INTERNET 权限;应用以本地使用为目标,不依赖账号或云服务。
  • 通过 Android 系统文件夹选择器授权。应用另声明可选的 MANAGE_EXTERNAL_STORAGE 权限;只有理解其影响且确有需要时才授予广泛权限。
  • 改名和整理会修改你选择的目录。请先核对方案、备份重要资料,并先用副本测试。「撤销」「历史」和应用内回收站不能替代备份。
  • 卸载应用或清除数据可能移除应用私有的历史、设置和工作状态。
  • 安全问题请按 SECURITY.md 私下报告;公开反馈中请勿附上私人照片、凭据或敏感目录信息。

参与项目

欢迎提交可复现的问题、聚焦明确的改进和文档贡献。请先阅读贡献指南,并遵守社区行为准则;常见问题见 SUPPORT.md。

项目文档

文档索引 · 路线图 · 变更记录 · v6.2.3 发行说明 · 项目原则

许可

本项目采用 MIT License。第三方依赖仍受各自许可约束。

About

See both sides. Pair with evidence. Rename with care. A local-first Android tool for aligning related photo sets.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages