壊れたヘッダーを持つtarballのためにADBバックアップを復元できません - adb フィールド と backup フィールド と restore フィールド android 関連 問題

Cannot restore an adb backup due to a tarball with a broken header












1
vote

問題

日本語

Android 5.0.2と6.0.1を持つ2つのデバイスを持っています。 9988776666544330 を使用して、古いAndroidバージョンの古いAndroidバージョンを使用して、一部の非クラウドアプリケーションを新しいものに移行します。バックアップコマンドは簡単です:

<事前> <コード> adb logcat -s BackupManagerService 1

現在、デバイスを新しいAndroidバージョンで接続した後、次のコマンドが機能すると予想されます。

<事前> <コード> adb logcat -s BackupManagerService 2

残念ながらはありません。いつものように、復元プロセスは復元プロセスが終了したことを黙って黙って失敗します。実際には本当に起こりません。これがログです:

 <コード> adb logcat -s BackupManagerService   

08-27 01:02:44.100 1300 2300 I BackupManagerService:フル復元を始めてください...
08-27 01:02:44.100 1300 2300 D BackupManagerService:復元の開始確認UI、トークン= 1956031088 <1956031088 08-27 01:02:44.120 1300 2300 D BackupManagerService:フル復元完了を待っています...
08-27 01:02:45.650 1300 2450 D BackupManagerService:acknowledgefullbackuperrestore:token = 1956031088 allow = true 08-27 01:02:45.680 18181 BackupManagerService:パッケージFoo.bar.bazがインストールされていません。データセットにAPKを必要とする
08-27 01:02:45.680 1300 18181 D BackupManagerService:APKファイル;インストール
08-27 01:02:45.680 18181 D BackupManagerService:バックアップからのインストール:foo.bar.baz
08-27 01:02:45.690 1300 18181 e BackupManagerService:復旧するAPKがインストールに転送できません
08-27 01:02:45.690 1300 18181 e BackupManagerService:ヘッダの解析エラー:ヘッダ内の無効な番号: 'Яжв' for Radix 8
08-27 01:02:45.710 1300 18181 W BackupManagerService:復元ソケットの読み取りのIO例外
08-27 01:02:45.710 1300 18181 W BackupManagerService:java.io.ioException:ヘッダー内の無効な番号: 'Яжв' for Radix 8
08-27 01:02:45.710 1300 18181 W BackupManagerService:at com.android.server.backup.backupManagerService $ performAdbrestoreTask.extractradix(BackupManagerService.java:7380)
08-27 01:02:45.710 1300 18181 W BackupManagerService:at com.android.server.backup.backupManagerService $ PerformAdbrestoreTask.ReadTarHeaders(BackupManagerService.java:7179)
08-27 01:02:45.710 1300 18181 W BackupManagerService:at com.android.server.backup.backupManagerService $ performAdbrestoretask.RestoreOneFile(BackupManagerService.java:6396)
08-27 01:02:45.710 1300 18181 W BackupManagerService:at com.android.server.backup.backupManagerService $ PerformAdbrestoretask.run(backupmanageService.java:6254)
08-27 01:02:45.710 1300 18181 W BackupManagerService:java.lang.thread.run(thread.java:818)
08-27 01:02:45.710 1300 2300 I BackupManagerService:フル復元処理完了
08-27 01:02:45.720 1300 18181 D BackupManagerService:フルリストアパス完了。

同じバックアップ形式を新しいデバイスで復元できないことをやや奇妙に見えます。 998877666544334 を使用して基礎となるTarballを再パックしようとしました。壊れたヘッダーが修復されることを望んでいます( 9988776665435 )。運さない

そのようなバックアップ/復元の動作を引き起こすのは、古いデバイスから新しいデバイスにアプリケーションを移行するために問題を解決する方法を解決しますか? 高く感謝しています。

  • Androidデバッグブリッジバージョン1.0.31
  • LG Optimus E975、Android 5.0.2、Cyanogenmod 12-2015 ...
  • Samsung Galaxy S5、Android 6.0.2、より新しいSprint Stock Firmwareに点滅しました(最初はAndroid 5.0.x以前)
        

回答リスト

2
 
vote
vote
ベストアンサー
 

チタニアムバックアップのような別のツールを使用したさまざまな実験の一日後(うまくいかない、TBはデータではなくAPKを復元できませんでした)<コード> 998877666544330 キーは指定されていました。問題。バックアップ操作中にフラグを省略するだけで、完全に復元できなくなります。

だから私の新しいバックアップ/復元計画は次のようになりました:

  • デバイス1:バックアップデータのみ
  • デバイス2:バックアップAPK +データAPKを保持しているデータを後でだけ保持します( <コード> 99887766544331 によってNikolay Elenkov; JDK 1.8.xとGradle 2.7を使用して簡単に構築できます(gradle 2.7以降およびgradle 3.0以降を使ってビルドできませんでした) command)< / li>
  • デバイス2:<コード> adb install
  • を使用してAPKを復元する
  • デバイス2: 99887766544334
  • を使用してデータを復元する

これはスクリプトです:

backup.sh

 <コード> #!/bin/bash  set -e  PACKAGE=$1  if [ -z "$PACKAGE" ]; then     echo no package specified     exit fi  echo ">>> Backing up $PACKAGE data..." adb backup -f "$PACKAGE".DATA.ab $PACKAGE  echo ">>> Backing up $PACKAGE APK..." adb backup -apk -f "$PACKAGE".APK.ab $PACKAGE  echo ">>> Extracting APK..." java -jar abe-all.jar unpack "$PACKAGE".APK.ab "$PACKAGE".APK.ab.tar rm "$PACKAGE".APK.ab APK_FILENAME=$(basename $(tar tf "$PACKAGE".APK.ab.tar | grep '^apps/'"$PACKAGE"'/a/')) tar xvf "$PACKAGE".APK.ab.tar -C ./ "apps/$PACKAGE/a/$APK_FILENAME" --strip-components=3 mv "$APK_FILENAME" "$PACKAGE".apk rm "$PACKAGE".APK.ab.tar  echo echo "*************" echo "*** Done ***" echo "*************"   

このスクリプトには、入力パラメータとしてパッケージ名が必要であり、APKとそのデータをそれぞれ<コード> 998877666654336 および 99887766666544337 として記憶させる。 9988776665544338 ファイルは元の状態にあります。

restore.sh

<事前> <コード> #!/bin/bash set -e PACKAGE=$1 if [ -z "$PACKAGE" ]; then echo no package specified exit fi echo ">>> Installing $PACKAGE APK..." adb install -r $PACKAGE.apk echo ">>> Restoring $PACKAGE data..." adb restore $PACKAGE.DATA.ab echo echo "*************" echo "*** Done ***" echo "*************"

このスクリプトは、ターゲットデバイスにAPKをインストールし、そのデータを復元します。唯一の入力パラメータはアプリケーションパッケージ名です。

だから全体のバックアップ/復元プロセスは次のとおりです。

  • 接続装置#1
  • EXECUTE adb install10 アプリケーションパッケージ名
  • デバイス#1の「バックアップ...」をクリックします(それぞれデータとAPK +データバックアップには2回要求されます)
  • 必要に応じて他のパッケージについて前の2つの手順を繰り返します
  • デバイス#1を取り外して、デバイス#2
  • を接続します。
  • 実行<コード> アプリケーションパッケージ名
  • を渡す
  • デバイス#2の「復元...」をクリックすると
  • 必要に応じて他のパッケージについて前の2つの手順を繰り返します
 
 
2
 
vote

私はちょうどあなたの答えに追加したいのですが、Kitkat(4.4)からNougat(7.1)へ行くのが好きです。 (BTW、これとの戦いの2日後のあなたの質問に出会い、TONありがとう)

バージョン1.0.32以降のADBには、バージョン1.0.31が豊富に機能します。ただし、Nougatに復元するには1.0.36が必要です。

バックアップ: platform-tools_r20 (パスワードを設定する必要があります)

復元: Platform-Tools_R25.0.3 (パスワードが必要ありません)

そのように、私はあなたのスクリプトに少し追加しました...(ADB-1.0.31およびADB-1.0.36のシンボリックリンクを追加する必要がある場合)

backup.sh

<事前> <コード> adb install12

restore.sh

 <コード> adb install13  
 
 
1
 
vote

<コード> 99887666543315 < 9988876654315 Archiveの 9988766544315 の代わりに 99887766543315 アーカイブ」の場合は同じエラーが発生しました。私は7z.exeを使用していましたので、コマンドを変更してから:

<事前> <コード> adb install17

to:

<事前> <コード> nelenkov/android-backup-exractor8

助けました。について

 
 
0
 
vote

私はそれがあなたの質問に対する直接的な答えではないことを知っていますが、他の人々が同じ状況にあるかもしれないし、同様の解決策を探しているかもしれません:

今日も系統14.1 - &gt; 15.1のアップグレード。 ADB 1.0.39は実際には状況を改善していないようです。

古いADBバージョンを使用したくなかったが、シンプルでオープンソースになることを望んでいました。

私はOANDBACKUP( https://f-droid.org/ en / packages / dk.jens.backup / )私が欲しいものを正確にするために。すべてのユーザーアプリ、バックアップAPK +データを選択して、フォルダ全体を他の電話機にコピーし、すべてのアプリ+ APK、およびVoila、(ほとんど)すべてのすべての電話機にコピーしてください。アカウントエントリ(IMAPNOTES、DAVDROID)が機能し、「アカウント」アプリをバックアップしており、機能しなかった目に見えないIMAPNotesアカウントを追加し、再追加できませんでした。アプリのデータを削除し、手動でアカウントを再追加する必要がありました。だから私はアカウント情報をバックアップすることをお勧めしません。

それ以外の、私は幸せです。

Adebarを使用していました( https://github.com/izsoft/adebar )完璧だったが、ADBバックアップ/復元は信頼できるものではないので、それも機能しません。

すべてのADBバージョンが異なるエラーメッセージを作成します。

<コード> DefContainer: Failed to parse package または

<コード> Applications1

うまくいけば、いくつかの検索エンジンはこれらの文字列を拾うでしょう。

 
 
 

関連する質問

73  Androidデバイスをバックアップする方法  ( How to backup an android device ) 
誰かがAndroidデバイスをバックアップするための良い方法をお勧めしますか? 理想的にはこれをワイヤレスでやりたい、そして私のデータをバックアップするだけでなく、私のユーザー設定もしたいと思います。 Androidデバイスのイメージをバックアップすることは可...

3  Android携帯電話が失われた、私は新しい電話に乗ることができますか?  ( Android phone lost what data can i get onto new phone ) 
不器用な質問についてすみません。 私のAndroid HTC Magicは昨夜失われました。ロック解除スワイプコード、電源投入SIMコードを持っていて、電話会社と呼ばれ、ブロックされていたので、他の人が使用している電話自体が使用されていません。 私が考えている...

8  Nandroid Imageの一部のみを復元します  ( Restore only part of nandroid image ) 
2.2をインストールしようとしています。私の連絡先をすべて削除しました(連絡先が電話で保存され、Googleの連絡先としては保存されました) 私は完全に完了しました nandroid バックアップ中は、携帯電話中にそれらの連絡先がありました。ただし、画像を復...

3  私の古いiPhoneから私の新しいAndroid携帯にSMSメッセージを転送する方法は?  ( How can i transfer sms messages from my old iphone to my new android phone ) 
私の前のSMSはiTunesのどこかに保存されていると思います。 ...

6  電話機間のアプリケーションのコピー?  ( Copying applications between phones ) 
電話機間でアプリケーションを簡単にコピーすることは可能ですか(例えば、Bluetoothを介して2つのHTCS)、それらを元気に実行しますか?または、ダウンロード後に右に来るインストールルーチンのために、たびにAMからダウンロードする必要があります。 ...

0  私のAndroid携帯電話からEメールを引き出すことはできますか?  ( Can i pull the emails off my android phone ) 
最近、私のラップトップコンピュータのすべてのEメールを失いました。そして彼らは重要なビジネスメールでした。それらのEメールの多くはまだ私のAndroid携帯電話に存在します。私はそれらすべてを転送できることを知っていますが、それは多くの時間がかかります、そして...

5  ROMバックアップを復元します  ( Restore a rom back up ) 
私は今夜私の携帯電話にシアノーゲン銃を試すつもりです。しかし、私がそうする前に、私は一つのことについて興味があります。私はこのサイトで受け取った1命令(Bryanに感謝します)、そして私のすべてのアプリケーションとデータのチタニウムのバックアップを行ったNAN...

0  Whatsappチャットとデータを復元します  ( Restore whatsapp chat and data ) 
最近、私のXperia Z2を点滅させた後、点滅する前に電話機の内部メモリのバックアップを取得し、WhatsAppデータが自動的に復元されるという印象を持っています。しかし、フラッシュプロセスが完了した後、もう一度WhatsAppをインストールした後、以前のメ...

0  私が私の電話を変更するとき、私はドリームリーグサッカー2018と私のプレーヤーの購入ですべての私のゲームの進歩を続けることができるでしょうか?どうやって?  ( When i change my phone will i be able to keep all my game progress in dream lea ) 
私の電話を変更するとき、私はドリームリーグサッカー2018と私のプレーヤーの購入ですべての私のゲームの進歩を続けることができるでしょうか?もしそうなら、どのように? ...

24  最初のオープニングGoogle Playで停止した後、アプリの復元を再開する方法?  ( How to resume app restore after stopping it on first opening google play ) 
私はGalaxy NexusのGoogleサイトから新鮮なストックROMをインストールしました。 Google Playを開き、157のアプリのインストールを開始しました...問題は、WiFiのカバレッジなしでエリアに移動する必要があるように途中でダウンロー...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有