SurfaceFlinger周りを見てたけど、もっと簡単に主張wできそうなboot splashの変更をやってみました。以下は、わすれっぽい自分のための記録。
基本的には、videoドライバ周りのコードでgoogleのsplashを表示している部分を書き換える方法をとる。gitからNexus Sのkernelをダウンロードして展開しておく。
画像作成はGIMPがおすすめ、RGB24フォーマットをCのヘッダとして書き出すことができるので便利、Ubuntuでのビルド環境があるのなら、いっしょにaptで入れておこう。ロゴを変更する方法としてはGalaxy Sでの方法があるのでここからダウンロードしてヘッダまで作成しておく。同じようにできる。
GIMPで480x800の画像を準備 画像をCのヘッダとして書き出す https://github.com/morfic/Samsung-logo.git を展開 makelogo.cppを編集してGMPで書き出したヘッダ形式の画像をincludeするように修正 g++ -o makelogo makelogo.cpp cat start_logo.h > my_logo_rgb24_wvga_portlait.h makelogo >> my_logo_rgb24_wvga_portlait.h cat end_logo.h >> my_logo_rgb24_wvga_portlait.h
drivers/video/samsung/s3cfb.c
--- xxx/s3cfb.c 2011-02-04 01:58:40.124438126 -0800 +++ yyy/s3cfb.c 2011-02-04 01:50:19.397099076 -0800 @@ -38,6 +38,7 @@ #include <linux/suspend.h> #endif #include "s3cfb.h" +#include "my_logo_rgb24_wvga_portrait.h" struct s3c_platform_fb *to_fb_plat(struct device *dev) { @@ -96,8 +97,7 @@ logo_virt_buf = ioremap_nocache(bootloaderfb, fb->var.yres * fb->fix.line_length); - memcpy(fb->screen_base, logo_virt_buf, - fb->var.yres * fb->fix.line_length); + memcpy(fb->screen_base, LOGO_RGB24, fb->var.yres * fb->fix.line_length); iounmap(logo_virt_buf); } return 0;コードを修正したらビルドして、mkbootimgでboot.imgを作成する。
fastboot boot newlogoboot.img
などとしてテスト。OKなら書き込む。注意するべきは、codeにtouchしてしまっているのでdirtyフラグが立ってしまう。ここまでcodeにtouchしていなかったのであれば、moduleは今回作成されたものに入れ替えよう。version magicの不一致でロードされないので。
googleのロゴを完全に消すのはよくわからないので今回パスw。
起動ロゴはこんな感じでNintendo風。
1 コメント:
Sorry but it dint work....What should i do...???
コメントを投稿