Toybrick

rk3399pro OTA在线升级问题

weixc

注册会员

积分
93
楼主
发表于 2019-12-26 11:03:59    查看: 8166|回复: 1 | [复制链接]    打印 | 只看该作者
验证环境说明:
1、OTA服务器搭建在局域网 Ubuntu 18.04 物理机上
2、参考RK SDK Android4.0 OTA服务器搭建及产品OTA功能配置.pdf
manifast.xml 添加如下

        <product name="rk3399pro" full_package_path="null" rkimage_path="null">
                <version name="1.0.0" package_path="packages/rk3399pro/1.0.0/1.0.1.zip" />
                <version name="1.0.1" package_path="packages/rk3399pro/1.0.1/1.0.2.zip" />
                <version name="1.0.2" package_path="packages/rk3399pro/1.0.2/1.0.3.zip" />
        </product>


4、服务端server.xml未做修改,保持默认
5、修改device/rockchip/rk3399pro/rk3399pro.mk
     ro.product.version = 1.0.2
     ro.product.ota.host = OTA服务器IP:2300

6、编译新版本OTA包按要求放入以上服务端指定路径(自己编译的OTA包已经过本地SD卡升级验证OK)
7、启动服务器OTA服务程序无报错,查看监听端口2300正常;

现在的问题是:
  设备端RKUpdateService进行本地SD卡升级OK,但是在线升级无法成功验证。
做了一些分析如下:
1、设备端打开logcat -s  RKUpdateService, 发现报错信息如下:
rk3399pro:/ # logcat -s RKUpdateService                                       
--------- beginning of main
--------- beginning of system
12-25 14:03:03.610  1132  1132 D RKUpdateService: starting RKUpdateService, version is 1.8.0
12-25 14:03:03.613  1132  1132 D RKUpdateService: remote uri is http://192.168.1.143:2300/OtaUpd ... =CN&language=zh
12-25 14:03:03.614  1132  1132 D RKUpdateService: remote uri backup is http://192.168.1.143:2300/OtaUpd ... =CN&language=zh
12-25 14:03:03.618  1132  1132 D RKUpdateService: first startup!!!
12-25 14:03:03.628  1132  1132 D RKUpdateService: onStartCommand.......
12-25 14:03:03.628  1132  1132 D RKUpdateService: command = 1 delaytime = 20000
12-25 14:03:03.632  1132  1132 D RKUpdateService: onStartCommand.......
12-25 14:03:03.633  1132  1132 D RKUpdateService: command = 2 delaytime = 25000
12-25 14:03:23.616  1132  1264 D RKUpdateService: WorkHandler::handleMessage() : To perform 'COMMAND_CHECK_LOCAL_UPDATING'.
12-25 14:03:23.616  1132  1264 D RKUpdateService: getValidFirmwareImageFile() : Target image file path : /data/media/0/update.zip
12-25 14:03:23.617  1132  1264 D RKUpdateService: getValidFirmwareImageFile() : Target image file path : /storage/emulated/0/update.zip
12-25 14:03:30.748  1132  1264 D RKUpdateService: request remote server error...
12-25 14:03:37.800  1132  1264 D RKUpdateService: request remote server error...
12-25 14:04:38.464  1132  1132 D RKUpdateService: onStartCommand.......
12-25 14:04:38.464  1132  1132 D RKUpdateService: command = 1 delaytime = 5000


从log打印看是远程URL的有问题,因为RKUpdateService.apk源码不开放,不知道这个URL是不是对应第5点设定的ro.product.ota.host ?(我写的是172.xxx.xxx.xxx:2300)
2、设备升级新编译的固件,查看相关*.prop文件发现ro.product.version和ro.product.ota.host不是前面rk3399pro.mk修改的值,怀疑是该属性被其他地方覆盖了,但是又找不到是哪里覆盖~

我现在是想在公司本地有线局域网先做验证,确保整个升级流程是通的,再考虑外网服务器搭建事宜;
请问后续该如何处理,才能达到目的?


回复

使用道具 举报

weixc

注册会员

积分
93
沙发
 楼主| 发表于 2019-12-26 20:18:34 | 只看该作者
修改源码根目录下 build/core/buildinfo.sh ,强制把ro.product.version和ro.product.ota.host 导出到最总的 build.prop可以暂时解决URL问题,并成功完成在线升级。

但是为何在源码根目录下 device/rockchip/rk3399pro/rk3399pro.mk的修改没有生效,仍不得而知。

长路漫漫,其修远兮
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表