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 ...
随机推荐
- Kafka资源汇总
终于下定决心写一点普及类的东西.很多同学对Kafka的使用很感兴趣.如果你想参与到Kafka的项目开发中,很多资源是你必须要提前准备好的.本文罗列了一些常用的Kafka资源,希望对这些develope ...
- Git 相关总结
Git 优秀在线教程 廖雪峰-史上最浅显易懂的Git教程!
- C#批量插入数据到Sqlserver中的四种方式
我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...
- 了解AIDL
1.什么是AIDL? Android Interface Definition Lauguage(android接口描述语言)是一个IDL语言. 2.AIDL的作用? 背景:在android平台 中, ...
- 炫酷的jQuery对话框插gDialog
js有alert,prompt和confirm对话框,不过不是很美体验也不是很好,用jQuery也能实现, 体验效果:http://hovertree.com/texiao/jquery/34/ 代码 ...
- IIS服务器和xampp中的appche服务器端口冲突解决办法
今天在启动xampp中的appche的时候,发现以前能起来的现在起不来了.想到可能是最近配置的系统自带的IIS服务器把appche的端口给占用了. (appche和iis的默认端口号都是:80:) 问 ...
- node-sass报错解决方法
在Vue.js中,每一个vue文件都是一个组件,在.vue文件中可以将模板,脚本,样式写在一起,便于组织整个组件.在使用template,script时,编写css样式时,都进行的特别顺利,唯独当我想 ...
- Android 面试题--Service
1.Service 是否在 main thread 中执行, service 里面是否能执行耗时的操作?默认情况,如果没有显示的指 servic 所运行的进程, Service 和 activity ...
- 每日Scrum站会实践推荐
流程 1.团队在Scrum 白板前集中,推荐围成一个半圆形状. 2.最左边的成员开始讲述昨天/上一次Scrum每日站会后到现在为止,完成了什么任务,只需讲对应的任务就行了,不要讲很长的故事. 3.讲述 ...
- JAVA编程思想(第四版)学习笔记----11.4 容器的打印
import static java.lang.System.out; import java.util.ArrayList; import java.util.Collection; import ...