アプリケーションがadb復元でインストールされない


9

以前にバックアップされた、ルート化されていないAndroid 7.0デバイス(NVIDIAシールドタブレット)を持っています

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

しかし、それを復元する

adb restore mybackup.ab

その結果/Android/data、などが復元されますが、アプリケーションはAPKファイルからインストールされないため、エラーは発生しません。

mybackup.abからapkファイルを抽出し、を使用して手動でバッチでインストールする必要がありましたadb install <...>.apk。その後はすべて順調でした。

以前に6.0で同様の問題があったことは確かです。以前はヘリウム/カーボンでしたが、選択したバックアップ方法に固有であると思いました。

何が問題adb restoreですか?デバイスがルート化されていないためですか?なぜadb install期待どおりに機能するのですか?


解決策を見つけたことがありますか?これは、この問題の上位の検索結果の1つです。
Skylar Ittner 2017年

1
@SkylarMTまだです。まだadb installバッチで使用する必要があります。誰かがこれを手伝ってくれることを願っています。
Estus Flask 2017

Titanium Backupを使用してadbバックアップファイルを部分的に復元しました。rootが必要で、すべてを取得できませんでしたが、インストールしたアプリの半分以上が復元されました。
Skylar Ittner 2017年

このソリューションが役立つかどうかを確認しください
beeshyams 2017年

回答:


4

次のスクリプトで解決しました

#!/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"

さらにandroid-backup-extractorが必要です。私の経験では、adbバックアップはまだ本当に安全ではありません。まず、一部のアプリはフラグを設定できるため、バックアップされません。また、デバイスを変更した場合など、復元は時々しか機能せず、確実ではありません。根ざした電話を持っている場合、2018年にTitanium Backupだけがうまく機能するのは残念です。


できれば2回賛成します。それを機能させるために3日間の試行–これでうまくいきました。「今週のヒーロー」にあなたを推薦してください:) //リファレンス:Nougat / LOS 14.1のBQ Aquaris X5 Plus
イジー

Huawei Backupは、Huaweiの電話でもうまく機能します。しかし、チタンからはほど遠い:-(
niels

2

コマンドadb restoreは.apkを再インストールしません。実際には、このコマンドはシステムとデータファイルを書き戻すだけです。 - Androidのdevのサイト

アプリのインストールプロセスを自動化する場合:

  1. 抽出したすべての.apkを1つのフォルダーに追加する
  2. for %f in (C:\_apk folder location_\*.apk) do adb install "%f" NOTE」と入力します。名前に「スペース」が含まれている.apkファイルがある場合、adbはスペースを認識しないため、_またはその他の名前に書き換えます。

正しい場合、この情報の参照を指定できますか?以来adb backupのAPKを含むすべてバックアップし、私はその期待adb restore反対のことを行います。それ以外の場合、apksは.abファイルのスペースを浪費しているように見えます。
Estus Flask 2017

表1で、> android devサイトのバックアップおよび復元コマンドadb restoreは、「ファイルからデバイスの内容を復元する」と説明されているコマンドです。これは、解凍パッケージファイルとして解釈され、インストールパッケージではなくデバイスのみに配置されます。それは理にかなっていると思います、インストールは定義コマンドadb installでした(それは必ずしも他のコマンドでインストール機能を備えている必要はありません)が、私はそれが良いだろうと同意します:)
MaTT Belis

@MaTTBelis「ファイルからコンテンツを復元する」とは、ファイルが保持するすべてのものを復元することを意味します(APKがある場合は、APKのインストールを含みます)。そして、MMまではそれを正確に行いました(私はAndroid 4が導入されたときから使用しています)。問題が発生したのはAndroid 7のみで、バグによりAPKのインストールが妨げられているようです。一部のデバイスでは、logcatでそれを正確に試行することがわかります(しかし、言うまでもなく失敗します)。実際、これらのデバイスではNilsの答えが機能します。
イジー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.