I've adjusted the stock firmware checker script (git) provided by @itay to work with the AX3000T RD23 model:
Phyton script
import requests
import datetime
import base64
import hashlib
# Dummy values, countryCode required if querying EU servers
# Most important here are the hardware and channel
params = {
"countryCode": "EU",
"deviceID": "",
"rom": "1.0.31",
"hardware": "RD23",
"cfe": "",
"linux": "0.0.1",
"ramfs": "0.0.1",
"sqafs": "0.0.1",
"rootfs": "0.0.1",
"channel": "release",
"locale": 'en_US',
"serialNumber": "55xxxF4NV0xxx0",
}
# Default server: http://api.miwifi.com, EU servers: http://eu.api.miwifi.com
server = "http://eu.api.miwifi.com"
recoveryURL = "/rs/grayupgrade/recovery"
normalUpgradeUrl = "/rs/grayupgrade"
default_token = "8007236f-a2d6-4847-ac83-c49395ad6d65"
def main():
# Constuct initial sub url based on params
sub_url = recoveryURL + "?"
for key, value in params.items():
sub_url += key + "=" + value + "&"
# Add time to params formatted as %Y-%m-%d--%X
timestr = datetime.datetime.now().strftime("%Y-%m-%d--%X")
params["time"] = timestr
# Get sorted params list
sortedParams = sorted(params.items(), key=lambda x: x[0])
# Loop through sorted params to create params string
paramsString = ""
for item in sortedParams:
paramsString += item[0] + "=" + item[1] + "&"
# Append default token to paramsString
paramsString += default_token
# Create signature of paramsString (md5 with base64 contents)
signature = hashlib.md5(base64.b64encode(paramsString.encode('utf-8'))).hexdigest()
# Construct url
url = server + sub_url + "s=" + signature + "&time=" + timestr + "&token=" + default_token
print("URL: " + url)
# Set user agent to "miwifi-", similar to their recovery process
headers = {'User-Agent': 'miwifi-'}
# Make request with url and headers
response = requests.get(url, headers=headers)
# Print response details
print("Status code: " + str(response.status_code))
print("Response: " + response.text)
if __name__ == "__main__":
main()
Response
{"code":"0","data":{"needUpgrade":true,"size":24904712,"buildTime":1733813137448,"changelogUrl":"https://cdn.azams0.fds.api.mi-img.com/miwifi/d83d269b-2055-4eb5-92f7-d118a77b4b69.html","toVersionName":"1.0.90","link":"https://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/rd23/miwifi_rd23_firmware_99b0f_1.0.90_INT.bin","description":"","weight":"1","otherParam":"{\"cfe\":1000002,\"buildTime\":\"1733813137448\",\"linux\":1,\"rootfs\":1,\"weight\":1,\"sqafs\":1,\"ramfs\":1}","upgradeId":"15149","hash":"c4b3384972776e54e291e53f22d99b0f","toVersion":"1.0.90"}}
So, the new stock firmware version 1.0.90 for the RD23 (Global version) is now available:
- Changelog: see url
- Firmware URL: miwifi_rd23_firmware_99b0f_1.0.90_INT.bin