Skip to content

ko CHANGELOG

github-actions[bot] edited this page Nov 8, 2026 · 4 revisions

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.03.2

수정:

  • 기기의 클라우드 로그인 페이지가 로그인에 성공했는데도 항상 "Sign-in failed"를 표시했습니다. 이제 실제 결과를 표시합니다.
  • 저장된 백업을 이제 파일 관리자로 열 수 있습니다. 앱별 백업 폴더가 소유자 전용이라 root 파일 관리자도 들어갈 수 없었지만, 이제 /sdcard/VDBackup의 나머지처럼 접근할 수 있습니다.

클라우드 대상:

  • 선택적 Google Drive 컴패니언 앱이 이제 빌드되어 포함되므로, rclone 외에 기기의 컴패니언(기기 계정, 수동 토큰 붙여넣기 없음)을 통해 Google Drive를 사용할 수 있습니다.

인터페이스:

  • 백업 대화상자에 대상 선택기가 생겨, 설정에서 기본 대상을 먼저 바꾸지 않고도 백업을 선택한 클라우드나 원격 대상으로 보낼 수 있습니다.
  • 앱은 열릴 때 새 버전을 확인하고(시간당 최대 한 번) 있을 때만 업데이트 배너를 표시합니다. 최신이거나 오프라인이면 조용합니다.

v1.03.1

새로운 백업 범위:

  • 새로운 특수 백업 범주: 캘린더(캘린더 provider와 이식 가능한 calendar.json 내보내기), 배경화면 (홈 및 잠금 화면 배경화면), 비공개 DNS(모드와 지정자), 그리고 시스템 설정(system/global/secure 설정의 전체 덤프). 시스템 설정은 opt-in이며 복원 시 기기 전역 설정을 덮어쓰므로, SSAID처럼 명시적 동의와 완전한 감사 항목으로 게이트됩니다.
  • 독립 폴더 및 파일 백업: 임의의 절대 경로(공유 저장소나 앱 데이터)를 압축되고 manifest로 봉인된 아카이브로 백업하고, 같은 경로로 복원합니다. 복원에는 명시적 확인이 필요합니다.

더 안전한 복원:

  • 무엇이든 쓰기 전에 모든 아카이브가 검사됩니다: 내용이 대상 밖을 가리키는 백업(절대 경로나 .. 구성 요소)은 거부되므로, root로 실행되는 복원이 대상 밖에 쓰도록 속을 수 없습니다.

진행 상황과 예약:

  • 실시간 진행 상황이 이제 백업 중 전송 속도, ETA, item 카운터를 표시하며, 클라우드 업로드를 위한 checksum 검증 단계와 "공간 부족" 사전 점검을 추가로 제공합니다.
  • 예약 작업에 조건을 걸 수 있습니다: Wi-Fi에서만, 충전 중에만, 배터리 수준 이상에서만, 또는 선택한 요일에만 실행; 기기가 심각하게 뜨거운 동안에도 예약 작업은 건너뜁니다. 건너뛴 작업은 다음 tick에 다시 시도됩니다.

클라우드 대상:

  • UI에서 모든 rclone 백엔드를 연결: 클라우드 원격 드롭다운이 인기 제공자(Google Drive, Dropbox, OneDrive, Box, pCloud, Mega, Backblaze B2, S3, SFTP, WebDAV, FTP, SMB)와, 다른 모든 rclone 백엔드 이름과 그 key=value 매개변수를 입력하는 "Custom (advanced)" 옵션을 제공하므로, rclone의 모든 백엔드에 도달할 수 있습니다.
  • 기기에서 직접 로그인(PC 불필요): 브라우저 로그인이 필요한 제공자(Google Drive, Dropbox, OneDrive, Box, pCloud)에는 휴대폰 자체 브라우저로 제공자의 동의 페이지를 여는 "Authorize in browser" 버튼이 있습니다; 승인하면 앱으로 돌아오고 원격이 자동으로 저장되며, 토큰은 기기에서 캡처됩니다. 토큰을 수동으로 붙여넣는 방법도 폴백으로 남아 있습니다.

인터페이스:

  • 조절 가능한 인터페이스 스케일(드래그할 수 있는 슬라이더)이 전체 인터페이스 크기를 조정하여 서로 다른 픽셀 밀도의 화면에 맞게 합니다; 100%가 기본값이며 변경되지 않습니다.
  • 이제 인터페이스가 아랍어와 페르시아어에서는 오른쪽에서 왼쪽으로 렌더링됩니다.
  • 백업 개수와 저장 공간 막대, 상태 배지, 해시와 경로의 클립보드 복사, Android 스타일 토글 스위치, 그리고 "Check for updates" 동작이 있는 홈 개요.
  • 활동 로그는 즉시 열리는 전체 화면이며, 리포트에 첨부할 수 있는 로그 파일을 저장하는 "Export logs" 동작이 있습니다.

수정:

  • 복원과 import가 이제 동봉된 tar가 --no-absolute-names 옵션을 받아들이지 않는 기기에서도 더 이상 실패하지 않습니다; 아카이브 안전성 검사는 그 옵션과 무관합니다.
  • "Check for updates"는 HTTP 클라이언트가 동봉되지 않은 곳에서도 동봉된 rclone으로 폴백하여 작동합니다; 그리고 활동 로그가 더 이상 여는 데 오래 걸리지 않습니다.

v1.01

첫 공개 릴리스. 앱과 앱 데이터를 권한 요청 창 없이 전적으로 root로 백업하고 복원하는 KernelSU/APatch/Magisk WebUI 모듈입니다.

엔진과 포맷:

  • 백업/복원 엔진은 분리된 root 프로세스(setsid)로 실행됩니다. WebUI나 root 관리자를 닫아도 계속 동작하며, UI는 opid로 실시간 진행 상황에 다시 연결됩니다.
  • 세 가지 백업 모드: Full(tar.zst, 로컬 또는 원격), Snapshot(restic 저장소, 암호화 및 중복 제거), Mirror(rclone/rsync 1:1 동기화). APK는 미러에서도 항상 압축됩니다.
  • 앱별 항목: APK(base + splits), data, data_de, obb, 외부 저장소 및 미디어. SELinux 컨텍스트, uid/gid, 모드, xattr/caps가 보존됩니다. 복원은 pm install 세션을 사용하고 소유권/컨텍스트를 현재 uid에 맞게 다시 매핑합니다.
  • 전반적으로 사용자별(다중 사용자)을 인식합니다. 백업은 /data/adb 바깥의 /sdcard/VDBackup(사용자별)에 저장되므로 최초 잠금 해제 전에는 읽을 수 없으며, 모든 대상은 <path>/vdbackup 아래로 네임스페이스가 지정됩니다.
  • 압축: none, lz4, zstd(레벨), gzip("호환 모드"). JSON 매니페스트에 기기, 패키지(앱 레이블 포함), 항목, 권한이 기록됩니다.
  • age(keygen)를 이용한 이식 가능한 암호화와 함께, 모듈 없이도 어디서든 복호화하고 추출할 수 있도록 모든 암호화 백업 안에 PC RECOVERY 가이드가 포함됩니다.

대상과 클라우드:

  • 대상: 추가/목록/테스트/삭제(로컬, rclone 원격, restic 저장소, 그리고 선택적 Google Drive 컴패니언). 자격 증명은 숨김 처리되어 저장되며 절대 평문으로 저장되지 않습니다.
  • UI/API(remote-add/remote-list/remote-del)에서 rclone 원격을 생성할 수 있어, rclone.conf를 수동으로 편집하지 않고도 모든 클라우드 백엔드(SFTP, SMB, WebDAV, FTP, S3, Google Drive 등)에 접근할 수 있습니다.
  • Google Drive는 두 가지 방식: rclone 경유(Google Cloud 계정 불필요) 또는 선택적 헤드리스 컴패니언 앱(ru.vd171.vdbackup). 컴패니언 앱에는 필수 HMA-OSS 숨김 안내가 포함됩니다.
  • 네트워크 정책: 클라우드 전송에 모든 연결, Wi-Fi 전용, 또는 모바일 데이터 전용 중 무엇을 사용할지 선택합니다. 수동 및 예약 작업 모두에 적용됩니다. 로컬 대상은 예외입니다.

가져오기(마이그레이션):

  • Neo-Backup에서 가져오기. 비밀번호로 암호화된 백업 포함(dex 헬퍼가 AES-256-GCM을 복호화하며, WebUI가 비밀번호를 요청합니다).
  • Android-DataBackup에서 가져오기(APK 설치, user/user_de/data 아카이브 추출, 재매핑).
  • 두 가지 모두 여러 기기의 실제 백업에 대해 검증되었습니다.

무결성과 안전성:

  • 충실하게 비운 뒤 추출하는 복원, 아카이브별 sha256 검증(Full에서 기본 활성, Snapshot에서는 저장소 무결성 검사), dry-run, 복원 테스트. 완전성을 위해 아카이브를 다시 읽습니다. 손상된 아카이브나 유효하지 않은 패키지 이름은 절대 파괴적 복원을 유발할 수 없으며, 원격 전송 실패는 조용히 넘어가지 않고 반드시 보고됩니다.
  • 선택적 복원: 백업이 담고 있는 항목의 어떤 부분집합이든 복원합니다(APK, data, 보호 데이터, OBB, external, media), 기본적으로 모두 선택됩니다.
  • UI/API(delete-backup)에서 백업을 삭제하고 수동 백업에 대해 최근 N개 유지 보존(prune)을 적용합니다. 모든 삭제, 복원, 정리, 예약 실행은 앱에서 볼 수 있는 로컬 JSON 감사 로그에 기록됩니다.
  • 런타임 권한과 AppOps가 매니페스트에 기록되어 복원 시 다시 적용됩니다. 설치 출처(installerPackageName)와 사용/사용 안 함 상태도 기록되어 복원 시 다시 적용됩니다.
  • 설치 출처 위조: 기본적으로 복원된 앱은 Play Store를 설치 출처로 보고합니다(설치 세션을 통해 설치 시점에 설정되며, 그렇지 않으면 복원된 앱이 사이드로드된 것처럼 보이기 때문). 전역으로 그리고 복원마다 전환할 수 있으며, 꺼져 있으면 기록된 출처가 유지됩니다. 고급 옵트인 "deep" 모드는 추가로 시스템 패키지 데이터베이스를 편집하여 초기 패키지와 패키지 출처까지 위조하므로(먼저 바이트 단위로 정확히 백업, 재부팅 후 적용) 앱이 완전히 스토어에서 설치된 것처럼 보입니다.
  • SSAID(기기 ANDROID_ID): 엄격하게 선택 사항이며 눈에 띄게 표시됩니다. ABX를 인식하고, 덮어쓰기 전에 실제 파일을 항상 바이트 단위로 정확히 백업하여 롤백에 대비하며, 재부팅 후에 적용됩니다.
  • 복원과 가져오기는 진행하기 전에 "이 작업은 현재 앱 데이터를 덮어씁니다"라는 명시적 확인을 요구합니다.

스케줄링 및 자동화:

  • keep-N 보존을 적용한 예약 백업, Schedule 탭에서 관리됩니다(앱별, 매일/매시간/매주, 선택적 시각, 모드, 대상).
  • 설치 또는 업데이트 시 자동 백업: 옵트인 관찰자가 스케줄러 하트비트에 올라타 새로 설치되거나 업데이트된 앱을 백그라운드에서 백업하며, 첫 실행에서만 시드하므로 활성화해도 모든 것을 한꺼번에 백업하지 않습니다. 제외 앱(차단 목록) 설정을 존중합니다.

특수(시스템 전역) 백업:

  • 메시지(SMS/MMS), 연락처와 통화 기록, Wi-Fi와 Bluetooth를 원본 그대로 충실하게 아카이브한 시스템 데이터로 백업합니다(앱 백업과 동일한 SELinux/xattr 보존과 선택적 age 암호화). 복원은 같은 기기/같은 ROM에서 충실하며, 재부팅이 필요하고, 눈에 띄는 덮어쓰기 및 재부팅 확인 뒤에 막혀 있습니다.
  • 원본 아카이브와 함께 선택적 이식형 내보내기: 메시지, 통화 기록, 연락처가 열 수 있는 JSON으로도 기록됩니다(번들된 sqlite3로 provider 데이터베이스에서 직접 읽으므로 쉼표나 줄바꿈이 있는 메시지 본문도 온전히 유지됨). 모듈이 필요 없는 기기 간 사본을 제공합니다. 이식형 사본은 백업이 암호화되면 함께 암호화되므로, 아카이브가 보호하는 것을 결코 누설하지 않습니다.

시스템 통합:

  • 실제 /system 파티션을 건드리지 않고 설치된 앱을 시스템 앱으로 마운트합니다: VDBackup은 앱의 APK를 자체 오버레이 서브모듈로 스테이징하고, root 매니저가 이를 마운트합니다. KernelSU에서 NoMount가 있으면 라이브로 주입되며(재부팅 없음), 그렇지 않으면 다음 부팅 시 적용되므로 NoMount가 설치되어 있는지에 결코 의존하지 않습니다. 일반 또는 권한 있는 배치를 선택하세요.

WebUI:

  • 앱 목록은 패키지와 함께 실제 현지화된 앱 이름(APK에서 확인하므로 제거된 뒤에도 유지됨)을 표시하며, 지연 로드되고 캐시된 아이콘을 둥글고 어댑티브를 인식하는 타일로 렌더링합니다.
  • 앱을 탭하면 백업 기록이 열려 이전 백업을 복원할 수 있습니다. Backups 탭은 이름과 패키지를 별도 줄에 표시하고, 백업마다 세부 정보 시트(버전, 설치 출처, 상태, 날짜, 크기, 항목, 권한 수, 기기)를 엽니다.
  • 앱 목록을 사용자/시스템/전체로 필터링하고 이름이나 패키지로 정렬합니다. 여러 앱을 선택해 한 번에 일괄 백업하고, 자동 및 예약 백업에서 앱을 제외합니다.
  • 포함할 항목을 선택하고 백업마다 verify나 dry-run을 전환합니다. 라이브 앱을 건드리지 않고 스테이징으로 추출하는 테스트 전용 복원을 선택합니다.
  • 라이트/다크 테마, 강조 색상 선택기, 언어 선택기, About 탭(자매 프로젝트 및 번들 바이너리 감사 매니페스트 포함), 로컬 대상용 폴더 선택기, 즉각적인 피드백이 있는 현지화된 작업 진행 표시, 그리고 현대적인 인앱 대화상자(시스템 alert/confirm 팝업 없음).
  • 뒤로 가기 버튼 내비게이션은 이전 탭으로 돌아가고 대화상자를 먼저 닫습니다. 대화상자는 플로팅이며, 앱은 라이브 작업에 다시 붙어 다시 열어도 유지됩니다.

AI 친화성과 i18n:

  • 에이전트가 모든 작업을 헤드리스로 관리할 수 있도록 문서화된 JSON 제어 표면(docs/AI-AGENTS.md). WebUI는 그 API의 한 클라이언트일 뿐입니다.
  • README와 모든 프로젝트 문서가 21개 표준 언어(docs/<lang>/)로 번역되었으며, 문서는 위키에도 미러링됩니다.
  • 풍부한 앱 목록 표시와 Neo 복호화는 root로 구동되는 dex 헬퍼(ServiceManager를 통한 IPackageManager)를 거치므로, ActivityThread가 멈추는 환경에서도 동작합니다.

이 문서는 Claude (Anthropic)로 생성되었으며 VD171이 관리합니다. 수정과 개선을 환영합니다 - CONTRIBUTING.md를 참고하세요.

Clone this wiki locally