Google 백업 : 동일한 계정을 사용하는 여러 기기-복원은 어떻게 되나요?


54

하나의 Google 계정으로 여러 Android 기기를 사용할 수 있다는 것은 새로운 일이 아닙니다 . 새 기기를 처음 켜면 Google에 데이터를 저장할 것인지 묻는 메시지가 표시되며, 기본적으로 항상 "일부 항목"을 Google 서버에 동기화합니다.

  • 일부 애플리케이션 데이터 (앱이 명시 적으로 지원하는 경우)
  • Wi-Fi 비밀번호
  • 브라우저 북마크
  • Google Play에서 설치된 앱 목록
  • 화상 키보드에서 사용하는 사전에 추가 된 단어
  • 대부분의 맞춤 설정

세부 사항은 Google 대시 보드 에서 찾을 수 있습니다 . 이러한 문제를 다루는 관련 질문은 다음과 같습니다.

Google BackupDevelopers API 는 백업 작업의 작동 방식에 대한 추가 정보를 제공합니다 (여기에서 몇 가지 질문이 실제로 어떻게 작동하는지 보여줍니다. 안정성과 모든 사람이 클라우드에서 개인 데이터를 원하지는 않는다는 사실 외에도 API 참조 2에 따르면 경고 : Android는 백업을 사용하는 동안 데이터의 보안을 보장하지 않습니다. 백업을 사용하여 민감한 정보를 저장하는 경우 항상주의해야합니다 사용자 이름 및 비밀번호와 같은 데이터 )) 내 주요 질문은 다음과 같습니다.

동일한 계정을 사용하여 여러 장치에서 데이터를 백업 한 경우 :

  • 이전에 이러한 방식으로 공장 초기화 장치를 사용하면 어떻게됩니까? 그것은 인정되고, 이전에 사용되었던 것들만 회복 되었는가?
    (예 : 기기 식별은 IMEI를 통해 수행 될 수 있지만 ( 공장 초기화사라질 수 있으므로 Android_ID를 통하지 않음 )-이것은 Nalum의 답변에 설명 된 동작의 원인 일 수 있습니다 )
  • 이 Google 계정으로 처음 초기화 한 (새로운 / 공장 초기화) 기기로 복원되는 것은 무엇입니까?
    (사용 된 Google 계정의 백업으로 기기를 식별하는 경우 "새 기기", "모든 기기를 복원, 기기가 변경되었습니다!"또는 "더 이상 연결되지 않은 기기 X에서 모든 기기를 복원 할 때" 아마도 교체되었을 것입니다! "-공장 초기화의 경우"해당 기기에 있던 것만 복원합니다 ")

하나의 장치는 여러 장치가있는 경우 특정 문제에 자주 사용되므로 모든 장치에서 모든 것을 원하지는 않습니다. 백업 할 데이터를 선택할 수있는 방법 (예 : 우리가 경고 한 "민감한 데이터"제외) : WiFi 암호가 해당 범주에 속할 것임)을 선택해도 복원에 대한 선택이 없다고 가정합니까? 그러면 어떻게 처리됩니까?


두 더 많은 소스 수있는 흥미로운이 읽을 수는 다음과 같습니다 : 구글 백업 및 안드로이드에 대한 복원 장치는 특정입니까? (4.x 이전의 Android 버전의 "메시지"를 설명 함) Android의 자동 백업 및 복원 서비스는 훌륭합니다 . 둘 다 내 질문을 부분적으로 반영하지만 아무도 대답하지 않습니다. 인터넷 검색에 대해 너무 많이.
Izzy

3
내가 줄 수있는 유일한 입력은 그것이 신뢰할 수 없다는 것입니다. 사용할 수있는 수동 백업 / 복원 버튼이 있었으면 좋겠습니다. 요 전날 태블릿을 재설정했는데 모든 앱과 설정이 복원되지는 않았지만 이전에는 완료되었습니다. 나는 그것에 의지 할 수 없다는 것을 좋아하지 않습니다.
crdx

현상금조차도 세부 사항을 가져올 수 없으므로 "전체 답변"을 찾을 가능성이 다소 낮습니다. 그래서 우리는 이전과 같은 것을 알고 있습니다 : 그것은 "하나의 방법으로 또는 다른 방법으로"작동 할 있고, 하나는 알아 내려고 노력해야하며, 하나는 운이 좋을 수도 있습니다. 덕분에, 구글은 모든 사용자가 문서없이 신뢰할 수없는 도구를 :( 그래서 현상금 Nalum로 이동 : 대답은 현상금을 사전 일자 있지만, 그것은 :) 우리가 가진 것 중에 최고입니다
이지


@Flow 그래. 그리고 대답은 놀랍게도 가족처럼 보인다 :)
Izzy

답변:


42

세트에 대해 이야기하자, 베이비

Android의 백업 서비스에는 set 이라는 개념이 있습니다. 하나의 장치에서 백업 된 모든 데이터 세트 (하나의 전송 에서 세부 정보입니다). 각 세트는 장치의 IMEI와 같은 고유 한 문자열로 식별됩니다. 앱 (또는 설치된 앱 목록)이 백업되면 백업 데이터는 백업중인 장치와 관련된 세트로 이동합니다. 모든 세트는 여전히 사용자의 Google 계정에 따라 다릅니다. 기기를 닦고 다른 사람에게 판매하는 경우 Google 계정에 로그인 할 수 없으면 기기 설정에 액세스 할 수 없습니다.

기본 행동

앱이 설치되거나 장치의 앱 목록이 복원되면 백업 시스템은 먼저 해당 장치의 해당 패키지에 대한 백업 데이터 세트를 찾습니다. 검색된 데이터가없는 완전히 새로운 장치이거나 해당 패키지가 해당 장치에 설치되지 않았기 때문에 검색되지 않으면 검색을 다른 세트로 확장합니다. 선택 사항이 있으면 전체 장치 복원에 사용 된 마지막 세트를 사용합니다.

따라서 새 장치를 설정하면 이전 장치의 백업에서 앱 목록이 복원되고 이전 장치의 백업에서 각 앱이 복원됩니다. 한 장치에 앱이 설치되어 있고 다른 장치에 설치 한 경우 이전 장치의 데이터와 함께 앱이 복원됩니다. 두 경우 모두 데이터가 이제 장치 세트에 백업됩니다. 즉, 두 장치의 백업 데이터가 지금부터 분리됩니다.

장치를 공장 출하시 재설정 한 후에는 해당 장치의 마지막 백업 (있는 경우)에서 복원하고 다른 장치의 백업 (있는 경우)에서 실패하지만 그때부터 자체 세트를 생성하기 시작합니다. 그렇기 때문에 Nalum의 두 장치는 서로의 백업 된 앱을 볼 수 없습니다. 각각의 백업에서 각각 복원하는 것입니다.

출처

이 메커니즘에는 자동으로 올바른 작업을 수행해야하지만 코드를 사용할 수 있기 때문에 사용자 용 설명서 가 없습니다 .

bmgr: 기본 사용

Izzy에서 알 수 있듯이이 bmgr도구를 사용하면이 프로세스를 제어 할 수 있습니다. 프로그래머가 앱에서 백업 통합을 테스트하고 디버깅하는 데 도움을주기위한 것입니다. 이 도구를 사용 adb shell하여 선택한 패키지의 백업 및 복원을 트리거하고 패키지의 백업 데이터를 지우며 전체 장치 복원을 수행 할 수 있습니다.

로만 제외하고 온 디바이스 셸에서 사용하지 마십시오 android.permission.BACKUP. 흥미로운 작업을 하려면 시스템 수준 이 필요합니다.

앱이 백업 된 데이터를 즉시 업데이트하도록 할 수 있습니다.

bmgr backup com.shadowburst.showr
bmgr run

(또는 앱의 패키지 이름이 무엇이든). 앱이 데이터가 변경 될 때마다 자체 백업을 요청하기 때문에 일반적으로이 작업을 수행 할 필요는 없지만 잘못 작성된 앱을 해결할 수 있습니다. 백업 된 데이터에서 하나의 패키지를 복원하려면 기본적으로 선택됩니다.

bmgr restore com.shadowburst.showr

그러나 이것은 장치 자체의 기능 만 수행하므로 사용할 필요가 없습니다. 이 작업을 수행하려면 장치가 이미 설치되어 있어야합니다.

더 많은 제어

이제 백업 시스템이하지 않는 것들에 대해. 사용 가능한 백업 데이터 세트를 확인하려면 다음을 수행하십시오.

bmgr list sets

그리고 당신은 다음과 같은 결과를 얻을 것입니다 :

  3ff7800e963f25c5 : manta
  3f0e5c90a412cca7 : manta
  3dd65924a70e14c8 : TF101
  3baa67e9ce029355 : m0

왼쪽의 64 비트 16 진수는 토큰 입니다. 1 분 안에이 정보가 필요합니다. 오른쪽에있는 것은 세트를 소유 한 장치의 (상대적으로) 친숙한 이름입니다. 예를 들어, manta 의 코드 이름입니다 . TF-101 은 최초의 말합니다 . 원하는 세트를 찾았 으면 토큰을 사용하여 해당 세트에서 앱을 복원 할 수 있습니다.

bmgr restore 3ff7800e963f25c5 com.shadowburst.showr

명령 끝에 패키지 이름을 더 추가하여 한 번에 여러 패키지를 복원하거나 패키지 이름을 지정하지 않고 (토큰 만) 해당 세트의 데이터로 모든 앱을 복원 할 수 있습니다 (즉, 전체 시스템을 수행함) 복원).

마지막으로 현재 세트에서 앱 데이터를 지울 수 있습니다.

bmgr wipe com.shadowburst.showr

그러면 다음 백업 작업이 처음부터 시작됩니다. 앱의 오류로 인해 백업 데이터가 손상되어 복원하지 않으려는 경우 앱을 제거한 후 유용 할 수 있습니다.

장치를 다른 세트로 쓰거나 전체 세트를 지울 수 없습니다.


매우 철저한 답변 감사합니다, 댄! "수동 제어"(복원 위치)는 내가 찾은 추가 기능입니다. "복원 하시겠습니까?"-> "무엇에서 설정 하시겠습니까?"-> "세부 정보 선택 (전체 복원, xxx .. )) " 앱이 "자동으로 옳은 일을한다"는 것을 알면 좋을지 모르지만, 나는 통제력이 있고 때로는 필요할 수도 있습니다. 또한 공장 리 세트 및 새 장치 이외의 경우 복원이 필요할 수 있으므로 사용자가이를 트리거 할 수있는 방법이 있어야합니다.
Izzy

7

다음은 그 질문에 대한 답변이 아니지만 세부 사항에 약간의 영향을 줄 수 있습니다.

백업 API 에서 추출 된 일부 조각

API는 주로 개발자를 대상으로하지만이 사례에서 추출 할 수있는 몇 가지 사실이 있습니다. 다음 목록에서 기울임 꼴 은 API 설명서의 인용 부호입니다.

  • Android는 애플리케이션이 설치되고 사용자와 관련된 백업 데이터가있는 경우 자동으로 복원 작업을 수행합니다.
    → 이것은 두 가지를 의미 할 수 있습니다.
    • 앱이 Google 백업 API를 지원하고 사용자가 Google 백업을 사용하도록 설정 한 경우 설치시 사용 가능한 백업 데이터가 자동으로 복원됩니다. 단일 장치에서 사용 된 앱을 두 번째 장치에 처음 설치할 때 좋습니다.
    • 백업은 기기가 아닌 Google 계정에만 연결되며 ( 사용자와 관련된 백업 데이터가 있음 ) 또는 다른 경우에는이 특별한 경우와 관련이없는 것으로 무시되었습니다 ( "앱이 설치되었습니다").
  • 백업 전송은 Android 백업 프레임 워크의 클라이언트 측 구성 요소이며 장치 제조업체 및 서비스 제공 업체사용자 정의 할 수 있습니다. 백업 전송 은 장치마다 다를 수 있습니다. [...]
    → 다른 장치 (또는 다른 Android 버전)와 관련하여 신뢰성이 설명되지 않을 수 있습니다.
    (강조 광산)
  • 모든 Android 기기에서 데이터 백업을 사용할 수있는 것은 아닙니다.
    (댓글 없음)
  • Google은 Android 2.2 이상을 실행하는 대부분의 Android 기기에서 Android 백업 서비스를 사용하여 백업 전송을 제공합니다.
    → 여기 Google 백업에 필요한 최소 Android 버전이 있습니다. Froyo, AKA Android 2.2
  • 백업 서비스 키를 받으려면 Android 백업 서비스에 등록하십시오. [...]
    → 각 앱에는 자체 키가 있어야합니다. 설명 된 "이유"는 없지만 적절한 추측 : 백업을 분리하여 다른 앱의 백업을 읽을 수있는 앱이 없음 (잘못된 키, 다른 사용자의 백업의 경우 : 잘못된 계정)
  • 응용 프로그램을 개발하는 동안 bmgr 도구를 사용하여 백업 관리자에서 즉시 백업 작업을 시작할 수 있습니다.
    → 수동으로 백업을 트리거 할 수있는 방법이 있습니까? 나중에 자세히 살펴 보겠습니다. ↓
  • 응용 프로그램 데이터를 복원 할시기가되면 Backup Manager는 백업 에이전트의 onRestore()방법을 호출합니다 .
    → 이것은 다시이 목록의 첫 번째 항목에 밑줄을 긋습니다. 먼저 앱을 설치 한 다음 자체 구현을 사용하여 데이터를 복원합니다. 다시 한번 살펴보면, 앱 복원이 실패하면 Google Play를 통해 수동으로 설치하기 전까지는 실패한 앱에 대한 데이터 복원이 없습니다. 그런 다음 첫 번째 항목 에 표시된대로 설명 된 조건 (데이터와 동일한 계정 등으로 백업해야 함)에 따라 Google 백업을 통해 데이터를 자동으로 복원 해야합니다.
  • 다른 파일 백업
    → 해당 장의 (기술적) 내용을 인용하지 말고 간단히 말해 : 내부 저장소의 파일 만 그에 따라 백업 할 수 있습니다.

bmgr API 에서 추출 된 일부 조각

  • 백업 및 복원 작업을 유도하는 명령을 제공합니다. [...]
    → "자동화"가 실패한 경우 수동으로 작업을 트리거하는 방법이 있습니다.
  • 이 명령은 adb 쉘을 통해 액세스합니다.
    → 설명이 필요 없습니다 :)
  • adb shell bmgr backup <package>
    → OK이므로이 작업은 앱에 바인딩됩니다. 데이터 제공 업체의 패키지 이름을 알고 있다면 com.android.providers.settings시스템 설정 또는 com.android.providers.telephonySMS / MMS 등에서 도 잘 작동합니다.
  • bmgr run명령
    → 첫 번째 명령만으로 "백업 예약"명령 을 사용하여 보류중인 모든 백업 작업을 즉시 실행할 수 있습니다. 모든 패키지를 트리거하면 즉시 패키지를 실행할 수 있습니다.
  • adb shell bmgr restore <package>
    → 이것은 사실이 좋아 보인다? 정확히는 다음과 같은 이유 때문입니다. 백업 관리자는 즉시 응용 프로그램의 백업 에이전트를 인스턴스화하고 복원을 위해 호출합니다. 앱이 이미 있어야하기 때문에 데이터 만 (루틴이 호출됨에 따라)

요약하자면 bmgr, 설치 한 Google 백업을 지원하는 앱의 백업을 트리거하는 데 사용할 수 있으며 동일한 데이터 복원을 트리거 할 수 있습니다. 전체 복원을 트리거하는 데 사용할 수는 없습니다. 적어도 여기에 설명되어 있지 않습니다.


나는 이것이 오래된 것을 알고 누군가가 그러한 오래된 질문에 대해 의견을 말함으로써 나를 공격 할 수도 있지만 이것은 내가 얼마나 열심히 구글을 검색하더라도 찾을 수있는 가장 관련성이 높은 결과입니다. 방금 새 휴대 전화를 구입했는데 기기 설정이 시작될 때 기존 Nexus 5x를 복원 할 기기로 표시하지 않으며 5x에서 백업 및 복원을 사용하도록 설정했습니다. 5 배가 완전히 죽었으므로 도움을주기 위해 아무 것도 할 수 없습니다. 그리고 bmgr 목록 세트를 수행하면 설정 중에 표시 한 것과 똑같은 잘못된 장치가 표시됩니다 .... 조언을 주시면 감사하겠습니다.
Soundfx4

1
@ Soundfx4 별도의 전용 질문을 하시겠습니까? 참조를 위해 여기에 링크를 환영합니다. Google 백업을 사용하지 않으므로 특정 문제를 해결해 드릴 수 없습니다.
Izzy

1
훨씬 더 좋은 생각입니다. 감사합니다. 인터넷에는 유용한 정보가 충분하지 않습니다! 시간이 좀 오면 하나를 입력하겠습니다. 답장을 보내주세요!
Soundfx4

6

구글 백업에 대한 더 많은 정보. 맞춤 펌웨어를 플래시했을 때 예상대로 앱이 복원되지 않았습니다. 설정-> 백업 및 재설정에서 "디버그 전용 개인 캐시로 백업"이 표시되어 bmgr list sets결과가 표시되지 않았습니다.
나는 이러한 단계를 수행하여 내 문제를 해결 adb shell:
$ bmgr transport com.google.android.backup/.BackupTransportService
$ bmgr list sets 3a0a00a516a1daf1 : LT22i
이 것은 그래도 충분하지 않았다. 앱 설치가 시작되지 않았습니다. 그 이유
$ bmgr list sets 3179e4ab08d74930 : LT22i 3a0a00a516a1daf1 : LT22i
는 다음과 같습니다. IMEI는 분명히 동일하지만 새로운 세트를 만들었습니다. 어쨌든 이것은 수정 사항이었습니다.
$ bmgr restore 3a0a00a516a1daf1(처음으로 표시된 ID)
$ bmgr run(확실히)
그런 다음 앱 다운로드를 시작했습니다.


3

그것에 대한 나의 경험은 각 장치마다 자체 백업이 있다는 것입니다. 내 Nexus 7과 Galaxy S II로 혼란스러워졌습니다. 그 외에는 모르겠습니다.

앱 :

내 Nexus 7에는 Caustic , DC Comics20 Minute Meals 앱이 있으며 , Galaxy S II를 초기화하면 Galaxy S II에 설치되지 않습니다.

내 Galaxy S II에는 Nexus 7을 초기화 할 때 Nexus 7에 설치되지 않은 DriveDroidHuman Japanese 앱 이 있습니다.

앱은 두 장치와 호환되므로 호환되지 않아서 다른 장치에 설치되지 않을 수 없습니다.

데이터:

Wifi 및 기타 데이터에 관해서는 초기 Android 설정 중에 각 장치에서 Wifi를 설정할 때마다 확실하지 않습니다. 다른 Google 계정에 대해서는 각 기기에 복사되지 않은 것으로 보이며 각 기기의 Skype 및 GitHub 계정에서도 마찬가지입니다.


1
해당 장치에 설치된 응용 프로그램 만 백업에서 다시 설치됩니다. EG 애플리케이션 DriveDroid가 휴대 전화에 설치되어 있으며 초기화 후 Nexus 7로 다운로드되지 않습니다. 다른 앱 중에서 Galaxy S II에 다운로드하지 않는 Nexus 7에 Caustic이 있습니다.
Nalum

감사합니다-나는 이것을 대답과 통합했습니다. 논란의 여지가있는 보고서가 있습니다. 사용 된 기기의 Android 버전으로 답변을 업데이트 해 주시겠습니까? 미리 감사드립니다! 우리의 회심을 어지럽히 기 위해, 나는 또한 나의 의견 중 일부를 지우고 삭제할 것입니다 (이미 답변 자체에 이미 통합 된 사람들에게는 동일하게 수행하십시오).
Izzy

교차 복구 된 것이 없다면 장치 중 하나가 고장 나거나 (또는 ​​두 장치를 하나의 새 장치로 교체하려는 경우) 어떻게해야합니까? 정말 좋은 매뉴얼을 누락 하나 ... 아니에요 추측
이지

1

기본 Google 백업과 Helium 백업을 모두 사용하여 데이터를 백업 한 후 Nexus Kit (CitKat 재고)에서 Carbon 맞춤 ROM을 삭제하고 설치했습니다. 이 휴대 전화를 복원했지만 기쁨은 없었지만 이전처럼 앱, 설정 등을 복원 할 것으로 예상했습니다.

수동 'PC 다운로드'복원으로도 시도한 헬륨도 기쁨이 아닙니다. '복원'되었지만 Wifi 및 앱 데이터는 여전히 존재하지 않습니다.

bmgr restore <xxx>전체 복원을 실행 하고 bmgr run위에서 자세히 설명한대로 전체 Google 복원을 시작하고 치료를 위해 노력했습니다.

구글이 더 나은 노력을 기울일 수 있는데, 특히 그들이 애플의 '제대로 작동하는'아이디어와 경쟁하기를 원한다면 ... 여전히 난관에도 불구하고 안드로이드의 해킹 가능성을 좋아합니다!

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