amdwprprsct
amdwprprsct copied to clipboard
[Feature Request] WebUI support for non-Merlin Asuswrt system
天选TX-AX6000,MTK芯片,软件版本388.33411,希望能适配WebUI。貌似缺了个内核模块导致脚本没有选装WebUI,不知道有没有别的办法。
peter@TX-AX6000-FB4C:/tmp/home/root# nvram get rc_support mssid 2.4G 5G update usbX1 rawifi switchctrl manual_stb 11AC 11AX mbo ofdma wpa3 pwrctrl smart_connect wbmenu tuf reboot_schedule ipv6 ipv6pt s46 ocnvc dslite PARENTAL2 loclist dnsfilter dnspriv dualwan pptpd openvpnd utf8_ssid printer modem webdav rrsut cloudsync media appnet timemachine hdspindown diskutility dnssec usb_bk frs_feedback dblog email findasus atf bwdpi wrs_wbl ookla HTTPS letsencrypt ssh vpnc vpn_fusion repeater psta vht160 wps_multiband user_low_rssi tcode usericon cfg_wps_btn stainfo realip lacp wanbonding ipsec_srv koolsoft mumimo_5g mumimo_2g qam256_2g qam1024_5g netool cfg_sync betaupg revertfw amas conndiag eula proxysta mtk mlr account_binding gameMode wireguard ftp_ssl acl96 dis11b peter@TX-AX6000-FB4C:/tmp/home/root# uname -a Linux TX-AX6000-FB4C 5.4.225 #1 SMP Mon Aug 26 23:14:48 CST 2024 aarch64 TUF-AX6000_Koolcenter_mod
本软件的 WebUI 页面基于梅林固件提供的开放接口和插件标准制作,只适用于博通架构的部分华硕机型。其它架构的机型由于协议原因并不被梅林支持,可能存在法律障碍。
技术上而言,系统内核中需要补充一些功能,至少要在固件中编译进向第三方开放的 Web 服务器才行,因此需要生成一个新的固件。
Koolcenter 改版固件的软件中心中配置了自有的 WebUI 接口,接口方式与本人采用的技术路线不同,前后台数据传输方法差别太大。若开发软件中心的版本,整个软件需按其定义的插件标准重新架构,为此需开发和维护两个体系的软件,并且还要配置相应的设备测试,精力有限,目前无力去做适配,见谅。
本软件的 WebUI 页面基于梅林固件提供的开放接口和插件标准制作,只适用于博通架构的部分华硕机型。其它架构的机型由于协议原因并不被梅林支持,可能存在法律障碍。
技术上而言,系统内核中需要补充一些功能,至少要在固件中编译进向第三方开放的 Web 服务器才行,因此需要生成一个新的固件。
Koolcenter 改版固件的软件中心中配置了自有的 WebUI 接口,接口方式与本人采用的技术路线不同,前后台数据传输方法差别太大。若开发软件中心的版本,整个软件需按其定义的插件标准重新架构,为此需开发和维护两个体系的软件,并且还要配置相应的设备测试,精力有限,目前无力去做适配,见谅。
我有时间看看能不能单独把WebUI按Koolshare标准搞一份吧。方便的话能麻烦您把后端的接口出一份OpenAPI (Swagger)文档吗?我写个中间件缝合一下就好了。
我有时间看看能不能单独把WebUI按Koolshare标准搞一份吧。方便的话能麻烦您把后端的接口出一份OpenAPI (Swagger)文档吗?我写个中间件缝合一下就好了。
接口并不复杂,用不着搞 Swagger,分析下源代码就可以了。
前端代码除了 asp 网页外,数据处理过程集中在 /jffs/scripts/lz/js/lz_policy_routing.js 脚本中。
前端从后端读脚本配置参数使用 ajax 从后台文件中读取数据,这部分可以保留,无须改变。
要做的主要工作是前端往后端如何发送数据。原来是通过文档视图的数据提交(submit()),向后端串行化保存策略路由配置参数数据,或者发送命令调用后台服务。这部分的数据传输过程需要彻底变更,可参考 Koolshare 插件采用 dbus。
向后台发送的策略路由配置参数数据将保存在 /jffs/addons/custom_settings.txt 文件内,格式为: lz_rule_参数名称 参数值 参数数据包括脚本配置文件中的所有参数,名称相同。数据条目只包括前端改变后的数据。后台的 shell 脚本会在脚本启动时读入上述数据,读入后会将文件内的上述数据删除。
前端调用后台服务,通过发送命令字符串,如 start_LZRule,在后台执行命令:service start_LZRule(脚本启动/重启/保存),由后端的 /jffs/scripts/lz/interface/lz_rule_service.sh 脚本做命令解析和执行。具体的命令及格式,参考前端 js 和后台的接口脚本中相应内容即可,不难读懂。