这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » iTOP-4418开发板Android5.1文件系统源码修改

共5条 1/1 1 跳转至

iTOP-4418开发板Android5.1文件系统源码修改

助工
2019-12-25 14:16:52     打赏

基于:迅为iTOP-4418开发板

10.9.2.1 将 APK 编译到 Android5.1 镜像中

本节介绍的是如何默认安装 apk 至系统,当然用户也可以使用”adb install *.apk”命令将 apk 下载到开发板。但当开发板数量较多的时候,那么每次使用 adb 命令就过于繁琐了,因此将必要的 apk 编译至 Android 镜像中会大大提升工作效率。

如下图所示,在 Android5.1 源码目录“device/nexell/s5p6818_drone/apk”中,有一些默认的应用程序。

1.jpg

如果想再添加应用程序,那么以 ledtest 为例,你只需要在 apk 文件下建立文件夹 ledtest。

2.jpg

然后将 ledtest.apk 和 libled.so 放进文件夹 ledtest 中。 进入到 ledtest 文件夹可以看到ledtest 的 APK 和对应的库文件。

3.jpg

如下图所示,安装 APK 的脚本是“device/nexell/s5p6818_drone/device.mk”

首先进入对应文件夹,然后打开 device.mk。

4.jpg

如下图所示,这两行脚本是与 ledtest 相关的。首先将 ledtest.apk 放到对应的文件夹

中。其次,ledtest 需要一个库文件,这个库文件也要放到对应的文件夹中。(这几段代码是 要自己添加的)如果是其它的 APK,可以参考 ledtest 的脚本。

5.jpg

修改完后,保存退出。 接着进入源码目录进行编译。

6.jpg

源码编译完成之后,将 Android5.1 镜像(包括 boot.img 内核镜像)烧写至开发板就

可 以看见 ledtest 应用程序。 然后打开 ledtest 应用程序,点击 LED1 ON 按钮可以点亮

板子上的 led,点击 LED1 OFF 按钮可以熄灭板子上的 led 小灯。

如果小灯没有反应,则需要到给予 led 的设备节点权限,在串口控制台输入“chmod 777

/dev/leds_ctl”,如下图所示。

7.jpg

使用命令”ls -l /dev | grep led”看到命令执行成功。

8.jpg

接下来使用 app 便可以控制 led 的亮灭。

10.9.2.2 去掉默认安装的 APK

在 Android5.1 文件系统中,默认安装了一些应用程序,如果有不需要的可以将其去掉。本

文以游戏 2048 为例。

9.jpg

安装 APK 的脚本是“device/nexell/s5p6818_drone/device.mk”

首先进入对应文件夹,然后打开 device.mk,如下图所示。

10.jpg

然后找到 2048 对应的内容,注释掉,如下图所示。

11.jpg

保存退出,接着进入源码目录进行编译。

12.jpg

源码编译完成后,将 Android5.1 镜像(包括 boot.img 内核镜像)烧写至开发板就看不

到 2048 应用程序。

10.9.2.3 Android5.1 设备权限的修改

在 Android5.1 下调用设备内核驱动的设备节点的时候,会遇到没有权限的问题,这个时

候需要修改一下设备的权限。下面以串口为例介绍一下,其它的设备修改方法也类似。 在

Android5.1 下操作串口有时会遇到没有权限的问题,这就需要修改下 android5.1 的启动脚本,

在里面修改下串口的权限。

在 Android5.1 源码目录下输入

“vim device/nexell/s5p6818_drone/init.s5p6818_drone.rc”

结果如下图所示。

13.jpg

在里面添加修改权限的命令,如下图所示。

14.jpg

上面的“chmod 0777 xxxx”就是修改设备节点的权限,如上图所示,我们已修改了

ttySAC0、ttySAC1、ttySAC3 设备节点的权限。

按照此方法同样可以修改其他设备节点的权限。

然后输入“./build_android.sh”回车后开始编译 android,如下图所示。

15.jpg

编译完成后,把镜像(包括 boot.img 内核镜像)烧写至开发板,重新启动 android。进

入文件夹 dev,使用”ls -l”命令就可以看到串口的权限修改了(r-可读,w-可写,x-可执 行)。

16.jpg

10.9.2.4 开机横竖屏切换

6818 底板带有陀螺仪。屏幕会随着板子的角度自动进行横竖屏切换。如下图。若想固定屏

幕方向,可按照如下方法设置。

17.jpg

10.9.2.4.1 去掉自动旋转功能(默认横屏)

如下图,在 Android 源码目录下输入命令“vi

frameworks/base/core/res/res/values/config.xml”

18.jpg

在里面使用”/config_supportAutoRotation “将参数修改为”false”,保存退出,如下

图。

19.jpg

修改好后,运行一键编译脚本”./build_android.sh”,如下图。

20.jpg

源码编译完成后,将 Android 镜像烧写至开发板,拔掉 otg 线,重新启动开发板。

系统默认是横屏显示,并没有自动旋转功能。如下图。

21.jpg

10.9.2.4.2 竖屏显示

在上一小节的基础上,进行下面操作。

如下图,在 Android 源码目录下输入命令“vi frameworks/base/policy/src/com/an

droid/internal/policy/impl/PhoneWindowManager.java ”,如下图。

22.jpg

在里面使用”/Surface.ROTATION”,在 5478 行,将参数修改为如下图。

23.jpg

修改好后,运行一键编译脚本”./build_android.sh”,如下图。

24.jpg

源码编译完成后,将 Android 镜像烧写至开发板,拔掉 otg 线,重新启动开发板。

则该系统支持竖屏显示,并不能自动旋转屏幕。如下图。

25.jpg

注意,按照上面修改的话,uboot 和内核的 logo 方向是不变的。默认横屏。




工程师
2019-12-27 22:09:39     打赏
2楼

源代码修改可以说是很秀了


工程师
2019-12-29 17:36:00     打赏
3楼

感谢分享


高工
2020-01-03 22:51:26     打赏
4楼

这是技术党 可惜俺不是


工程师
2020-01-05 08:02:11     打赏
5楼

不错学到很宝贵的经验


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]