ようやく HTC J butterfly をゆっくりいじる時間が確保できた。
予約してない新商品の計画的衝動買いは時々あるけれど,デジタルガジェットを入手してから一週間近くカスタマイズせずに使い続けたのは異例中の異例。
仕事が忙しすぎる。
Android 端末間でアプリを移行する場合,rooted 端末同士なら「Titanium Backup 」を使えばほぼ完全に移行できるが,非 rooted 端末だとそうはいかない。
Android 4.x 未満だと,手作業で全アプリを再インストールして再設定という,フィーチャーフォン (ガラケー) のような手順を踏むしかない。
だがしかし,Android 4.x では adb コマンドによる backup / restore が公式にサポートされ,adb コマンドが使える環境であれば割と手軽に移行できることになった。
今回は移行元の Galaxy Nexus (rooted なカスタム ROM) も移行先の HTC J butterfly (HTC 謹製の純正 ROM) も Android 4.1 なので,HTC J butterfly のほうの root 化手順が確立されてない今の時点でも,adb backup / restore による移行ができる。
……できるハズなんだが,火曜日に一括バックアップ & リストアを試したとき には,一部のプロテクトされたアプリが移行できなかった。
まずは root 権限がとれるまでは仕方がないと諦めたけれど,やっぱり納得いかないので,きょうじっくり調査。
その結果,プロテクトされたアプリに関しては adb backup に -apk オプションを付けても -noapk オプションと同じ振る舞いをするだけで,データ自体は移行できることが分かった。
ただ,データを復元する前にアプリを入れておく必要がある。
アプリを入れる前にデータを復元してもエラーが出たりすることはないが,そのあとアプリを入れてもデータはまっさらになってて,意味がなかった。
ここら辺についてはあまり追求してない。
まとめると,
新端末に何らかの手段でアプリをインストールする (Play ストアから,au Market から,apk ファイルから)
旧端末で adb backup によりバックアップしたファイルを使って新端末に対して adb restore を実行する
この順序さえ守れば,プロテクトされたアプリも基本的に移行できるといえよう。
必要に応じて,SD カードや内部ストレージの中身もコピーするとよい。
この手順でもデータがきちんと移行できないアプリは,Titanium Backup でも移行できない可能性が高い。
¶ 実際に今回やったこと
プロテクトされてないアプリについてはすべて火曜日に移行して,しかも既に使い始めてるので,プロテクトされたアプリをインストールしたあと一括で adb restore するわけにいかない (プロテクトされてないアプリのデータが巻き戻ってしまう)。
プロテクトされたアプリをすべてインストールしたあと,そのデータだけを復元する必要がある。
「簡単なお仕事」とはいえない面倒な作業。
旧端末と新端末で「AppSender 」を使ってアプリ一覧を CSV ファイルに保存する
CSV ファイルからプリインストールアプリを除外して差分をとり,移行すべきアプリを選定する 新端末にアプリをひとつずつインストールする。いちいち Play ストアから探し出したり,Android ビームでアプリを転送したりするのが面倒なので,旧端末 (rooted) で書き出した apk ファイルを新端末にインストールした
アプリひとつずつに対して旧端末で adb backup を実行する アプリひとつずつに対して新端末で adb restore を実行する
2,3 個ほど,復元したデータが認識されずに,再設定を求められたアプリがあった。
あと,「音声アシスト 」は肝心の音声が再生されなくなってしまったので,データを消去して最初から設定し直した。
内部ストレージに入れればいいのか SD カードに入れればいいのかよくわからないファイルがいくつかあったから,そこら辺の移行でミスったのかもしれない。
それ以外のアプリは移行に成功して,再設定することなく使えてる。
Windows PC の移行よりも手軽だな,これは。
あとは,「プロテクトされたアプリ」が Play ストアからなくなるか,プロテクトされたアプリであっても adb backup -apk で丸ごとバックアップできるようになればいいのだけれど。
ウチは来週末3日連続。
さらに2日目はブッキングによりハシゴ。
計4会場連続になりそうだったので、1日目は欠席にしますた・・・
師も走る季節だなぁ