ついにSPモードメールのサイズ肥大にさよなら。SDカードを使った究極のゴリ押し容量対策。

SPモードメール

SPモードメール・・てめーは俺を怒らせた。


時はまさに世紀末。
Xperia arc、acro、ray・・その他にもドコモの2011年夏モデルのAndroidたちは泣くしかなかった。
そう、SPモードメールの尋常じゃない肥大化に・・

今回はSPモードメールのデータ部分をSDカードに移し、本体の空き容量を増やさない方法を紹介しよう。
これを行うと、SPモードメールがどれだけ肥大化しようとも、SDカードに空きがある限り本体容量を圧迫することは無くなる。

・・ゴリ押しなやり方だけどね。

ある意味究極の容量対策

まずこの方法を行うためには準備が必要だ。
カンのいい人は気付いたかも知れないが、Androidのroot権限というものを取らないことには実現することができないんだ。
そしてroot権限での作業は常に「死」、つまり文鎮化と隣り合わせの生活となる。
ほんの少しのミスが命取りとなる。もちろん質問には答えられない・・というか助けることはできん。
不具合や強制終了が多発する原因にもなりうる。

一寸先は闇とはよく言ったものだ・・

SDカード

もはや頼れるのはSDカードだけだったんだ。

今回紹介する方法はSPモードメールのデータをまるごとSDカードに置いてしまう荒業。
冒頭でも書いたが、これによってSPモードメールが何百MBになろうとも本体の容量を圧迫することは無い。
だが荒業なだけにリスクも大きい。

データをSDカードに配置するのでSDカードを差し替えたり、外したりするとSPモードメールアプリ自体を使うことができなくなるし、SDカードにトラブルが起き読み込めなくなったりした場合、それだけでメールデータが消失するので注意だ。
もしSPモードメールが使えなくなったときは、SPモードメールのアンインストール/再インストールで普通に使えるようになると思う。(ただしデータは全て本体保存なので、またSD退避をするなら同じ作業が必要だ!)

SPモードメールのメールデータは確実にバックアップしておくことをオススメするよ。
Titanium Backupでフルバックアップするも良し、SPモードメールの標準機能でSDカードにコピーしておくも良し、とにかく保存しておこう。
一度消してしまったデータは戻すことはできんしさ・・

必要な下準備

腐ってもドコモの公式アプリ。
そうやすやすと好き勝手させてくれない。
まずは下準備を済ませておこう。

・PCにAndroid SDKをインストールする
PCから行う場合は、PCにAndroid SDKをインストールしておく必要がある。
携帯から行う場合はAndroid SDKは不要だ。
Android SDKインストール方法はこちら

・root権限の取得
こればっかりは機種ごとに異なる。それぞれ自分で調べてくれ。

・SDカードにパーティションを作成
以前の記事を参考にパーティションを作っておこう。
パーティション作成手順はこちら

・Link2SDのインストール/設定
Link2SDを使えるようにしておくことでマウントスクリプトを新たに作らなくて済むんだ。インストールしたら起動してパーティションを選択、リンクスクリプトの作成を済ませて使えるようにしておけばOKだ。(SPモードメールをリンクさせる必要は無いぞ!)

SDカードへの移動手順

PCから行う場合はAndroidのUSBデバッグをオンにしてUSBケーブルで接続し、下記コマンドをコマンドプロンプトから実行しrootユーザーになる。(コマンドプロンプトは「windows」キー+「R」キー→「cmd」と入力してエンターで起動できる。)
本体のみで行う場合はこのコマンドは不要だ。

adb shell

以後、PCから行う場合はコマンドプロンプトからコマンドを実行。
本体から行う場合は「Terminal Emulator」というアプリをインストールしTerminal Emulatorアプリからコマンドを実行する。

続いて、root権限になりデータ領域を書き込み権限ありで再マウントする。

su
mount -o remount,rw /data /data

順に説明しよう。
次はSPモードメールのデータ部分を、Link2SDでマウントされているSDカードにまるごとコピーする。
コピーしたらSPモードメールのデータ部分を削除する。
そしてコピーしたデータ部分へのリンクを設置する。

cp -r /data/data/jp.co.nttdocomo.carriermail /data/sdext2/jp.co.nttdocomo.carriermail
rm -r /data/data/jp.co.nttdocomo.carriermail
ln -s /data/sdext2/jp.co.nttdocomo.carriermail /data/data/jp.co.nttdocomo.carriermail

最後にファイルとディレクトリ(フォルダ)のパーミッション(権限)を変更する。どうもAndroidではディレクトリの中身ごとパーミッションを変更するということができないので、階層ごとにパーミッションを変更する必要がある。

chmod 777 /data/sdext2/jp.co.nttdocomo.carriermail
chmod 777 /data/sdext2/jp.co.nttdocomo.carriermail/*
chmod 777 /data/sdext2/jp.co.nttdocomo.carriermail/*/*

今回はなんとなく面倒なので全部777にしちゃったけど、本当はひとつひとつ本来のパーミッションに設定した方が良いと思う。

これでAndroidは忌まわしきSPモードメールが原因の「空き容量の低下」通知呪縛から解き放たれるだろう・・
設定のアプリケーションの管理画面でのSPモードメールを見れば、アプリ本体の14MBほど以上にならないことも確認できるだろう。

今後はどれだけメール送受信しようともSDカードの領域を使うので本体はスッキリ爽快、はつらつとした毎日が待っているさ!たぶん・・

いつもの一言

最後に、何度も書くが、今回はroot権限でゴリ押しなやり方をしている。
SDカードのトラブルには注意しよう。注意しようもないかもだけど。
非常時に備え時折、SPモードメールの標準機能でバックアップしておいた方が良いだろう。

ちなみに今回は32GB class10というスペックのmicro SDカードを使った。そのせいか動きは通常使用時と変わらない気はする。
今回、ファイルの中や構造を見てて気付いたけど、SPモードメールはメールが届くたびに添付ファイルもまるごと本体に保存していた。そりゃサイズも増えるわ・・まったく!!

リスクを背負い、それでもやってみたいという人はやってみたらいいさ!
なんか、こんなことできるのもAndroidだなぁとしみじみ思っちゃうよね。

スポンサーリンクと関連記事

最近の記事