※ このブログの内容は、色々なネット上の情報の寄せ集めです。
自分なりに吟味しているつもりですが、
誤りや勘違いが含まれている畏れが多分にあります。
※ root化するとDocomoの保証がなくなります。
また、Docomoとの契約違反にもなりそうです。
プログラムの改編は、著作権法違反のおそれもあります。
さらに、root化によってお持ちの端末に破損を与えたり、
使用できなくなったりする危険性があります。
もしあなたがこのブログを参考にしてご自分の端末を改造
[root化その他]するのであれば、決まり文句ですが、自己責任でお願いします。
準備
はできましたか?
では実際の手順に入ります。
前回までは、arc中のファイルを取り出すために、SDカードをPCから認識させていましたが、抜き差しも面倒なのでコマンドプロンプトから行ってみましょう。
●arcはデバッグモードON!(設定→アプリケーションの管理から設定)
●USBでarcとPCをつなぎます
デバッグモードの表示がarcの通知領域に出るはずです
●PCのコマンドプロンプトから、arcの/system/framework/framework-res.apk を取って(プルして)きます。
> adb pull /system/framework/framework-res.apk
PCに取ってきたframework-res.apkを改造しますので、まずはコピーを取ってオリジナルを安全な場所に保管してください。
このファイルは圧縮ファイルになっていて、7-Zで解凍できます。
中にはたくさんのアイコンや、XMLファイルなどが入っています。
このアイコンファイルを差し替えて、再圧縮すればアイコンの見た目だけの変更は可能です。
例えば、アンテナアイコンの色を変えるとかなら7-Zのみでいけるのです。
しかし、今回のように挙動も変化させようと思ったら、XMLファイルの追記、改変が必要です。
XMLファイルは7-Zで解凍しても読めません。暗号化(コンパイル)されているからです。
apk managerなどを使って元の状態に戻す(デコンパイルする)必要があります。
ということで、導入させておいて何ですが今回は7-Zは使いません。
まずはapk managerでframework-res.apkをデコンパイルします。
●framework-res.apk をapk managerの、place-apk-here-for-moddingフォルダに保存します。
●apk managerのScript.batを実行すると、アプリが立ち上がります。
コマンドプロンプトを立ち上げ、DOS窓の中で
>script.bat
でも良いですし、Script.batをダブルクリックしてもOKです。
こんな画面が出ます。
このツールを使ってframework-res.apkをデコンパイル→改変→コンパイルしていきます。
やりたいコマンド番号を入力することで使用します。
では、解説しながら進めていきましょう!
● 22 を入れて Enter。 Set current project ですね。
→place-apk-here-for-moddingフォルダに入っているファイルが表示されます。
●今回改造しようとしている、framework-res.apk を選びます。
framework-res.apkしかないなら1番ですね。
●9番 を選んで Decompileします。
ちょっと待つと、apk manager\projectsフォルダにframework-res.apkの中身が復号化されます。
ここまでデコンパイルが終了。次は、projectsフォルダの中を改造していきます。
●projectsフォルダのframework-re.apkフォルダの中を改変します。
ここで前回
、XDA
から落としたアイコンや.XMLファイルを使います。
XDAから落としたファイルには、drawableフォルダとdrawable-hdpi-v4フォルダが含まれています。
まず、drawableフォルダから。
drawableフォルダの中には2~3個のXMLファイルがあります。
これをapk managerのprojects\framework-res.apk\res\drawableフォルダの中にコピーします。
上書きしてしまいましょう。
次にdrawable-hdpi-v4フォルダ。
このフォルダの中にはたくさんのpngファイル(など)が入っています。
ファイル全てを
これをapk managerのprojects\framework-res.apk\res\drawable-hdpiフォルダの中にコピーします。
上書きOKです。
フォルダの名前がちょっと違いますがこれで正解です。
以上でprojectsフォルダの改造は終了です。次は再コンパイル。
●またapk managerに戻ります。
19番 でCompression levelを0にします。デフォルトは9になっていますが
level0 = 無圧縮でないとうまくいかんようです(重要!)。
●11番 で Compile apk。 Projectsフォルダの中をコンパイルします。
割と待たされた後に、2回質問が来ます。
1回目の質問は、Systemアプリケーションかどうかというもの。Yes。
2回目の質問は、安全のために改変されていないファイルは、元のframework-res.apkからコピーしますか、といったもの。これもY。
さらに待たされた後、以下の様な表示が出ます。
In the apk manager folder u'll find a keep folder. Within it, delete everything you have modified and leave files that you haven't. If you have modified any xml, then delete resources.arsc from that folder as well. Once done then press enter on this script. .続行するには何かキーを押してください . . .
ここでキーを押してはいけません。
apk managerフォルダにkeepフォルダというのができています。projectsフォルダの中身とほぼ同一です。
この中から、改変したい ファイルのみを削除します。改変しないファイルのみ残すのです。
XDAからのファイルで上書きされたファイルを削除することになります。
一個ずつ探して消しても良いですが、大変です。
そこで、以下の手順をオススメします。
1.XDAから落としたdrawableフォルダの中身を全選択し、keepフォルダのdrawableフォルダに移動します。
2.移動直後は、今移動したファイルが選択されているため、その選択状態のファイル全てを元のフォルダに移動します。
これで改変されたファイルのみ削除できます。
drawable-hdpiフォルダでも同じように行います。
他には変更日時からソートして選んでも良いでしょう。
何を言ってるのか分からないって方は、一個ずつ探して消すべし、です。
さらにIf you have modified any xml, then delete resources.
ってことです。今回XMLを変更していますので、resources.arscも削除します。
以上の作業が終わったら、
「何かキーを押し 」ます。
するとplace-apk-here-for-moddingフォルダに新しくunsignedframework-res.apkが出来ます。
これが改変されたapkファイルです。
●注意!
しかしこのファイル、もとのframework-res.apkに比べると妙に小さくなっています。
7-Zで見てみると、圧縮レベル0に設定したはずなのにresources.arscが圧縮されており 、
その分小さくなっているのです。これでは上手く動きません。
そこで圧縮されていないresources.arscに差し替える必要があります。
圧縮されていないresources.arscは、projects\framework-res.apk\build\apk\にありますので、
これをコピーして、差し替えます。
差し替えには7-Zを使っても良いと思いますが(試していませんが)、
今回はapk managerフォルダのotherフォルダに同梱されてる 7za.exe というソフトを使いました。
(7-Zは何のために導入させたのでしょう・・・・ ほとんど使いませんね、ごめんなさい)
unsignedframework-res.apkと同じフォルダに7za.exeと無圧縮のresources.arscをコピーします。
以下はコマンドプロンプトから作業します。
unsignedframework-res.apkからresources.arscを削除
>7za d -tzip unsignedframework-res.apk resources.arsc
無圧縮で追加する
>7za a -tzip -mx=0 unsignedframework-res.apk resources.arsc
以上で新しいframework-res.apkの完成です!
このapkは署名されていないですが、署名しないままでうまく行きます。
今回は、改変前とあまり変わらない大きさのファイルになったと思います。
では新しいこのファイルを、arcの/system/framework/framework-res.apkに上書きしましょう。
ここで注意事項があります。
arcの起動中に、framework-res.apkに変更を加えると自動的に再起動することがあります。
しかしこのファイルは大きいので、コピーに時間がかかります。
コピー中に再起動してしまうとコピーに失敗し、framework-res.apkが破損してしまい、
arcが起動できなくなることがあります。
これを避けるため、いきなりframework-res.apkを上書きするのではなく、
まずは同じフォルダに別名でコピーし、それをリネームすることでの上書きをオススメします。
Root explorerを使ってarc上で書き換えるときは、より書き換え速度が重要になるため
同様の手法が良いと思います。Root explorerを買ってないので試せないんですがw
また、ネット上では/dataからシンボリックリンクを張る手も紹介されていますが、ただでさえ少ないユーザー領域を減らすことになるので今回は見送りです。
書き換えは、
unsignedframework-res.apkをarcのSDカードにコピー→それを/system/frameworkにコピー
→framework-res.apkを上書き→パーミッションを揃える、でOKです。
なぜ一回arcのSDカードを介するのかというと、その方がリマウントの関係で手数が減るからです。
減らないかな?
先にシステムファイルをrwにリマウントしておいて、いきなり/system/以下にpushしても良いと思います。
では具体的な手順を説明しながら進めていきましょう。
> adb push unsignedframework-res.apk /sdcard/xtemp
(SDカードの中に改変したframework-res.apkをコピー(プッシュ)します。
フォルダ名は適当です。また、コピー先は/data/~でも良いでしょう)
> adb shell
$ su
(arcの中をshellでいじります。スーパーユーザー権限も取ります)
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
(通常/systemはread onlyになっているため、リマウントして変更可能にします。
Xperia初代はmtdblock2でしたが、arcはmtdblock0が/systemにマウントされています)
# dd if=/sdcard/xtemp/unsignedframework-res.apk /system/framework/framework-res.apk.custum
# dd if=/sdcard/xtemp/unsignedframework-res.apk of=/system/framework/framework-res.apk.custum
(SDカードのファイルを/system/frameworkディレクトリにコピーします。
いきなり上書きせず、違う名前にしておきます。)
(2012/01/04 訂正しました ずっと放置してしまい申し訳ありません)
# cd /system/framework
# chmod 644 framework-res.apk.custum
(先にパーミッションを揃えておきます)
# mv framework-res.apk.custum framework-res.apk
(新しいファイルを名前変更することで上書きします これなら上書きが速い!)
# reboot
(再起動します)
(再起動後に)
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock0 /system
(/systemを変更不可に戻します)
お疲れさまでした!これでバッテリー表示が100段階になりました!
いったん100段階化すれば、アイコンの差し替えのみなら7-ZでOKです。
ネットに出回っている情報では、圧縮レベルの設定があったりなかったり、resources.arscの差し替えがあったりなかったりですが、少なくともXperia arcでは、どちらも無圧縮がよろしいようです。
コマンドなど、間違いがあったらごめんなさい。。。
起動しなくなった人はこちらへ→ Xperia arc root化 復旧の準備 (2)
●いきなりですが、この記事を参考にしてくださった方にお願いです。
DropBoxアカウントを作ってくださいませんか?
DropBoxは、クラウドサービスの一つで、XperiaとPC、iPhoneなど同士で
ファイルを同期するのにとても便利なサービスです。
最初は2G分のスペースをもらえますが、人の紹介でアカウントを作ると+250MB増えます。
さらに紹介した人にも250MG増えます。
つまり、ここ
からDropBoxアカウントを作ってもらえれば、
作ってくれたあなたの容量も増えるし、私の容量も増えていいなぁということで
厚かましくお願いしているのでした。
良ければお願いします! → DropBoxへ