Jun 09, 2017
SH-M03でSDカードを内部ストレージの代わりに使うように設定した
手厚いサポートの恩恵をほとんど受けてないのでSoftbank MobileをやめてMVNOにしよう、ということで数ヶ月前から準備を進めてて、まずSIMロックのかかってない端末に機種変更した。そこそこ性能が良くてモバイルSuicaが使えること、を条件に検討した結果AQUOSブランドのSH-M03にした(既にこの次のモデルが出てたけど、次のモデルはコストダウンの方に舵を切った結果スペックが落ちてたので……)。
……んだけど、これが本体の内蔵ストレージがめっちゃ少なくて、この前に使ってた203SHは32GBあったのにこれは16GBだからアプリの自動更新が何度か降ってきたらもうそれだけでパンパン。microSDを外部ストレージとして使うようにはもちろんしてたんだけど、それでも全然追っつかない。Kindleのようにデータを自分の領域に保存するアプリはそもそも外部ストレージがいくらあっても使っちゃくれないし。
検索したら、Android 6以降だとSDカードを内部ストレージの追加領域にできるみたいな話が出てきたのでやってみた。結論としては、今まで外部ストレージだったmicroSDがそっくりそのまま内部ストレージになる感じになった。
以下、やったこと。
- 準備。
- Androidのバージョンを確認する。SH-M03はAndroid 6.0.1で、6以上という条件を満たしてるので問題なし。
- microSDの内容をPCに退避する。一旦フォーマットする必要があるという説明を見たので。
- 設定→ストレージとUSB でmicroSDをタップし、右上のメニューボタンをタップして出てくるメニューからフォーマットを選択する。 この時、SDカードを内部ストレージとして使う機能を解放してる機種で、且つmicroSDの性能が充分にあると「内部ストレージとしてフォーマット」という項目がメニューに表示されて、それを選択すればいいようなんだけど、SH-M03はこの機能が封印されてるのか、使ってるmicroSDのせいなのか、自分の環境では「外部ストレージとしてフォーマット」しか表示されなかった。ので、とりあえずそれを選択してフォーマットし直した。
外部ストレージとしてしか認識されないmicroSDを強制的に内部ストレージにする。(前の手順で内部ストレージとしてフォーマットできてるなら、多分この手順は不要)
- 作業用PCにAndroid Studioをインストールする。
- コマンドプロンプトから開発ツールを使えるようにするために、環境変数
Path
にC:\Users\(ユーザー名)\AppData\Local\Android\Sdk\platform-tools
を加える。 - Android端末側で、設定→端末情報→ビルド番号 を連打して開発者向けの機能を使えるようにする。
- Android端末で設定→開発者向けオプションを開いて機能を有効化し、「USBデバッグ」をONにする。
- USBケーブルでPCとAndroid端末を接続する。
- コマンドプロンプトを開き、
adb shell
を実行してAndroid端末に接続する。 USBデバッグ接続を許可するかどうかの確認がAndroid端末の画面に出るので、許可する。- この時、2つ以上のAndroid端末がPCに接続されているとどこに繋ぎに行けばいいのか分からないということで
error: more than one device/emulator
というエラーメッセージが出て接続できない(自分の環境ではCintiq Companion Hybridが繋がっててこれにハマった)ので、関係無いAndroid端末は外しておく。
- この時、2つ以上のAndroid端末がPCに接続されているとどこに繋ぎに行けばいいのか分からないということで
adb shell
で無事端末に接続できたら、sm disk-list
を実行する。すると、以下のような感じで認識されてるmicroSDの識別子が表示される。C:\Users\piro>adb shell shell@SH-M03:/ $ sm list-disks disk:179,64 shell@SH-M03:/ $
ここでは
disk:179,64
がそれにあたる。sm partition (microSDの識別子) private
を実行する。shell@SH-M03:/ $ sm partition disk:179,64 private shell@SH-M03:/ $
しばらく待たされて処理が完了する。
- この時、
private
と指定するとmicroSDの領域全体が内部ストレージとして使えるようになるんだけど、文献によっては「全体を内部ストレージにするとおかしくなるのでmixed 50
のように指定すること」のように案内してたりする。が、自分の環境で試した限りではmixed
を指定しても期待したような効果を得られず、むしろprivate
にした方が想定通りの結果を得られた。
- この時、
- Android端末を再起動する。
- 内部ストレージとしてフォーマットされたmicroSDに、データを移行する。
- 設定→ストレージとUSBを開くとmicroSDが「外部ストレージ」と括られずに「内部ストレージ」のすぐ下に表示されているので、これをタップする。
- 右上のメニューボタンをタップして出てくるメニューから「データを移行」を選択する。
- 確認の後、本体内蔵のメモリからmicroSDに諸々のデータやアプリが移動される。
この状態でファイルマネージャの類のアプリを起動してみると、以前は内部ストレージとSDカード(外部ストレージ)の2つが見えていたのが、内部ストレージが見えなくなってSDカードだけ表示されるようになっていた。 また、Android端末をPCに接続しても、microSDの分の領域だけが見えるようになっていた。
最初に退避しておいたmicroSDの中身を書き戻すというかマージすれば、移行作業は完了。逆に、microSDを切り離して元の状態に戻したい時は、設定→ストレージとUSB で内部ストレージの項目をタップして、右上のメニューボタンをタップして出てくるメニューから「データを移行」を選択すればいいんだと思う。やる前にmicroSDの中に保存されてるデータを消して内部ストレージに収まる状態にしておかないと、多分、失敗するか警告されて処理を実行できないんじゃないかなあ。
wikieditish message: Ready to edit this entry.