booting logo & booting animation
開機第一張圖片:

圖片位置:
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的更多相关文章
- 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 ...
- Network Booting
http://en.wikipedia.org/wiki/Network_booting Network booting Network booting is the process of booti ...
- bootstrap 导航栏鼠标悬停显示下拉菜单
在jsp中加入一下代码: .navbar .nav > li:hover .dropdown-menu { display: block;} 全部代码如下所示: <%@ page lang ...
- Android缩放动画[ScaleAnimation]
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s ...
- linux中DHCP服务配置文件/etc/dhcpd.conf详细说明
DHCP服务的配置 dhcpd.conf 是DHCP服务的配置文件,DHCP服务所有参数都是通过修改dhcpd.conf 文件来实现,安装后dhcpd.conf 是没有做任何配置的,将/usr/sha ...
- LINUX_RHEl6_DHCP服务器配置
安装DHCP服务器 DHCP配置文件 可以使用RHEL 6.0自身携带的RPM包安装,安装结束后DHCP端口监督程序dhcpd配置文件是/etc/dhcp目录中的名为dhcpd.conf的文件.下面手 ...
- 一步步玩pcDuino3--mmc下的bootloader
pcDuino3下支持mmc启动.官方的Uboot是採用SPL框架实现的,由于内部的SRAM空间达到32K,我们全然能够在这32K空间内编写一个完整可用小巧的bootloader来完毕引导Linux ...
- 盛科(Centec)交换机 SmartConfig 特性
参考 DHCP manual pages DHCP option-66 & option-150 的区别 一. 原理 目前市场上稍微有些实力的交换机厂商,均支持自动化的批量开局部署,虽然具体实 ...
- dhcpd.conf(5) - Linux man page
http://linux.die.net/man/5/dhcpd.conf Name dhcpd.conf - dhcpd configuration file Description The d ...
随机推荐
- Win10 UWP开发系列:实现Master/Detail布局
在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档: ...
- c#面向对象基础技能——学习笔记(五)委托技术在开发中的应用
委托 delegate 1.是一种全新的面向对象语言的特性: 2.开发事件驱动程序变得非常简单: 3.简化多线程难度. 理解委托:可以理解成一个方法的指针.(接收的变量是方法) 步骤: 1.声明委托, ...
- Unmanaged Exports使用方法
Unmanaged Exports,可以利用C#生成非托管的DLL文件. 从https://sites.google.com/site/robertgiesecke/下载UnmanagedExport ...
- JAVA 入门第二章 (面对对象)
本渣渣鸽了一个月终于有时间更新.因为有c++基础,学起来这章还是比较简单的,本章我觉得是程序猿质变课程,理解面向对象的思想,掌握面向对象的基本原则以及 Java 面向对象编程基本实现原理,熟练使用封装 ...
- 供应链需求调研CheckList
总体(General) 基本情况 1. 企业地址.邮编.电话.传真,项目联系人等基本资料. 2. 企业经营范围,产品线和主导产品. 3. 企业近几年的产值及销售额. 4. 企业 ...
- SpringMVC的执行流程(二)
文字解析: 1.客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配 DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交 ...
- 学习笔记 MYSQL报错注入(count()、rand()、group by)
首先看下常见的攻击载荷,如下: select count(*),(floor(rand(0)*2))x from table group by x; 然后对于攻击载荷进行解释, floor(rand( ...
- 关于从Activity A跳转到Activity B ,其中Activity A中有一个VideoView,Activity B中有一个MediaPlayer。
两个不同的视频的跳转, 前面我是在onStop()方法中销毁VideoView(因为MediaPlayer是全局共用的,而VideoView内包含MediaPlayer),但是每次进入Activity ...
- 阶段一:通过网络请求,获得并解析JSON数据(天气应用)
“阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 在上一篇阶段一:解析JSON中提到,最近在写一个很简单的天气预报应用.即使功能很简单,但我还是想把它做成一个相对完 ...
- 最便捷的免费 SSL 证书解决方案(实测start SSL、Let's Encrypt、七牛免费SSL证书)
谷歌从 2017 年起,Chrome 浏览器将也会把采用 HTTP 协议的网站标记为「不安全」网站:苹果从 2017 年 iOS App 将强制使用 HTTPS:在国内热火朝天的小程序也要求必须使用 ...