RK3288 Android logo

一、Android 系统开机logo的修改

  • 安卓系统的开机分为u-boot logo 和 kernel logo
  • 开机logo图片必须是 bmp 格式,并且分辨率必须为偶数
  • 将制作好的BMP格式logo图片放置Android源码kernel目录下,重新编译即可

二、Android logo常见问题分析

1、RK3288 Android uboot logo显示色差

原因: uboot logo 图片只能是8bpp的bmp图(参考uboot源码), 一般使用的都是24bpp 的jpg 和png 图

解决: 使用图片转换脚本或工具转换成8bit 256色的bmp图即可

正确的格式 参考下图(位深度 8bit, 格式bmp):

2、RK3288 Android uboot logo烧录上电无法开机或黑白图案

原因: uboot logo 图片像素不支持

解决: 使用图片转换脚本或工具更改像素即可

3、RK3288 Android uboot logo显示较暗

原因: uboot logo 背光低

解决:LVDS屏 uboot-logo显示时,拉高背光使能

diff --git a/device/rockchip/common/ueventd.rockchip.rc b/device/rockchip/common/ueventd.rockchip.rc
index 9c1cd0cbfa..19ff54ef53 100644
--- a/device/rockchip/common/ueventd.rockchip.rc
+++ b/device/rockchip/common/ueventd.rockchip.rc
@@ -42,6 +42,7 @@
 /dev/timerirq             0660   system     system
 /dev/accelirq             0660   system     system
 /dev/compassirq           0660   system     system
+/dev/spi-b               0666   system     system
 
 # for GPS
 #/dev/ttyS3                0600   gps        gps
diff --git a/frameworks/base/cmds/bootanimation/BootAnimation.cpp b/frameworks/base/cmds/bootanimation/BootAnimation.cpp
index b75a338907..3f87c7b105 100755
--- a/frameworks/base/cmds/bootanimation/BootAnimation.cpp
+++ b/frameworks/base/cmds/bootanimation/BootAnimation.cpp
@@ -458,8 +458,19 @@ status_t BootAnimation::readyToRun() {
 bool BootAnimation::threadLoop()
 {
     bool r;
+    int fd = -1;
+    int arg = 1;
     // We have no bootanimation file, so we use the stock android logo
     // animation.
+
+    fd=open("/dev/spi-b",O_RDWR);              
+    if(fd < 0){                        
+       ALOGW("ybx open /dev/spi-b failed fd=%d,errno=%d",fd,errno);            
+    }          
+    if(fd >= 0){                       
+       ioctl(fd,1,&arg);                       
+       close(fd);
+    }
     if (mZip == NULL) {
         r = android();
     } else {
diff --git a/kernel/default_logo.bmp b/kernel/default_logo.bmp
index 75209a0bff..5bd7bc486f 100644
Binary files a/kernel/default_logo.bmp and b/kernel/default_logo.bmp differ
diff --git a/kernel/drivers/pwm/tlc5615.c b/kernel/drivers/pwm/tlc5615.c
index af69bad142..60bb02fc3a 100644
--- a/kernel/drivers/pwm/tlc5615.c
+++ b/kernel/drivers/pwm/tlc5615.c
@@ -41,6 +41,7 @@ dev_t devno;
 struct cdev *tlc_cdev;
 struct class *cls;
 struct device *spi_xiaohu_device;
+static int flag_open_backlight = 0;^M
 
 
 static int spi_request_gpio(void)
@@ -94,6 +95,10 @@ static void gpio_xiaohu_init(void){
   //gpio_set_value(ENBLK_S, 1);
   gpio_set_value(blk_en.gpio_num, blk_en.enable_level);
   gpio_set_value(ENBLK_T, 1);
+  gpio_set_value(MOSI, 0); ^M
+  gpio_set_value(ENBLK, 0);^M
+  gpio_set_value(ENBLK_S, 0);^M
+  gpio_set_value(ENBLK_T, 0);^M
   //gpio_set_value(VGA_RESET,1);
 }
 
@@ -162,7 +167,9 @@ void DAconvert(unsigned int value){
        ss_enable(0);
        if (value >= 10)
                isbackon = value;
-       EnBacklight(isbackon); // if value == 0 disable backlight
+^M
+       if(flag_open_backlight)^M
+               EnBacklight(isbackon); // if value == 0 disable backlight^M
  }
 
 
@@ -175,6 +182,7 @@ long spi_xiaohu_ioctl(struct file *file, unsigned cmd, unsigned long arg){
                        DAconvert(arg);
                break;
                case 1:
+                       flag_open_backlight = 1;^M
                        EnBacklight(arg);
                break;
        }

猜你喜欢

转载自blog.csdn.net/qq_53676406/article/details/131302443