Xperia rayのフラッシュ領域はもともと少ない。
0.5GBの大半がプリインストールアプリで埋まっている。
その上、バージョンアップ時にGoogle+など、プリインストールがさらに追加された。
プリインストールアプリを削除するには、root権限が必要になる。
(root無しでアンインストールできるものも一部あるが。)
いろいろ工夫してやりくりしてきたが、最近ついにもう限界というほどフラッシュ領域が足りなくなってきたので、root権限取得をやってみることにした。
SO-03Cのroot化自体は、確立された手法が存在する。
ただ、それにはファームウェアを古いバージョンにダウングレードすることが必要で、その際にデータが消えてしまうという話があったので、実行には二の足を踏んでいた。
(最近はERootというツールでダウングレード不要でいけるという情報もあるが、調べていない。)
しかし、実際に覚悟を決めて始めてみたら、ダウングレードに使用するファームウェア書き換えツールのFlashtoolは、ユーザデータとキャッシュを全消去(wipe)するかどうか、ちゃんと指定できるようになっていた。
そんなわけで、あとはスムーズに、こちらの解説を見ながらrootを取得。
XPERIA arc/acro/ray/PLAY のroot化手順 (3/28Update対応版) | arkdroid.infoそして、すかさず無線LAN経由でファームウェアを最新のものへバージョンアップ。
これをやる前にrootでいろいろ変更してしまうと、バージョンアップ時にroot権限を失ってしまう場合があるらしい。
さらに、MVNOで使用する場合の使い勝手をいろいろ向上させる、framework.jarの変更を行った。
ブローヴちゃん: Android + データ専用 SIM での動作修正パッチただ、上記で配布されているexecute.batを使用した場合、最後の最後で改変したframework.jarをrayへ転送するところでつまづく。
これは、上で紹介したroot権限取得方法で使用しているDooMLoRD_v4_ROOT-zergRush-busybox-su.zipのツールとの相性の問題だ。
具体的には、zergRushでroot化されたrayは、adbでログインした時点では通常ユーザの権限でシェルが動作する。
suコマンドによって、初めてroot権限で実行できるようになる。
一方、execute.batではログインした時点でroot権限を持っていることを想定しているようだ。
そのため、root権限が必要なframework.jar書き換え作業に失敗してしまう。
SDカード経由でファイルをコピーしている人が多いようだが、面倒なので、このframework.jar書き換え作業だけ、手動でadb経由で行った。
(記憶で書いているので、間違いがあるかもしれない。
以降はUNIXに習熟していて何をやっているか解る人だけ読んでください。)
・rayのファイルシステム上に通常ユーザが読み書き可能なディレクトリを作成 (私は/sysytem/tmp/を作成した。)・adb push framework.jar /system/tmp/framework.jar でファイルを転送・ray上で、転送したファイルを/system/framework/framework.jarと置き換える。 オリジナルファイルは名称変更して保存しておいたほうがいいかも。・置き換えた改変版framework.jarのuserとgroupをroot.rootにchown・最後に、最初に作成した読み書き可能なディレクトリを削除以上