尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Two private Flutter apps for a single phone at a time. TBD Vault stores encrypted account details. TBD Codes supplies an eight-digit code that changes every 5–10 seconds. Both apps are designed to work without an internet connection.
This is custom password-manager software. Do not put irreplaceable passwords in it until the iPhone pairing, backup recovery, and security review have been completed on a real device. A code generated by another app on the same phone is an extra check, not a truly separate second factor.
web/ holds TBD Vault and TBD Codes as two installable offline websites (PWAs). No App Store, APK or Mac needed. See web/README.md for building, deploying and installing. The Flutter apps in apps/ are kept but no longer the main path.
Automated tests pass (core, backup, vault lockout and replay). Android end-to-end testing, signed release APKs and all iPhone testing are not finished. See SECURITY-REVIEW.md and MAC-IPHONE-CHECKLIST.md. Do not store real passwords yet.
| Folder | Purpose |
|---|---|
apps/vault | iPhone and Android vault app |
apps/codes | iPhone and Android code app |
packages/tbd_core | Shared vault format, AES-256-GCM encryption, Argon2id backup, and code generation |
packages/tbd_platform | Device-protected key access and app pairing |
design | SVG icons, rendered previews, and bundled-font licenses |
The fonts and icon assets are bundled in the apps. There are no accounts, analytics, remote APIs, or app-managed network calls. Android release manifests contain no INTERNET permission. The operating system's file picker may still offer cloud locations; select local storage for strictly offline backups.
To move to a new phone, install both apps, choose Restore Encrypted Backup in TBD Vault, select the .tbdbackup file, enter its backup password, pair TBD Codes, and enter the new code. iPhone and Android use the same backup format. There is no server or forgotten-password recovery.
Flutter 3.47.7 / Dart 3.13.5 was used for this source. From each app folder run flutter pub get, then flutter analyze. From packages/tbd_core, run dart test. The shared tests cover the RFC 6238 SHA-256 code vector, vault encryption, altered backup rejection, and repeat file saves.
Building and installing the iPhone apps requires a Mac with Xcode, an Apple Developer membership, and the friend's iPhone registered for private distribution. Both app IDs must belong to the same Apple team and have the shared Keychain group com.techboydeepak.tbd.shared. In Xcode, set the same Team for both Runner targets and confirm Runner.entitlements is included in each signing profile. Build both apps with --dart-define=TBD_TEAM_ID=YOUR_10_CHARACTER_TEAM_ID so the runtime uses the matching Keychain access group. Archive and distribute to the registered device as Ad Hoc apps. Do not change either bundle ID after storing real passwords without a tested migration.
iPhone builds, signing, installation, biometric prompts, and app-to-app pairing have not been verified on this Windows machine. They must be tested on the actual iPhone before daily use. Free Apple personal signing can expire after seven days; TestFlight builds expire after 90 days, which is why private registered-device distribution is planned.
The Android apps require Android 11 or newer. Debug builds of both apps from the same machine use the same debug signing certificate and can pair. Private release builds must be signed with the same release keystore. Set TBD_ANDROID_KEYSTORE, TBD_ANDROID_STORE_PASSWORD, TBD_ANDROID_KEY_ALIAS, and TBD_ANDROID_KEY_PASSWORD as environment variables before building each release APK. Never put the keystore or passwords in this repository. Do not distribute a debug-signed APK for password storage.
Android and iPhone data do not synchronize automatically. Move only the encrypted .tbdbackup file by a method you choose, such as a local file transfer, and restore it on the destination phone.
Visual colors and fonts follow techboydeepak.com: #080808, #f4f1ec, #f22d1c, Manrope, Bebas Neue, and IBM Plex Mono. Font licenses are in design/licenses. The two SVG icon sources are in design; rerender platform assets with python tools/render_icons.py after installing resvg-py.
The code interval is deliberately shorter than the RFC 6238 recommendation of 30 seconds, following the requested 5–10 second setting. Ten seconds is the default.