カーネル修正Android起動プロセスロゴ修正
3891 ワード
本稿では、カーネルの修正内容を主に紹介します.
ここではubuntuで操作していますrootユーザーでログインしたので、まずnetpbmライブラリをインストールします.
実行:apt-get install netpbm
Androidシステムで最初にロゴを表現するのはカーネルの中にあるので、まずカーネルのロゴを修正します.
一.カーネル内の関連変更
linuxカーネルロゴ製造スクリプトmklogoをコンパイルする.sh、内容は以下の通りです.
選択したロゴをpngフォーマットに変換し、ロゴと名付けます.pngとmklogo.shは統一経路の下に置く.実行./mklogo.sh最後にlogo_を生成linux_gzsd_clut224.ppm
このネーミングは自由に変更できますが、ロゴを守らなければなりません.yourname_typeのようなネーミング方法は、ここでは*_のみを羅列します.clut224.ppmの命名方法、その他のフォーマットの命名方法はdrivers/video/logo/Makefileファイルを参照してください.
logo_をlinux_gzsd_clut224.ppmファイルはカーネルソースのdrivers/video/logo/ディレクトリの下に配置されます
drivers/video/logoディレクトリへ
1.Kconfigファイルの変更
追加:endif#LOGOの前に
2.Makefileファイルの変更
追加:
obj-$(CONFIG_LOGO_LINUX_GZSD) += logo_linux_gzsd_clut224.o
3.logo.c中関数fb_find_logoのif(depth>=8)の上に追加:
#ifdef CONFIG_LOGO_LINUX_GZSD logo = &logo_linux_gzsd_clut224; #endif
4.カーネルソースディレクトリのinclude/linux/linux_logo.hで増加
extern const struct linux_logo logo_linux_gzsd_clut224;
毎日同じ理屈
根気は、千里の堤防の一砂一石の凝集であり、少しずつ蓄積されてこそ、前に頭を見ないと尾を見ない壮麗さがある.根気は、春蚕が糸を吐いて一筋一筋一筋に囲まれ、一筋に堅持してこそ、繭を破って再び光の輝きを見ることができる.根気は、遠航する船の帆で、帆があって、船はやっと成功の向こう岸に着くことができます.
5.端末でmake menuconfigを実行する、を選択する.
Device Drivers ---> Graphics support --->Bootup logo --->gzsd logo
保存終了後にコンパイル
6.LCDコンソールのカーソル禁止
カーネルソースディレクトリの下drivers/video/console/fbcon.c中
注記削除関数:fb_Flashcursorとfbcon_cursor内のすべての内容
7.ロゴの画面の横に表示させます.
drivers/video/fbmem.c
関数fb_の変更do_show_ロゴは以下の通り
再コンパイル
二.Android起動後フラッシュ画面修正:
パス:ファイルシステムのソースコードの下のframeworks/base/core/res/assets/images/の下に2枚の画像があります
android-logo-mask.png
android-logo-shine.png
この2枚の画像を修正すればいいので、本来の保存に注意してください.
文章の終わりに、プログラマーのジョークの語録を共有します.ソフトウェアエンジニア、ハードウェアエンジニア、プロジェクトマネージャが車に乗ってセミナーに参加しているそうです.残念なことに、盤山道路から下山した時、途中で壊れてしまった.そこで2人のエンジニアと1人のマネージャーは車の修理方法について討論した.ハードウェアエンジニアは「持ち歩いていたスイスのナイフで車の壊れた部分を取り外し、原因を見つけ、故障を排除することができます」と話しています.プロジェクトマネージャは、「経営管理学に基づいて、会議を開き、問題の現状に基づいて需要報告書を書き、計画を作成し、スケジュールを作成し、徐々に近づき、alphaテスト、beta 1テスト、beta 2テストで問題を解決しなければならない」と話しています.ソフトウェアエンジニアリングは「車を山頂に戻してから降りて、問題が繰り返されているかどうかを見なければならない」と話しています.
ここではubuntuで操作していますrootユーザーでログインしたので、まずnetpbmライブラリをインストールします.
実行:apt-get install netpbm
Androidシステムで最初にロゴを表現するのはカーネルの中にあるので、まずカーネルのロゴを修正します.
一.カーネル内の関連変更
linuxカーネルロゴ製造スクリプトmklogoをコンパイルする.sh、内容は以下の通りです.
#!/bin/sh
pngtopnm logo.png > linuxlogo.pnm
pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm
pnmtoplainpnm linuxlogo224.pnm > logo_linux_gzsd_clut224.ppm
rm linuxlogo.pnm linuxlogo224.pnm
選択したロゴをpngフォーマットに変換し、ロゴと名付けます.pngとmklogo.shは統一経路の下に置く.実行./mklogo.sh最後にlogo_を生成linux_gzsd_clut224.ppm
このネーミングは自由に変更できますが、ロゴを守らなければなりません.yourname_typeのようなネーミング方法は、ここでは*_のみを羅列します.clut224.ppmの命名方法、その他のフォーマットの命名方法はdrivers/video/logo/Makefileファイルを参照してください.
logo_をlinux_gzsd_clut224.ppmファイルはカーネルソースのdrivers/video/logo/ディレクトリの下に配置されます
drivers/video/logoディレクトリへ
1.Kconfigファイルの変更
追加:endif#LOGOの前に
config LOGO_LINUX_GZSD
bool "gzsd logo"
default n
2.Makefileファイルの変更
追加:
obj-$(CONFIG_LOGO_LINUX_GZSD) += logo_linux_gzsd_clut224.o
3.logo.c中関数fb_find_logoのif(depth>=8)の上に追加:
#ifdef CONFIG_LOGO_LINUX_GZSD logo = &logo_linux_gzsd_clut224; #endif
4.カーネルソースディレクトリのinclude/linux/linux_logo.hで増加
extern const struct linux_logo logo_linux_gzsd_clut224;
毎日同じ理屈
根気は、千里の堤防の一砂一石の凝集であり、少しずつ蓄積されてこそ、前に頭を見ないと尾を見ない壮麗さがある.根気は、春蚕が糸を吐いて一筋一筋一筋に囲まれ、一筋に堅持してこそ、繭を破って再び光の輝きを見ることができる.根気は、遠航する船の帆で、帆があって、船はやっと成功の向こう岸に着くことができます.
5.端末でmake menuconfigを実行する、を選択する.
Device Drivers ---> Graphics support --->Bootup logo --->gzsd logo
保存終了後にコンパイル
6.LCDコンソールのカーソル禁止
カーネルソースディレクトリの下drivers/video/console/fbcon.c中
注記削除関数:fb_Flashcursorとfbcon_cursor内のすべての内容
7.ロゴの画面の横に表示させます.
drivers/video/fbmem.c
関数fb_の変更do_show_ロゴは以下の通り
static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
int rotate, unsigned int num)
{
unsigned int x;
int xoff,yoff;
/**for central logo**/
xoff = (info->var.xres - num * (fb_logo.logo->width + 8))>>1; // x
yoff = (info->var.yres - num * (fb_logo.logo->height + 8))>>1; // y
if (rotate == FB_ROTATE_UR) {
for (x = 0; x < num && image->dx + image->width <= info->var.xres; x++) {
image->dx = xoff;
image->dy = yoff;
info->fbops->fb_imageblit(info, image);
image->dx += image->width + 8;
}
}
else if (rotate == FB_ROTATE_UD) {
for (x = 0; x < num && image->dx >= 0; x++) {
info->fbops->fb_imageblit(info, image);
image->dx -= image->width + 8;
}
}
else if (rotate == FB_ROTATE_CW) {
for (x = 0; x < num && image->dy + image->height <= info->var.yres; x++) {
info->fbops->fb_imageblit(info, image);
image->dy += image->height + 8;
}
}
else if (rotate == FB_ROTATE_CCW) {
for (x = 0; x < num && image->dy >= 0; x++) {
info->fbops->fb_imageblit(info, image);
image->dy -= image->height + 8;
}
}
}
再コンパイル
二.Android起動後フラッシュ画面修正:
パス:ファイルシステムのソースコードの下のframeworks/base/core/res/assets/images/の下に2枚の画像があります
android-logo-mask.png
android-logo-shine.png
この2枚の画像を修正すればいいので、本来の保存に注意してください.
文章の終わりに、プログラマーのジョークの語録を共有します.ソフトウェアエンジニア、ハードウェアエンジニア、プロジェクトマネージャが車に乗ってセミナーに参加しているそうです.残念なことに、盤山道路から下山した時、途中で壊れてしまった.そこで2人のエンジニアと1人のマネージャーは車の修理方法について討論した.ハードウェアエンジニアは「持ち歩いていたスイスのナイフで車の壊れた部分を取り外し、原因を見つけ、故障を排除することができます」と話しています.プロジェクトマネージャは、「経営管理学に基づいて、会議を開き、問題の現状に基づいて需要報告書を書き、計画を作成し、スケジュールを作成し、徐々に近づき、alphaテスト、beta 1テスト、beta 2テストで問題を解決しなければならない」と話しています.ソフトウェアエンジニアリングは「車を山頂に戻してから降りて、問題が繰り返されているかどうかを見なければならない」と話しています.