高通平台 开机logo 替换
来源:互联网 发布:吃土(网络词汇) 编辑:程序博客网 时间:2024/05/21 22:27
高通平台msm8916修改开机logo【原创】
经过两天的奋战终于把开机logo给搞定了啊。
首先修改开机logo要从哪里入手呢?先分析一下源码看看. --->
1 void display_image_on_screen() 2 { 3 struct fbimage default_fbimg, *fbimg; 4 bool flag = true; 5 6 fbcon_clear(); 7 fbimg = fetch_image_from_partition(); //从splash镜像分区抓取图片 8 if(fbimg){ 9 dprintf(CRITICAL, "zbzhuang### ->fetch_image_from_partition\n");10 }11 12 if(!fbimg) { //如果splash.img分区的内容不存在或者被擦除则从splash.h头文件从获取要显示图像的数组13 dprintf(CRITICAL, "zbzhuang### ->not fetch_image_from_partition\n");14 flag = false;15 fbimg = &default_fbimg;16 fbimg->header.width = SPLASH_IMAGE_HEIGHT;17 fbimg->header.height = SPLASH_IMAGE_WIDTH;18 #if DISPLAY_TYPE_MIPI19 fbimg->image = (unsigned char *)imageBuffer_rgb888;20 #else21 fbimg->image = (unsigned char *)imageBuffer;22 #endif23 }24 25 fbcon_putImage(fbimg, flag);26 }
粗略的看了一下源码,大概可以知道要修改开机logo有两种方式一种是通过。经过本人的验证,对于大图片强烈建议使用方法一,当然小图片也可以使用方法一。方法二只适合分辨率不超过320*200的图片,之前本人测试了无数次,验证了很久才总结出来的啊,分辨率超过320*200的一定不要使用方法二。
方法一:利用工具根据图像生成splash.img镜像之后,使用fastboot重新刷splash.img分区。
方法二:利用工具将图片重新生成splash.h头文件的数据,替换相应的头文件就OK。
方法一:利用工具根据图像生成splash.img镜像之后,使用fastboot重新刷splash.img分区。
首先准备一张800*1280的图片(png格式),和生成splash.img镜像的脚本工具--->logo_gen.py。
企鹅界面对应splash.img的生成
脚本路径device\qcom\common\display\logo\logo_gen.py
生成splash.img的步骤:
(1) sudo apt-get install python-imaging
安装python成功后运行如下脚本:
(2) python ./logo_gen.py snapdragon.png
这样就可在当前目录下生成splash.img。
烧写 splash.img
1
1 adb reboot bootloader //进入bootloader模式2 fastboot flash splas //将镜像刷入3 fastboot reboot //重启平板电脑
重启后发现还是没有替换,需要更改一个配置:
arch/arm64/boot/dts/qcom/msm8976-mdss.dtsi
mdss_fb0: qcom,mdss_fb_primary {
160 cell-index = <0>;
161 compatible = "qcom,mdss-fb";
162 /* qcom,mdss-fb-splash-logo-enabled;*/
163 qcom,cont-splash-memory {
164 linux,contiguous-region = <&cont_splash_mem>;
165 };
166 };
需要注释掉 qcom,mdss-fb-splash-logo-enabled
编写 make bootimage
烧写 bootimage ,重新启动就可以了。
方法二:利用工具将图片重新生成splash.h头文件的数据,替换相应的头文件就OK。
在ubuntu下敲如下三行命令,要事先安装好conver xxd等工具 。fire_296137.png 图片
1 convert fire_296137.png -recolor "0 0 1,0 1 0,1 0 0" fire_296137_re.png //将图片重新着色BRG转C成rgb2 convert -depth 8 fire_296137_re.png rgb:fire_296137_raw.raw //将png格式转成raw图片格式3 xxd -i fire_296137_raw.raw > splash.h //生成对于的splash.h头文件的数组
至于生成的数组要替换Splash.h (z:\bootable\bootloader\lk\platform\msm_shared\include) 那个数组呢?我的平板电脑是采用MIPI接口股修改第二个数组:imageBuffer_rgb888[]数组的内容。同时修改分辨率
1 #define SPLASH_IMAGE_WIDTH 320 2 #define SPLASH_IMAGE_HEIGHT 200
从我刚开始贴的代码的第7行和第12号可知,如果splash分区的有图片的镜像,那么在显示logo的时候就优先从splash分区当中加载,否则从splash[]数组中加载图片。
因此我们要从splas[]数组当中加载图片一定要擦除splash分区:之后才可以成功的从splash.h头文件的数组中显示图片,或者注释第7行代码强制跳过从splash分区加载镜像,修改了源码之后只需要重新编译源码,之后重新烧录aboot镜像就可啦。
1 rm out/target/product/msm8916_64/emmc_appsboot.mbn //编译之前一定要先删除,避免没有重新编译改动过的文件2 make aboot -j8 //单独编译lk镜像
使用fastboot命令重新烧录aboot 镜像,重新开机,看到鸣人和佐助,我们可以安心的下班了啊。
- 高通平台 开机logo 替换
- 高通平台之开机logo,企鹅logo替换
- 高通平台开机logo的修改
- 高通平台msm8916修改开机logo 高通平台修改LK(bootloader)开机logo
- 高通平台开机logo连续显示调试总结
- 高通平台开机LOGO修改LK(bootloader)下实现
- 高通平台修改LK(bootloader)开机logo
- 高通平台开机logo连续显示调试总结
- 高通平台修改LK(bootloader)开机logo
- 高通平台开机logo连续显示调试总结
- 高通平台修改LK(bootloader)开机logo
- Android 高通平台开机logo的修改
- 高通平台android kernel 开机logo显示和传统linux一样
- 高通平台android kernel 开机logo显示和传统linux一样
- 高通平台android kernel 开机logo显示和传统linux一样
- 高通平台android kernel 开机logo显示和传统linux一样 .
- 高通平台android kernel 开机logo显示和传统linux一样
- 高通平台android kernel 开机logo显示和传统linux一样
- 获取MD5、SHA1、SHA256码
- 进程相关工具类
- Android学习基础,NDK入门
- Linux中的作业规划进程crond
- 圣杯布局------4种css左中右布局方式
- 高通平台 开机logo 替换
- 下载的免安装mysqlserver的使用步骤 | 黄乔国PHP
- 连接池
- 五大统计数字看2017网络安全 移动APP安全
- c++编译中出现问题及解决办法
- Apache HBase region拆分
- Mac OS 安装Wget
- NavigationBar的几种常用判断方法
- C++新特性之lambda表达式在for_each循环中的使用及for循环新写法