Android/ADB

ADB를 활용한 백업 및 복원

임베디드 친구 2025. 2. 22. 09:20
728x90
반응형

ADB를 활용한 백업 및 복원

개요

Android Debug Bridge(ADB)는 Android 기기와 PC 간의 원격 제어, 파일 전송, 디버깅 등의 다양한 기능을 제공하는 도구입니다. ADB를 활용하면 기기의 데이터를 백업하고 복원할 수 있으며, 특정 앱의 데이터를 개별적으로 저장할 수도 있습니다. 본 포스팅에서는 ADB를 활용한 다양한 백업 및 복원 방법을 설명하고, 예제 명령어를 통해 실습할 수 있도록 안내하겠습니다.


1. ADB를 이용한 전체 백업

ADB를 사용하면 기기의 데이터를 전체적으로 백업할 수 있습니다. 이를 위해 adb backup 명령어를 사용합니다.

1.1 전체 백업 명령어

아래 명령어를 실행하면 기기의 전체 데이터를 백업할 수 있습니다.

adb backup -apk -shared -all -f backup.ab
  • -apk : APK 파일을 포함하여 백업
  • -shared : 공유 저장소(예: 내부 저장소)에 저장된 파일을 포함
  • -all : 모든 애플리케이션과 데이터를 백업
  • -f backup.ab : 백업 파일을 backup.ab로 저장

위 명령어를 실행하면 기기에서 백업을 허용할지 확인하는 팝업이 나타납니다. 사용자가 확인하면 백업이 진행됩니다.

1.2 전체 백업 복원

백업한 데이터를 복원하려면 다음 명령어를 실행합니다.

adb restore backup.ab

이 명령어를 실행하면, ADB에서 backup.ab 파일을 사용하여 데이터를 기기에 복원합니다. 기기에서 복원 여부를 확인하는 팝업이 나타나며, 사용자가 허용하면 복원이 진행됩니다.


2. 특정 앱 데이터 백업

기기 전체가 아니라 특정 애플리케이션의 데이터를 백업하고 싶은 경우, tar 명령어를 이용하여 백업할 수 있습니다.

2.1 특정 앱의 데이터 백업

adb shell tar -cvf /sdcard/backup.tar /data/data/<package_name>
  • /sdcard/backup.tar : 백업 파일이 저장될 경로
  • /data/data/<package_name> : 백업할 애플리케이션의 데이터 경로

예를 들어, 특정 앱(예: com.example.app)의 데이터를 백업하려면 다음과 같이 실행합니다.

adb shell tar -cvf /sdcard/backup.tar /data/data/com.example.app

2.2 특정 앱의 데이터 복원

백업한 데이터를 복원하려면 다음 명령어를 실행합니다.

adb shell tar -xvf /sdcard/backup.tar -C /

이 명령어는 backup.tar 파일을 압축 해제하여 해당 위치에 데이터를 복원합니다.


3. 파티션 백업

기기의 특정 파티션을 백업하고 싶다면 dd 명령어를 사용할 수 있습니다.

3.1 시스템 파티션 백업

adb shell dd if=/dev/block/mmcblk0 of=/sdcard/system.img
  • if=/dev/block/mmcblk0 : 백업할 파티션 (예: mmcblk0)
  • of=/sdcard/system.img : 백업된 파일을 저장할 위치

3.2 시스템 파티션 복원

백업한 파티션을 복원하려면 다음 명령어를 사용합니다.

adb shell dd if=/sdcard/system.img of=/dev/block/mmcblk0

이 명령어는 백업된 system.img 파일을 원래 위치에 복원합니다.


4. 추가적인 백업 및 복원 방법

4.1 내부 저장소 파일 백업

내부 저장소 전체를 백업하려면 다음 명령어를 사용합니다.

adb pull /sdcard/ backup/

백업한 파일을 다시 기기로 복원하려면 다음 명령어를 실행합니다.

adb push backup/ /sdcard/

4.2 특정 폴더 백업 및 복원

예를 들어, Downloads 폴더를 백업하려면 다음과 같이 실행합니다.

adb pull /sdcard/Download/ ./

해당 폴더를 다시 복원하려면 다음 명령어를 사용합니다.

adb push ./Download/ /sdcard/

5. 마무리

이번 포스팅에서는 ADB를 활용하여 전체 데이터 백업 및 복원, 특정 앱 데이터 백업, 시스템 파티션 백업 등 다양한 방법을 살펴보았습니다. 이를 통해 기기 변경, 데이터 보호 등의 상황에서 유용하게 활용할 수 있습니다.

반응형