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

砂舞的玩笑   2019-12-25 14:37 楼主

基于:迅为iTOP-4418开发板

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

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

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

()
(下载次数: 0, 上传)

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

()
(下载次数: 0, 上传)

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

()
(下载次数: 0, 上传)

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

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

()
(下载次数: 0, 上传)

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

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

()
(下载次数: 0, 上传)

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

()
(下载次数: 0, 上传)

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

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

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

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

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

()
(下载次数: 0, 上传)

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

()
(下载次数: 0, 上传)

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

10.9.2.2 去掉默认安装的 APK

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

文以游戏 2048 为例。

()
(下载次数: 0, 上传)

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

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

()
(下载次数: 0, 上传)

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

()
(下载次数: 0, 上传)

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

()
(下载次数: 0, 上传)

源码编译完成后,将 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”

结果如下图所示。

()
(下载次数: 0, 上传)

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

()
(下载次数: 0, 上传)

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

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

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

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

()
(下载次数: 0, 上传)

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

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

()
(下载次数: 0, 上传)

10.9.2.4 开机横竖屏切换

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

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

()
(下载次数: 0, 上传)

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

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

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

()
(下载次数: 0, 上传)

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

图。

()
(下载次数: 0, 上传)

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

()
(下载次数: 0, 上传)

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

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

()
(下载次数: 0, 上传)

10.9.2.4.2 竖屏显示

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

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

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

()
(下载次数: 0, 上传)

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

()
(下载次数: 0, 上传)

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

()
(下载次数: 0, 上传)

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

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

()
(下载次数: 0, 上传)

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

本帖最后由 砂舞的玩笑 于 2019-12-25 14:45 编辑
更多开发板详情了解哦 1.https://arm-board.taobao.com 2.www.topeetboard.com Q: 2551456065

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复