adb コマンドを使って、Mi A3 の全パーティションをバックアップする方法を紹介します。
Android をカスタマイズするにあたって、パーティションのバックアップは文鎮化のリスクを回避できる有効な手段です。
今回紹介する方法では、カスタムリカバリーで バックアップできない箇所を含む、すべてのパーティションをバックアップできます。 端末が起動できる状態で一度バックアップしておけば、万一の場合に役に立つかもしれません。
なお、Mi A3 に限らず、他の端末でも同じ方法でバックアップが可能です。良ければ参考にしてください。
必要なもの
-
adb コマンドが使える状態の PC
-
PC と端末を接続する USB ケーブル
-
root 化済み or TWRP 導入済み の Mi A3
今回紹介する方法を実行するには、root 権限が必要です。root 化するか、TWRP を導入しておく必要があります。
TWRP を使う場合は、以下で紹介する adb コマンドをすべて TWRP 上で実行してください。
手順
パーティション名と場所の取得
adb shell を起動します。
$ adb shell
root 権限を与えます。このとき、端末側で root 権限の使用許可が求められるので、許可します。
$ su
以下の階層に移動します。ここには、全パーティションのシンボリックリンクが入っています。
# cd /dev/block/by-name
ファイル一覧を取得します。
# ls -l
すると、こんな感じの一覧が表示されます。
lrwxrwxrwx 1 root root 15 1970-04-16 15:21 ALIGN_TO_128K_1 -> /dev/block/sdd1
lrwxrwxrwx 1 root root 15 1970-04-16 15:21 ALIGN_TO_128K_2 -> /dev/block/sdf1
lrwxrwxrwx 1 root root 15 1970-04-16 15:21 abl_a -> /dev/block/sde8
lrwxrwxrwx 1 root root 16 1970-04-16 15:21 abl_b -> /dev/block/sde29
...
この結果をコピーして記録しておきます。
各行の最後のあたりで、OOO -> XXX
となっている、OOO
がパーティション名で XXX
がその場所となります。
例えば上記の 1 行目は、ALIGN_TO_128K_1
というパーティションが /dev/block/sdd1
にあることを示しています。
パーティションのバックアップ
引き続き、adb shell 上で内部ストレージに移動します。
# cd /sdcard
「partitions」という名前のディレクトリを作成し、その中に移動します。
# mkdir partitions; cd partitions
各パーティションのバックアップを取ります。
# dd if={パーティションの場所} of={パーティションの名前}
以前の作業で取得した場所と名前で、「userdata」を除く 全てのパーティションに対して実行します (userdata は内部ストレージを表すパーティションなのでバックアップしない)。
例えば、以下のようになります。
# dd if=/dev/block/sdd1 of=ALIGN_TO_128K_1
上記作業が面倒な人向け
Mi A3 はパーティションが全部で 88 個もあるので、1 つ 1 つコマンドを手打ちするのは面倒です。
そこでバックアップのコマンドをすべて書き出したファイルを用意しました。
これを commands.txt という名前で保存し、以下のように使います。
$ adb shell < commands.txt
なお、「partitions」ディレクトリは事前に作成しておいてください。
実行すると、自動で全パーティションのバックアップが行われます。
バックアップを PC にコピー
「partitions」に保存されたファイルを PC にコピーして保管しておきます。
これでいざという時に復旧できる可能性が上がります。
復元方法
取得したバックアップを利用して復元する場合は、adb shell で次のコマンドを実行します。
# dd if={バックアップファイル} of={パーティションの場所}