2018年10月27日土曜日

AndroidでSDカードを内部ストレージ化する方法

世の中には未だ32GBとか64GBとか、内蔵ストレージがPCのメモリかよってくらい少ない端末がたくさんあって、今回Xperiaでそれにハマって電話機が何もできなくなったので、対処方法を書いておきます。

まず、スマートフォン側でmicroSDカードをフォーマットする必要があります(※これは絶対条件)。データのバックアップを取り、設定からフォーマットを行ってください。

次に、開発者向けオプションを有効化して、そこからUSBデバッグの設定をONにします。

PCから adb shell を実行し、microSDカードの現在の識別番号を取得します。

  $ sm list-disks
  disk:179,64

この識別番号を今度は次のようにして利用します。

  $ sm partition disk:179,64 private

このコマンドがエラーなく終了したら、SDカードは内部ストレージの一部として認識されるようになります。

設定のストレージからSDカードを選び、メニューからSDカードへアプリやデータなどを移すことができるようになりますが、この完全な機能のためには開発者向けオプションで「外部ストレージへのアプリの書き込みを許可」する必要があります。

外部ストレージへの書き込み許可が与え終わったら、画面の右上のメニューから「データ移行」で転送を行えるので、転送すると本体側の空き容量が減ってSD側の使用量が増えます。

なお、一部アプリはSDカード上からだと落ちたりするものがあるので、その場合は内蔵ストレージへ書き込むようにしてください。アプリ一覧からアプリ情報を見ると、ストレージを変更できます。

Xperiaでハマったのは、これをやるとカメラが書き込みできなくなって詰む、という状況でした。これは以下よりGoogle Camera modを落として入れることで解決しました。

これを入れて標準カメラを無効化しておくと、ロック画面でのカメラ起動などもGoogle Cameraになります。