Cadangkan dan pulihkan Pengaturan dan Aplikasi Android melalui ADB

30

Saya ingin bertanya apakah mungkin untuk membuat cadangan dan mengembalikan semua Pengaturan Android dan aplikasi melalui ADB.

Saya mencoba:

adb backup -all
adb: unable to connect for backup

Ini tidak berfungsi, sementara semua perintah lain berfungsi.

Apakah mungkin menggunakan bmgr ini ?

glarkou
sumber
saya menggunakan adb 1.0.29 pada win7-64 dan mendapatkan kesalahan adb: unable to open file ./backup.absaat mengeksekusi adb backup -all. apakah adb devicesmenemukan android Anda?
k3b
ya saya bisa melihat id perangkat.
Saya pernah mengalami masalah serupa ketika mengirimkan nama paket multipe di baris perintah. Masalahnya adalah jumlah paket yang akan dicadangkan terlalu lama. Saya perlu membaginya dalam beberapa panggilan perintah
Romuald Brunet

Jawaban:

9

Pastikan debugging diaktifkan dan perangkat terhubung. Juga, ingatlah untuk benar-benar memilih tombol "backup data saya" pada perangkat itu sendiri (perangkat memerlukan konfirmasi). Jika Anda tidak melihat layar seperti itu di perangkat Anda, Anda sangat mungkin menjalankan telepon pra-ICS (<4.0), yang sayangnya tidak akan memiliki fitur tersebut.

Juga, bmgrbukan solusi untuk ini- Ini adalah alat untuk menguji aplikasi yang menangani cadangan mereka sendiri menggunakan API cadangan dengan secara manual menembakkan "cadangan" dan "mengembalikan" metode pada agen cadangan dalam aplikasi, tidak menembaki perangkat dan menyalin data ke / dari mesin pengembangan.


sumber
Yup - bagi saya masalahnya adalah Android versi lama di ponsel saya, pra 4.0. Terima kasih!
nealmcb
Apakah ini benar-benar termasuk pengaturan / data?
Tidak ada yang tahu
7

Ini perintah saya untuk mendukung semuanya

./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. daftar semua file
  2. abaikan tautan
  3. untuk
    • file: menampilkan perintah tarik adb
    • direktori: buat dir (kalau-kalau kita tarik sth kosong) dan output adb pull perintah
  4. jalankan semuanya di bash

Ada beberapa file di mana saya mendapat izin ditolak - tetapi karena cadangan ini dibuat untuk me-root perangkat, saya tidak bisa mendapatkan lebih banyak izin :(

desam1000
sumber
1
Ini memang muncul untuk mencadangkan semua file (minus bit "izin ditolak") bahkan pada Android yang lebih lama (dalam hal ini, Gingerbread 2.3.3). Saya menggunakan varian ini (menambahkan -pparam untuk mkdirmenghindari beberapa pesan kesalahan dan dihapus ./di depan ./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
Stéphane Gourichon
3
Cara yang lebih sederhana untuk melakukan backup rekursif dari semua file, tanpa perlu regex mewah adalah "adb pull /."
JC Hulce
5

Jika saya mengerti Anda dengan benar, tautan ini mungkin yang Anda cari. Untuk meringkas:

1) Jalankan adb devicesuntuk memastikan perangkat Anda terpasang.

2) Jalankan adb pull /data/app ./untuk mengambil semua APK aplikasi dan meletakkannya di folder saat ini.
a) Atau Jalankan adb pull /system/sd/app ./untuk mendapatkan aplikasi pada kartu SD.

3) Pengaturan terletak di berbagai tempat, jadi cari tahu di mana dan kemudian gunakan adb pullperintah yang sama untuk mengambilnya.

Dan kemudian tautan merinci cara memulihkan berdasarkan Mac atau Windows.

Atau, sepertinya bmgrperintah yang Anda sebutkan juga akan bekerja dengan beberapa perintah sederhana ( adb shell bmgr backup <package>untuk mencadangkan dan adb shell bmgr restore <package>mengembalikan). Apa lagi yang kamu cari?


sumber
1
Seperti yang dicatat oleh Alexander Lucas dalam jawabannya di bawah, bmgrperintah adalah alat bagi pengembang untuk menguji cadangan / pengembalian aplikasi. Itu sebenarnya tidak menyalin data apa pun dari perangkat, jadi itu tidak mungkin berguna.
PT
Tidak berfungsi di adb 1.0.30 dengan perangkat Gingerbread:pull: building file list... 0 files pulled. 0 files skipped.
Stéphane Gourichon
Anda adb pulltidak akan bekerja pada perangkat yang tidak di-rooting untuk data aplikasi pribadi. Dan bmgrhanya untuk mengendalikan cadangan cloud googles
Murmel
2

masalah mungkin karena lebih dari satu perangkat / emulator terhubung.

periksa adb devicesapakah itu menunjukkan lebih dari satu perangkat maka itu mungkin tidak dapat terhubung specialy to emulators.

menjalankannya adb usbakan me-restart perangkat lain, kemudian lepaskan / menghubungkan kembali kabel usb, sekarang jalankan

adb devices

seharusnya hanya menampilkan satu perangkat.

sekarang lakukan

adb backup -all

dan Anda harus baik untuk pergi :)

Zalaboza
sumber
apa yang harus saya lakukan jika saya menggunakan perintah secara lokal melalui terminal emulator untuk android?
user2284570
2

Pastikan untuk menjalankan pembaruan SDK dan secara khusus centang kotak untuk Google USB Drivers dan perbarui SDK.

Setelah mengaktifkan USB debugging pada perangkat Anda dan mencolokkan ke PC Anda, Anda harus mendapatkan prompt tentang menginstal driver. Bahkan jika pengelola perangkat terbuka dan berhasil menemukan ponsel Anda, klik kanan dan perbarui driver dan arahkan ke folder driver USB Google di SDK > Extras > Google USBdan biarkan memperbarui driver.

Maka Anda harus dapat menarik cadangan penuh dari perangkat Anda.

Tyson
sumber
Ini memperbaiki masalah bagi saya ketika saya memilikinya. Driver bukan masalah, tetapi versi ADB sendiri sudah terlalu usang.
AJ Henderson
1

Saya memiliki GS4 yang harus saya cadangkan dan sayangnya mengalami kesalahan ini. setelah sedikit menggaruk kepala (dan bersumpah) saya menemukan perbaikan yang saya harap akan berhasil untuk Anda. Saya dapat menemukan ini hanya dengan berlariabd dan menggulir dokumentasi bantuan. Saya menemukan itu -dadalah parameter yang "mengarahkan perintah ke satu-satunya perangkat USB yang terhubung". Jadi setelah mencolokkan dan menenggelamkannya saya berhasil untuk saya. Perintah yang saya gunakan adalah:

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

Semoga ini berhasil untuk seseorang yang memiliki masalah yang sama dengan saya.

WAZANATOR
sumber
0

Saya memiliki masalah yang sama dan saya juga pra-ICS. Apa yang saya lakukan untuk mengatasinya digunakan ls of /and awk (dengan grep untuk melewati tautan) untuk membuat file batch yang menarik setiap direktori aktual ke direktori di PC saya.

eldarerathis
sumber