androidに使うSDカードをパーテーション分けするときのメモ
androidにパーテーション分けしたSDカード入れて、内部ストレージと外部ストレージを同時に得ようとしたら単純な方法では失敗したので、そのときの経過をメモします。
結論から言うと、別の環境でパーテーション分けしたSDカートをandroidに読み込んでも機能せず*1、adbコマンド使ってandroid自身にパーテーションも設定させれば良い、と言うことみたいです。
…こう書くと当たり前ですね。。。
とりあえず結論は書いたので、ことの発端から。
私、去年iphoneからandroidユーザーになってみた*2のですが、一年くらい経ってandroidユーザーなら誰もがぶつかる?容量足りない問題に私もぶち当たりました。
少し調べてみるとmarshmallow前後?あたりからSDカードの内部ストレージ化(!)なるものがroot化なしで使えるようになっているらしい。
やるじゃんandroid!と思いました。(ここフラグ)
で、内部ストレージ化!!を早速やってみると、確かにアプリは自由にSDカードに移動できるようになりましたが、写真や書類、音楽や動画などの、アプリに紐付かない、いわゆる今までSDカードに移動していたようなデータは移動できない、謎のシステム領域ができました…。内部ストレージとはなんぞや…日本語訳が変なのかしら?*3
とにかく、SDカードの領域が、ファイラにも認識されないし、アプリの移動先にしか使えない領域になってしまったのです。*4(フラグ回収)
今までの外部ストレージと、内部ストレージ、両方ないとandroid端末の容量不足は解決しません。
どうしたものか…という答えが今回の記事。*5ネット上に同様の情報がたくさん落ちてました。みんな通った道か。
まず、adbコマンド環境の導入です。
偉大な先人たちの技術であっという間に終わります。
>>[TOOL] [WINDOWS] ADB, Fastboot and Drivers – 15 seconds ADB Installer
>>たった15秒でADBコマンド環境を作っちゃう『15 seconds ADB』を使ってみた! ~ 物欲ガジェット.com
実際にやってみると私の環境では“0 Files Copied Error”となってしまい、最新版(v1.4.3)インストーラが機能しなかったので、v1.3を使いました。Windows7だから?理由はわかりませんでしたが。
次に、ドライバの確認。上記のソフトでgoogle標準のドライバが入るようですが、インストーラが最新版でないとドライバも古いのか、私の507SHは、うまく端末が認識されませんでした。
507SHの最新ドライバはこちら。
最新ドライバの入手&導入方法はそれぞれのandroidの機種のホームページから。『機種名+ドライバ』で検索すると大抵発見できます。グーグル先生すごい。検索先はドライバのダウンロードページに直接行っちゃうので、きちんと目的の企業のページか確認しましょう。
最後に、adbコマンド使ってSDカードの操作です。
>>マイクロSDカードをスマホの内部ストレージにする方法の備忘録 - 考える時間
まず、端末のUSB DebugをONに。*6
端末とPCを接続し、USBオプションを『充電』から『メディアファイル転送』に。
次に、コマンドプロンプトで
adb shell
sm list-disks
ディスクIDが表示されるので、『disk:111,11』とか…
sm partition disk:111,11 mixed 50
※mixed以下の数字は、外部ストレージとして使う割合(%)を入れます。
そもそもshellが実行されないよって人はadb環境の設定でミスっています。*7
実行されたけど、デバイスが見つからないよって人はドライバの更新でミスってます。*8
ちなみに私の環境ではここでもエラーが出て、最後のコマンドの前に一度、androidからSDカードのフォーマットが必要でした。
sm partition disk:111,11 private
ディスクIDは環境というよりは、機種依存?のようです。
作業の途中で、android側にできちゃた不要なSDカードの情報は削除しちゃって構いません。
容量を圧迫しているデータを移動させたらおしまいです。
データは設定のストレージや、自分で入れたファイラアプリから、外部ストレージへ。
アプリは設定のアプリから、内部ストレージへ。
めでたしめでたし。
ついでに、使っている間に重くなってしまったアプリは一度、設定のアプリからデータ消去すると、アンインストールせずともインストール直後の状態に戻せます。*9それから、DCIM内にあるサムネイルも削除。
私はこれで4GB近く減りました…。容量足りない問題とはなんだったのか。。。
*1:正確にはSDカードは機能はするが、あらかじめ設定してあったパーテーションごとフォーマットされてしまい、今回の目的のものにならない。
*2:ちなみに機種は507SH、いわゆるandroid oneです。
*3:と思って元のドキュメントも少し調べましたが、内部ストレージとしか訳せないモノでした。動作も仕様通りみたい。中途半端な機能である。
*4:ちなみに、Kindleの書籍データなどのアプリに紐付いたデータはアプリと共にきちんとこの内部ストレージという謎の領域に行きます。
*5:まあ、root化すればいくらでも方法はあるのですけど。私は公式のソフトウェア更新がある間はroot化しない派なので。
*6:これは開発者オプション内にあります。
*7:パスが通ってないとか…。知らんけど。
*8:とりあえず、デバイスマネージャーを確認するとか…。知らんけど。
*9:当然、アカウント情報とかも消えます。