mir3c/squashfs-root/usr/sbin/ecos_upgrade.lua

59 lines
1.7 KiB
Lua
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local fs = require("nixio.fs")
local nixio = require("nixio")
local ecos = require("xiaoqiang.module.XQEcos")
local mac = arg[1]
function wget(link, filepath)
local xqcrypto = require("xiaoqiang.util.XQCryptoUtil")
local download = "wget -t3 -T30 '"..link.."' -O "..filepath
os.execute(download)
return xqcrypto.md5File(filepath)
end
function echo(mac, status)
if mac and status then
local sfile = "/tmp/"..mac
os.execute("echo "..status.." > "..sfile)
end
end
-- 1: 正在处理
-- 2: 没有ECOS设备不能升级
-- 3: 该ECOS设备没有升级信息
-- 4: ECOS升级包下载失败
-- 5: 刷写ECOS升级包失败
-- 6: 升级成功
-- 7: 签名校验失败
if mac then
echo(mac, "1")
local dev = ecos._getEcosDevices()[mac]
if dev then
local check = ecos._getEcosUpgrade(dev.version, dev.channel, dev.sn, dev.ctycode)
if check then
local tfile = "/tmp/"..check.fullHash..".img"
if wget(check.downloadUrl, tfile) == check.fullHash then
local ret = os.execute("cd /tmp && mk_ecos_image -x "..tfile)
if ret ~= 0 then
echo(mac, "7")
return
end
local code = os.execute("tbus postfile "..dev.ip.." ".."/tmp/eCos.img")
if code ~= 0 then
echo(mac, "5")
else
echo(mac, "6")
end
else
echo(mac, "4")
end
os.execute("rm /tmp/eCos.img "..tfile.." 2>/dev/null >/dev/null")
else
echo(mac, "3")
end
else
echo(mac, "2")
end
end