カーネルの入れ替え

■カーネル書き換えソフト
IS01 Super Tuner
http://blog.ns-koubou.com/archives/19
IS01用の自動改造ソフトです。
スクリプトを追加することでさまざまな種類の改造が可能です。
  • IS01 Hacked Kernel #001を書き込む(recovery領域)
  • アドホック対応化
  • recovery領域のバックアップ
※同梱された「readme.txt」より抜粋。

■リンク

仙石浩明の日記: Android 端末 IS01 のカーネルを入れ替えてみた 〜 さよならデッカード LSM
http://www.gcd.org/blog/2010/12/682/
IS01 Hacked Kernel #001
http://www.megaupload.com/?d=QA6TOXY8
def RenaX64(diary):: IS01のkernelをビルドしちゃおう!
http://renax64.blogspot.com/2010/12/is01kernel.html
えぬえす工房 » IS01関連の自作ファイルのまとめ
http://blog.ns-koubou.com/archives/19
IS01 root化と諸々の作業メモ « コムギドットネット
http://komugi.net/archives/2010/12/06205920.php

■カーネル1

仙石浩明の日記: Android 端末 IS01 のカーネルを入れ替えてみた 〜 さよならデッカード LSM
http://www.gcd.org/blog/2010/12/682/
624
 カーネル入れ替えの方法が確立されたっぽい。 
 ツールの改造が必要だったりと敷居は高いみたいだけど。 
 http://www.gcd.org/blog/2010/12/682/ 

625
 >>624 
 ほぼ完成してますよ。これ。フラッシュの損耗なんかたいした問題とも思えないが。 

#IS01 、仙石さんのubi.img http://j.mp/dU7ChW をそのまま書いて、
SDにswap作っただけで恐ろしく快適になった(swapはMarketで
ダウンロードできるSwapperで簡単設定可)。ブラウザ使っても
他がkillされないだけでこんなに快適とは 

■カーネル2

IS01 Hacked Kernel #001
http://www.megaupload.com/?d=QA6TOXY8
カーネルをお手軽に改造できるソフト
http://www.megaupload.com/?d=JOONZLDV
アドホック対応化スクリプト
http://www.megaupload.com/?d=MT9LRIGF

634
 自分が使ってる改造カーネルをアップ。動作保証はできないけど。 
 http://www.megaupload.com/?d=QA6TOXY8 

639
 >> 634 
 NVさんイメージありがとうございます。但し 
 /default.propの 
 ro.secure=0 
 のままなので、adb shell でrootになれません。 
 とりあえず、ubi.imgにバイナリーパッチ当ててOKに出来ましたけど。 
 sengokuさんのブログでもこの部分ro.secure=0としてありましたけど、 
 ro.secure=1とすることでadb shellだけで#プロンプトが出るようになります。 

640
 >>639 
 ro.secureは、tcpipを使えなくするために1のままにしてあります。 
 代わりに、adb rootでadbdを再起動することによって、#プロンプトが出るようになります。 

958
 SWAP ONにして使っていたらフリーズしたので報告 
 
 NVさんの HACK カーネルを利用させて頂いて SWAP 128MB で使っていたのですが、 
 2時間ほどして、画面がブラックアウトしていてキーを受け付けない状態になりました。 
 バックライトが薄く点いている状態で、電源を切ることができなくなっていたので 
 電池外して復旧しました。 
 
 通常bootして今はスワップ無しで動いています、SD カードの内容も読めています。 
 1.00.07 

176
 カーネルをお手軽に改造できるソフトを作ってみた。人柱求む。 
 http://www.megaupload.com/?d=JOONZLDV 

190
 >>176 
 2.6.29-perf 
 nvsofts@cimo#2 
 へのカーネル書き換え成功確認しました 
 ベースバンド01.00.02のrooted済みで前回のNVさんのカーネルから書き換えました 

193
 >>190 
 中身はIS01 Hacked Kernel #001と一緒なので、recoveryを元に戻してから書き換えを行ったらどうなりますか? 

192
 >>176 
 カーネルバージョンが↑と一緒に書き換わって起動することを確認しました。 
 1.00.07 
 一応、Android-SDK はインストール済みでパスを通してあるPC環境です。 
 他、IS01rooter002 インストール、実行済み 

195
 >>193 
 自分は recovery_rw を元に戻した状態で書き換えたので、 
 正常に更新できていると思います。 
 (以前にNVさんのハックカーネルにしていたが、SWAP ON でフリーズの症状が出た為、年の為に recover_rw をバックアップから復元してました。) 

197
 >>195 
 大丈夫そうですね。ありがとうございます。 
 
 アドホック対応化スクリプトをアップしておきます。正常に動作するかはわかりません。 
 http://www.megaupload.com/?d=MT9LRIGF 

218
 NVさんおつかれっす。カーネルに関してはmobilehackersさんがrooterで対応してくれるのかな 
 まだ様子見 

821
 >>820 
 v1.00の場合、画面は通常のrecovery画面と一緒です。 
 また、$ toolbox mount の情報で、/systemがマウントされていません。 
 v1.10の場合、画面は通常のrecovery画面とは左右反転しています。 
 また、$ toolbox cat /proc/version のカーネルのビルドPCがnvsofts@cirnoになっています。 
 
 IS01 Super Tuner v1.10です。アドホック対応化の修正とrecovery領域のリストアの追加を行いました。 
 http://www.megaupload.com/?d=UJ637AYD 

■カーネルの入れ替え:注意点1

765
 前にも誰かが書いてたけど、system_wrいじると文鎮化するね 

■カーネルの入れ替え:注意点2

798
 カーネルコンパイルすると 
 いくつもエラー吐くなあ 
 なんだこのソース 

799
 >>798 
 そのままだとエラーが出てコンパイルできない。 
 ここを参考にしてコンパイルを。 
 http://d.hatena.ne.jp/nigaky/20101118/1290094627 

800
 >>799 
 トン 
 smd_private.hのincludeは修正したけど他にもまだエラー吐くんだよ 
 
 これ専用のクロスコンパイラ必要なの? 
 俺gcc-4.4.5をビルドしたやつ使ってるんだけど 

802
 >>800 
 IS01 Hacked Kernel #001は、Android NDK付属のarm-eabi-gcc(gcc-4.2.1)でビルドしてる 

■カーネルの入れ替え (insmod+を同梱):パスはdeckard

924
 ある程度使える代物ができたので、コンパイル済みのmoduleをアップしました。 
 ttp://uploading.com/files/3c826577/rachael-0.0.alpha.1.zip/ 
 パスはdeckardです。 
 
 このmoduleをロードすると、/procに以下のファイルが追加されます。 
 
 /proc/rachael/modules_disabled 
  1→0の変更が可能な、/proc/sys/kernel/modules_disabledの別名。 
  # echo '0' > /proc/rachael/modules_disabled 
  でmodule操作の再有効化ができます。 
 
 /proc/rachael/security_ops 
  DECKARD LSMの設定。'1'が有効、'0'が無効。 
  # cat /proc/rachael/security_ops 
  などと読み出せば今の設定が分かり、 
  # echo '0' > /proc/rachael/security_ops 
  などと書き込めば設定を変更できます。 
 
 /proc/rachael/nand_protection (※) 
  NAND Lockの設定。ビットフラグ。1で有効、0で無効。 
  下位ビットから順に、"boot"、"recovery"、"system"に対応します。 
  初期状態では'7'、つまり0b111で、全て有効になっているはずです。 
  例えば、 
  # echo '5' > /proc/rachael/nand_protection 
  などとすれば、0b101となるので、"recovery"だけが解除されます。 
 
 (続く) 

925
 (続き) 
 
 /proc/rachael/nandinfo 
  読み出し専用。現在のs_protect_info[]の値、つまりNANDの保護状態を、 
  .flg、.start、.endの順に表示します。全て十進表記です。 
  dmesgで分かるNANDの領域情報と比較することで、moduleがNANDの情報を 
  正しく認識しているかの確認ができます。また、nand_protectionへの 
  書き込み操作も反映されます。 
 
 /proc/rachael/ksyms 
  読み出し専用。moduleが解決したkernel symbolの情報を/proc/kallsyms 
  と同様の形式で表示します。最初は空ですが、上で書いた操作を行うと 
  増えていきます。 
 
 現バージョンでは、非実装の部分を補うために、ロード時のアドレス指定が 
 必須となっています。それを自動で行うローダinsmod+を同梱してあります。 
 
 module名がrachael.に一致する場合には、必要な引数を検出して追加します。 
 # ./insmod+ rachael.ko 
 などと使います。 
 
 また、※をつけたnand_protectionは、危険性が段違いなので、ロード時に 
 i_cannot_tell_is01_from_glasses_case=1というオプションを付けないと 
 出現しないようにしてあります。NANDの書き込みについては、実験できる 
 機体がなく、まだ試していません。 

942
 昨夜のモジュールを手直しして再アップしました。 
 ソースコードの整理もできたので、同梱してあります。 
 
 ttp://uploading.com/files/ma15b27m/rachael-0.0.beta.1.zip/ 
 パスはdeckardです。 
 
 簡単なコード解析でアドレス検出を行いますので、ソースの該当部分に変更がなければ、 
 カーネル再構築でずれたとしても問題なく追従します。 

977
 エラー処理で甘い所があったので修正です。今回はソースを分離しました。 
 なぜか片方だけzipだとアップできなかったので7zにしてあります。中々アップ出来ず疲れた… 
 
 ttp://uploading.com/files/faff9af4/rachael-0.0.beta.2.7z/ 
 ttp://uploading.com/files/m64ma8db/rachael-0.0.beta.2-src.zip/ 
 
 パスはdeckardです。 

371
 ./insmod+ -f rachael.koで普通にロードできた。 
 何だこれ。 

377
 素の01.00.07なんだが、 
 
 /sh_tmp # lsmod 
 unifi_sdio 294368 0 - Live 0x7f000000 
 /sh_tmp # cat /proc/sys/kernel/modules_disabled 
 1 
 /sh_tmp # ./insmod+ -f rachael.ko 
 force loading... 
 insmod rachael.ko addr=0x800a206c 
 /sh_tmp # lsmod 
 rachael 11660 0 - Live 0x7f0aa000 
 unifi_sdio 294368 0 - Live 0x7f000000 
 /sh_tmp # cat /proc/sys/kernel/modules_disabled 
 1 
 
 何かおかしくね? 

378
 >>377 
 insmod+使うと、modules_disabledが1でもロードできるっぽい。 
 どうやってやってるかは知らないけど。 

380
 >>378 
 レスさんくすです。 
 俺の勘違いじゃなくて良かった。 

381
 いや、良かないか。新手の罠か? 

382
 中身を覗いてみたけど、なんかの脆弱性を突いてる気がする。 

383
 しれっとすごいコードがリリースされてるんだな… 

■カーネルの入れ替え:その他もろもろ

935
 NDKのクロスコンパイラ使ってもカーネル構築できないなあ 
 初期化前の変数を参照してるエラーがいくつも出てくる 
 構築してる人はソース修正してる? 

941
 >>935 
 CFLAGSの-Wallをはずしてあげれば、そのあたりはエラーにはならないですよ。 
 kernelソースのトップにあるMakefileの 
 
 HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer 
 や 
 KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ 
 
 の-Wallを消してビルドしてみてください。 
 
 あとは関数のStack利用サイズのチェックでエラーがでる場合はkernelのトップにある 
 .config内の 
 CONFIG_FRAME_WARN=1024 
 を2048に増やしてあげれば大丈夫です。 

943
 >>941 
 ありがとうございます 
 warningを吐きますが、バイナリ出力まで通りました 
 
 というか、公開ソースで配布(出荷)バイナリを構築できないなら、GPLに反してるんじゃ…? 


168
 JN-DK01のオープンソース版boot.imgで起動させようとしたけど、ISロゴから進まない。 
 この時点では、recovery_kitでカーネルを元に戻すことはできた。 

170
 >>168 
 報告乙です。自分はSystemまで焼いてしまったので復旧に四苦八苦中。 

172
 >>170 
 system領域は、直接焼かないでtarとかでファイルを展開する形の方が良いかもしれませんね。 



944
 応援・雑談スレで聞いていたのですが、ROM焼きにも関係するので、 
 こちらに移動します。本スレ828でrecovery.img は展開できました。 
 
 system.img(ddでmtd5) を展開するにはどうしたら良いんでしょうか? 
 unyaffs ではエラー出ましたし…。 
 system.img 取り込み→PC側で展開&再構築→書き戻し 
 という事を行いたいのです。 

945
 >>944 
 system.imgのダンプを見てみましたが、NANDのoob領域がダンプで来ていないようです。 
 対応版のdump_imageを作成してみましたので、こちらでsystemとuserdataのダンプをしてみてください。 
 ソース付きです。 
 
 http://hotfile.com/dl/89720710/8209e6f/is01_mtdutils.zip.html 
 
 こちらでダンプしたものであれば、普通にunyaffsできると思います。 

946
 dump_imageのスタティックビルド版も入れておきました。 
 
 http://hotfile.com/dl/89721932/90bc0eb/is01_mtdutils2.zip.html 

948
 >>945 >>946 goroh_kun 
 ありがとうございます。早速、試してみました。 
 
 PC側は ubuntu x64です。 
 $ unyaffs system.img 
 Segmentation fault 
 展開結果を見ると、~padding58.pad まではpadファイルが出来てます。 
 system内にはpadding63.padまであるようです。 
 そもそも、このpadファイルがなにかイマイチ不明なのですが…。 
 
 unyaffs の出力が mkyaffs2image で元に戻るかどうかを試すつもりですが、 
 unyaffs がどこでこけているか、もうちょっと見てみます。 

972
 mkyaffs2imageで作ったイメージをubinizeしてから書いたらどうだろう。 

974
 >>972 
 systemとuserdataはubiにはなっていませんので、やらないほうが良いかと思います・・ 
 ubiファイルシステムが使われているのは、boot, recovery, iplの3領域のみです。 

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年12月17日 21:51
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。