カーネル

ビルドしてみました。

これ、そのまんまじゃビルドできないような。

 

とりあえず
・いくつか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 の内容が展開されます。

再起動メニュー追加はここを参考にさせていただきました。

http://pastebin.com/dCPjt918

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はこちらの方のがわかりやすいかも。

F-12C CWM

2chにも書きましたが、bootパテからCWM起動できました。

バックアップは中途半端に確認済み(SDの空きがなくて全部は出来なかった)

リカバリ、他は未確認。

次は自ビルドしたのを焼く予定。