Repository navigation
it 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 | 中文
Tutte le modifiche rilevanti di VDBackup sono documentate qui. Solo in inglese.
Prima versione pubblica. Un modulo WebUI per KernelSU/APatch/Magisk che esegue il backup e il ripristino di app e dei loro dati interamente come root, senza richiesta di concessione.
Motore e formati:
- Motore di backup/ripristino eseguito come processo root distaccato (
setsid): sopravvive alla chiusura della WebUI o del gestore di root, e l'interfaccia si riaggancia al progresso in tempo reale tramiteopid. - Tre modalità di backup: Full (tar.zst, locale o remoto), Snapshot (repository restic, cifrato e deduplicato) e Mirror (sincronizzazione 1:1 rclone/rsync). Gli APK sono sempre compressi, anche in un mirror.
- Elementi per app: APK (base + splits),
data,data_de,obb, esterno e media. Il contesto SELinux, uid/gid, i modi e xattr/caps vengono preservati; il ripristino usa una sessionepm installe rimappa proprietario/contesto all'uid attivo. - Consapevole del multi-utente (multi-user) in ogni fase. I backup sono archiviati sotto
/sdcard/VDBackup(per utente), fuori da/data/adb, così da non essere leggibili prima del primo sblocco; ogni destinazione è isolata sotto<path>/vdbackup. - Compressione: nessuna, lz4, zstd (livelli) o gzip ("modalità di compatibilità"). Un manifest JSON registra il dispositivo, il pacchetto (inclusa l'etichetta dell'app), gli elementi e i permessi.
- Cifratura portatile con
age(keygen), oltre a una guida di RIPRISTINO su PC inclusa in ogni backup cifrato, così da poter essere decifrato ed estratto ovunque, senza il modulo.
Destinazioni e cloud:
- Destinazioni: aggiungi/elenca/prova/elimina (locale, remoto rclone, repository restic e un companion opzionale di Google Drive); le credenziali sono archiviate offuscate, mai in chiaro.
- Creare remote rclone dall'interfaccia/API (
remote-add/remote-list/remote-del), così che qualsiasi backend cloud (SFTP, SMB, WebDAV, FTP, S3, Google Drive e altro) sia raggiungibile senza modificarerclone.confa mano. - Google Drive in due modi: via rclone (senza account Google Cloud) o tramite l'app companion headless
opzionale (
ru.vd171.vdbackup), che riporta un avviso obbligatorio di occultamento con HMA-OSS. - Politica di rete: scegliere se i trasferimenti cloud possono usare qualsiasi connessione, solo Wi-Fi o solo dati mobili; applicata ai job manuali e pianificati. Le destinazioni locali sono esenti.
Importazione (migrazione):
- Importare da Neo-Backup, inclusi i backup cifrati con password (AES-256-GCM decifrato dall' helper dex; la WebUI richiede la password).
- Importare da Android-DataBackup (installare gli APK, estrarre gli archivi user/user_de/data, rimappare).
- Entrambi convalidati contro backup reali su più dispositivi.
Integrità e sicurezza:
- Ripristino fedele di tipo cancella-e-estrai; verifica sha256 per archivio (attiva per default su Full, e un controllo di integrità del repository per Snapshot), dry-run e restore-test. Gli archivi vengono riletti per verificarne la completezza; un archivio corrotto o un nome di pacchetto non valido non possono mai innescare un ripristino distruttivo, e i fallimenti di trasferimento remoto vengono segnalati, mai silenziosi.
- Ripristino selettivo: ripristina qualsiasi sottoinsieme degli elementi contenuti in un backup (APK, data, dati protetti, OBB, esterno, media), tutti selezionati per default.
- Elimina i backup dall'interfaccia/API (
delete-backup) e ritenzione keep-last-N per i backup manuali (prune); ogni eliminazione, ripristino, potatura ed esecuzione pianificata viene scritta in un log di audit JSON locale consultabile nell'app. - Permessi di runtime e AppOps catturati nel manifest e riapplicati al ripristino. Vengono catturati anche l'origine di installazione (installerPackageName) e lo stato abilitato/disabilitato, e riapplicati al ripristino.
- Spoofing dell'origine di installazione: per default un'app ripristinata riporta il Play Store come origine di installazione (impostata al momento dell'installazione tramite la sessione di installazione, poiché altrimenti un'app ripristinata sembra caricata lateralmente); commutabile globalmente e per singolo ripristino, e quando è disattivato viene mantenuta l'origine catturata. Una modalità "deep" avanzata opt-in forgia inoltre il pacchetto e l'origine iniziatori modificando il database dei pacchetti di sistema (prima un backup byte-esatto, si applica dopo un riavvio) così che l'app sembri completamente installata dallo store.
- SSAID (ANDROID_ID del dispositivo): strettamente opt-in e segnalato in modo evidente; consapevole di ABX; il file attivo viene sempre salvato byte per byte prima di qualsiasi sovrascrittura, per il rollback; si applica dopo un riavvio.
- Il ripristino e l'importazione richiedono un riconoscimento esplicito "questo sovrascrive i dati attuali dell'app" prima di procedere.
Pianificazione e automazione:
- Backup pianificati con ritenzione keep-N, gestiti da una scheda Schedule (per app, giornaliero/ orario/settimanale con un orario opzionale, modalità e destinazione).
- Backup automatico all'installazione o all'aggiornamento: un osservatore opt-in cavalca il battito dello scheduler, esegue il backup delle app nuove o aggiornate in background, e si limita a inizializzare alla prima esecuzione così che abilitarlo non esegua mai il backup di tutto in una volta. Rispetta l'impostazione delle app escluse (blocklist).
Backup speciali (a livello di sistema):
- Esegue il backup di messaggi (SMS/MMS), contatti e registro chiamate, Wi-Fi e Bluetooth come dati di sistema grezzi e archiviati fedelmente (stessa conservazione SELinux/xattr e stessa cifratura age opzionale dei backup di app). Il ripristino è fedele sullo stesso dispositivo/stessa ROM, richiede un riavvio, ed è protetto da un riconoscimento prominente di sovrascrittura-e-riavvio.
- Esportazione portatile opzionale accanto all'archivio grezzo: messaggi, registro chiamate e contatti vengono scritti anche come JSON apribile (letto con il sqlite3 impacchettato direttamente dai database dei provider, così che i corpi dei messaggi con virgole o a capo sopravvivano intatti), fornendo una copia multi-dispositivo che non necessita del modulo. La copia portatile è cifrata anch'essa quando il backup è cifrato, così da non far mai trapelare ciò che l'archivio protegge.
Integrazione di sistema:
- Monta un'app installata come app di sistema senza toccare la partizione /system reale: VDBackup prepara l'APK (o gli APK) dell'app in un proprio sottomodulo overlay, che il gestore root monta. Con NoMount su KernelSU viene iniettato a caldo (senza riavvio); altrimenti si applica al boot successivo, così da non dipendere mai dall'avere NoMount installato. Scegli il posizionamento regolare o privilegiato.
WebUI:
- L'elenco delle app mostra il vero nome localizzato dell'app (risolto dall'APK, così da sopravvivere a una disinstallazione) accanto al pacchetto, con icone caricate su richiesta e in cache, rese come riquadri arrotondati e consapevoli delle icone adattive.
- Tocca un'app per aprirne la cronologia dei backup e ripristinare qualsiasi backup precedente; la scheda Backups mostra nome e pacchetto su righe separate e apre un foglio di dettagli per ogni backup (versione, origine di installazione, stato, data, dimensione, elementi, conteggio dei permessi, dispositivo).
- Filtra l'elenco delle app per utente/sistema/tutte e ordina per nome o pacchetto; seleziona più app e eseguine il backup in un unico batch; escludi app dai backup automatici e pianificati.
- Scegli cosa includere e attiva verify o dry-run per singolo backup; scegli un ripristino di solo test che estrae in staging senza toccare l'app in uso.
- Tema chiaro/scuro, un selettore del colore d'accento, selettore della lingua, una scheda Info (con i progetti fratelli e il manifesto di audit dei binari impacchettati), un selettore di cartelle per la destinazione locale, progresso dell'operazione localizzato con feedback istantaneo e dialoghi moderni nell'app (nessun pop-up di alert/confirm del sistema).
- La navigazione con il tasto Indietro torna alla scheda precedente e chiude prima i dialoghi; i dialoghi sono fluttuanti e l'app sopravvive alla riapertura riagganciandosi alle operazioni in tempo reale.
AI-friendly e i18n:
- Una superficie di controllo JSON documentata affinché gli agenti amministrino ogni azione in modo headless
(
docs/AI-AGENTS.md); la WebUI è solo uno dei client di quell'API. - Il README e tutta la documentazione del progetto sono tradotti nelle 21 lingue standard
(
docs/<lang>/), con i docs rispecchiati sul wiki. - L'elenco ricco delle app e la decifratura di Neo passano attraverso un helper dex pilotato come root
(
IPackageManagertramite ServiceManager), così che funzionino dove ActivityThread si blocca.