ビルドしてみました。
これ、そのまんまじゃビルドできないような。
とりあえず
・いくつかCPUガバナー追加
・I/Oスケジューラをいくつか追加
・autogroupパッチ適用
・compcache, swap有効化
してみました。
compcacheはまだ試してないですが。
多分すぐ飽きちゃうだろうけどもうちっと弄って遊んでみよ。
ビルドしてみました。
これ、そのまんまじゃビルドできないような。
とりあえず
・いくつかCPUガバナー追加
・I/Oスケジューラをいくつか追加
・autogroupパッチ適用
・compcache, swap有効化
してみました。
compcacheはまだ試してないですが。
多分すぐ飽きちゃうだろうけどもうちっと弄って遊んでみよ。
※2012/07/21 更新
展開のときのコマンドが間違っていました。
あとコメントが承認制になってるに気づかなくて反応が遅れてしまいました。
すいません。
※文鎮化する可能性があります。全て自己責任で行ってください。※
【必要なもの】
※オリジナルのバックアップは忘れずに。
1.http://code.google.com/p/smali/downloads/list
このページからsmali-1.3.3.jar backsmali-1.3.3.jarをダウンロード
2.http://forum.xda-developers.com/showpost.php?p=3864655&postcount=36
ここからdexopt-wrapper.zipをダウンロード
3.好きな方法でいいので実機の/system/framework/から下記のものを持ってくる
androidpolicy.odex
bouncycastle.odex
core.odex
core-junit.odex
ext.odex
framework.odex
services.odex
settings.apk
settings.odex
うろ覚えなので足りなかったり、余計なものが混じってたらごめんなさい。
面倒でしたら/system/framework/以下を全部もってきちゃってもいいかもしれません。
もってきたこれらをカレントディレクトリに適当なディレクトリ(仮にframeworkとします)を作成してそこに入れます。
【smaliいじり】
java -jar baksmali.jar -c:core-junit.odex -x framework/android.policy.odex -o android.policy
これでandroid.policy.odex の内容が展開されます。
再起動メニュー追加はここを参考にさせていただきました。
1.GlobalActions$4.smali(電源を切るメニューの動作がこのファイル)をGlobalActions$8.smaliとしてコピーします。
2.GlobalActions$8.smaliとしてコピーしたファイル内の文字列GlobalActions$4を全てGlobalActions$8に置き換えます。
3.GlobalActions$8.smalの編集
const/4 v1, 0x1 invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V
を
const/4 v1, 0x0 invoke-static {v0, v1, v1}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
に変更。
4.GlobalActions.smaliを変更
.method private createDialog()Landroid/app/AlertDialog; .registers 12 .prologue const/4 v10, 0x1 const/4 v9, 0x4 .line 279
を
.method private createDialog()Landroid/app/AlertDialog; .registers 12 .prologue const/4 v10, 0x1 const/4 v9, 0x5 .line 279
に変更
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$4; const v3, 0x1080030 const v4, 0x104012b invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$4;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V aput-object v2, v0, v1 invoke-static {v0}, Lcom/google/android/collect/Lists;->newArrayList([Ljava/lang/Object;)Ljava/util/ArrayList; move-result-object v0 iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList; .line 471
を
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$8; const v3, 0x1080030 const v4, 0x10401eb invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$8;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V aput-object v2, v0, v1 const/4 v1, 0x4 new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$4; const v3, 0x1080030 const v4, 0x104012b invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$4;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V aput-object v2, v0, v1 invoke-static {v0}, Lcom/google/android/collect/Lists;->newArrayList([Ljava/lang/Object;)Ljava/util/ArrayList; move-result-object v0 iput-object v0, p0, Lcom/android/internal/policy/impl/GlobalActions;->mItems:Ljava/util/ArrayList; .line 471
に変更します。
【.dex作成】
java -jar smali.jar android.policy -o classes.dex
でclasses.dexを作成。
7z等で android.policy.jar に classes.dex を入れる
作成したandroid.policy.jarと最初に用意したdexopt-wrapperを/system/framework/に転送
chmod 755 dexopt-wrapper
して
./dexopt-wrapper android.policy.jar patched.odex
でpatched.odexを作成します。
んで
busybox dd if=original.android.policy.odex of=patched.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
で署名して出来上がりです。
出来あがったpatched.odexをandroid.policy.odexに置き換えて終了です。
dex- > odexはこちらの方のがわかりやすいかも。
2chにも書きましたが、bootパテからCWM起動できました。
バックアップは中途半端に確認済み(SDの空きがなくて全部は出来なかった)
リカバリ、他は未確認。
次は自ビルドしたのを焼く予定。
主にF-12Cについてのメモ等を書いていきます。