P-01Dの内蔵ストレージの容量をなんとかする(人柱版)

ただ一点を除いて、わりといい端末だと思うんですけど、その一点が致命的だったりするのがP-01Dという端末。その一点とは「プリインストールアプリの数に見合わぬ内蔵ストレージの容量」で、これが初期化直後で280MBしかなくて、何も考えずにアップデートとかひと通り掛けると、容量不足の警告が出ちゃったりとかする訳です。
さすがにこれでは使いものにならないので、その構成に見合っていない内蔵ストレージ容量をなんとかするために改造してみたので、「人柱向け」に公開してみようかなと。
上記の通りあくまでこれは「人柱向け」ですので、その覚悟の無い人や「人柱」の意味を理解していない人は手を出してはいけません。
最悪、端末が起動しなくなって、俗にいう「文鎮」状態になってしまう可能性もあります。それでも良い、覚悟はできている、転んでも泣かない、という貴方は、以下の手順で改造して、色々報告していただけると嬉しいです。
お手軽CWM-based Recovery書き込みセットおよびお手軽バックアップセットを公開しています。簡単にCWM-based Recoveryが書き込めてバックアップも取れますので、システムを弄る前にはバックアップを取りましょう。
まずは、以下のファイルをダウンロードしましょう。

/dataディレクトリの一部をsd-extパーティションに移動するための材料

このファイルを、/system/etc以下にコピーして、ファイル属性を755にしてください。
そしてその後、SDカード内のFAT32パーティションの直後(2番目のパーティション)にPrimaryでext4パーティション*1を作成してください。
パーティションを作成したSDを挿した状態で電源をONすると、先ほど配置したファイルにより設定が行われて、一度リセットが掛かります。*2
これで完了。

リセット後に起動すると、今までインストールしていたアプリがSDカードのext4パーティションに移動されており、以降インストールされたアプリはext4パーティションに対して保存され、内蔵ストレージは各アプリのデータの保存にのみ使われるようになります。*3
ちなみに私は今、32GB(実質約30GB)のSDを使って、FAT32に24GB、ext4に6GBを割り当ててあり、プレインストールアプリのアップデートを含め50本ほどアプリが入っていますが、内蔵ストレージは255MBほど残っている状態です。調べてみたらext4パーティションを600MB弱使っていて、すでに無改造で入れられる容量を超えてました(汗)。
SDカード内の領域を利用している関係上、SDカードを抜いて起動したり、ext4パーティションの無いSDカードに挿し替えて起動したり、SDカードだけを初期化してしまったりすると、設定やアプリが吹っ飛びますが、一応、文鎮化はしないように対策はしてあります。また、元のext4パーティション入りのSDを挿して起動すれば、できるかぎり修復するようにもなっています。
もとに戻す時は、[バックアップと復元]から[SDカード内データを消去]のチェックをONにしてSDカードごと初期化し*4、その後、/system/etcに書き込んだファイルを削除します。SDカードにext4パーティションが存在しない場合は今までどおりの動作をするようになっているので、無理に削除する必要はありませんが、一応、念のため。
人柱erが増えて十分な検証ができたら、きちんとマニュアルを書いて一般向けにも公開しようと思います。

*1:クラスタサイズが指定できるなら4KBがオススメです。

*2:リセットまでに凄く時間が掛かる場合があります。

*3:一応、内蔵ストレージをほとんど使わず全部SDカードに移動するようにもできます。ファイルの中身を見れば一目瞭然です(というか一目瞭然にわからない人には無理です)。ただし、かなり良いSDカードを使っても、起動に3分近く掛かるようになったり、あちこちでプチフリーズっぽい感じになったりしますし、SDカード自体の耐久性の面でも不安が残るので推奨はしません。

*4:起動しなくなっているのであれば、電源ONしてバイブの後に音量下押しっぱなしでリカバリーモードを起動し、そこからファクトリーリセットを行なっても可です。その場合はファイルを削除するまでSDカードを抜いておいてください。