OTA 调试说明
1. 目录说明
1.1. 目录同步说明
Nas 目录 websync 自动同步到 OTA 服务器目录,所以请 /websync/Web_Fanconn_ota
/websync/Web_Fanconn_ota ---> 10.0.0.15 的 /www/ota/
/websync/Web_Fanconn_ota ---> fanconn.com 的 /www/ota/
注意:
-
Nas 的固件信息仅单向同步到服务器 -
对任何一个服务器的修改都
不会影响 NAS 上的原始数据
1.2. 服务器 OTA 地址
- 外网情况下,
外网环境输入命令 nslookup 解析确认一下
# Windows 也可以用 nslookup
roy@Ubuntu:~# nslookup fanconn.com
Server: 127.0.0.1
Address: 127.0.0.1:53
Name: fanconn.com
Address: 120.25.231.139
- 内网情况下
-
直接通过 IP 浏览内网服务器 OTA 目录
-
同样访问
注意:
公司内部网络通过这个地址会访问内网服务器,不消耗外网流量
内网输入命令 nslookup 解析确认一下
# Windows 也可以用 nslookup
roy@Ubuntu-L ~ % nslookup fanconn.com
Server: 240e:3bb:63b:a650::1
Address: 240e:3bb:63b:a650::1#53
Name: fanconn.com
Address: 10.0.0.15
1.3. 查看日志
先在设备上点一下 OTA 升级,然后查看日志
外网服务器日志查看地址 https://fanconn.com/logss
公司内部日志查看地址 http://10.0.0.15/logss
搜索 ota.json ,其中 request_url 就是 OTA 提交的日志具体请求 URL,可以
{"timestamp":"2025-08-16T03:00:34+00:00",
"response_time": "0.002",
"client_load_time": "0.002",
"remote_addr":"10.0.1.144",
"http_x_forwarded_for":"-",
"request_status":"GET-200---",
"request_url":"http://fanconn.com:80/ota/FancInfo.php?module=SC228&target=KangR&product=GMJ&version=1.4.3&platform=DC685&enable=true&sn=ac5093b6&wifimac=000af57cef74&IMEI=null&release=A14",
"referer":"-",
"user_agent":"okhttp/4.12.0"
"http_expires":"-",
"http_Dnt":"-",
"http_Pragma":"-",
"http_Cache_Control":"-",
"http_Priority":"-",
"http_authorization":"-",
"upstream_addr":"unix:/run/php/php8.3-fpm.sock",
"upstream_status":"200"
}
1.4. OTA 流程说明
FancOTA APP 会分别请求 如下 URL:
1. 提交 mac sn 等信息给 ota 服务器处理 (/ota/FancInfo.php), 直接在 URL中显性显示
2. 服务器根据脚本信息判断并返回具体的升级 json
点击访问: https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/1.4.3/1.4.3-result.json
-
版本判断依据信息 https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/version.json -
仅需
"version": "2.0.0"部分即可
3. 根据版本信息获取对应固件 OTA 版本目录的固件 https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/1.4.3/
- 固件地址信息
全量版本 https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/1.4.3/1.4.3-result.json
差分版本 https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/1.4.3/1.4.2-1.4.3-result.json
- 固件具体链接
全量版本 https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/1.4.3/1.4.3-update.zip
差分版本 https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/1.4.3/1.4.2-1.4.3-update.zip
- 固件配置 (
仅高通需要 )
全量版本 https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/1.4.3/1.4.3-config.json
差分版本https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/1.4.3/1.4.2-1.4.3-config.json
4. 修改配置
version.json
version 只需要配置
version
1.4.3/1.4.3-result.json
需要配置
firmware
md5sum对应 md5
details更新信息RK 不需要 config.json请删除第二个多余firmwaremd5sum字段
1.4.3/1.4.2-1.4.3-result.json
需要配置
firmware
md5sum对应 md5
details更新信息RK 不需要 config.json请删除第二个多余firmwaremd5sum字段
- 参考文件
从 Nas /websync/Web_Fanconn_ota/example.json 复制而来
{
"version": "2.0.0",
"firmware": ["null","null"],
"md5sum": ["null", "null"],
"details": "null",
"yanked": false
}
5. 差分路径说明
-
全量版本就是
, 差分版本就是新版本/新版本-filename新版本/旧版-新版-filename例如
全量 1.4.3 为
1.4.3/1.4.3-filename增量 1.4.2-1.4.3 为
1.4.2/1.4.2-1.4.3-filename -
nas 对应目录参考 #1.1.-目录同步说明
2. 获取信息
2.1. 先开启错误信息返回,方便调试
- 内网已经修改好,
不需要修改,直接可以使用。
ssh root@10.0.0.15
vim /www/ota/FancInfo.php
// 如果不希望报错。直接返回最新版
$res = implode('/', [$url, 'FancInfo_Version.php?version='.$version]); // 注释以避免返回最新版本 FancInfo_Version
2.2. 查看 OTA 请求状态
直接浏览器访问 request_url
- 地址在 #1.3-查看日志 获取
正常返回
返回值为: URL
https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/1.4.3/1.4.3-result.json
去掉 1.4.3-result.json 直接浏览 OTA 目录: https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/
左上角可以看到 具体目录 /ota/GMJ/SC228/DC685/A14/KangR/
-
可以在 OTA 服务器 直接编辑
version.json -
在 NAS 编辑会
单向同步到所有内外网服务器
错误返回
如果返回如下错误,直接根据提示,补齐对应目录和文件即可。
错误: /www/ota/GMJ/SC228/DC686/A14/KangR 目录不存在
错误: /www/ota/GMJ/SC228/DC686/A14/KangR 目录读取失败
错误: 版本文件 /www/ota/GMJ/SC228/DC686/A14/KangR/result.json 或 /www/ota/GMJ/SC228/DC686/A14/KangR/version.json 不存在
引入新 固件,例如 KangR
创建目录 更新版本
-
根据提示
错误: /www/ota/GMJ/SC228/DC686/A14/KangR 目录不存在, 在 Nas 创建对应目录结构/websync/Web_Fanconn_ota/GMJ/SC228/DC686/A14/KangR -
根据提提示
错误: 版本文件 /www/ota/GMJ/SC228/DC686/A14/KangR/result.json 或 /www/ota/GMJ/SC228/DC686/A14/KangR/version.json 不存在, 在 Nas 复制/websync/Web_Fanconn_ota/example.json/websync/Web_Fanconn_ota/GMJ/SC228/DC685/A14/KangR/version.json并编辑 2.0.0 为当前需要的版本
{
"version": "2.0.0",
"firmware": ["null","null"],
"md5sum": ["null", "null"],
"details": "null",
"yanked": false
}
上传指定版本
- 浏览器再次访问
- 错误提示:
错误: /www/ota/GMJ/SC228/DC685/A14/KangR/2.0.0 版本目录不存在
错误: /www/ota/GMJ/SC228/DC685/A14/KangR/2.0.0/2.0.0-result.json 全量版本不存在
错误: /www/ota/GMJ/SC228/DC685/A14/KangR/2.0.0/1.4.3-2.0.0-result.json 差分版本不存在
创建 对应的升级版本的目录 ota/GMJ/SC228/DC685/A14/KangR/2.0.0
- 根据错误提示 继续在 在 Nas 复制
version.json到对应的2.0.0版本目录
如果是全量版本,则将 version.json 复制到 /2.0.0/2.0.0-result.json
如果是差分版本,则将 version.json 复制到 /2.0.0/1.4.3-2.0.0-result.json (当前版本-更新版本-result.json)
- 上传编辑具体更新文件
复制到 nas 上传文件 /2.0.0/1.4.3-2.0.0-update.zip
复制到 nas 上传文件 /2.0.0/1.4.3-2.0.0-config.json
例如进入 https://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/2.0.0/ 找到对应固件点击右键,复制链接地址。
地址可以通过 ota 请求截取
[http://fanconn.com:80/ota/FancInfo.php?module=SC228&target=KangR&product=GMJ&version=1.4.3&platform=DC685&enable=true&sn=ac5093b6&wifimac=000af57cef74&IMEI=null&release=A14](http://fanconn.com:80/ota/FancInfo.php?module=SC228&target=KangR&product=GMJ&version=1.4.3&platform=DC685&enable=true&sn=ac5093b6&wifimac=000af57cef74&IMEI=null&release=A14)
- 例如 编辑差分版本
/2.0.0/1.4.3-2.0.0-result.json
写入
{
"version": "2.0.0",
"firmware": ["http://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/1.4.3/1.4.2-1.4.3-update.zip","http://fanconn.com/ota/GMJ/SC228/DC685/A14/KangR/1.4.3/1.4.2-1.4.3-config.json"],
"md5sum": ["填写实际 md5", "填写实际 md5"],
"details": "# 海外版本不要写中文",
"yanked": false
}
说明:
版本号: 2.0.0
固件下载路径:
update.zipconfig.zipmd5sum: 按顺序
update.zipconfig.zip对应 md5details: 详情,
注意海外版不要写中文 yanked: 强制升级,true:
只能点升级,不能退出
- 编辑全量版本
/2.0.0/2.0.0-result.json
全量版本 不同于 旧版本-新版本的文件名, 直接取名为 新版本目录/新版本-result.json