Google Yedekleme: Aynı hesabı kullanan birden fazla cihaz - Restore'da ne olur?


54

Tek bir Google hesabı olan birden fazla Android cihazı kullanabilmek yeni bir şey değil . Yeni bir cihazı ilk kez açmak, birinin Google’la veri depolamak isteyip istemediğini sorar, bu daha sonra "bazı şeyleri" her zaman Google sunucularına senkronize eder.

  • Bazı uygulama verileri (uygulamalar açıkça destekliyorsa)
  • Wi-Fi şifreleri
  • tarayıcı yer imleri
  • Google Play'den yüklenen uygulamaların listesi
  • ekran klavyesi tarafından kullanılan sözlüğe eklenen kelimeler
  • özelleştirilmiş ayarlarınızın çoğu

Ayrıntılar Google Dashboard'da bulunabilir . Bu sorunları kapsayan burada ilgili sorular şunlardır:

Google Yedekleme Geliştiriciler API yedekleme şeyler çalışması gerektiğine konusunda bazı başka fikir verir (ve burada birkaç soru gerçekten nasıl çalıştığını göstermek - yani, bazen öyle, bazen sadece kısmen ve bazen hiç). Güvenilirliğin yanı sıra, herkesin buluttaki özel verilerini istememesi (ve hatta API referans 2'nin uyardığı uyarısı da olsa) , Android'in, yedekleme kullanırken verilerinizin güvenliği konusunda hiçbir garanti vermez. kullanıcı adları ve şifreler gibi veriler. ) Ana sorum şu:

Aynı hesabı kullanarak birden fazla cihazdaki verileri yedekledikten sonra:

  • Fabrika ayarlarına sıfırlanan bir cihazın daha önce bu şekilde kullanılmasına ne olurdu? Tanınabilir mi ve yalnızca üzerinde daha önce kullanılmış olan şeyleri restore eder miydi?
    (örneğin, cihaz tanımlaması örneğin IMEI aracılığıyla gerçekleşebilir (ancak fabrika ayarlarına sıfırlama işlemi yapılabildiği için Android_ID üzerinden değil ) - ve bu Nalum'un cevabında açıklanan davranışın nedeni olabilir )
  • Bu Google hesabıyla ilk kez başlattığınız (yeni / fabrika ayarlarına sıfırlama) bir cihaza ne geri yüklenir?
    (cihazlar, kullanılan Google hesabındaki yedeklerle tanımlanırsa, bu "yeni cihaz" için özel bir işlemi tetikleyebilir, örneğin "hepsini geri yükle, cihaz değişti!" - veya "artık bağlı olmayan cihazdan X'i geri yükle büyük olasılıkla değiştirildi! "- ancak fabrika ayarlarına sıfırlama durumunda" sadece cihazda olanları geri yüklemek "için yapıştırın)

Anlaşma şu: Birinde birden fazla cihaz varsa, bunlar genellikle belirli sorunlar için kullanılır, bu nedenle biri tüm cihazlarda her şeyi istemez. Hangi verileri yedekleyeceğimizi seçmenin bir yolu görmedim (örneğin, hakkında uyarıldığımız "hassas verileri" hariç tutmak için: WiFi şifreleri bu kategoriye ait olur), geri yükleme seçeneğinin de olmadığını varsayalım. Peki bu nasıl ele alınır?


Bununla ilgili ilginç bir okuma olabilecek iki kaynak daha : Android için Google yedekleme ve geri yükleme cihaza özel mi? (4.x'ten önceki en az Android sürümlerinin "karmaşasını" açıklar) ve Android'in otomatik yedekleme ve geri yükleme servisi harikadır ... çalıştığında . Her ikisi de sorumu kısmen yansıtıyor, ancak hiçbiri cevap vermiyor. Bu konuyu googling hakkında çok fazla.
Izzy

3
Verebileceğim tek girdi, çok güvenilmez olmasıdır. Keşke kullanabileceğim bir manuel yedekleme / geri yükleme düğmesi olsaydı. Geçen gün tabletimi sıfırladım ve tüm uygulamalarımı ve ayarlarımı geri yüklemedi, ancak daha önceki zamanlarda yapıldı. Bundan hoşlanmamdan hoşlanmıyorum.
crdx

Bir ödül bile ayrıntıları ortaya koyamadığından, "tam bir cevap" bulma şansı oldukça düşük. Bu yüzden daha önce olduğu gibi aynı hakkında bilmek: Bu olabilir "öyle ya da" işe, bir anlamaya çalışalım zorundadır ve bir şanslı ya da değil olabilir. Teşekkürler, Google, kullanıcı belgelerine sahip olmayan güvenilmez bir araç için :( Böylece ödül Nalum'a gider: cevap ödül öncesi tarihte olsa da elimizdeki en iyisi budur :)
Izzy


@Flow Evet. Ve cevap şaşırtıcı derecede familar gibi görünüyor :)
Izzy

Yanıtlar:


42

Hadi kümeler hakkında konuşalım bebeğim

Android'in yedekleme servisinin set adı verilen bir konsepti var : tek bir cihazdan yedeklenen tüm verilerin seti (bir nakilde , ancak bu bir detay). Her küme, cihazdaki IMEI gibi benzersiz bir dize ile tanımlanır. Bir uygulama (veya yüklü uygulamaların listesi) yedeklendiğinde, yedekleme verileri, yedeklendiği cihazla ilişkili kümeye gider. Tüm kümeler hala kullanıcının Google hesabına özgüdür. Cihazınızı silip başka birine satarsanız, Google hesabınıza giriş yapamazsa o cihazın ayarlarına erişemez.

Varsayılan davranış

Bir uygulama yüklendiğinde veya bir cihazın geri yüklenen uygulamalar listesi olduğunda, yedekleme sistemi ilk önce o cihazın o paket için yedekleme verilerini belirlediğini görür. Herhangi bir şey bulamazsa (yedeklenmiş veri içermeyen tamamen yeni bir cihaz olduğu için veya bu paket o cihaza hiç yüklenmediğinden), aramayı diğer kümelere genişletir. (Bir seçenek varsa, tam aygıt geri yüklemesi için kullanılan son seti kullanır.)

Böylece, yeni bir cihaz kurduğunuzda, eski bir cihazın yedeğinden uygulamaların listesini geri yükler ve her bir uygulamayı eski cihazın yedeğinden geri yükler. Bir cihaza yüklenmiş bir uygulamanız varsa ve başka bir cihaza yüklediyseniz, uygulama eski cihazdaki verileriyle geri yüklenir. Her iki durumda da veriler şimdi yeni cihazın setine yedeklenir , bu da iki cihazdan gelen yedekleme verilerinin bundan sonra ayrı olduğu anlamına gelir.

Bir aygıtı fabrika ayarlarına sıfırladıktan sonra, bir tane varsa o cihazın son yedeklemesinden geri yükler ve bir tane varsa başka bir cihazın yedeklemesinden geri döner, ancak bundan sonra kendi setini oluşturmaya başlar. Bu yüzden Nalum'un iki cihazı birbirlerinin yedeklenmiş uygulamalarını görmüyor: her biri kendi son yedeklerinden geri yüklüyor.

Kaynak

Otomatik olarak doğru olanı yapması beklenen, ancak kodun kullanılabilir olması nedeniyle, bu mekanizma kullanıcının karşı karşıya olduğu hiçbir belgeye sahip değildir .

bmgr: temel kullanım

Izzy'nin bulduğu gibi, bmgraraç bu işlem üzerinde size biraz kontrol sağlar. Programcıların, uygulamalarındaki yedekleme entegrasyonunu test etmeye ve hata ayıklamaya yardımcı olmaları için tasarlanmıştır. Bu aracı adb shell, seçilen paketlerin yedeklemelerini ve geri yüklemelerini tetiklemek, paketlerin yedeklenmiş verilerini silmek ve hatta tüm cihaz geri yüklemesini kullanmak için kullanabilirsiniz.

dışında bir cihaz kabuğunda kullanmaya çalışmayın : android.permission.BACKUPilginç bir şey yapmak için sistem düzeyinde gerekir.

Bir uygulamanın yedeklenmiş verilerini hemen güncellemesini sağlayabilirsiniz:

bmgr backup com.shadowburst.showr
bmgr run

(veya uygulamanın paket adı ne olursa olsun). Normalde bunu yapmanız gerekmemektedir, çünkü uygulamalar verileri değiştiğinde kendi yedeklemelerini ister, ancak bu kötü yazılmış bir uygulamada çalışmanıza olanak tanır. Bir paketi yedeklenmiş verilerden geri yüklemek için varsayılan olarak seçecektir:

bmgr restore com.shadowburst.showr

ama yine, bu yalnızca cihazın kendi başına yapacağı şeyi yapar, bu yüzden kullanmanıza gerek kalmaz. Ayrıca, bu işlemi yapabilmek için cihazın zaten kurulu olması gerektiğini unutmayın.

Daha kontrol

Şimdi, yedekleme sisteminin çalışmayacağı şeyler için. Hangi yedeklenmiş veri kümelerinin mevcut olduğunu görmek için:

bmgr list sets

ve şöyle bir çıktı elde edersiniz:

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

Soldaki 64 bitlik hex numarası bir belirteçtir . Bir dakika içinde buna ihtiyacınız olacak. Sağdaki şey sete sahip olan cihazın (nispeten) kolay bir ismidir. Örneğin, manta , kod adıdır ; TF-101 , orijinal . Hangi seti istediğinizi belirledikten sonra, bir uygulamayı kartını kullanarak o setten geri yükleyebilirsiniz:

bmgr restore 3ff7800e963f25c5 com.shadowburst.showr

Birden fazla paketi aynı anda geri yüklemek için komutun sonuna daha fazla paket adı ekleyebilir veya her kümeyi o kümedeki verilerle geri yüklemek için paket adı (yalnızca belirteç) belirleyebilirsiniz (yani, tam sistem yapar) onarmak).

Son olarak, bir uygulamanın verilerini geçerli kümeden silebilirsiniz:

bmgr wipe com.shadowburst.showr

Bu, bir sonraki yedekleme işleminin sıfırdan başlamasını sağlayacaktır. Bir uygulama kaldırıldıktan sonra, uygulamadaki bir hata yedekleme verilerini bozuyorsa ve geri yüklenmesini istemiyorsanız, bu yararlı olabilir.

Bir cihazı farklı bir sete yazmaya başlatamazsınız ya da bütün bir seti silemezsiniz.


Çok kapsamlı cevap, teşekkür ederim Dan! "Manuel kontrol" (nereden geri yüklenir), aradığım ilave bir artı. Tüm bunlar için bir kullanıcı seçimi olsaydı, geri yükleme başladığında açılan bir pencere gibi: "Geri yüklemek ister misiniz?" -> "Hangi ayardan?" -> "Ayrıntıları seç (tam geri yükleme, xxx .. .)". Bir uygulamanın "otomatik olarak doğru olanı yapmasını" bilmesi güzel olsa da, kontrolde olmayı seviyorum ve bazen bu bile gerekli. Ayrıca, fabrika ayarlarına sıfırlama ve yeni cihazlar dışındaki durumlarda geri yükleme yapılması gerekebilir, bu nedenle kullanıcının bunu tetiklemesinin bir yolu olmalı ...
Izzy

7

Aşağıdaki soruya hiçbir cevap yok, ancak bazı detaylara ışık tutabilir:

Yedekleme API’sinden çıkarılan bazı parçalar

API, esas olarak geliştiricileri hedef alsa da, davamız için elde edebileceğimiz birkaç gerçek var. Aşağıdaki listede, italik API dokümantasyonundan alıntıları işaretler.

  • Uygulamanız yüklendiğinde Android otomatik olarak bir geri yükleme işlemi gerçekleştirir ve kullanıcıyla ilişkili yedekleme verileri bulunur.
    → bu iki şey anlamına gelebilir:
    • Bir uygulama Google Yedekleme API'sini destekliyorsa ve kullanıcı Google Yedekleme özelliğini etkinleştirmişse, kullanılabilir yedekleme verileri kurulum sırasında otomatik olarak geri yüklenir. Tek bir cihazda kullanılan bir uygulamayı ikinci bir cihaza ilk kez yüklediğinizde iyi bir şey.
    • yedeklemeler, cihazla değil, yalnızca Google Hesabı ile ilişkilendirilir ( ve kullanıcıyla ilişkili yedekleme verileri vardır ) - veya başka bir şey bu özel durumla ilgisiz olduğu için göz ardı edildi ("uygulama yüklendi")
  • Yedek aktarımı, Android üreticisinin cihaz üreticisi ve servis sağlayıcısı tarafından özelleştirilebilen yedekleme çerçevesinin müşteri tarafındaki bileşenidir . Yedekleme aktarımı cihazdan cihaza farklılık gösterebilir [...]
    → bu, farklı cihazlara (ya da farklı Android versiyonlarına) gelince güvensizliği açıklayabilir.
    (vurgu madeni)
  • Veri destekli Android destekli tüm cihazlarda bulunabileceği garanti edilmez.
    (yorum yok)
  • Google, Android 2.2 veya daha üst sürüm kullanan Android destekli birçok cihaz için Android Yedekleme Hizmeti ile bir yedekleme aktarımı sağlar.
    → işte Google Yedekleme için gerekli olan minimum Android sürümümüz var: Froyo, AKA Android 2.2
  • Yedekleme Servis Anahtarınızı almak için Android Yedekleme Servisine kaydolun. [...]
    → her uygulamanın kendi anahtarı olmalıdır. Tanımlanan "neden" yok, ancak iyi bir tahmin var: yedekleri izole etmek, böylece hiçbir uygulamanın başka bir uygulamanın yedeklerini okuyamaması (yanlış anahtar; başka bir kullanıcının yedeklemesinde olduğu gibi: yanlış hesap)
  • Uygulamanızı geliştirirken, bmgr aracıyla Yedekleme Yöneticisinden hemen bir yedekleme işlemi başlatabilirsiniz.
    → el ile yedeklemeyi tetiklemenin bir yolu var gibi görünüyor? Daha sonra buna girelim. ↓
  • Uygulama verilerinizi geri yükleme zamanı geldiğinde, Yedekleme Yöneticisi yedekleme aracınızın onRestore()yöntemini çağırır .
    → bu tekrar, bu listenin ilk maddesinin altını çizer: önce uygulama kurulmalı, sonra da verileri geri yüklemek için kendi uygulamaları kullanılmalıdır. İkinci bir bakışta: Uygulama geri yükleme başarısız olursa, Google Play üzerinden manuel olarak yükleyene kadar başarısız olan uygulamalar için veri geri yükleme işlemi yapılamaz. Ardından, ilk öğenin gösterdiği gibi, açıklanan koşullar altında veriler otomatik olarak Google Yedekleme ile geri yüklenmelidir (bununla aynı hesap vb. İle yedeklenmiş olması gerekir)
  • Diğer dosyaları yedekleme
    → bu bölümün (teknik) içeriğinden alıntı yapmadığım için beni bağışlayın, ancak kısaca: yalnızca dahili depolamadaki dosyalar bu dosyaya göre yedeklenebilir.

Bmgr API'sinden çıkarılan bazı parçalar

  • Yedekleme ve geri yükleme işlemlerini başlatmak için komutlar sağlar [...]
    → "otomatizm" başarısız olursa eylemleri manuel olarak tetiklemenin bir yolu gibi görünüyor
  • Bu komutlara adb kabuğu üzerinden erişilir.
    → bunun bir açıklamaya ihtiyacı yok :)
  • adb shell bmgr backup <package>
    → Tamam, bu işlem uygulamalara bağlı. Tahmin edin, veri sağlayıcının paket adını biliyorsanız, bunun da çalışması gerekir (örneğin com.android.providers.settings, sistem ayarları com.android.providers.telephonyiçin veya SMS / MMS vb.)
  • Eğer kullanarak hemen yayınlanmasını bekleyen tüm yedekleme işlemlerini zorlayabilir bmgr runkomutu
    ilk komutu → sadece "programları" yedeklerini. Tüm paketleri tetikledikten sonra bu, derhal yürütmek için kullanılabilir.
  • adb shell bmgr restore <package>
    → bu doğru olmak hoş görünüyor, değil mi? Tam olarak, çünkü: Yedekleme Yöneticisi, hemen uygulamanın yedekleme aracısını başlatır ve geri yüklemeye çağırır. Yalnızca veriler, uygulamanın zaten orada olması gerektiği gibi (yordamları çağrıldığında).

Kısacası: bmgryüklediğiniz Google Yedekleme'yi destekleyen uygulamaların yedeklemelerini tetiklemek için kullanılabilir - aynı şekilde veri geri yüklemesini de tetikleyebilir. Tam bir geri yüklemeyi tetiklemek için kullanılamaz - en azından burada belgelenmemiş.


Bunun eski olduğunu biliyorum ve biri bu kadar eski bir soru hakkında yorum yaptığı için bana saldırabilir, ancak ne kadar zor gidersem gideyim bulabileceğim en alakalı tek sonuç budur. Yeni bir telefon aldım ve cihaz kurulumu başladığında, eski Nexus 5x'imi geri yüklemek için bir cihaz olarak göstermiyor ve yedeklemeyi ve geri yüklemeyi 5x'te etkinleştirildiğini biliyorum. 5x tamamen öldü, bu yüzden yardımcı olmak için hiçbir şey yapamıyorum. Ve bmgr liste setleri yaptıktan sonra, kurulum sırasında gösterdiği aynı yanlış aygıtı gösterir .... herhangi bir tavsiye çok takdir edilecektir.
Soundfx4

1
@ Soundfx4 Ayrı ve özel bir soru sormanızı önerebilir miyim? Referans için buraya link hoş geldiniz. Google Yedekleme'yi kullanmadığımdan, bu konuda size yardımcı olamayacağım.
Izzy

1
Bu çok daha iyi bir fikir, teşekkür ederim. İnternet orada asla yeterince yararlı bilgiye sahip olamaz! Biraz zamanım olduğunda bir tane yazarım. Cevap için Ty!
Soundfx4

6

Google yedeklemeyle ilgili biraz daha bilgi. Özel bir bellenimi kopyaladığımda uygulamaları beklediğim gibi geri yüklemiyordu. Ayarlar -> Yedekle ve sıfırla seçeneğinde "Yalnızca hata ayıklama özel önbelleğine yedekleme" gösteriliyordu ve bmgr list setssonuç bulunamadı.
Sorunumu aşağıdaki adımları uygulayarak çözdüm adb shell:
$ bmgr transport com.google.android.backup/.BackupTransportService
$ bmgr list sets 3a0a00a516a1daf1 : LT22i
Bu yeterli değildi. Uygulama yüklemeye başlamadı. Bu, bunun nedenini gösterdi:
$ bmgr list sets 3179e4ab08d74930 : LT22i 3a0a00a516a1daf1 : LT22i
IMEI açıkça aynı olmasına rağmen, yeni bir set yaratmıştı. Neyse, bu düzeltme oldu:
$ bmgr restore 3a0a00a516a1daf1(ilk kez gösterdiği kimliği)
$ bmgr run(emin olmak için)
Sonra uygulamaları indirmeye başladı.


3

Bununla ilgili deneyimim, her cihazın kendi yedeği olduğu oldu. Bunu Nexus 7 ve Galaxy S II ile uğraşırken alıyorum. Bunun dışında bilmiyorum.

Uygulamalar:

Benim Nexus 7 bu uygulamalara sahip olan Caustic , DC Comics ve 20 Minute Meal'lar Galaxy S II fabrika ayarlarına sıfırlandığında Galaxy S II yüklü değil.

Benim Galaxy S II, Nexus 7'nin fabrika ayarlarına sıfırlandığında Nexus 7'ye yüklenmediğini belirten DriveDroid ve Human Japanese uygulamalarına sahip .

Uygulamalar her iki cihazla da uyumludur, bu nedenle uyumsuzluk, ilgili diğer cihaza yüklenmemelerinin nedeni olamaz.

Veri:

Wifi ve diğer veriler gelince, ilk android kurulumu sırasında her cihazda Wifi'yi ayarladığımdan emin değilim. Diğer google hesaplarına gelince, bunların her cihaza kopyalanmadığı görülüyor ve aynısı her cihazdaki Skype ve GitHub hesapları için de geçerli.


1
Yalnızca bu aygıta yüklenmiş olan uygulama yedeklemeden yeniden yüklenir. EG, DriveDroid uygulaması telefonumda yüklü ve fabrika ayarlarına sıfırlama işleminden sonra Nexus 7'ye yüklenmiyor. Diğer uygulamaların yanı sıra Galaxy S II'de indirilmeyen Nexus 7'de Caustic var.
Nalum

Teşekkürler - Bunu cevaba entegre ettim. Oldukça tartışmalı raporlar olduğu için: Yanıtınızı, kullanılan cihazların Android sürümleriyle güncellemenizi ister misiniz? Şimdiden teşekkürler! Dönüşümümüzü karmakarışık etmek için, yorumlarımdan bazılarını da silerim (bunları daha önce cevaplayanlar için aynısını yapmaktan çekinmeyin).
Izzy

Öyleyse şimdi anlaşmaya varıldı: hiçbir şey çapraz restore edilmezse, cihazlardan biri "kırılırsa" (veya ikisini birer birer yeni cihazla değiştirmek istiyorsanız) ve "birleştirmek" istiyorsanız ne yapmalısınız? Sanırım gerçekten iyi bir el kitabını
özleyen

1

Carbon özel ROM'unu bir Nexus 4'te (KitKat stoğundan) silmeden ve kurmadan önce hem yerleşik Google yedeklemesini hem de Helyum yedeklemesini kullanarak yedekledik. Google’ın bu telefonu geri yüklediğimde daha önce yaptığı gibi uygulamaları, ayarları vb.

Helyum'u da denedim, ayrıca manuel 'PC Download' geri yüklemelerinde bile neşe yok, 'restore edildi' dedi ancak Wifi ve uygulama verileri hala orada değil.

bmgr restore <xxx>Tam geri yüklemeyi çalıştırmak ve bmgr runyukarıda ayrıntılı olarak açıklandığı şekilde, Google geri yüklemesini tetikledi ve benim için bir hayat kurtarıcı çalıştı!

Google, özellikle de Apple sadece işe yarar fikriyle rekabet etmek istiyorsa, daha iyi bir çaba gösterebilir ... Yine de, tuzaklarına rağmen Android'in hack kabiliyetini seviyorum!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.