iTOP-4418开发板Android5.1文件系统源码修改
2019年12月25日 14:22 发布者:落风
基于:迅为iTOP-4418开发板10.9.2.1 将 APK 编译到 Android5.1 镜像中本节介绍的是如何默认安装 apk 至系统,当然用户也可以使用”adb install *.apk”命令将 apk 下载到开发板。但当开发板数量较多的时候,那么每次使用 adb 命令就过于繁琐了,因此将必要的 apk 编译至 Android 镜像中会大大提升工作效率。如下图所示,在 Android5.1 源码目录“device/nexell/s5p6818_drone/apk”中,有一些默认的应用程序。如果想再添加应用程序,那么以 ledtest 为例,你只需要在 apk 文件下建立文件夹 ledtest。然后将 ledtest.apk 和 libled.so 放进文件夹 ledtest 中。 进入到 ledtest 文件夹可以看到ledtest 的 APK 和对应的库文件。如下图所示,安装 APK 的脚本是“device/nexell/s5p6818_drone/device.mk”首先进入对应文件夹,然后打开 device.mk。如下图所示,这两行脚本是与 ledtest 相关的。首先将 ledtest.apk 放到对应的文件夹中。其次,ledtest 需要一个库文件,这个库文件也要放到对应的文件夹中。(这几段代码是 要自己添加的)如果是其它的 APK,可以参考 ledtest 的脚本。修改完后,保存退出。 接着进入源码目录进行编译。源码编译完成之后,将 Android5.1 镜像(包括 boot.img 内核镜像)烧写至开发板就可 以看见 ledtest 应用程序。 然后打开 ledtest 应用程序,点击 LED1 ON 按钮可以点亮板子上的 led,点击 LED1 OFF 按钮可以熄灭板子上的 led 小灯。如果小灯没有反应,则需要到给予 led 的设备节点权限,在串口控制台输入“chmod 777/dev/leds_ctl”,如下图所示。使用命令”ls -l /dev | grep led”看到命令执行成功。接下来使用 app 便可以控制 led 的亮灭。10.9.2.2 去掉默认安装的 APK在 Android5.1 文件系统中,默认安装了一些应用程序,如果有不需要的可以将其去掉。本文以游戏 2048 为例。安装 APK 的脚本是“device/nexell/s5p6818_drone/device.mk”首先进入对应文件夹,然后打开 device.mk,如下图所示。然后找到 2048 对应的内容,注释掉,如下图所示。保存退出,接着进入源码目录进行编译。源码编译完成后,将 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”结果如下图所示。在里面添加修改权限的命令,如下图所示。上面的“chmod 0777 xxxx”就是修改设备节点的权限,如上图所示,我们已修改了ttySAC0、ttySAC1、ttySAC3 设备节点的权限。按照此方法同样可以修改其他设备节点的权限。然后输入“./build_android.sh”回车后开始编译 android,如下图所示。编译完成后,把镜像(包括 boot.img 内核镜像)烧写至开发板,重新启动 android。进入文件夹 dev,使用”ls -l”命令就可以看到串口的权限修改了(r-可读,w-可写,x-可执 行)。10.9.2.4 开机横竖屏切换6818 底板带有陀螺仪。屏幕会随着板子的角度自动进行横竖屏切换。如下图。若想固定屏幕方向,可按照如下方法设置。10.9.2.4.1 去掉自动旋转功能(默认横屏)如下图,在 Android 源码目录下输入命令“viframeworks/base/core/res/res/values/config.xml”在里面使用”/config_supportAutoRotation “将参数修改为”false”,保存退出,如下图。修改好后,运行一键编译脚本”./build_android.sh”,如下图。源码编译完成后,将 Android 镜像烧写至开发板,拔掉 otg 线,重新启动开发板。系统默认是横屏显示,并没有自动旋转功能。如下图。10.9.2.4.2 竖屏显示在上一小节的基础上,进行下面操作。如下图,在 Android 源码目录下输入命令“vi frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java ”,如下图。在里面使用”/Surface.ROTATION”,在 5478 行,将参数修改为如下图。修改好后,运行一键编译脚本”./build_android.sh”,如下图。源码编译完成后,将 Android 镜像烧写至开发板,拔掉 otg 线,重新启动开发板。则该系统支持竖屏显示,并不能自动旋转屏幕。如下图。注意,按照上面修改的话,uboot 和内核的 logo 方向是不变的。默认横屏。