P-01Dのダイエット作戦(危険)

ここのところ色々とAndroid周りで色々弄ってた成果の1つなんですが、P-01Dをダイエットさせて内蔵ストレージの空きを増やすバッチを作成してみました。先日「最終確認でなんかうまく動いてないのが確認されたので公開中止」にしたのはコレです。
お手軽CWM-based Recovery書き込みセットおよびお手軽バックアップセットを公開しています。簡単にCWM-based Recoveryが書き込めてバックアップも取れますので、システムを弄る前にはバックアップを取りましょう。
このバッチは/systemディレクトリの容量を犠牲にして/dataディレクトリの空きを増やします。解る人向けに解説すれば、要するに「内蔵アプリのodex化」を自動で行っているだけです。
効果はどうかというと、まず、適用前(ファクトリーリセット直後でアプリ削除や凍結は一切無し)にdfコマンドを実行するとこんな感じで。

$ df
Filesystem             Size   Used   Free   Blksize
/dev                   162M    32K   162M   4096
/mnt/asec              162M     0K   162M   4096
/mnt/obb               162M     0K   162M   4096
/system                350M   312M    37M   4096
/data                  340M    78M   261M   4096
/persist                 3M     2M   756K   4096
/cache                 200M     2M   197M   4096
/mnt/sdcard              1G   862M     1G   32768
/mnt/secure/asec: Permission denied

/systemが312MB使用37MB空き、/dataが78MB使用261MB空きですね。で、これが……

$ df
Filesystem             Size   Used   Free   Blksize
/dev                   162M    32K   162M   4096
/mnt/asec              162M     0K   162M   4096
/mnt/obb               162M     0K   162M   4096
/system                350M   343M     6M   4096
/data                  340M    26M   313M   4096
/persist                 3M     2M   756K   4096
/cache                 200M     2M   197M   4096
/mnt/sdcard              1G   862M     1G   32768
/mnt/secure/asec: Permission denied

こうなります(同様にアプリ削除や凍結は一切無し)。/systemが343MB使用6MB空き、/dataが26MB使用313MB空きになっています。/systemの31MBと引き換えに/dataが52MB増加するってことです。root化とは関係無く、非rootのままこの状態になります。
あと副作用として、ファクトリーリセット直後の起動がかなり速くなります。dalvik-cacheの自動生成が減るせいなんですが、まあ、あまり実感する機会は無いかなと。
ただ、作ってみたはいいものの、前提条件がかなりシビアです。「素のP-01D(07.0109.0068)でファクトリーリセットして必要な設定をすませただけであること」が大前提で、一応「root化だけした状態」までは動作確認していますが、それ以上弄ったROMだと保証できません。作業中にちょっとでも/systemの空きが足りなくなると失敗して起動不能です。ただし、リカバリは死なない(このバッチでは弄っていない)ので文鎮化までは行きません。
もちろん、動作したところで、その結果に対する保証は無くAt your own risk.なのは当然ですが……。
一応、/systemの空きが十分(増やす方向に改造していない)なら、多少アプリが変動していてもイケるはずですが、上記のroot化(=Superuser.apkの追加)までしか確認はしていません。それと、内蔵のアプリにアップデートが掛かった状態だとどうなるかわかりません。多分無視されるだけ(そのように作ったつもり)ですが、これも動作は未確認です。また、元々ROMに入っているアプリのみを対象にしていますので、仮に/system/appに追加したアプリがあったとしても、そのアプリはダイエットされません。*1
なお、深いところまでROM内容を弄ってしまうので、当然ながら機能バージョンアップもソフトウェア更新もできなくなります。中途半端にこれらの項目が残っていると間違えて更新して文鎮化する人が出てくるかもしれないので、ダイエットついでにバッサリと削除しちゃいます(項目自体が設定から消えます)。さらに、ほとんど盲腸と化しているターミナルエミュレータの残骸も消しています。
一応、失敗した時のために改造を取り消すバッチも同梱していますが、基本的には元に戻せない(ダイエット直後でないと失敗する可能性がある)ので、戻せる可能性を残したければ、CWM Recoveryなどで別途バックアップを取っておく必要があります。
ということで、ここまで読んでそれでもP-01Dのダイエットをしたいと言う人は、以下の「P-01Dダイエットセット」をどうぞ。展開して実行し、画面に表示される指示に従えばOKです。お手軽root化セットと同様ですね。
P-01Dダイエットセット
ちなみに、このバッチでダイエットしてからアプリの凍結や削除を行うことは普通にできます(私の常用しているP-01Dでもやっています)。アプリの削除が出来るツール類は多分対応していますが、手動で削除する場合は、/system/app内の.apkだけでなく、対になる.odexも削除してください。
一応「P-01Dの内蔵ストレージの容量をなんとかする(人柱版)」との併用も可能です(これも常用P-01Dでやっています)が、まあ、余り意味は無いかもしれません。

*1:Superuser/SuperSUアプリも同様。ただしバッチ内のrem(8ヶ所)を外すとSuperuser.apkもダイエットの対象に出来ます。