统计
  • 文章总数:269 篇
  • 评论总数:0 条
  • 分类总数:14 个
  • 最后更新:一天前

【番外】比《史上最简单安装QutsCloud的办法》还简单的办法

本文阅读 2 分钟
首页 威联通 正文

今天看到QutsCloud推送了新的版本,好奇之下看了一下更新历史

tg交流群:https://t.me/qutscloud

1. 原理

QuTScloud c5.0.1.1949 build 20220218的变更记录中有一条

現在無須授權,即可使用安裝在 Virtualization Station 上的 QuTScloud。請注意,需要有授權中心 1.7.5
(或以上版本) 才可支援此功能。

看了一下实现,是直接从脚本的结果来确定是否运行在QVS上,然后自己生成许可证对应的json

  1. int __fastcall qcloud_license_installed_special_list(lif_list_st *p_license_list, const char *app_internal_name)
  2. {
  3. size_t v4; // rax
  4. int v5; // er12
  5. lif_raw_st *v6; // rdi
  6. char license_info_str[513]; // [rsp+0h] [rbp+0h] BYREF
  7. char tmp[1025]; // [rsp+210h] [rbp+210h] BYREF
  8. memset(tmp, 0, 0x400uLL);
  9. tmp[1024] = 0;
  10. memset(license_info_str, 0, 0x200uLL);
  11. license_info_str[512] = 0;
  12. qid_sys_get_device_type(tmp, 16LL);
  13. if ( strcmp(tmp, "VQTS_CLD") )
  14. return 0;
  15. util_system_cmd("/etc/init.d/get_cloud_platform.sh check_qnap | /bin/grep -E 'QCS|QVS' 2>/dev/null", tmp, 1024LL);
  16. if ( !tmp[0] || app_internal_name && *app_internal_name && strcmp(app_internal_name, "vqtscloud") )
  17. return 0;
  18. v4 = p_license_list->len;
  19. v5 = v4 - 1;
  20. if ( (int)v4 - 1 >= 0 )
  21. {
  22. v6 = &p_license_list->data[v5 + 1];
  23. do
  24. {
  25. --v5;
  26. memmove(v6, &v6[-1], 0x4CF8uLL);
  27. --v6;
  28. }
  29. while ( v5 != -1 );
  30. v4 = p_license_list->len;
  31. }
  32. p_license_list->len = v4 + 1;
  33. memset(p_license_list, 0, 0x4CF8uLL);
  34. *(_WORD *)p_license_list->data[0].license_id = 11565;
  35. qmemcpy(&p_license_list->data[0].license_info, "QuTScloud, 24+ Cores", 20);
  36. strcpy(p_license_list->data[0].status, "valid");
  37. p_license_list->data[0].legacy = 4;
  38. strcpy(p_license_list->data[0].license_info.app_internal_name, "vqtscloud");
  39. qmemcpy(p_license_list->data[0].license_info.license_name, "QuTScloud, 24+ Cores", 20);
  40. *(_WORD *)p_license_list->data[0].license_info.valid_from = 11565;
  41. *(_WORD *)p_license_list->data[0].license_info.valid_until = 11565;
  42. *(_WORD *)p_license_list->data[0].license_info.apply_date = 11565;
  43. snprintf(
  44. license_info_str,
  45. 0x200uLL,
  46. "{\"name\": \"%s\", \"license_name\": \"%s\", \"app_internal_name\": \"%s\", \"valid_from\": \"%s\", \"valid_until\":"
  47. " \"%s\", \"attributes\": {\"cpu_limit\": \"0\"}}",
  48. p_license_list->data[0].license_info.name,
  49. p_license_list->data[0].license_info.license_name,
  50. p_license_list->data[0].license_info.app_internal_name,
  51. p_license_list->data[0].license_info.valid_from,
  52. p_license_list->data[0].license_info.valid_until);
  53. p_license_list->data[0].license_info.skip_check = 1;
  54. p_license_list->data[0].license_info_json_str = (char *)__strdup(license_info_str);
  55. return 0;
  56. }

其中/etc/init.d/get_cloud_platform.sh判断是否QVS的语句

  1. checkvnicqvs() {
  2. checkplatformvnicQVS="$(curl --connect-timeout 1 --max-time 1 -o /dev/null -s --insecure -w "%{http_code}" 'https://10.0.2.2/cgi-bin/sys/sysRequest.cgi')"
  3. [ "$1" = "-d" ] && echo "checkplatformvnicQVS:$checkplatformvnicQVS"
  4. echo "checkplatformvnicQVS:$checkplatformvnicQVS" >> $chkfn
  5. }

很难想象这不是QNAP自己留出的口子,现在内卷这么严重了吗?

2. 补丁

安装后运行此脚本,安装请参考【番外】史上最简单安装QutsCloud的办法

注意:仅支持QuTScloud c5.0.1.1949 build 20220218及之后的版本

  1. sudo curl -k https://jxcn.org/file/active2.sh | bash

3. 最后

相对【番外】史上最简单安装QutsCloud的办法 更好的地方

这个patch只是让QutsCloud看起来像运行在QVS里面而已,所以几乎没有改动原镜像
可以登录QNAP ID,以及购买其他的许可证
因为许可证是qlicense自己生成的json,所以不会有失效的问题
但是因为所有的都是官方的东西,其他APP的许可证还是需要从官方购买,如果可以的话,尽量还是使用这个补丁,一来比较稳定,二来其他部分也能享受到官方的支持。

当然还有最重要的

数据无价,请谨慎使用

数据无价,请谨慎使用

数据无价,请谨慎使用

本文来自转载,文中观点不代表本站立场,文章出自:https://jxcn.org/2022/04/qnap-more-simple-install/
当贝播放器 电视连接NAS的利器 支持自动搜刮!!!
« 上一篇 05-05
【原创】猫盘armv8群晖Docker开启bridge桥接网络教程
下一篇 » 05-16