開機第一張圖片:

圖片位置:

linux_repo/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo

因為 project 選用 FHD 屏幕所以

在linux_repo/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/fhd

file name is :

fhd_uboot.bmp

code 位置:

第1圖是在 lk phase 顯示的。

linux_repo/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6755/platform.c

  void platform_init(void)
{ ...
...
...
#endif
} else if (g_boot_mode != KERNEL_POWER_OFF_CHARGING_BOOT && g_boot_mode != LOW_POWER_OFF_CHARGING_BOOT) {
if (g_boot_mode != ALARM_BOOT && (g_boot_mode != FASTBOOT)) {
#ifndef MACH_FPGA_NO_DISPLAY
//
// here display
//
mt_disp_show_boot_logo();
#endif
}
}
#else
if (g_boot_mode != ALARM_BOOT && (g_boot_mode != FASTBOOT)) {
#ifndef MACH_FPGA_NO_DISPLAY
mt_disp_show_boot_logo();
#endif
}
#endif
#ifdef LK_PROFILING
time_backlight = get_timer();
#endif
...
...
...
}

linux_repo/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6755/mt_logo.c

 void mt_disp_show_boot_logo(void)
{
int logo_index = ;
int x = ;
char* test = NULL; dprintf(INFO, "[lk logo: %s %d]\n",__FUNCTION__,__LINE__);
mt_logo_get_custom_if(); #if defined(MTK_CARRIEREXPRESS_PACK)
#if 0 // test
test = (char *)get_env("VAIBHAV");
if (test == NULL) {
dprintf(INFO, "[lk logo: SysEnv is not set]\n");
if (set_env("VAIBHAV","") == ) {
dprintf(INFO, "[lk logo: SysEnv set to 5 Succesfully]\n");
x = ;
} else {
dprintf(INFO, "[lk logo: SysEnv set fails!!!]\n");
return;
}
} else {
dprintf(INFO, "[lk logo: SysEnv already set to %d]\n",atoi(test));
}
#endif
logo_index = get_logo_index();
/*if(x == 1){
294 logo_index = 0;
295 dprintf(INFO, "[lk logo: First Boot So show OM logo]\n");
296 }*/
dprintf(INFO, "[lk logo: Final logo_index: %d]\n",logo_index);
#endif if (logo_cust_if->show_boot_logo) { logo_cust_if->show_boot_logo();
} else {
//
// here display logo
//
///show_logo(0);
init_fb_screen();
fill_animation_logo(logo_index, mt_get_fb_addr(), mt_get_tempfb_addr(), logo_addr, phical_screen);
mt_disp_update(, , CFG_DISPLAY_WIDTH, CFG_DISPLAY_HEIGHT);
} return;
}

第二張開機圖片

圖片位置:

linux_repo/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo

因為 project 選用 FHD 屏幕所以

在linux_repo/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/fhd

file name is :

fhd_kernel.bmp


第2張圖是在 android init 時顯示的。

init process 呼叫,顯示第2張 開機圖片

linux_repo/device/mediatek/mt6755/init.mt6755.rc

 819 # Update the second boot logo
820 service bootlogoupdater /vendor/bin/boot_logo_updater
821 class core
822 oneshot

// 若第一張圖片和第二張圖片是一樣的,

// 則可以將 下列部份 display 圖片 的 code mark 掉,

// 可以減少約 0.1 second 的 開機時間。

linux_repo/vendor/mediatek/proprietary/external/boot_logo_updater/boot_logo_updater.c

183 int main(void)
{
SLOGD("[boot_logo_updater %s %d]boot_logo_updater,\n",__FUNCTION__,__LINE__);
int ret = update_boot_reason();
if (ret == ) {
SLOGE("[boot_logo_updater]skip the boot logo!\n");
set_int_value(LCD_BACKLIGHT_PATH, );
return ;
} else if (ret == ) {
SLOGD("[boot_logo_updater]schedule on\n");
}
// set parameter before init
set_draw_mode(DRAW_ANIM_MODE_FB);
anim_init();
//
// here display logo
//
show_kernel_logo();
anim_deinit(); return ;
}
linux_repo/vendor/mediatek/proprietary/external/libshowlogo/charging_animation.cpp

  /*
985 * Show kernel logo when phone boot up
986 *
987 */
void show_kernel_logo()
{
if (MTK_LOG_ENABLE == ) {
SLOGD("[libshowlogo: %s %d]show kernel logo, index = 38 \n",__FUNCTION__,__LINE__);
}
if (error_flag == ) {
#if defined(MTK_CARRIEREXPRESS_PACK)
anim_show_logo(get_logo_index(false));
#else
//
// here display logo
//
anim_show_logo(kernel_logo_position);
#endif
}
}

開機動畫

linux_repo/frameworks/base/core/res/assets/images/

file name :

android-logo-mask.png

android-logo-shine.png


未完待續

booting logo & booting animation的更多相关文章

  1. Yahoo! Logo ASCII Animation in 462 bytes of C

    Last week I put together another obfuscated C program and have been urged by my coworkers to post it ...

  2. Network Booting

    http://en.wikipedia.org/wiki/Network_booting Network booting Network booting is the process of booti ...

  3. bootstrap 导航栏鼠标悬停显示下拉菜单

    在jsp中加入一下代码: .navbar .nav > li:hover .dropdown-menu { display: block;} 全部代码如下所示: <%@ page lang ...

  4. Android缩放动画[ScaleAnimation]

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s ...

  5. linux中DHCP服务配置文件/etc/dhcpd.conf详细说明

    DHCP服务的配置 dhcpd.conf 是DHCP服务的配置文件,DHCP服务所有参数都是通过修改dhcpd.conf 文件来实现,安装后dhcpd.conf 是没有做任何配置的,将/usr/sha ...

  6. LINUX_RHEl6_DHCP服务器配置

    安装DHCP服务器 DHCP配置文件 可以使用RHEL 6.0自身携带的RPM包安装,安装结束后DHCP端口监督程序dhcpd配置文件是/etc/dhcp目录中的名为dhcpd.conf的文件.下面手 ...

  7. 一步步玩pcDuino3--mmc下的bootloader

    pcDuino3下支持mmc启动.官方的Uboot是採用SPL框架实现的,由于内部的SRAM空间达到32K,我们全然能够在这32K空间内编写一个完整可用小巧的bootloader来完毕引导Linux ...

  8. 盛科(Centec)交换机 SmartConfig 特性

    参考 DHCP manual pages DHCP option-66 & option-150 的区别 一. 原理 目前市场上稍微有些实力的交换机厂商,均支持自动化的批量开局部署,虽然具体实 ...

  9. dhcpd.conf(5) - Linux man page

    http://linux.die.net/man/5/dhcpd.conf Name dhcpd.conf - dhcpd configuration file Description   The d ...

随机推荐

  1. C#基础知识八之访问修饰符

    1.  类的访问修饰符 修饰符 访问权限 无或者internal 只能在同一个程序集中访问类 public 同一个程序集或引用该程序集的外部都可访问类 abstract或internal abstra ...

  2. DataGridView绑定源码下载

    效果图: 源码下载:http://hovertree.com/h/bjaf/bbot18bj.htm 上面源码不包含数据库的查询,需要获取数据库数据的话,请看这个的源码: http://hovertr ...

  3. 【手记】调用Process.EnterDebugMode引发异常:并非所有引用的特权或组都分配给呼叫方

    刚上线一个新版本,其中有台电脑打开软件就报[xx的类型初始值设定项引发异常](还好不是一大波电脑,新东西上线就怕哀鸿遍野),如图: 显然是该类型的静态构造函数中抛异常了(红线处就是类名),遂打开该类, ...

  4. Position属性四个值:static、fixed、relative、absolute的区别和用法

    1.static(静态定位):默认值.没有定位,元素出现在正常的文档流中(如果设置 top, bottom, left, right, z-index这些属性就不起做作了). 2.relative(相 ...

  5. SharePoint2016母版页的直接依赖项的数目限制超过10的限制解决方案Direct Dependencies Limit with Master page User Controls

    前言 最近母版制作站点模板,根据站点模板新建后发现如下错误: 解决方案 1. 打开C:\inetpub\wwwroot\wss\VirtualDirectories\,如下图: 2. 打开web.co ...

  6. Atittit.研发公司的组织架构与部门架构总结

    Atittit.研发公司的组织架构与部门架构总结 1. archi组织架构与 部门规划2 1.1. 最高五大组织机构2 1.2. 宗教事务部2 1.3. 制度与重大会议委员会2 1.4. 纠纷处理部: ...

  7. [swift]NSURLSession

    一.简单说明 在iOS9.0之后,以前使用的NSURLConnection过期,苹果推荐使用NSURLSession来替换NSURLConnection完成网路请求相关操作. NSURLSession ...

  8. UINavigationController

    知识点: 1)UINavigationController 2)UINavigationBar 3)UINavigationItem 4)UIToolBar ===================== ...

  9. ubuntu 16 安装django nginx uWSGI

    参考 https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and- ...

  10. LintCode389.判断数独是否合法

    LintCode简单题:判断数独是否合法 问题描述: 请判定一个数独是否有效. 该数独可能只填充了部分数字,其中缺少的数字用 . 表示. 注意事项: 一个合法的数独(仅部分填充)并不一定是可解的.我们 ...