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もダイエットの対象に出来ます。