Google Backup: Beberapa perangkat menggunakan akun yang sama - apa yang terjadi di Restore?

54

Bukan hal yang baru bahwa seseorang dapat menggunakan beberapa perangkat Android dengan satu akun Google . Mengaktifkan perangkat baru untuk pertama kalinya bertanya apakah seseorang ingin menyimpan data seseorang dengan Google, yang kemudian akan selalu menyinkronkan "beberapa hal" ke server Google, pada dasarnya

  • beberapa data aplikasi (jika aplikasi mendukungnya secara eksplisit)
  • Kata sandi Wi-Fi
  • penanda browser
  • daftar aplikasi yang diinstal dari Google Play
  • kata-kata ditambahkan ke kamus yang digunakan oleh keyboard layar
  • sebagian besar pengaturan khusus Anda

Detail mungkin ditemukan di Google Dashboard . Pertanyaan yang relevan di sini mencakup masalah-masalah tersebut termasuk:

The Pengembang API di Google Backup memberikan beberapa wawasan lebih lanjut tentang bagaimana hal-hal cadangan seharusnya pekerjaan (dan beberapa pertanyaan di sini menunjukkan bagaimana benar-benar bekerja - yaitu, kadang-kadang tidak, kadang-kadang hanya sebagian, dan kadang-kadang tidak sama sekali). Terlepas dari keandalan dan fakta bahwa tidak semua orang menginginkan data pribadinya di awan (dan bahkan disebutkan referensi API 2 memperingatkan: Android tidak membuat jaminan tentang keamanan data Anda saat menggunakan cadangan. Anda harus selalu berhati-hati menggunakan cadangan untuk menyimpan sensitif data, seperti nama pengguna dan kata sandi. ), pertanyaan utama saya adalah:

Setelah mencadangkan data dari beberapa perangkat menggunakan akun yang sama:

  • apa yang akan terjadi pada perangkat reset pabrik yang digunakan sebelumnya? Apakah itu akan diakui, dan hanya hal-hal yang dipulihkan yang telah digunakan sebelumnya?
    (identifikasi perangkat misalnya dapat dilakukan misalnya melalui IMEI (tetapi tidak melalui Android_ID, karena itu mungkin hilang dengan reset pabrik ) - dan ini bisa menjadi alasan untuk perilaku yang dijelaskan dalam jawaban Nalum )
  • apa yang akan dikembalikan ke perangkat (baru / reset pabrik) yang baru saja Anda inisialisasi untuk pertama kali dengan akun Google ini?
    (jika perangkat akan diidentifikasi dengan cadangan di akun Google yang digunakan, ini dapat memicu tindakan khusus untuk "perangkat baru", misalnya "pulihkan semua, ubah perangkat!" - atau "pulihkan semua dari perangkat X yang tidak terhubung lagi, seperti itu mungkin diganti! "- tetapi tetap" mengembalikan hanya apa yang ada di perangkat itu "jika reset pabrik)

Kesepakatannya adalah: Jika seseorang memiliki beberapa perangkat, mereka sering digunakan untuk masalah tertentu, jadi orang tidak menginginkan semuanya pada semua perangkat. Karena saya tidak melihat cara untuk memilih data mana yang akan dicadangkan (mis. Untuk mengecualikan "data sensitif" yang telah diperingatkan kepada kami: Kata sandi WiFi termasuk dalam kategori itu), saya menganggap tidak ada pilihan untuk memulihkan juga? Jadi bagaimana ini ditangani?

Izzy
sumber
Dua sumber lagi yang mungkin menarik untuk dibaca adalah: Pencadangan dan pengembalian Google untuk Android adalah spesifik perangkat? (yang menggambarkan "kekacauan" setidaknya versi Android sebelum 4.x), dan layanan pencadangan dan pemulihan otomatis Android sangat bagus ... saat berfungsi . Keduanya sebagian mencerminkan pertanyaan saya, tetapi tidak ada yang menjawabnya. Begitu banyak tentang googling masalah ini.
Izzy
3
Satu-satunya masukan yang bisa saya berikan adalah itu sangat tidak bisa diandalkan. Saya berharap ada tombol backup / restore manual yang bisa saya gunakan. Saya mereset tablet saya beberapa hari yang lalu dan itu tidak mengembalikan semua aplikasi dan pengaturan saya, namun kali sebelumnya hal itu dilakukan. Saya tidak suka bahwa saya tidak bisa mengandalkannya.
crdx
Karena bahkan bounty tidak dapat memberikan rincian, saya kira peluang untuk menemukan "jawaban lengkap" agak rendah. Jadi kita tahu tentang hal yang sama seperti sebelumnya: mungkin berhasil "dengan satu atau lain cara", kita harus mencoba mencari tahu, dan yang satu mungkin beruntung atau tidak. Terima kasih, Google, untuk alat yang tidak dapat diandalkan tanpa dokumentasi pengguna :( Jadi hadiahnya pergi ke Nalum: meskipun jawabannya sudah ada sebelum hadiah, itu adalah yang terbaik yang kami punya :)
Izzy
@Flow Yeah. Dan jawabannya tampak sangat familier :)
Izzy

Jawaban:

42

Mari kita bicara tentang set, sayang

Layanan cadangan Android memiliki konsep yang disebut himpunan : himpunan semua data yang dicadangkan dari satu perangkat (pada satu transportasi , tapi itu detail). Setiap set diidentifikasi oleh string unik, seperti IMEI pada perangkat. Saat aplikasi (atau daftar aplikasi yang diinstal) dicadangkan, data cadangannya masuk ke set yang terkait dengan perangkat yang dicadangkan. Semua set masih khusus untuk akun Google pengguna. Jika Anda menghapus perangkat Anda dan menjualnya kepada orang lain, ia tidak akan dapat mengakses perangkat itu kecuali ia dapat masuk ke akun Google Anda.

Perilaku default

Ketika aplikasi diinstal, atau perangkat memiliki daftar aplikasi yang dipulihkan, sistem cadangan pertama-tama mencari di perangkat yang ditetapkan untuk data cadangan untuk paket itu. Jika tidak menemukan (baik karena itu adalah perangkat yang sama sekali baru tanpa data yang dicadangkan, atau karena paket itu belum pernah diinstal pada perangkat itu), itu akan memperluas pencarian ke set lain. (Jika ada pilihan, itu akan menggunakan set terakhir yang digunakan untuk pemulihan perangkat lengkap.)

Jadi, ketika Anda mengatur perangkat baru, itu akan mengembalikan daftar aplikasi dari cadangan perangkat lama, dan memulihkan setiap aplikasi dari cadangan perangkat lama. Jika Anda memiliki aplikasi yang diinstal pada satu perangkat dan Anda menginstalnya di perangkat lain, aplikasi tersebut akan dipulihkan dengan datanya dari perangkat yang lama. Dalam kedua kasus, data sekarang dicadangkan ke set perangkat baru , yang berarti bahwa data cadangan dari dua perangkat terpisah mulai sekarang.

Setelah Anda mengatur ulang pabrik perangkat, itu akan memulihkan dari cadangan terakhir perangkat itu jika ada, dan gagal itu, dari cadangan beberapa perangkat lain jika ada, tetapi akan mulai membuat set sendiri sejak saat itu. Itulah mengapa dua perangkat Nalum tidak melihat aplikasi yang didukung satu sama lain: mereka masing-masing memulihkan dari cadangan terakhir mereka sendiri.

Sumber

Mekanisme ini tidak memiliki dokumentasi yang menghadap pengguna, karena seharusnya secara otomatis melakukan hal yang benar, tetapi kode tersedia .

bmgr: penggunaan dasar

Seperti yang ditemukan Izzy, bmgralat ini memberi Anda kendali atas proses ini. Ini dimaksudkan sebagai bantuan bagi programmer untuk membantu menguji dan men-debug integrasi cadangan di aplikasi mereka. Anda dapat menggunakan alat ini adb shelluntuk memicu pencadangan dan pengembalian paket yang dipilih, menghapus data yang dicadangkan paket, dan bahkan pemulihan seluruh perangkat.

Jangan mencoba menggunakannya dalam shell di perangkat kecuali sebagai : Anda perlu level sistem android.permission.BACKUPuntuk melakukan sesuatu yang menarik dengannya.

Anda dapat segera memperbarui aplikasi data cadangannya:

bmgr backup com.shadowburst.showr
bmgr run

(atau apa pun nama paket aplikasi itu). Biasanya tidak perlu melakukan ini, karena aplikasi meminta cadangan mereka sendiri setiap kali data mereka berubah, tetapi ini memungkinkan Anda bekerja di sekitar aplikasi yang ditulis dengan buruk. Untuk mengembalikan satu paket dari data cadangan yang akan dipilih secara default:

bmgr restore com.shadowburst.showr

tetapi sekali lagi, ini hanya akan melakukan apa yang akan dilakukan perangkat sendiri, jadi Anda tidak perlu menggunakannya. Perhatikan juga bahwa perangkat sudah perlu diinstal untuk membuat ini berfungsi.

Lebih banyak kontrol

Sekarang untuk hal-hal yang tidak dapat dilakukan sistem cadangan saat diaktifkan. Untuk melihat set data cadangan apa yang tersedia:

bmgr list sets

dan Anda akan mendapatkan beberapa output seperti ini:

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

Nomor hex 64-bit di sebelah kiri adalah token . Anda akan membutuhkan ini sebentar lagi. Hal di sebelah kanan adalah nama (relatif) ramah untuk perangkat yang memiliki set. Sebagai contoh, manta adalah nama kode untuk ; TF-101 mengacu pada . Setelah mengetahui set yang Anda inginkan, Anda dapat mengembalikan aplikasi dari set itu menggunakan token-nya:

bmgr restore 3ff7800e963f25c5 com.shadowburst.showr

Anda dapat menambahkan lebih banyak nama paket ke akhir perintah untuk memulihkan beberapa paket sekaligus, atau Anda dapat menentukan tidak ada nama paket (hanya token) untuk memulihkan setiap aplikasi dengan data di set itu (yaitu, ia melakukan sistem penuh mengembalikan).

Akhirnya, Anda dapat menghapus data aplikasi dari set saat ini:

bmgr wipe com.shadowburst.showr

Ini akan membuat operasi pencadangan berikutnya mulai dari awal. Ini mungkin berguna setelah menghapus aplikasi, jika kesalahan dalam aplikasi merusak data cadangannya dan Anda tidak ingin itu dipulihkan.

Anda tidak dapat membuat perangkat mulai menulis ke set yang berbeda, Anda juga tidak bisa menghapus seluruh set.

Dan Hulme
sumber
Jawaban yang sangat teliti, terima kasih, Dan! "Kontrol manual" (tempat untuk mengembalikan) adalah nilai tambah yang saya cari. Saya berharap ada pilihan pengguna untuk semua ini, seperti pop-up ketika mengembalikan tendangan dalam: "Apakah Anda ingin mengembalikan?" -> "Dari set apa?" -> "Pilih detail (pemulihan penuh, xxx .. .) ". Meskipun mungkin menyenangkan ketika aplikasi tahu untuk "secara otomatis melakukan hal yang benar", saya suka memegang kendali, dan kadang-kadang itu bahkan diperlukan. Selain itu, pemulihan mungkin diperlukan dalam kasus selain pengaturan ulang pabrik dan perangkat baru, sehingga harus ada cara bagi pengguna untuk memicunya ...
Izzy
7

Sejauh ini tidak ada jawaban untuk pertanyaan, tetapi mungkin menjelaskan beberapa detail:

Beberapa bagian diekstrak dari API Cadangan

Meskipun API utamanya ditargetkan pada pengembang, ada beberapa fakta yang mungkin dapat kami ekstrak untuk kasus kami. Dalam daftar berikut ini, huruf miring menandai tanda kutip dari dokumentasi API.

  • Android secara otomatis melakukan operasi pemulihan ketika aplikasi Anda diinstal dan ada data cadangan yang terkait dengan pengguna.
    → ini dapat berarti dua hal:
    • jika suatu aplikasi mendukung Google Backup API, dan pengguna telah mengaktifkan Google Backup, data cadangan yang tersedia akan secara otomatis dipulihkan pada saat instalasi. Untung ketika Anda menginstal aplikasi yang digunakan pada satu perangkat ke perangkat kedua untuk pertama kalinya.
    • cadangan hanya dikaitkan dengan Akun Google, bukan dengan perangkat ( dan ada data cadangan yang dikaitkan dengan pengguna ) - atau fakta lain hanya diabaikan sebagai tidak relevan untuk kasus khusus ini ("aplikasi terpasang")
  • Transport cadangan adalah komponen sisi klien dari kerangka cadangan Android, yang dapat disesuaikan oleh produsen perangkat dan penyedia layanan. Transportasi cadangan mungkin berbeda dari satu perangkat ke perangkat [...]
    → ini mungkin menjelaskan ketidakpercayaan dalam hal perangkat yang berbeda (atau versi Android yang berbeda).
    (penekanan milikku)
  • Pencadangan data tidak dijamin tersedia di semua perangkat yang diberdayakan Android.
    (tidak ada komentar)
  • Google menyediakan transportasi cadangan dengan Layanan Cadangan Android untuk sebagian besar perangkat yang didukung Android yang menjalankan Android 2.2 atau lebih tinggi.
    → di sini kami memiliki versi Android minumum yang diperlukan untuk Google Backup tersedia: Froyo, AKA Android 2.2
  • Untuk mendapatkan Kunci Layanan Cadangan Anda, daftar untuk Layanan Cadangan Android. [...]
    → setiap aplikasi harus memiliki kunci sendiri. Tidak ada "mengapa" yang dijelaskan, tetapi tebakan yang baik: untuk mengisolasi cadangan sehingga tidak ada aplikasi yang dapat membaca cadangan dari aplikasi lain (kunci salah; seperti untuk cadangan pengguna lain: akun salah)
  • Saat mengembangkan aplikasi Anda, Anda dapat memulai operasi pencadangan langsung dari Backup Manager dengan alat bmgr.
    → sepertinya ada cara untuk memicu pencadangan secara manual? Mari kita gali itu nanti. ↓
  • Saat tiba waktunya untuk memulihkan data aplikasi Anda, Manajer Cadangan memanggil onRestore()metode agen cadangan Anda .
    → ini lagi menggarisbawahi item pertama dari daftar ini: pertama aplikasi harus diinstal, kemudian implementasinya sendiri digunakan untuk mengembalikan datanya. Pada pandangan kedua: jika pengembalian aplikasi gagal, tidak akan ada pemulihan data untuk aplikasi yang gagal - sampai Anda menginstalnya secara manual melalui Google Play. Kemudian, seperti yang ditunjukkan item pertama, data akan secara otomatis dikembalikan melalui Google Backup dalam kondisi yang dijelaskan (harus didukung dengan itu, akun yang sama, dll.)
  • Mencadangkan file lain
    → maafkan saya tidak mengutip dari konten (teknis) bab itu, tetapi singkatnya: hanya file dari penyimpanan internal yang dapat dicadangkan sesuai dengan itu.

Beberapa bagian diekstraksi dari API bmgr

  • Ini memberikan perintah untuk memunculkan cadangan dan memulihkan operasi [...]
    → sepertinya inilah cara untuk memicu tindakan secara manual jika "automatisme" gagal
  • Perintah-perintah ini diakses melalui adb shell.
    → ini tidak perlu penjelasan :)
  • adb shell bmgr backup <package>
    → OK, jadi tindakan ini terikat ke aplikasi. Tebak jika Anda tahu nama paket penyedia data, ini juga bisa digunakan (mis. com.android.providers.settingsUntuk pengaturan sistem, atau com.android.providers.telephonyuntuk SMS / MMS dll?)
  • Anda dapat memaksa semua operasi pencadangan yang tertunda untuk segera dijalankan dengan menggunakan bmgr runperintah
    → perintah pertama hanya pencadangan "jadwal". Setelah memicu semua paket, ini dapat digunakan untuk segera menjalankannya.
  • adb shell bmgr restore <package>
    → ini terlihat bagus untuk menjadi kenyataan, bukan? Tepat, karena: Backup Manager akan segera membuat agen cadangan aplikasi dan memohonnya untuk memulihkan. Hanya data, karena aplikasi sudah harus ada di sana (sebagaimana rutinitasnya disebut).

Singkatnya: bmgrdapat digunakan untuk memicu cadangan untuk aplikasi yang mendukung Google Backup, yang telah Anda pasang - dan dapat memicu pengembalian data untuk hal yang sama. Itu tidak dapat digunakan untuk memicu pemulihan lengkap - setidaknya itu tidak didokumentasikan di sini.

Izzy
sumber
Saya tahu ini sudah tua, dan seseorang mungkin akan menyerang saya karena berkomentar tentang pertanyaan lama itu, tetapi ini adalah satu-satunya hasil yang paling relevan yang saya dapat temukan tidak peduli seberapa keras saya mencari di Google. Saya baru saja membeli telepon baru dan ketika pengaturan perangkat dimulai, TIDAK menunjukkan Nexus 5x lama saya sebagai perangkat untuk memulihkan, dan saya TAHU cadangan dan pemulihan diaktifkan pada 5x. 5x telah benar-benar mati sehingga saya tidak dapat melakukan apapun untuk membantu. Dan setelah melakukan set daftar bmgr, itu menunjukkan perangkat salah yang sama persis seperti yang ditunjukkan selama pengaturan .... saran apa pun akan sangat dihargai.
Soundfx4
1
@ Soundfx4 Bolehkah saya menyarankan Anda mengajukan pertanyaan terpisah dan berdedikasi? Selamat datang di tautan di sini untuk referensi. Saya tidak akan dapat membantu Anda dengan masalah spesifik itu karena saya tidak menggunakan Google Backup.
Izzy
1
Itu ide yang jauh lebih baik, terima kasih. Internet tidak akan pernah memiliki informasi berguna yang cukup di luar sana! Saya akan mengetik satu ketika saya punya waktu. Ty untuk jawabannya!
Soundfx4
6

Beberapa info lebih lanjut tentang cadangan Google. Ketika saya menginstal firmware khusus, itu tidak mengembalikan aplikasi seperti yang saya harapkan. Dalam Pengaturan -> Cadangkan & reset itu menunjukkan "Mencadangkan ke cache pribadi hanya-debug", dan bmgr list setstidak memberikan hasil.
Saya memecahkan masalah saya dengan melakukan langkah-langkah adb shellberikut
$ bmgr transport com.google.android.backup/.BackupTransportService
$ bmgr list sets 3a0a00a516a1daf1 : LT22i
ini : Namun, ini tidak cukup. Itu tidak mulai menginstal aplikasi. Ini menunjukkan alasan mengapa:
$ bmgr list sets 3179e4ab08d74930 : LT22i 3a0a00a516a1daf1 : LT22i
Itu telah membuat set baru, meskipun IMEI jelas sama. Bagaimanapun, ini adalah perbaikannya:
$ bmgr restore 3a0a00a516a1daf1(ID yang ditunjukkan pertama kali)
$ bmgr run(untuk memastikan)
Kemudian mulai mengunduh aplikasi.

lapis
sumber
3

Pengalaman saya dengannya adalah bahwa setiap perangkat memiliki cadangan sendiri. Saya mendapatkan ini dari bermain-main dengan Nexus 7 dan Galaxy S II saya. Selain itu saya tidak tahu.

Aplikasi:

Nexus 7 saya memiliki aplikasi ini Caustic , DC Comics dan 20 Minute Meals yang setelah pengaturan ulang pabrik Galaxy S II saya tidak diinstal pada Galaxy S II.

Galaxy S II saya memiliki aplikasi tesis ini DriveDroid dan Human Japanese yang setelah reset pabrik saya dari Nexus 7 tidak diinstal pada Nexus 7.

Aplikasi tersebut kompatibel dengan kedua perangkat, sehingga ketidakcocokan tidak dapat menjadi alasan mereka tidak diinstal pada masing-masing perangkat lainnya.

Data:

Adapun Wifi dan data lainnya saya tidak yakin karena setiap kali saya mengatur Wifi di setiap perangkat selama pengaturan awal Android. Mengenai akun Google lain yang mungkin Anda miliki, sepertinya tidak akan disalin ke setiap perangkat dan hal yang sama berlaku untuk akun Skype dan GitHub di setiap perangkat.

Nalum
sumber
1
Hanya aplikasi yang telah diinstal pada perangkat yang diinstal ulang dari cadangan. EG aplikasi DriveDroid diinstal pada ponsel saya dan tidak diunduh ke Nexus 7 setelah reset pabrik. Saya memiliki Caustic pada Nexus 7 yang tidak diunduh di Galaxy S II di antara aplikasi lain.
Nalum
Terima kasih - Saya sudah mengintegrasikan ini dengan jawabannya. Karena ada laporan yang cukup bertentangan: Apakah Anda akan berbaik hati memperbarui jawaban Anda dengan versi Android dari perangkat yang digunakan? Terima kasih sebelumnya! Untuk menghapus kekacauan konversi kami, saya juga akan pergi dan menghapus beberapa komentar saya (jangan ragu untuk melakukan hal yang sama untuk mereka yang sudah terintegrasi ke dalam jawaban itu sendiri).
Izzy
Jadi sekarang sudah saatnya: jika tidak ada yang dipulihkan silang, apa yang harus dilakukan jika salah satu perangkat "rusak" (atau Anda ingin mengganti keduanya dengan satu perangkat baru) dan Anda ingin "menggabungkan"? Kurasa aku bukan satu-satunya yang benar-benar kehilangan manual yang bagus ...
Izzy
1

Saya mencadangkan hal-hal menggunakan cadangan Google bawaan dan cadangan Helium sebelum saya menghapus dan menginstal Carbon custom ROM pada Nexus 4 (dari stok KitKat). Diharapkan Google untuk mengembalikan aplikasi, pengaturan dll seperti yang telah dilakukan sebelumnya ketika saya telah memulihkan ponsel ini tetapi tidak ada sukacita.

Mencoba Helium juga, juga tidak ada sukacita, bahkan dengan mengembalikan 'Unduhan PC' manual - mengatakan 'dipulihkan' tetapi data Wifi dan aplikasi masih belum ada.

Menjalankan bmgr restore <xxx>pemulihan penuh dan bmgr runseperti yang dijelaskan di atas memicu pemulihan Google lengkap dan bekerja dengan penyelamat bagi saya!

Google dapat melakukan upaya yang lebih baik, terutama jika mereka ingin bersaing dengan ide 'just works' Apple ... Tetap saya sangat suka hackability Android meskipun ada jebakan!

kaepora
sumber