OpenWrt support for Xiaomi AX9000

We indeed need an INT firmware to have a look at it. I adapted script by @itay Xiaomi AX3600 INT firmware - #100 by itay to work with AX9000 (the commented out fields seem to make no difference):

import requests
#import datetime
import base64
import hashlib


DEFAULT_TOKEN = "8007236f-a2d6-4847-ac83-c49395ad6d65"
LINK = 'http://eu.api.miwifi.com/rs/grayupgrade'

def md5_base64(data):
	b64_data = base64.b64encode(data.encode())
	return hashlib.md5(b64_data).hexdigest()

def calculate_s(params_to_hash):
	params_sorted = {k: v for k, v in sorted(params_to_hash.items(), key=lambda item: item[0])} 

	params_str = ''
	for k, v in params_sorted.items():
		params_str += f'{k}={v}&'
	
	params_str += DEFAULT_TOKEN
	
	result = md5_base64(params_str)
	print(result)
	return result



def main():
	#now = datetime.datetime.now()

	params_to_hash = {
		"countryCode": 'EU',
		"rom": '3.0.31',
		#"serialNumber": 'your_sn',
		"rootfs": '0.0.1',
		"cfe": '1.0.2',
		#"deviceID": 'your_id', # `uci get messaging.deviceInfo.DEVICE_ID`
		#"ispCode": '',
		"linux": '4.4.16',
		"sqafs": '0.0.1',
		"hardware": 'RA70',
		#"locale": 'en_US',
		"ramfs": '0.0.1',
		"channel": 'release',
		#'time': now.strftime('%Y-%m-%d---%H:%M:%S')
	}

	params_to_hash['s'] = calculate_s(params_to_hash)
	params_to_hash['token'] = DEFAULT_TOKEN	

	response = requests.get(LINK, params=params_to_hash)
	if response.ok:
		print(response.text)
	else:
		print("invalid token")


if __name__ == '__main__':
	main()

It gives no matches: {"code":"0","data":{"needUpgrade":false,"changelogUrl":"","description":""}}
I verified it works with CN firmwares, by changing LINK to http://api.miwifi.com/rs/grayupgrade,
countryCode to CN and rom to 1.0.101 I get {"code":"0","data":{"needUpgrade":true,"size":39715780,"changelogUrl":"https://cdn.cnbj1.fds.api.mi-img.com/miwifi/6787ba0e-fd22-4bb1-81ec-1b60c4727b83.html","toVersionName":"1.0.108","link":"http://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/ra70/miwifi_ra70_firmware_d96a4_1.0.108.bin","description":"","weight":"1","upgradeId":"46392","hash":"77f560ae1d170be928b25639d7ed96a4","toVersion":"1.0.108"}

It appears as if we will have to wait for an INT firmware update to be rolled out, to be able to fetch respective .bin, since 3.0.33 is the initial INT fw, not available as OTA.