Aplikasi tidak diinstal dengan adb restore

9

Saya memiliki perangkat Android 7.0 non-root (NVIDIA Shield Tablet) yang sebelumnya didukung

adb backup -apk -shared -all -nosystem -f mybackup.ab

Tetapi memulihkannya dengan

adb restore mybackup.ab

hasilnya /Android/data, dll dikembalikan, tetapi aplikasi tidak diinstal dari file apk, tidak ada kesalahan.

Saya harus mengekstrak file apk dari mybackup.ab dan menginstalnya secara manual dalam batch adb install <...>.apk. Setelah itu semuanya baik-baik saja.

Saya cukup yakin bahwa saya sebelumnya memiliki masalah yang sama dengan 6.0. dan Helium / Karbon sebelumnya tetapi berpikir bahwa itu khusus untuk metode cadangan yang saya pilih.

Ada apa dengan ini adb restore? Apakah karena perangkat ini tidak di-rooting? Mengapa adb installbekerja seperti yang diharapkan?

Estus Flask
sumber
Apakah Anda pernah menemukan solusinya? Ini adalah salah satu hasil pencarian teratas untuk masalah ini.
Skylar Ittner
1
@ SkylarMT Belum. Masih harus digunakan adb installdalam batch. Semoga ada yang bisa membantu dalam hal ini.
Estus Flask
Saya cukup berhasil menggunakan Titanium Backup untuk mengembalikan file adb backup. Ini membutuhkan root dan tidak mendapatkan semuanya, tetapi memulihkan lebih dari setengah aplikasi yang telah saya instal.
Skylar Ittner
Lihat apakah solusi ini membantu
beeshyams

Jawaban:

4

Saya menyelesaikannya dengan skrip berikut

#!/bin/bash
killall adb > /dev/null 2>&1
set -e

if [ $# -ne 1 ]; then
  echo "Usage: $0 <package-name-without-ab>"
  exit 1
fi

export PATH=/opt/jdk1.8.0_152_jce/jre/bin:$PATH
ab=$1.ab
java -jar /opt/android-backup-extractor-20160710-bin/abe.jar unpack $ab $ab.tar apw; tar -xf $ab.tar --wildcards '*.apk' --strip-components=3
mv base.apk $ab.apk
rm $ab.tar
adb install $ab.apk

adb restore $ab

echo "Ready"

Selanjutnya Anda perlu android-backup-extractor. Bagaimana pun dalam pengalaman saya, cadangan adb masih belum benar-benar aman. Pertama-tama beberapa aplikasi dapat menetapkan bendera, sehingga tidak akan cadangan. Dan pemulihan hanya berfungsi kadang-kadang dan tidak yakin, misalnya jika Anda mengubah perangkat. Sayang sekali bahwa pada 2018 hanya Titanium Backup yang berfungsi dengan baik, jika Anda memiliki ponsel yang sudah di-root.

niels
sumber
Saya akan membenarkan ini dua kali jika saya bisa! 3 hari mencoba membuatnya bekerja - ini berhasil. Nominasikan Anda untuk "pahlawan minggu ini" :) // Referensi: BQ Aquaris X5 Plus di Nougat / LOS 14.1.
Izzy
Huawei Backup membuat pekerjaan yang baik pada ponsel Huawei juga. Tapi jauh dari Titanium :-(
niels
2

Perintah adb restoretidak menginstal .apk kembali. Sebenarnya, perintah ini hanya menulis kembali file sistem dan data. - Situs pengembang Android

Jika Anda ingin mengotomatiskan proses pemasangan aplikasi:

  1. Tambahkan semua .apk yang diekstrak ke satu folder
  2. Ketik for %f in (C:\_apk folder location_\*.apk) do adb install "%f" CATATAN: Jika Anda memiliki file .apk yang memiliki "spasi" di namanya, adb belum mengenali spasi yang menulisnya dengan _ atau apa pun.
MaTT Belis
sumber
Bisakah Anda menentukan referensi untuk informasi ini jika itu benar? Karena adb backupmembackup semuanya termasuk apks, saya berharap adb restoremelakukan hal sebaliknya. Karena kalau tidak, tampaknya apks hanya membuang ruang di file .ab.
Estus Flask
Dalam tabel 1.> Cadangkan dan Kembalikan Perintah di situs dev android adalah adb restoreperintah yang dijelaskan sebagai "Kembalikan konten perangkat dari file" itu diartikan bagi saya sebagai file yang tidak dikompresi dan dimasukkan ke dalam perangkat saja, bukan paket instalasi. masuk akal, saya pikir, untuk instalasi adalah mendefinisikan perintah adb install(yang belum tentu menginstal funkcionality di perintah lain) tetapi saya setuju itu akan menyenangkan :)
MaTT Belis
@MaTTBelis "Kembalikan konten dari file" kepada saya berarti mengembalikan semua yang disimpan oleh file (termasuk menginstal APK jika ada). Dan sampai MM melakukan hal itu (saya menggunakan ini sejak Android 4, ketika diperkenalkan). Masalah dimulai hanya dengan Android 7, di mana bug tampaknya mencegah menginstal APK. Pada beberapa perangkat, Anda menemukan di logcat bahwa ia mencoba persis itu (tetapi gagal tanpa mengatakannya). Sebenarnya, untuk alat-alat itu jawaban Nils bekerja.
Izzy