Repository navigation
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 документируются здесь. Только на английском.
Первый публичный выпуск. Модуль 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 зависает.