Repository navigation
ja CHANGELOG
VD $ VD171 @ Priv8 edited this page Nov 4, 2026
·
1 revision
Languages: English | العربية | Čeština | Deutsch | Español | فارسی | Français | हिन्दी | Bahasa Indonesia | Italiano | 日本語 | 한국어 | Nederlands | Polski | Português | Русский | Svenska | ไทย | Türkçe | Tiếng Việt | 中文
VDBackup のすべての重要な変更はここに記録されます。英語のみ。
最初の公開リリース。アプリとそのデータを完全に root として、許可プロンプトなしで バックアップおよび復元する KernelSU/APatch/Magisk WebUI モジュール。
エンジンとフォーマット:
- バックアップ/復元エンジンは切り離された root プロセス (
setsid) として実行されます。WebUI や root マネージャーを閉じても動作し続け、UI はopidによってライブの進捗に再接続します。 - 3 つのバックアップモード: Full (tar.zst、ローカルまたはリモート)、Snapshot (restic repo、暗号化 および重複排除)、Mirror (rclone/rsync の 1:1 同期)。APK は mirror であっても 常に圧縮されます。
- アプリごとの項目: APK (base + splits)、
data、data_de、obb、外部およびメディア。 SELinux コンテキスト、uid/gid、modes、xattr/caps は保持されます。復元はpm installセッションを使用し、所有権/コンテキストをライブの uid に再マッピングします。 - 全体を通してユーザーごと (マルチユーザー) に対応。バックアップは
/sdcard/VDBackup(ユーザーごと) の下、/data/adbの外に保存されるため、初回ロック解除前は読み取れません。すべての 宛先は<path>/vdbackupの下に名前空間化されます。 - 圧縮: none、lz4、zstd (レベル)、または gzip (「互換モード」)。JSON マニフェストが デバイス、パッケージ (アプリラベルを含む)、項目、権限を記録します。
-
ageによるポータブルな暗号化 (keygen)、加えてすべての暗号化バックアップ内に同梱される PC RECOVERY ガイドにより、モジュールなしでどこでも復号して展開できます。
宛先とクラウド:
- 宛先: add/list/test/delete (ローカル、rclone リモート、restic repo、およびオプトインの Google Drive コンパニオン)。資格情報は難読化して保存され、決して平文にはなりません。
- UI/API から rclone リモートを作成 (
remote-add/remote-list/remote-del) できるため、あらゆる クラウドバックエンド (SFTP、SMB、WebDAV、FTP、S3、Google Drive など) にrclone.confを手で 編集することなく到達できます。 - Google Drive は 2 通り: rclone 経由 (Google Cloud アカウント不要) またはオプトインの headless
コンパニオンアプリ (
ru.vd171.vdbackup)。後者は HMA-OSS による秘匿の必須通知を伴います。 - ネットワークポリシー: クラウド転送が任意の接続、Wi-Fi のみ、または モバイルデータのみを使用できるかを選択。手動およびスケジュールされたジョブに適用されます。ローカル宛先は対象外です。
移行 (インポート):
- Neo-Backup からのインポート。パスワードで暗号化されたバックアップを含みます (AES-256-GCM は dex ヘルパーによって復号され、WebUI がパスワードを求めます)。
- Android-DataBackup からのインポート (APK のインストール、user/user_de/data アーカイブの展開、再マッピング)。
- いずれも複数のデバイスにわたる実際のバックアップに対して検証済み。
整合性と安全性:
- 忠実な wipe-then-extract 復元。アーカイブごとの sha256 検証 (Full ではデフォルトでオン、 Snapshot ではリポジトリの整合性チェック)、dry-run、および restore-test。アーカイブは完全性の ために読み戻されます。破損したアーカイブや無効なパッケージ名が破壊的な復元を引き起こすことは 決してなく、リモート転送の失敗は報告され、決して黙殺されません。
- 選択的復元: backup が保持する項目 (APK、data、保護データ、OBB、外部、メディア) の任意の一部を 復元でき、デフォルトではすべてが選択されます。
- UI/API からの backup の削除 (
delete-backup) と、手動 backup の keep-last-N リテンション (prune)。すべての削除、復元、prune、スケジュール実行は、アプリ内で閲覧できるローカルの JSON 監査ログに書き込まれます。 - Runtime 権限と AppOps はマニフェストに取り込まれ、復元時に再適用されます。インストール元 (installerPackageName) と有効/無効の状態も取り込まれ、復元時に再適用されます。
- インストール元の偽装: デフォルトでは、復元したアプリはインストール元として Play ストアを報告します (インストールセッション経由でインストール時に設定されます。復元したアプリはそうしないとサイド ロードされたように見えるため)。全体的にも復元ごとにも切り替え可能で、オフのときは取り込んだソース が保たれます。高度なオプトインの「deep」モードはさらに、システムのパッケージデータベースを編集して 呼び出し元パッケージとパッケージソースも偽装し (先に byte-exact で backup、リブート後に適用)、 アプリが完全にストアからインストールされたように見せます。
- SSAID (デバイスの ANDROID_ID): 厳密にオプトインで目立つように明示されます。ABX 対応。ライブ ファイルは上書きの前に必ず byte-exact でバックアップされ、rollback に備えます。再起動後に 適用されます。
- 復元とインポートは、続行する前に「これは現在のアプリデータを上書きします」という 明示的な承認を必要とします。
スケジューリングと自動化:
- keep-N リテンション付きのスケジュールされた backup。Schedule タブから管理します (アプリごと、 毎日/毎時/毎週、任意の時刻、mode、宛先)。
- インストールまたは更新時の自動バックアップ: オプトインのオブザーバーがスケジューラの heartbeat に 便乗し、新しいまたは更新されたアプリをバックグラウンドで backup します。初回の実行でのみ seed する ため、有効にしてもすべてを一度に backup することはありません。除外アプリ (ブロックリスト) の設定を 尊重します。
特殊 (システム全体) バックアップ:
- メッセージ (SMS/MMS)、連絡先と通話履歴、Wi-Fi と Bluetooth を、raw で忠実にアーカイブされた システムデータとして backup します (アプリの backup と同じ SELinux/xattr の保全と任意の age 暗号化)。復元は同一デバイス/同一 ROM で忠実、リブート必須で、目立つ上書き・リブートの承認の 背後にゲートされます。
- raw アーカイブと並ぶ任意のポータブルエクスポート: メッセージ、通話履歴、連絡先は開ける JSON としても書き込まれます (同梱の sqlite3 でプロバイダのデータベースから直接読み取るため、カンマや 改行を含むメッセージ本文もそのまま残ります)。デバイスをまたいだ、モジュール不要のコピーが得られます。 backup が暗号化されているときはポータブルなコピーも暗号化されるため、アーカイブが守る内容を漏らす ことは決してありません。
システム統合:
- 実際の /system パーティションに触れずに、インストール済みアプリをシステムアプリとしてマウント: VDBackup はアプリの APK を自身のオーバーレイのサブモジュールに staging し、root マネージャーが それをマウントします。KernelSU の NoMount があればライブで注入され (リブートなし)、なければ次回 ブート時に適用されるため、NoMount がインストールされていることに決して依存しません。通常または 特権の配置を選べます。
WebUI:
- アプリ一覧は実際のローカライズされたアプリ名 (APK から解決されるため、アンインストール後も 残ります) をパッケージと並べて表示し、遅延読み込み・キャッシュされたアイコンを角丸で adaptive 対応のタイルとして描画します。
- アプリをタップするとそのバックアップ履歴が開き、過去のバックアップを復元できます。Backups タブは 名前とパッケージを別々の行に表示し、バックアップごとに詳細シートを開きます (バージョン、 インストール元、状態、日付、サイズ、項目、権限数、デバイス)。
- アプリ一覧をユーザー/システム/すべてでフィルタし、名前またはパッケージで並べ替えられます。複数の アプリを選んで一括で backup でき、自動およびスケジュールの backup からアプリを除外できます。
- 含める内容を選び、backup ごとに verify や dry-run を切り替えられます。稼働中のアプリに触れずに staging へ展開するテスト専用の復元も選べます。
- ライト/ダークテーマ、アクセントカラーのピッカー、言語セレクター、About タブ (姉妹プロジェクトと 同梱バイナリの監査マニフェスト付き)、ローカル宛先用のフォルダピッカー、即時フィードバック付きの ローカライズされた操作進捗、および最新の in-app ダイアログ (システムの alert/confirm ポップアップなし)。
- 戻るボタンのナビゲーションは前のタブに戻り、まずダイアログを閉じます。ダイアログはフローティングで、 アプリは再び開いてもライブの操作に再アタッチして存続します。
AI フレンドリーと i18n:
- 文書化された JSON 制御サーフェスにより、エージェントがすべての操作を headless で管理できます
(
docs/AI-AGENTS.md)。WebUI はその API の一クライアントにすぎません。 - README とすべてのプロジェクト文書は 21 の標準言語に翻訳されており
(
docs/<lang>/)、文書は wiki にミラーされます。 - 充実したアプリ一覧と Neo の復号は、root として駆動される dex ヘルパー
(
IPackageManagervia ServiceManager) を通じて実行されるため、ActivityThread がハングする場所でも動作します。