ADBバックアップは0バイトのファイルを作成します。パスワードを設定したことがない場合でも、現在のバックアップパスワードの入力を求められます。デスクトップバックアップパスワードの「パスワードの設定に失敗しました」


49

問題:

ADBバックアップを実行するたびに、ホーム画面の下部に「Backup starting...というメッセージが表示されます。その後、17 GBのデバイスメモリを使用しているBackup finished もかかわらず、数秒後にメッセージが表示され、バックアップファイルが作成されます。サイズは0バイトです。私は、エラー・メッセージ、指示する一切のフィードバック受けていないことを何かが間違っているが、おろかが間違っています。動作しているように見えますが、速すぎて、バックアップファイルが空です。

プロセス:

  1. adb devicesコマンドを使用してデバイスがADBによって認識されていることを確認し、次の出力を受け取ります。

    List of devices attached
    8e1f368a        device
    
  2. ADBバックアップコマンドを発行します(詳細は以下)。

  3. コマンドプロンプトで次のメッセージが表示されます。

    Now unlock your device and confirm the backup operation.
    

    ...および電話の次のプロンプト:

    ここに画像の説明を入力してください

    ここで何をしても違いはありません(詳細は以下)。

  4. Back up my dataボタン(右下)をタップします。

  5. 電話がホーム画面に戻りBackup starting...Backup finishedメッセージが表示され、数秒後にメッセージが表示されます。0バイトのファイルが作成され、デフォルトのbackup.abまたは-fスイッチで指定した名前が付けられます。

ADBバックアップコマンド(手順2で使用):

私は、オプションの複数の組み合わせを試しました。

adb backup -all

のようなものに

adb backup -all -apk -s 8e1f368a -f 'C:\Data Files\PDA\Backups\ADB\GalaxyS4_20140919.ab'

また、これこれを-nosystem読んだ後にスイッチを追加しようとしました。これは、ルート化されていないデバイスにシステムバックアップを含めると0バイトのファイルになる可能性があり、このスイッチを使用する必要があることを示しています。違いはありません。プロセスは数秒で完了し、0バイトのファイルを取得します。

「フルバックアップ」パスワードプロンプト(ステップ3):

私は以前にバックアップパスワードを設定したことがないと確信しています。これまで、このパスワードを設定したり、この設定にアクセスしたりする機会は一度もありませんでした。ただし、次のすべてを試しました。

  • 両方のパスワードを空白のままにする
  • 「現在のバックアップパスワード」を空白のままにして、2番目のボックスに新しいパスワードを入力します
  • 現在の画面ロックPINと、過去に「現在のバックアップパスワード」として使用したすべてのPINを入力します。
  • すべてのパスワードを入力します。このデバイスで何かに使用したことがあると思います。

すべての場合において、動作はステップ5で説明したものとまったく同じです。エラーも、何かが間違っているか、パスワードが無効であるという兆候もありません。また、実際に現在のパスワードを期待しているのか、それともフィールドは空白のままにしてください。(この回答と私が見た他のいくつかのサポートフォーラムのスクリーンショットは、現在のパスワードがない場合は「現在のバックアップパスワード」ボックスが表示されないことを暗示しているように見えますが、それは単なる推論です。実際には現在のパスワードが必要です。)

プロンプトに表示されるパスワードは、開発者オプションで設定された「デスクトップバックアップパスワード」である可能性があります。

ここに画像の説明を入力してください

そのパスワードを設定したことがありません。設定しようとすると、次のメッセージが表示されますFailed to set backup password.

このエラーに関する情報を検索する際に、この問題を抱えている人がADBバックアップの使用を妨げていると言った少なくとも1つの他のケースに遭遇しましたが、彼はADBを使用しようとすると何が起こるか明確ではありませんでしたバックアップ。

パスワードを設定したことがないこのメッセージを受け取ったほとんどの人は、解決策は現在のパスワードを空白のままにすることであると言いましたが、そもそもそれを試してみましたがうまくいきませんでした。この問題に遭遇した別の人による質問を見つけまし。残念なことに、彼が解決策や説明さえ得たようには見えません。

ADBが「デスクトップバックアップパスワード」を探しているか、ADB暗号化パスワードが別のものであるかに関係なく、ADBが新しいバックアップを開始するために以前のパスワードを入力する必要がある理由を思い出します。以前に暗号化されたデータを復元、上書き、または何らかの方法でアクセスしようとはしていませんので、バックアップの暗号化パスワード以前に設定されていたとしても、誰もあなたが過去にバックアップの暗号化に使用したパスワードを覚えていない場合は、デバイスをバックアップします。

追加情報:

モデル: Samsung Galaxy S4 SCH-I545
カーネルバージョン: 3.4.0
OSバージョン: 4.4.2
Android SDKツールバージョン: 1.16
USBデバッグが有効になっています。

ADBバックアップを使用する理由は、ルート化する前に携帯電話の完全なバックアップを取り、安全にバックアップするためです*。これにより、Titaniumバックアップなどのnandroidバックアップツールを使用できます。したがって、私の電話を応援することを含む提案は、解決策ではなく、キャッチ22になります。言うまでもなく、工場出荷時設定へのリセットも解決策ではありません。バックアップを実行する目的全体を無効にするからです。

電話会社のExchangeサーバーと同期するように設定されており、サーバーによって適用されるポリシーがいくつかあります。会社のアカウントとの同期を最初に設定したときにデバイスが暗号化されていると思っていましたが、現在は暗号化されていないようです。実際、それがこの一連のイベントを動かしている理由です。会社のサーバーに接続し続けるには、デバイスを暗号化する必要があるというメッセージが表示されます。暗号化する前にnandroidバックアップを取得します。これにはルート化が必要です。また、ルート化する前にADBバックアップを使用します。


*はい、Towelrootは安全であると言われていることは承知していますが、チャンスを取りたくないので、将来、関連する問題が発生した場合にこの問題を解決するか、少なくとも理解したいと思います。


私は(:ながら、ちょうど他の方法で回避類似していた(両方のケースでは、根ざしかない)、私のタブレットの1にADBといくつかの問題を持っていたadb backup加工さ罰金が、adb restoreいつも失敗しました)。許可の問題(メーカーがROMを台無しにしていた)であることadb restoreが判明したため、デバイスに転送されたバックアップファイルを読み取ることができませんでした。見つけるのは少々面倒でしたが、ここで似たようなことが本当にあるかどうかはわかりません。しかし、チェックする価値があるかもしれません。
イジー

2
ここで同じ0バイトの問題が発生する人のために:一度[設定]でデスクトップパスワードを設定して忘れてしまったため、この問題が発生しました。デバイスがルート化されているので、この答え(私の答え)に従いましたが、すべてうまくいきました。
消防士

あなたはまたに見えるかもしれません:code.google.com/p/android/issues/detail?id=47009 -あなたの携帯電話を暗号化している場合は、すべてのプロンプトで、「現在のパスワード」としてあなたの暗号化パスワードを使用する必要があるかもしれません。どちらか「フルバックアップ」画面、または「デスクトップバックアップパスワード」画面で。
マルコレオグランデ

@AdiInbarこれを解決したことがありますか?
codecowboy

これを見つけるのに実際に時間がかかりました。適切なキーワードを使用していないかどうかはわかりませんが、これはまさに私が必要としたものです!
トーマス

回答:


31

簡潔な答え

以前のバージョンのadbを使用してみてください。1.0.32は機能しませんでしたが、1.0.31は機能しました。

ロングアンサー

プラットフォームツールとADB(Android Debug Bridgeバージョン1.0.32リビジョンeac51f2bb6a8-android)の現在のバージョンを使用して、CyanogenMod 11(Android 4.4ベース)を実行しているNexus 5でこの問題が発生しました。

adb logcatデバイスのログを見るために使用して、呼び出し後にadb backup -apk -obb -shared -all -nosystem疑わしいログエントリがあることに気付きました。

V/BackupManagerService(  811): Requesting full backup: apks=false obb=false shared=false all=false pkgs=[Ljava.lang.String;@4181ffc8
W/BackupManagerService(  811): Unknown package  '-apk' '-obb' '-shared' '-all' '-nosystem', skipping

デバイスがコマンドラインオプションを非オプション引数として解釈し、インストールされたパッケージ名ではないためエラーを生成しているように見える場合。これにより、adbプロトコルまたはコマンド/サービス呼び出しオプションがホストに関連するデバイスで変更されたのではないかと疑われたため、古いバージョンのadbとvoilàを試してみました。

少し掘り下げて、「adb backup」のUse escape_argの変更に遭遇しました。これにより、呼び出し時にすべての引数が単一引用符で囲まれ/system/bin/bu backupます。これは、ログメッセージの動作と単一引用符で囲まれた引数について説明しています。ただし、エラーが発生した時刻と一致しないようです。また、この問題は見かけよりもはるかに広範囲に及ぶことを示唆しています。だから私はこれを原因と呼ぶのをためらいますが、それはさらなる調査のための良い出発点かもしれません。


2
以前のバージョン(1.0.31)を使用して問題を解決しました。この質問stackoverflow.com/q/9555337/1741542および特にこの回答stackoverflow.com/a/23022718/1741542は、以前のバージョン(例:platform-tools_r20-linux.zip)を見つけるのに役立ちました。
オラフディーチェ

ただし、すべてのモデルで機能するとは限りません。Samsung S3 mini(Android 4.2)の完全バックアップを問題なく作成しましたが、Android 4.0のタブレットではできませんでした。私は、adb-r10からadb-r23(adb-r15を除く)まですべて試してみましたが、成功しませんでした。
オラフディーチェ

4
私はadb 1.0.32とNexus 5(Android 6)で同様の問題を抱えていました。バックアップ引数を明示的に引用することで、つまり(bashシェル内で)adb backup '-noapk -noshared -all -nosystem'代わりに実行することでこれを解決しましたadb backup -noapk -noshared -all -nosystem。引用符がないと、「不明なバックアップフラグ-all:-nosystem:-noapk」、「バックアップパッケージが提供されておらず、-sharedまたは-allが指定されていない」、最後に「完了」のようなlogcatメッセージが表示されます。
maxschlepzig

私もついにAndroid 4.0で完全バックアップを取得しました。ばかげたことは、タブレットを再起動しただけでした。
オラフディーチェ

5
ありがとう!ところで、すべてのプラットフォームのadb 1.0.31は、ftp.mozilla.org
labs

16

kevenoidの答えに基づいて、電話で実行されているadbのバージョンに依存する場合があります。

以下を実行することで、電話機がネイティブに実行しているバージョンを確認できます。

まず、デスクトップで実行しているバージョンを確認します

adb version

次に、携帯電話でシェルを開きます

adb shell

シェルが開いたら、実行できます

adb version

次に、実行してシェルを終了します

exit

私の携帯電話は1.0.32ではなくバージョン1.0.31を実行していることがわかりました(これはサムスン注2です)

Hunterが示したような引用符やエスケープ文字を使用してみましたが、それらはいずれもWindowsコマンドラインからは機能しませんでした。ただし、ダウングレードすると、2つのバージョン間の非互換性の問題は修正されました。

こちらの手順に従って古いバージョンを見つけることができました:https : //stackoverflow.com/a/23022718/1741542

使用したダウンロードリンクは、http
//dl-ssl.google.com/android/repository/platform-tools_r20-windows.zipです。

その他のプラットフォーム:


電話でadbバージョンをアップグレードする方法はありますか?
ビン王

10

引用されているコマンド引数に関する他の答えは正確です。引数の間のスペースをエスケープすると、機能することがわかりました。

このような: adb backup -apk\ -shared\ -all\ -system


これはOPの問題の解決策ではないかもしれませんが、私にとってはうまくいかなかった古いADBを使用するよりも@Kevinoidの問題の解決策です。
ハンターペリン

これは、根拠のないケビノイドの答えの複製です。しかし、それは私のためにうまく機能し、私は\を使用することを好みます
ニール・メイヒュー

1
このソリューションは、私のためにダウングレードADBへの必要性を全く働いていない
freethinker

私が最初にこれを試してみました、それは私の問題を解決していなかったが、第2、私はそれが正しくコピーするために始めた1.0.31 ADBに行ってきましたので、これは別の問題であることを@HunterPerrinの疑いを確認することができます
サイレン

7

ここでは回避策は機能せず、SDKツールをダウングレードしたくありません。ここに私が思いついたものがadb backupあります:コンピューターをスキップし、を介してデバイスに直行しますadb shell

$adb version
Android Debug Bridge version 1.0.35
Revision fc2a139a55f5-android

$ adb shell
shell@jflte:/ $ bu 1 backup -apk app.package.name > /sdcard/backup.ab
shell@jflte:/ $ exit

$adb pull /sdcard/backup.ab
[100%] /sdcard/backup.ab

これにより/system/bin/bu、バックアップファイルが呼び出され、STDOUT(ファイル記述子#1)にダンプされます。パラメーターは同じですadb backup <params>-> bu 1 backup <params>。出力はデバイス上のファイルにリダイレクトされ、他のファイルと同様にプルできます。

唯一の欠点は、デバイスが半分以上満たされている場合、完全バックアップを実行できないことです。これは、外部SdCardスロットがある場合に回避できます。buシステムアプリなので、Android 4.4.2でもそこに書き込むことができます。/mnt/extSdCard/backup.ab私と同じように働いた/sdcard


4

ため息つくこの場合は本当に申し訳ありません、あなたはスクリーンショットとコマンドラインで慎重に判断しているようですが、私は私の悔しさに同じ症状を発見し、将来の発見者がここに来る場合に備えて投稿すると思いました。adbは、そのオプションのシングルダッシュとダブルダッシュについて非常にうるさいことがわかります。私にとって、二重ダッシュはこのケースを正確に再現しました。電話の同じプロンプト、同じ0バイトのファイル。長い引数名がチャームのように機能していても、単一のダッシュ。

重要な場合、私の電話はAndroid 5.1 / Cyanogenmod 12.1を実行するSamsung Galazy Note 2 AT&T SGH-i317です。


2
代わりにこれを回答またはコメントとして投稿すべきかどうか、ちょっと混乱しています。OPは、彼がダブルダッシュではなくシングルダッシュを使用していることを示しているため、おそらくあなたの答えはマークを逃しました。この回答は有益なもの(アドオンの価値)であると認めていますが、OPの問題には答えていないようです。
アンドリューT.

これで私の問題が解決しました。
ジョンフリーマン

実際のコマンドラインを投稿してください。
RoboJ1M 16

2

adbバージョン1.0.31でadb backupコマンドを実行する必要があります。

私がやったWindowsの場合:

ログ:

$ adb backup -apk -obb -shared -all -system -f bckp.ab

adbサーバーが古くなっています。殺す...

  • デーモンが正常に起動しました *

デバイスのロックを解除し、バックアップ操作を確認します。

...その後、すべてを通常に戻します。


1

OK、これが私の修正方法です。

Hunter Perrinのソリューションを試しました。

adb backup -apk\ -shared\ -all\ -system

しかし、エラーもなく、電話にバックアップ画面も表示されずにすぐに返されました。

試行錯誤を通して、これは私のために働いた:

adb backup -all\

1

1.0.32を使用している人には解決策があると思います:

Android画面でプロンプトが表示されたらパスワードを入力します

noneと入力するとデフォルトのパスワードが使用されると言われていますが、使用しないと信じており、adb 1.0.32では暗号化されていないバックアップの作成はおそらく許可されません。

パスワードの入力はうまくいきましたが、 「Android Backup Extractor」(Warning Sourceforge)と「Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy」を使用してtarファイルに抽出しました。


1

私は逆の問題にぶつかりました:新しい携帯電話(Android 7)での1.0.31も失敗します。1.0.31は、電話に引数を渡すときにセパレータとして:を使用します。以下のようadb logcat -s BackupManagerServiceに示し、携帯電話上の新しいADBは、いずれかの古いスタイルを処理することはできません。 02-19 01:59:44.330 1100 9830 W BackupManagerService: Unknown package com.gameloft.android.ANMP.GloftPOHM:-apk, skipping 幸いなことに、新しいADBは、二重引用符の作品、例えば以内に引数を囲むよう、あまりにもセパレータとしてスペースを受け付けます。 adb.exe backup "com.gameloft.android.ANMP.GloftPOHM -apk" -f game-backup.ab

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.