全志android平台无打印,全志A20一些具体工作

sam_code@hotmail.com

最近需要在A20上作一些工作。记录之。

任务1.

A20上替换不同CSI接口Camera模组:

本来A20开发板上自带CSI接口模组gt2005. 但需要将其替换成ov2643.

1.

修改: android/device/softwinner/sugar-xbh_bst/init.sun7i.rc

使其在初始化时insmod ov2643 的driver.

#sam modify it for ov2643

#insmod /system/vendor/modules/gt2005.ko

insmod /system/vendor/modules/ov2643.ko

2. 修改

lichee\tools\pack\chips\sun7i\configs\android\sugar-xbh_bst\sys_config.fex

[csi0_para]

csi_used = 1

csi_dev_qty = 1

csi_stby_mode = 0

csi_mname = "ov2643"

csi_if = 0

csi_iovdd = ""

csi_avdd = ""

csi_dvdd = ""

csi_vol_iovdd =

csi_vol_dvdd =

csi_vol_avdd =

csi_vflip = 0

csi_hflip = 1

csi_flash_pol = 0

csi_facing = 0

csi_twi_id = 1

csi_twi_addr = 0x60

csi_pck = port:PE00<3>

csi_ck = port:PE01<3>

csi_hsync = port:PE02<3>

csi_vsync = port:PE03<3>

csi_d0 = port:PE04<3>

csi_d1 = port:PE05<3>

csi_d2 = port:PE06<3>

csi_d3 = port:PE07<3>

csi_d4 = port:PE08<3>

csi_d5 = port:PE09<3>

csi_d6 = port:PE10<3>

csi_d7 = port:PE11<3>

csi_reset =

port:PH13<1><0>

csi_power_en =

port:PH16<1><1>

csi_stby =

port:PH18<1><0>

任务2:使MAC地址不重复:

修改:lichee\tools\pack\chips\sun7i\configs\android\default\env.cfg

任务3: 修改开机画面:

请注意:通常意义上的开机画面其实分以下三种:

1. Linux系统启动时的小企鹅。(Android早期版本和当前一些开发板还有用)

2. Android平台初始化时显示的rle图像。

3.

Android平台图形系统启动时,显示的一个动画,如果没有特别设定,就是那个不断变化光线位置的ANDROID的动画。

我们着重学习2和3。

3.2: 添加和修改Android平台初始化时显示的rle图像:

A20-Homlet-V1.0_ss/android/system/core/init/init.c

的main()函数中有:

queue_builtin_action(console_init_action,

"console_init");

它向init 进程中添加了一个执行Action。名字为:"console_init"。 执行的是:console_init_action()

这里,就是显示开机画面的代码。

#define INIT_IMAGE_FILE "/initlogo.rle"

if( load_argb8888_image(INIT_IMAGE_FILE) ) {

fd = open("/dev/tty0", O_WRONLY);

if (fd >= 0) {

const char

*msg;

msg = "\n"

"\n"

"\n"

"\n"

"\n"

"\n"

"\n"

// console is 40 cols x 30 lines

"\n"

"\n"

"\n"

"\n"

"\n"

"\n"

"\n"

"

A N D R O

I D ";

write(fd,

msg, strlen(msg));

close(fd);

}

这里,如果有/initlogo.rle,

则利用framebuffer把图片显示在屏幕中。否则,打开串口,打印ANDROID.

如何将24bpp或者32bpp bmp图像转化成rle文件格式呢?

A20提供了一个软件:

A20-Homlet-V1.0_ss\lichee\tools\tools_win\LogoGen\LogoGen\BmpConvert.exe

在Windows下,使用它将BMP图像转化为rle文件。

之后把它放到:A20-Homlet-V1.0_ss/android/device/softwinner/sugar-xbh_bst/目录下。

请注意:此原始图像应与屏幕分辨率相同。当使用720P时,则应该使用1280x720的图片。

3.3:修改Android平台图形系统启动时的动画:

首先分析代码:

A20-Homlet-V1.0_ss/android/frameworks/base/cmds/bootanimation/BootAnimation.cpp

#define USER_BOOTANIMATION_FILE

"/data/local/bootanimation.zip"

#define SYSTEM_BOOTANIMATION_FILE

"/system/media/bootanimation.zip"

#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE

"/system/media/bootanimation-encrypted.zip"

if ((encryptedAnimation

&&

(access(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE,

R_OK) == 0) &&

(mZip.open(SYSTEM_ENCRYPTED_BOOTANIMATION_FILE)

== NO_ERROR)) ||

((access(USER_BOOTANIMATION_FILE, R_OK) == 0)

&&

(mZip.open(USER_BOOTANIMATION_FILE) ==

NO_ERROR)) ||

((access(SYSTEM_BOOTANIMATION_FILE, R_OK) == 0)

&&

(mZip.open(SYSTEM_BOOTANIMATION_FILE) ==

NO_ERROR))) {

mAndroidAnimation =

false;

}

这一段明确说明了:如果/data/local/bootanimation.zip,

/system/media/bootanimation.zip,

/system/media/bootanimation-encrypted.zip

这三个文件有任何一个存在且能够正常解压,则mAndroidAnimation=false.

另一处:

if (mAndroidAnimation) {

r = android();

} else

{

r = movie();

}

结合上面的代码,说明如果没有以上三个文件,则执行android();

加载:A20-Homlet-V1.0_ss/android/frameworks/base/core/res/assets/images/

中的:android-logo-mask.png

android-logo-shine.png

这两个文件,一个是镂空的ANDROID字体默认的前景图片,文字部分镂空,大小256×64,一个是斜闪光,是动感效果。

源码里默认是没有那些个.zip动画的,所以总会跳到android字体闪动的画面。

我们通常下载一个别人制作好的文件,放在:

\A20-Homlet-V1.0_ss\android\out\target\product\sugar-xbh_bst\system\media下。

desc.txt文件很简单:

例1:

480 854 20

p 1 3 part0

p 0 3 part1

480

854 20:图像像素长宽为:480x854. 显示帧数:20帧。

p 1

3 part0:part0里面的图片(可以是多幅) 每个显示一次,间隔3。

p 0

3 part1:part1里面的图片显示无数次,间隔为3。

例2:

480 800 7

p 0 0 part0

480 800 7

:图像像素长宽为:480x800. 显示帧数:7帧。

p 0 0 part0:

part0里面的图像显示无数次。间隔为0。

4. 预装APK:

预装APK的方式有两种不同方式,一种是作为系统软件安装,用户无法在卸载界面看到它(所以无法卸载)。

另一种作为正常软件安装。

4.1:按照正常软件安装:

把APK放到:A20-Homlet-V1.0_ss/android/device/softwinner/wing-common/preinstallapk

编译烧入后。启动后会静默安装。

4.2:按系统软件安装:

把APK放到:A20-Homlet-V1.0_ss/android/device/softwinner/wing-common/apk

如果此APK有library.

则需要把它放到:A20-Homlet-V1.0_ss/android/device/softwinner/wing-common/apklib

最终,在Android Rootfs中,这个库会放到 /system/lib/中。

5. 指定缺省Launcher:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值