Rockchip平台 远程OTA服务搭建
1. 概述
远程OTA升级服务是一种通过互联网远程更新Rockchip设备的固件和软件的方法。这种服务对于确保设备安全性、修复错误和添加新功能非常重要。
本文档将引导您完成在Rockchip平台上搭建远程OTA升级服务的过程。
在阅读本文的前,建议优先参考RK官方ota搭建文档:
2. 准备工作
在开始之前,请确保您已经准备好以下工作:
- 一台运行Linux的服务器
- Rockchip设备
- Rockchip设备的OTA升级固件文件
- 一个可用的互联网域名或IP地址
3. 构建OTA服务器
官方文档提及需要在ubuntu系统下安装必要的软件,包括:
- Apache HTTP环境
- tomcat环境
- jdk环境
本文通过Docker的方式实现搭建ota后台服务,因此跟官方文档有一点出入,原因是无需手动安装环境。
3.1 安装Docker hub中的 tomcat镜像
首先安装Docker,您可以按照以下步骤进行操作:
步骤 1:更新系统
首先,确保您的系统已更新到最新的软件包。打开终端并运行以下命令:
bash
sudo apt update
sudo apt upgrade
步骤 2:安装依赖软件包
安装一些必要的软件包,以便后续安装过程中的依赖项得到满足:
bash
sudo apt install apt-transport-https ca-certificates curl software-properties-common
步骤 3:添加Docker官方仓库的GPG密钥
Docker官方仓库使用GPG密钥进行验证。使用以下命令添加它:
bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
步骤 4:添加Docker APT仓库
添加Docker APT仓库,以便您可以从官方仓库安装Docker软件包:
bash
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
步骤 5:安装Docker Engine
更新APT软件包索引并安装Docker Engine:
bash
sudo apt update
sudo apt install docker-ce
步骤 6:启动并启用Docker服务
启动Docker服务并将其设置为开机自启动:
bash
sudo systemctl start docker
sudo systemctl enable docker
步骤 7:验证安装
运行以下命令以验证Docker是否已成功安装:
bash
sudo docker --version
您将看到Docker版本信息,表示安装成功。
步骤 8:下载和运行tomcat镜像
在docker官方的镜像仓库docker hub中搜索tomcat的容器镜像,注意:官方ota服务代码使用的tomcat版本是7
bash
docker search tomcat
docker pull tomcat:7.0
docker run -d -p 8080:8080 --name tomcatota tomcat:7.0
-d :就是以后台运行方式运行 也可以 -t :以交互式运行
-p :暴露端口号第一个8080是暴露linux 的端口号
--name:给容器取名
tomcat:7.0:运行时加上版本,指定是这个服务器
在此可以在web测试ip:8080是否能正常访问tomcat了,如果无法打开网页检查网络和端口是否正常
3.3 拷贝rk ota服务到docker
把rk提供的ota服务:OtaUpdater 拷贝到docker中:/usr/local/tomcat/webapps
最后重启docker,OtaUpdater 服务会自动运行。
至于端口号是否修改,看个人需求,端口修改为2300如下:/usr/local/tomcat# vi ./conf/server.xml
3.4 服务器OTA包配置
参考官方文档,这里在做讲解:
-
设备名称和版本号在源码中定义:
device/rockchip/rk3588/rk3588_s/rk3588_s.mkPRODUCT_MODEL := rk3588_ygld PRODUCT_PROPERTY_OVERRIDES += \ ro.product.version = 23.10.8
-
配置远程服务器地址:device/rockchip/rk3588/device.mk
PRODUCT_PROPERTY_OVERRIDES += \ ro.product.ota.host = 186.133.115.104:2300 \ ro.vendor.sdkversion = $(CURRENT_SDK_VERSION) \ vendor.gralloc.disable_afbc = 0
-
把升级包上传到指定的路径,即docker中的:/usr/local/tomcat/webapps/OtaUpdater/WEB-INF/packages
注意根据manifast.xml中的路径对应。
如上配置后,设备端请求服务器,查找服务器中的版本号是否和设备端的一致,如果配置了package路径,那么就去下载23.10.10的升级包。
4. 设备端OTA升级配置
- 设备端上电,连接网络后会自动去查询远程ota服务器,无需手动操作。等待桌面弹出升级提示框。
5. 测试
在您的Rockchip设备上测试OTA升级功能。确保设备可以成功从服务器下载和安装新版本的固件。
一旦您确认OTA升级功能正常工作,您可以将其部署到生产环境中的所有设备。
服务器中的log位置:/usr/local/tomcat/mylogs# cat otaupdater
修改源码中的版本号:要将 out/target/product/rk29sdk/system/build.prop 删除再 make 改变才能生效,或者 make clean 后再 make
6. 安全性和最佳实践
在构建OTA升级服务时,请务必考虑安全性问题。以下是一些最佳实践:
- 使用HTTPS来加密通信,以确保OTA升级文件的安全传输。
- 对OTA升级服务器进行身份验证和授权,以防止未经授权的访问。
- 定期审查服务器上的OTA升级日志,以监控升级活动并检测潜在问题。
7. 总结
搭建Rockchip平台上的远程OTA升级服务是确保设备安全和性能的关键步骤。通过遵循本文档中的步骤,您可以轻松实现OTA升级功能,并确保您的Rockchip设备始终保持最新的固件和软件版本