From f88cb095ff6a5e95f72f7f50c5a9c161d7e7a8df Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Mon, 8 Oct 2018 23:22:19 +0800 Subject: [PATCH] re-add luci app vlmcsd --- package/lean/luci-app-vlmcsd/Makefile | 18 ++++++ .../luasrc/controller/vlmcsd.lua | 19 ++++++ .../luasrc/model/cbi/vlmcsd.lua | 35 +++++++++++ .../luasrc/view/vlmcsd/vlmcsd_status.htm | 22 +++++++ .../luci-app-vlmcsd/po/zh-cn/vlmcsd.zh-cn.po | 38 ++++++++++++ .../luci-app-vlmcsd/root/etc/config/vlmcsd | 5 ++ .../luci-app-vlmcsd/root/etc/init.d/vlmcsd | 38 ++++++++++++ .../root/etc/uci-defaults/luci-app-vlmcsd | 21 +++++++ package/lean/vlmcsd/Makefile | 47 +++++++++++++++ package/lean/vlmcsd/files/vlmcsd.ini | 59 +++++++++++++++++++ package/lean/vlmcsd/files/vlmcsd.init | 37 ++++++++++++ target/linux/ramips/Makefile | 2 +- 12 files changed, 340 insertions(+), 1 deletion(-) create mode 100644 package/lean/luci-app-vlmcsd/Makefile create mode 100644 package/lean/luci-app-vlmcsd/luasrc/controller/vlmcsd.lua create mode 100644 package/lean/luci-app-vlmcsd/luasrc/model/cbi/vlmcsd.lua create mode 100644 package/lean/luci-app-vlmcsd/luasrc/view/vlmcsd/vlmcsd_status.htm create mode 100644 package/lean/luci-app-vlmcsd/po/zh-cn/vlmcsd.zh-cn.po create mode 100644 package/lean/luci-app-vlmcsd/root/etc/config/vlmcsd create mode 100755 package/lean/luci-app-vlmcsd/root/etc/init.d/vlmcsd create mode 100755 package/lean/luci-app-vlmcsd/root/etc/uci-defaults/luci-app-vlmcsd create mode 100644 package/lean/vlmcsd/Makefile create mode 100644 package/lean/vlmcsd/files/vlmcsd.ini create mode 100644 package/lean/vlmcsd/files/vlmcsd.init diff --git a/package/lean/luci-app-vlmcsd/Makefile b/package/lean/luci-app-vlmcsd/Makefile new file mode 100644 index 000000000..3a854b208 --- /dev/null +++ b/package/lean/luci-app-vlmcsd/Makefile @@ -0,0 +1,18 @@ +# +# Copyright (C) 2008-2014 The LuCI Team +# +# This is free software, licensed under the Apache License, Version 2.0 . +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI page for KMS +LUCI_DEPENDS:=+vlmcsd +PKG_VERSION:=1.0 +PKG_RELEASE:=2 + +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature + + diff --git a/package/lean/luci-app-vlmcsd/luasrc/controller/vlmcsd.lua b/package/lean/luci-app-vlmcsd/luasrc/controller/vlmcsd.lua new file mode 100644 index 000000000..f540847cb --- /dev/null +++ b/package/lean/luci-app-vlmcsd/luasrc/controller/vlmcsd.lua @@ -0,0 +1,19 @@ +module("luci.controller.vlmcsd", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/vlmcsd") then + return + end + local page + page = entry({"admin", "services", "vlmcsd"}, cbi("vlmcsd"), _("KMS Server"), 100) + page.i18n = "vlmcsd" + page.dependent = true + entry({"admin","services","vlmcsd","status"},call("act_status")).leaf=true +end + +function act_status() + local e={} + e.running=luci.sys.call("pgrep vlmcsd >/dev/null")==0 + luci.http.prepare_content("application/json") + luci.http.write_json(e) +end diff --git a/package/lean/luci-app-vlmcsd/luasrc/model/cbi/vlmcsd.lua b/package/lean/luci-app-vlmcsd/luasrc/model/cbi/vlmcsd.lua new file mode 100644 index 000000000..98c3e16fb --- /dev/null +++ b/package/lean/luci-app-vlmcsd/luasrc/model/cbi/vlmcsd.lua @@ -0,0 +1,35 @@ + + +m = Map("vlmcsd") +m.title = translate("vlmcsd config") +m.description = translate("A KMS Serever Emulator to active your Windows or Office") + +m:section(SimpleSection).template = "vlmcsd/vlmcsd_status" + +s = m:section(TypedSection, "vlmcsd") +s.addremove = false +s.anonymous = true + +s:tab("basic", translate("Basic Setting")) +enable = s:taboption("basic",Flag, "enabled", translate("Enable")) +enable.rmempty = false + +autoactivate = s:taboption("basic", Flag, "autoactivate", translate("Auto activate")) +autoactivate.rmempty = false + +s:tab("config", translate("Config File")) +config = s:taboption("config", Value, "config", translate("configfile"), translate("This file is /etc/vlmcsd.ini."), "") +config.template = "cbi/tvalue" +config.rows = 13 +config.wrap = "off" + +function config.cfgvalue(self, section) + return nixio.fs.readfile("/etc/vlmcsd.ini") +end + +function config.write(self, section, value) + value = value:gsub("\r\n?", "\n") + nixio.fs.writefile("/etc/vlmcsd.ini", value) +end + +return m diff --git a/package/lean/luci-app-vlmcsd/luasrc/view/vlmcsd/vlmcsd_status.htm b/package/lean/luci-app-vlmcsd/luasrc/view/vlmcsd/vlmcsd_status.htm new file mode 100644 index 000000000..d711300e2 --- /dev/null +++ b/package/lean/luci-app-vlmcsd/luasrc/view/vlmcsd/vlmcsd_status.htm @@ -0,0 +1,22 @@ + + +
+

+ <%:Collecting data...%> +

+
\ No newline at end of file diff --git a/package/lean/luci-app-vlmcsd/po/zh-cn/vlmcsd.zh-cn.po b/package/lean/luci-app-vlmcsd/po/zh-cn/vlmcsd.zh-cn.po new file mode 100644 index 000000000..1b7f2e39a --- /dev/null +++ b/package/lean/luci-app-vlmcsd/po/zh-cn/vlmcsd.zh-cn.po @@ -0,0 +1,38 @@ +msgid "" +msgstr "" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "vlmcsd config" +msgstr "KMS服务器设置" + +msgid "KMS Server" +msgstr "KMS服务器" + +msgid "Basic Setting" +msgstr "基本设置" + +msgid "Config File" +msgstr "配置文件" + + +msgid "Vlmcsd is running." +msgstr "KMS 服务器运行中" + +msgid "Vlmcsd is not running." +msgstr "KMS 服务器未运行" + +msgid "Enable" +msgstr "启用" + +msgid "Auto activate" +msgstr "自动激活局域网客户端" + +msgid "configfile" +msgstr "配置文件" + +msgid "This file is /etc/vlmcsd.ini." +msgstr "这个文件在 /etc/vlmcsd.ini 下,可以增加新的产品主密钥。" diff --git a/package/lean/luci-app-vlmcsd/root/etc/config/vlmcsd b/package/lean/luci-app-vlmcsd/root/etc/config/vlmcsd new file mode 100644 index 000000000..8940d0c0d --- /dev/null +++ b/package/lean/luci-app-vlmcsd/root/etc/config/vlmcsd @@ -0,0 +1,5 @@ + +config vlmcsd 'config' + option autoactivate '1' + option enabled '1' + diff --git a/package/lean/luci-app-vlmcsd/root/etc/init.d/vlmcsd b/package/lean/luci-app-vlmcsd/root/etc/init.d/vlmcsd new file mode 100755 index 000000000..c2ebab1b3 --- /dev/null +++ b/package/lean/luci-app-vlmcsd/root/etc/init.d/vlmcsd @@ -0,0 +1,38 @@ +#!/bin/sh /etc/rc.common +# Copyright (c) 2011-2015 OpenWrt.org + +START=90 + +get_config() +{ + config_get_bool enabled $1 enabled 0 + config_get autoactivate $1 autoactivate 1 +} + +start(){ + config_load vlmcsd + config_foreach get_config vlmcsd + [ $enabled -eq 0 ] && exit 0 + /usr/bin/vlmcsd -i /etc/vlmcsd.ini -L 0.0.0.0:1688 + + HOSTNAME=`uci get system.@system[0].hostname` + host_name=$(awk -F ',' '/^[ \t]*srv-host=_vlmcs\._tcp/{print $2}' /etc/dnsmasq.conf) + + echo $HOSTNAME + echo $host_name + + if [ "$HOSTNAME" != "$host_name" ];then + sed -i '/^[ \t]*srv-host=_vlmcs\._tcp/d' /etc/dnsmasq.conf + sed -i '$a\srv-host=_vlmcs\._tcp,'"$HOSTNAME"','"1688"',0,100' /etc/dnsmasq.conf + /etc/init.d/dnsmasq restart + fi + + echo "KMS Server has started." +} + +stop(){ + pid=`pgrep /usr/bin/vlmcsd` + kill -9 $pid + echo "KMS Server has stopped." +} + diff --git a/package/lean/luci-app-vlmcsd/root/etc/uci-defaults/luci-app-vlmcsd b/package/lean/luci-app-vlmcsd/root/etc/uci-defaults/luci-app-vlmcsd new file mode 100755 index 000000000..c1b0882cc --- /dev/null +++ b/package/lean/luci-app-vlmcsd/root/etc/uci-defaults/luci-app-vlmcsd @@ -0,0 +1,21 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@vlmcsd[-1] + add ucitrack vlmcsd + set ucitrack.@vlmcsd[-1].init=vlmcsd + commit ucitrack +EOF + +uci delete firewall.kms +uci add firewall rule +uci rename firewall.@rule[-1]="kms" +uci set firewall.@rule[-1].name="kms" +uci set firewall.@rule[-1].target="ACCEPT" +uci set firewall.@rule[-1].src="wan" +uci set firewall.@rule[-1].proto="tcp" +uci set firewall.@rule[-1].dest_port="1688" +uci commit firewall + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/package/lean/vlmcsd/Makefile b/package/lean/vlmcsd/Makefile new file mode 100644 index 000000000..8cce8dfa3 --- /dev/null +++ b/package/lean/vlmcsd/Makefile @@ -0,0 +1,47 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=vlmcsd +PKG_VERSION:=svn1111 +PKG_RELEASE:=2 + +PKG_MAINTAINER:=fuyumi <280604399@qq.com> +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/mchome/vlmcsd.git +PKG_SOURCE_VERSION:=5f25150439817c2f74395089300972f11b2387f8 + +PKG_SOURCE_SUBDIR:=$(PKG_NAME) +PKG_SOURCE:=$(PKG_SOURCE_SUBDIR)-$(PKG_VERSION).tar.gz +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR) +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/vlmcsd + SECTION:=net + CATEGORY:=Network + TITLE:=vlmcsd for OpenWRT + URL:=http://forums.mydigitallife.info/threads/50234 + DEPENDS:=+libpthread +endef + +define Package/vlmcsd/description + vlmcsd is a KMS Emulator in C. +endef + +MAKE_FLAGS += \ + -C $(PKG_BUILD_DIR) + +define Package/vlmcsd/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vlmcsd $(1)/usr/bin/vlmcsd + #$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vlmcs $(1)/usr/bin/vlmcs + $(INSTALL_DIR) $(1)/etc + $(INSTALL_BIN) ./files/vlmcsd.ini $(1)/etc/vlmcsd.ini + #$(INSTALL_DIR) $(1)/etc/init.d + #$(INSTALL_BIN) ./files/vlmcsd.init $(1)/etc/init.d/vlmcsd +endef + +$(eval $(call BuildPackage,vlmcsd)) diff --git a/package/lean/vlmcsd/files/vlmcsd.ini b/package/lean/vlmcsd/files/vlmcsd.ini new file mode 100644 index 000000000..c69d079d1 --- /dev/null +++ b/package/lean/vlmcsd/files/vlmcsd.ini @@ -0,0 +1,59 @@ +#ePID/HwId设置为Windows显式 +;55c92734-d682-4d71-983e-d6ec3f16059f = 06401-00206-271-392041-03-1033-9600.0000-3622014 / 01 02 03 04 05 06 07 08 + +#ePID设置为Office2010(包含Visio和Project)显式 +;59a52881-a989-479d-af46-f275c6370663 = 06401-00096-199-496023-03-1033-9600.0000-3622014 + +#ePID设置为Office2013(包含Visio和Project)显式 +;0ff1ce15-a989-479d-af46-f275c6370663 = 06401-00206-234-409313-03-1033-9600.0000-3622014 + +#使用自定义TCP端口 +;Port = 1688 + +#监听所有IPv4地址(默认端口1688) +;Listen = 0.0.0.0:1688 + +#监听所有IPv6地址(默认端口1688) +;Listen = [::]:1688 + +#程序启动时随机ePIDs(只有那些未显式指定的) +;RandomizationLevel = 1 + +#在ePIDs中使用特定区域 (1033 = 美国英语),即使ePID是随机的 +;LCID = 1033 + +#设置最多4个同时工作(分叉进程或线程) +;MaxWorkers = 4 + +#闲置30秒后断开用户 +;ConnectionTimeout = 30 + +#每次请求后立即断开客户端 +;DisconnectClientsImmediately = yes + +#写一个pid文件(包含vlmcsd的进程ID的文件) +;PidFile = /var/run/vlmcsd.pid + +#写日志到/var/log/vlmcsd.log +;LogFile = /var/log/vlmcsd.log + +#创建详细日志 +;LogVerbose = true + +#设置激活间隔2小时 +;ActivationInterval = 2h + +#设置更新间隔7天 +;RenewalInterval = 7d + +#运行程序的用户为vlmcsduser +;user = vlmcsduser + +#运行程序的组为vlmcsdgroup +;group = vlmcsdgroup + +#禁用或启用RPC的NDR64传输语法(默认启用) +;UseNDR64 = true + +#禁用或启用RPC的绑定时间特性协商(默认启用) +;UseBTFN = true diff --git a/package/lean/vlmcsd/files/vlmcsd.init b/package/lean/vlmcsd/files/vlmcsd.init new file mode 100644 index 000000000..fe628d708 --- /dev/null +++ b/package/lean/vlmcsd/files/vlmcsd.init @@ -0,0 +1,37 @@ +#!/bin/sh /etc/rc.common +# Copyright (c) 2011-2015 OpenWrt.org + +START=90 + +start(){ + if [ ! -f "/tmp/vlmcsd.pid" ]; then + /usr/bin/vlmcsd -i /etc/vlmcsd.ini -p /tmp/vlmcsd.pid -L 0.0.0.0:1688 + iptables -D input_rule -p tcp --dport 1688 -j ACCEPT + iptables -A input_rule -p tcp --dport 1688 -j ACCEPT + sed -i '/## luci-app-vlmcsd/d' /etc/firewall.user + echo "iptables -A input_rule -p tcp --dport 1688 -j ACCEPT ## luci-app-vlmcsd" >> /etc/firewall.user + echo "KMS Server has started." + else + echo "KMS Server has already started." + fi +} + +stop(){ + if [ ! -f "/tmp/vlmcsd.pid" ]; then + echo "KMS Server is not running." + else + pid=`cat /tmp/vlmcsd.pid` + kill $pid + rm -f /tmp/vlmcsd.pid + iptables -D input_rule -p tcp --dport 1688 -j ACCEPT + sed -i '/## luci-app-vlmcsd/d' /etc/firewall.user + echo "KMS Server has stopped." + fi +} + +restart(){ + stop + sleep 2 + start + echo "KMS Server has restarted." +} diff --git a/target/linux/ramips/Makefile b/target/linux/ramips/Makefile index 9bcffc1ce..887b5909e 100644 --- a/target/linux/ramips/Makefile +++ b/target/linux/ramips/Makefile @@ -13,7 +13,7 @@ SUBTARGETS:=mt7620 mt7621 mt76x8 rt288x rt305x rt3883 FEATURES:=squashfs gpio MAINTAINER:=John Crispin -KERNEL_PATCHVER:=4.9 +KERNEL_PATCHVER:=4.14 define Target/Description Build firmware images for Ralink RT288x/RT3xxx based boards.