1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 高通平台开机LOGO的修改与兼容

高通平台开机LOGO的修改与兼容

时间:2019-12-23 01:59:52

相关推荐

高通平台开机LOGO的修改与兼容

平台:高通msm8909

版本:Android5.1

一.开机LOGO的修改

在我之前的博客中,手机模式及分区中有和大家说过,高通平台有splash.img该镜像主要存放开机的第一帧画面,也就是我们所说的LOGO。我们修改开机第一帧画面,其实实质也是修改图片产生的splash.img文件。

在我们手机正常启动的情况下,一般会有我们会看到一幅图片一段动画,这两个存在的意义呢,也是为了用户在开机的情况下,能判断他的手机正在开机,要不然总不能盯着黑屏或者白屏看吧。手机的启动其实大体分为两部分,kernel的启动与system的启动,当我们看到的是一张图片的时候,系统正在启动kernel,当我们看到的是动画的时候,kernel已经启动完成,开始启动system了。今天主要分享的是第一幅的图片的修改。

第一幅图片的修改主要和一下几个文件有关:

1. /LINUX/android/device/qcom/msm8909/Logo.png

开机显示的第一帧图片,注意和屏幕分辨率的对应关系。

2./LINUX/android/device/qcom/common/display/logo/logo_gen.py

将图片转化为系统可以使用的数组的python脚本

这个python脚本很好理解,就是把我们的png图片转化为splash.img。

3./LINUX/android/device/qcom/common/generate_extra_images.mk

这个文件主要里有一段话就是编译安卓版本的时候,自动产生splash.img文件。

对于修改开机第一帧图片,其实我们只需要,自己执行logo_gen.py脚本,用我们自己图片产生的splash.img替换掉刷机包里面的splash.img文件就好,要是项目上整体需要修改,直接替换掉Logo.png就好,虽然修改第一帧图片是很简单的事情,但是要理解整体的框架,就需要在花时间了,接下来我们来看下实际项目中的需求.

二.开机LOGO的兼容

需求:同一型号的手机存在两种分辨率的屏,FWVGA和HD(720P),需要在不同分辨率的情况下加载不同的第一帧图片。

思路:在LK启动的过程中通过判断不同分辨率的状态,加载不同splash.img文件

我们从以下几个步奏来解决:

1.准备对应两种屏幕Logo.png放入/LINUX/android/device/qcom/msm8909/路径下

2.后期会通过splash1.img与splash2.img来区分,所以我们的python脚本也修改一下。

让我们的python脚本可以增加一个参数,可以用来修改产生的文件名。

3.对应的generate_extra_images.mk,我们进行下修改

4.修改/LINUX/android/bootable/bootloader/lk/app/aboot/aboot.c文件,通过判断分辨率加载不同的splash.img.

原来加载的代码如下:

原生的代码的是先进行splash的传输,再进行分辨率的判断,我们做一下适当的修改,让其通过当前分辨率的判断进行不同splash的加载。

修改后的代码如下:

让其通过判断其为FWVGA还是720P的屏幕后,再加载不同的splash的文件,至此兼容问题解决。

如果项目上有关于此类兼容的疑问,可以私信博主探讨。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。