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:
- Info apa yang dicadangkan Google?
- Apa yang sebenarnya disinkronkan dengan Google?
- Bagaimana cara Android menyinkronkan Profil WiFi?
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?
Jawaban:
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 dasarSeperti yang ditemukan Izzy,
bmgr
alat 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 iniadb shell
untuk 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 root : Anda perlu level sistem
android.permission.BACKUP
untuk melakukan sesuatu yang menarik dengannya.Anda dapat segera memperbarui aplikasi data cadangannya:
(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:
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:
dan Anda akan mendapatkan beberapa output seperti ini:
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 nexus-10 ; TF-101 mengacu pada asus-eee-pad-transformator asli . Setelah mengetahui set yang Anda inginkan, Anda dapat mengembalikan aplikasi dari set itu menggunakan token-nya:
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:
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.
sumber
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.
→ ini dapat berarti dua hal:
→ ini mungkin menjelaskan ketidakpercayaan dalam hal perangkat yang berbeda (atau versi Android yang berbeda).
(penekanan milikku)
(tidak ada komentar)
→ di sini kami memiliki versi Android minumum yang diperlukan untuk Google Backup tersedia: Froyo, AKA Android 2.2
→ 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)
→ sepertinya ada cara untuk memicu pencadangan secara manual? Mari kita gali itu nanti. ↓
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.)
→ 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
→ sepertinya inilah cara untuk memicu tindakan secara manual jika "automatisme" gagal
→ 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.settings
Untuk pengaturan sistem, ataucom.android.providers.telephony
untuk SMS / MMS dll?)bmgr run
perintah→ 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:
bmgr
dapat 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.sumber
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 sets
tidak memberikan hasil.Saya memecahkan masalah saya dengan melakukan langkah-langkah
adb shell
berikut$ 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.
sumber
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.
sumber
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 danbmgr run
seperti 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!
sumber