Skip to content

ru 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 документируются здесь. Только на английском.

v1.01

Первый публичный выпуск. Модуль WebUI для KernelSU/APatch/Magisk, который создаёт резервные копии и восстанавливает приложения и их данные полностью от имени root, без запроса на предоставление прав.

Движок и форматы:

  • Движок резервного копирования/восстановления запускается как отсоединённый root-процесс (setsid): он переживает закрытие WebUI или менеджера root, а интерфейс заново подключается к текущему ходу работы по opid.
  • Три режима резервного копирования: Full (tar.zst, локально или удалённо), Snapshot (репозиторий restic, зашифрованный и дедуплицированный) и Mirror (синхронизация 1:1 через rclone/rsync). APK всегда сжимаются, даже в зеркале.
  • Элементы по приложению: APK (base + split-части), data, data_de, obb, внешние и медиа. Контекст SELinux, uid/gid, режимы и xattr/caps сохраняются; восстановление использует сессию pm install и переназначает владельца/контекст на действующий uid.
  • Учёт нескольких пользователей (multi-user) повсюду. Резервные копии хранятся в /sdcard/VDBackup (по пользователям), вне /data/adb, поэтому они недоступны для чтения до первой разблокировки; каждое место назначения помещается в пространство имён <path>/vdbackup.
  • Сжатие: без сжатия, lz4, zstd (уровни) или gzip ("режим совместимости"). Манифест JSON записывает устройство, пакет (включая метку приложения), элементы и разрешения.
  • Переносимое шифрование с помощью age (генерация ключей), плюс руководство по ВОССТАНОВЛЕНИЮ на ПК, поставляемое внутри каждой зашифрованной резервной копии, чтобы её можно было расшифровать и извлечь где угодно, без модуля.

Места назначения и облако:

  • Места назначения: добавить/список/проверить/удалить (локальное, удалённое rclone, репозиторий restic и опциональный компаньон Google Drive); учётные данные хранятся в скрытом виде, никогда не в открытом.
  • Создание удалённых хранилищ rclone из интерфейса/API (remote-add/remote-list/remote-del), так что любой облачный бэкенд (SFTP, SMB, WebDAV, FTP, S3, Google Drive и другие) доступен без ручного редактирования rclone.conf.
  • Google Drive двумя способами: через rclone (без учётной записи Google Cloud) или через опциональное безголовое приложение-компаньон (ru.vd171.vdbackup), которое несёт обязательное уведомление о сокрытии через HMA-OSS.
  • Сетевая политика: выберите, могут ли облачные передачи использовать любое соединение, только Wi-Fi или только мобильные данные; применяется к ручным и запланированным заданиям. Локальные места назначения исключены.

Импорт миграции:

  • Импорт из Neo-Backup, включая резервные копии, зашифрованные паролем (AES-256-GCM расшифровывается dex-помощником; WebUI запрашивает пароль).
  • Импорт из Android-DataBackup (установка APK, извлечение архивов user/user_de/data, переназначение).
  • Оба проверены на реальных резервных копиях на разных устройствах.

Целостность и безопасность:

  • Точное восстановление по принципу "стереть, затем извлечь"; проверка sha256 по каждому архиву (по умолчанию включена для Full, и проверка целостности репозитория для Snapshot), пробный прогон и тест восстановления. Архивы перечитываются для проверки полноты; повреждённый архив или недопустимое имя пакета никогда не могут запустить разрушительное восстановление, а сбои удалённой передачи сообщаются, никогда не замалчиваются.
  • Выборочное восстановление: восстанавливайте любое подмножество элементов, которые содержит резервная копия (APK, data, защищённые данные, OBB, external, media), все выбраны по умолчанию.
  • Удаление резервных копий из интерфейса/API (delete-backup) и хранение последних N для ручных копий (prune); каждое удаление, восстановление, обрезка и запланированный запуск записывается в локальный журнал аудита в формате JSON, который можно просмотреть в приложении.
  • Разрешения времени выполнения и AppOps фиксируются в манифесте и повторно применяются при восстановлении. Источник установки (installerPackageName) и состояние включено/выключено также фиксируются и повторно применяются при восстановлении.
  • Подделка источника установки: по умолчанию восстановленное приложение сообщает, что источник его установки - Play Store (задаётся во время установки через сессию установки, так как восстановленное приложение иначе выглядит sideloaded); переключается глобально и для отдельного восстановления, а при отключении сохраняется зафиксированный источник. Расширенный опциональный режим "deep" дополнительно подделывает инициирующий пакет и источник пакета, редактируя системную базу пакетов (сначала байт-точная резервная копия, применяется после перезагрузки), так что приложение выглядит полностью установленным из магазина.
  • SSAID (ANDROID_ID устройства): строго опционально и заметно отмечено; с учётом ABX; действующий файл всегда резервируется байт в байт перед любой перезаписью для отката; применяется после перезагрузки.
  • Восстановление и импорт требуют явного подтверждения "это перезапишет текущие данные приложения" перед продолжением.

Планирование и автоматизация:

  • Запланированные резервные копии с хранением keep-N, управляемые с вкладки Schedule (на приложение, ежедневно/ежечасно/еженедельно с необязательным временем, режимом и назначением).
  • Автоматическое резервное копирование при установке или обновлении: опциональный наблюдатель использует heartbeat планировщика, резервирует новые или обновлённые приложения в фоне и лишь заполняет на первом запуске, так что его включение никогда не резервирует всё сразу. Учитывает настройку исключённых приложений (blocklist).

Особые (общесистемные) резервные копии:

  • Резервирование сообщений (SMS/MMS), контактов и журнала вызовов, Wi-Fi и Bluetooth как сырых, точно архивированных системных данных (то же сохранение SELinux/xattr и необязательное шифрование age, что и у копий приложений). Восстановление точно для того же устройства/той же ROM, требует перезагрузки и защищено заметным подтверждением перезаписи-и-перезагрузки.
  • Необязательный переносимый экспорт рядом с сырым архивом: сообщения, журнал вызовов и контакты также записываются как открываемый JSON (читается встроенным sqlite3 прямо из баз данных provider, так что тела сообщений с запятыми или переводами строк остаются целыми), давая межустройственную копию, не требующую модуля. Переносимая копия также шифруется, когда резервная копия зашифрована, поэтому она никогда не раскрывает то, что защищает архив.

Интеграция с системой:

  • Монтирование установленного приложения как системного без изменения реального раздела /system: VDBackup подготавливает APK приложения в собственном overlay-подмодуле, который монтирует менеджер root. С NoMount на KernelSU оно внедряется вживую (без перезагрузки); иначе применяется при следующей загрузке, поэтому никогда не зависит от того, установлен ли NoMount. Выберите обычное или привилегированное размещение.

WebUI:

  • Список приложений показывает настоящее локализованное имя приложения (извлечённое из APK, поэтому оно переживает удаление) рядом с пакетом, с лениво загружаемыми, кэшированными значками, отображаемыми как скруглённые плитки с учётом адаптивных иконок.
  • Нажмите на приложение, чтобы открыть историю его резервных копий и восстановить любую предыдущую копию; вкладка Backups показывает имя и пакет на отдельных строках и открывает лист подробностей для каждой резервной копии (версия, источник установки, состояние, дата, размер, элементы, количество разрешений, устройство).
  • Фильтрация списка приложений по пользовательским/системным/всем и сортировка по имени или пакету; выбор нескольких приложений и их резервирование одним пакетом; исключение приложений из автоматических и запланированных копий.
  • Выбор того, что включить, и переключение verify или dry-run для каждой копии; выбор восстановления только для теста, которое извлекает в staging, не затрагивая работающее приложение.
  • Светлая/тёмная тема, выбор акцентного цвета, выбор языка, вкладка About (с родственными проектами и манифестом аудита встроенных бинарных файлов), выбор папки для локального назначения, локализованный ход операций с мгновенной обратной связью и современные диалоги внутри приложения (без всплывающих окон системного alert/confirm).
  • Навигация кнопкой Назад возвращает на предыдущую вкладку и сначала закрывает диалоги; диалоги плавающие, и приложение переживает повторное открытие, снова подключаясь к работающим операциям.

Дружелюбие к ИИ и i18n:

  • Документированная поверхность управления в формате JSON, чтобы агенты могли администрировать каждое действие без интерфейса (docs/AI-AGENTS.md); WebUI - лишь один из клиентов этого API.
  • README и вся документация проекта переведены на 21 стандартный язык (docs/<lang>/), с зеркалированием документации в вики.
  • Богатый список приложений и расшифровка Neo выполняются через dex-помощник, запускаемый от имени root (IPackageManager через ServiceManager), поэтому они работают там, где ActivityThread зависает.

Clone this wiki locally