ADB를 통한 Android 설정 및 애플리케이션 백업 및 복원


30

ADB를 통해 모든 Android 설정 및 응용 프로그램을 백업하고 복원 할 수 있는지 묻고 싶습니다.

나는 시도했다 :

adb backup -all
adb: unable to connect for backup

다른 모든 명령이 작동하는 동안 작동하지 않습니다.

bmgr 을 사용할 수 있습니까?


win7-64에서 adb 1.0.29를 사용하고 있으며 adb: unable to open file ./backup.ab실행할 때 오류가 발생 adb backup -all합니다. 않는 adb devices안드로이드를 찾을?
k3b

예, 기기 ID를 볼 수 있습니다.

명령 줄에 여러 패키지 이름을 제출할 때 비슷한 문제가 발생했습니다. 문제는 백업 할 패키지 수가 너무 길다는 것입니다. 여러 명령 호출로 분할해야했습니다
Romuald Brunet

답변:


9

디버깅이 활성화되어 있고 장치가 연결되어 있는지 확인하십시오. 또한 실제로 장치 자체에서 "데이터 백업"단추를 선택해야합니다 (장치에 확인 필요). 장치에 이러한 화면이 표시되지 않으면 불행히도 기능이없는 사전 ICS (<4.0) 전화를 사용하고있을 가능성이 큽니다.

또한 bmgr솔루션이 아닙니다 . 장치에 셸하지 않고 응용 프로그램의 백업 에이전트에서 "백업"및 "복원"방법을 수동으로 실행 하여 백업 API 를 사용하여 자체 백업을 처리하는 앱을 테스트하는 도구입니다. 개발 머신과의 데이터 복사


예-문제는 4.0 이전의 휴대 전화에서 이전 버전의 Android였습니다. 감사!
nealmcb

실제로 설정 / 데이터가 포함되어 있습니까?
아무도

7

다음은 백업하는 명령입니다.

./adb shell ls -l -a | grep '^[^l]' | sed -e 's/^d.* \([^ ]*\)\r$/mkdir sav\/\1; .\/adb pull \/\1 sav\/\1/' -e 's/-.* \([^ ]*\)\r$/.\/adb pull \/\1 sav\/\1/' | /bin/bash
  1. 모든 파일을 나열
  2. 링크 무시
  3. ...에 대한
    • files : adb pull 명령을 출력합니다
    • 디렉토리 : dir을 만들고 (sth를 비우면) adb pull 명령을 출력합니다.
  4. bash에서 모든 것을 실행하십시오.

권한이 거부 된 일부 파일이 있습니다. 그러나이 백업은 장치를 루팅하기 위해 만들어 지므로 더 많은 권한을 얻을 수 없습니다. (


1
이것은 실제로 구형 안드로이드 (이 경우 진저 브레드 2.3.3)에서도 모든 파일 ( "권한 거부"비트를 뺀 것)을 백업하는 것으로 보입니다. 나는 (추가이 변형 사용 -p하는 PARAM을 mkdir일부 오류 메시지를 방지하고 제거하기 위해 ././adb)time adb shell ls -l -a | grep '^[^l]' | sed -e 's/^d.* \([^ ]*\)\r$/mkdir -p sav\/\1; adb pull \/\1 sav\/\1/' -e 's/-.* \([^ ]*\)\r$/adb pull \/\1 sav\/\1/' | /bin/bash
스테판 구리 콘

3
멋진 정규식 없이도 모든 파일의 재귀 백업을 수행하는 훨씬 간단한 방법은 "adb pull /"입니다.
JC Hulce 1

5

내가 당신을 올바르게 이해한다면, 이 링크 는 당신이 찾고있는 것일 수 있습니다. 요약:

1) 실행 adb devices확인 장치가 부착되어 있는지 확인 할 수 있습니다.

2) 실행 adb pull /data/app ./모두에게 앱의 APK를 잡아 현재 폴더에 넣어합니다.
a) 또는 adb pull /system/sd/app ./SD 카드에 앱을 가져 오려면 실행하십시오 .

3) 설정은 다양한 위치에 있으므로 동일한 위치를 찾아 같은 adb pull명령을 사용하십시오 .

그런 다음 링크는 Mac 또는 Windows 기반 복원 방법을 자세히 설명합니다.

또는 bmgr언급 한 명령이 몇 가지 간단한 명령 ( adb shell bmgr backup <package>백업 및 adb shell bmgr restore <package>복원) 과 함께 작동 하는 것처럼 보입니다 . 무엇을 더 찾고 있습니까?


1
Alexander Lucas가 아래 답변에서 언급 한 것처럼이 bmgr명령은 개발자가 앱 백업 / 복원을 테스트 할 수있는 도구입니다. 실제로 장치에서 데이터를 복사하지 않으므로 유용하지 않습니다.
PT

진저 브레드 장치와 ADB 1.0.30에없는 작업을 수행합니다pull: building file list... 0 files pulled. 0 files skipped.
스테판 구리 콘

당신의 adb pull의지 개인 응용 프로그램 데이터에 대한 비 뿌리 장치에없는 일. 그리고 bmgr제어 구글 백업 클라우드 전용입니다
Murmel

2

문제는 아마도 둘 이상의 장치 / 에뮬레이터가 연결되어 있기 때문일 수 있습니다.

adb devices하나 이상의 장치가 표시되는지 확인 하면 연결하지 못할 수 있습니다 specialy to emulators.

실행 adb usb은 다른 장치를 다시 시작하고 분리 /의 reconncet USB 케이블, 지금 실행

adb devices

하나의 장치 만 표시해야합니다.

지금하세요

adb backup -all

그리고 당신은 잘 가야합니다 :)


안드로이드 용 터미널 에뮬레이터를 통해 로컬로 명령을 사용하려면 어떻게해야합니까?
user2284570

2

SDK 업데이트를 실행하고 특히 Google USB 드라이버 확인란을 선택하고 SDK를 업데이트하십시오.

장치에서 USB 디버깅을 활성화하고 PC에 연결 한 후 드라이버 설치에 대한 프롬프트가 표시됩니다. 장치 관리자를 성공적으로 열고 전화기를 찾더라도 드라이버를 마우스 오른쪽 단추로 클릭하고 업데이트하여 Google USB 드라이버 폴더를 가리키고 드라이버를 SDK > Extras > Google USB업데이트하십시오.

그런 다음 장치에서 전체 백업을 가져올 수 있어야합니다.


이것은 내가 그것을 가질 때 나를 위해 문제를 해결했습니다. 드라이버는 문제가되지 않았지만 ADB 버전 자체는 너무 구식입니다.
AJ Henderson

1

백업에 필요한 GS4가 있으며 불행히도이 오류가 발생했습니다. 약간의 머리 긁힘 (및 맹세) 후 나는 당신에게 도움이되기를 희망하는 해결책을 찾았습니다. abd도움말 문서를 실행 하고 스크롤하여 이것을 찾을 수있었습니다 . -d"연결된 유일한 USB 장치로 명령을 지시하는"매개 변수라는 것을 알았습니다 . 그래서 플러그를 꽂고 쑤셔 넣은 후에는 저에게 도움이되었습니다. 내가 사용한 명령은 다음과 같습니다.

adb -d backup -apk -shared -all -f C:\Users\NAME\backup.ab

이것이 내가 가진 것과 같은 문제가있는 사람에게 효과가 있기를 바랍니다.


0

나는 같은 문제가 있었고 프리 ICS이기도합니다. 내가 해결 한 것은 ls of /and awk (링크를 건너 뛰기 위해 grep 사용)를 사용하여 각 실제 디렉토리를 내 PC의 디렉토리로 가져 오는 배치 파일을 작성했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.