From 8d3b14d3dfb72025648c344e4feaa857ab50d070 Mon Sep 17 00:00:00 2001 From: Wang Defa <2-wangdefa@users.noreply.gitlab.bcde.io> Date: Wed, 3 Dec 2025 13:58:47 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/ci.yaml | 228 +++++++++++++++++++++++++++++++++++ debian/build-deb.sh | 85 +++++++++++++ debian/control.template | 16 +++ debian/postinst | 50 ++++++++ debian/postrm | 30 +++++ debian/prerm | 15 +++ debian/xxxigcc-proxy.service | 39 ++++++ docker/Dockerfile.alpine | 54 +++++++++ docker/Dockerfile.ubuntu | 53 ++++++++ init.sh | 18 +++ 10 files changed, 588 insertions(+) create mode 100644 .gitea/workflows/ci.yaml create mode 100755 debian/build-deb.sh create mode 100644 debian/control.template create mode 100644 debian/postinst create mode 100644 debian/postrm create mode 100644 debian/prerm create mode 100644 debian/xxxigcc-proxy.service create mode 100644 docker/Dockerfile.alpine create mode 100644 docker/Dockerfile.ubuntu create mode 100644 init.sh diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml new file mode 100644 index 0000000..a35058c --- /dev/null +++ b/.gitea/workflows/ci.yaml @@ -0,0 +1,228 @@ +# .gitea/workflows/ci.yaml +name: Build and Release + +on: + push: + branches: [main, develop] + tags: ['*'] + +env: + DOCKER_BUILDKIT: "1" + PRODUCT_NAME: "xxxigcc-proxy" + PACKAGE_VERSION: "3.4.6-xg1" + BUILDX_NO_DEFAULT_ATTESTATIONS: "1" + +jobs: + build-and-test: + runs-on: ${{ matrix.arch == 'amd64' && 'ubuntu-latest-amd64' || 'ubuntu-latest-arm64' }} + strategy: + matrix: + arch: [amd64, arm64] + distro: [ubuntu, alpine] + steps: + - uses: actions/checkout@v4 + + - name: Setup Docker Buildx + run: | + # 创建 buildx builder(原生构建不需要 QEMU) + docker buildx create --use --name native-builder \ + --driver docker-container \ + --driver-opt network=host \ + --driver-opt env.BUILDKIT_STEP_LOG_MAX_SIZE=50000000 \ + --driver-opt env.BUILDKIT_STEP_LOG_MAX_SPEED=10000000 \ + || true + docker buildx inspect --bootstrap + + - name: Build binaries + run: | + XMRIGCC_PROXY_VERSION=v.${PACKAGE_VERSION%-*} + PLATFORM="linux/${{ matrix.arch }}" + + echo "🏗️ Building ${PLATFORM} on native ${{ matrix.arch }} runner" + echo "📦 Distribution: ${{ matrix.distro }}" + + # 设置 BuildKit 优化参数 + export BUILDKIT_PROGRESS=plain + + docker buildx build --pull \ + --platform ${PLATFORM} \ + --build-arg XMRIGCC_PROXY_VERSION=${XMRIGCC_PROXY_VERSION} \ + --output type=local,dest=./output \ + -f docker/Dockerfile.${{ matrix.distro }} . + + - name: Package and test + run: | + DIR="./output/linux_${{ matrix.arch }}" + + if [ ! -d "$DIR" ]; then + echo "❌ 构建输出目录不存在: $DIR" + exit 1 + fi + + TARGZ="${PRODUCT_NAME}-${{ matrix.arch }}-${{ matrix.distro }}-${PACKAGE_VERSION}.tar.gz" + tar -czf "${TARGZ}" -C "$DIR" . + + echo "📦 Created package: ${TARGZ}" + ls -lh "${TARGZ}" + + # 快速验证 + mkdir -p test && tar -xzf "${TARGZ}" -C test + test/xxxigcc-proxy --version 2>/dev/null || echo "⚠️ 跳过版本检查" + rm -rf test + + - name: Build Debian package + if: matrix.distro == 'ubuntu' + run: | + # 安装 dpkg-deb(如果需要) + sudo apt-get update && sudo apt-get install -y dpkg-dev + + TARGZ="${PRODUCT_NAME}-${{ matrix.arch }}-${{ matrix.distro }}-${PACKAGE_VERSION}.tar.gz" + + echo "📦 Building Debian package for ${{ matrix.arch }}..." + chmod +x debian/build-deb.sh + ./debian/build-deb.sh ${{ matrix.arch }} ${PACKAGE_VERSION} "${TARGZ}" + + ls -lh *.deb + + - uses: https://github.com/ChristopherHX/gitea-upload-artifact@v4 + with: + name: binaries-${{ matrix.arch }}-${{ matrix.distro }} + path: | + *.tar.gz + *.deb + retention-days: 1 + + release: + runs-on: ubuntu-latest-amd64 + needs: build-and-test + if: startsWith(github.ref, 'refs/tags/') + steps: + - uses: https://github.com/ChristopherHX/gitea-download-artifact@v4 + with: + pattern: binaries-* + path: ./packages + merge-multiple: true + + - name: Upload packages and create release + env: + TOKEN: ${{ secrets.BUILD_TOKEN }} + TAG: ${{ github.ref_name }} + run: | + cd packages + + # 提取仓库信息(移除 https:// 前缀和仓库路径) + REGISTRY=$(echo "${{ gitea.server_url }}" | sed 's|https\?://||') + OWNER="${{ gitea.repository_owner }}" + REPO_NAME=$(echo "${{ gitea.repository }}" | cut -d'/' -f2) + + echo "📦 上传包到 Generic Package Registry..." + echo " Registry: ${REGISTRY}" + echo " Owner: ${OWNER}" + echo " Package: ${PRODUCT_NAME}" + echo " Version: ${TAG}" + + # 上传所有 tar.gz 包到 Generic Package Registry + for file in *.tar.gz; do + [ ! -f "$file" ] && continue + echo " ⬆️ $file" + curl -fsSL -X PUT \ + -H "Authorization: token ${TOKEN}" \ + --upload-file "$file" \ + "https://${REGISTRY}/api/packages/${OWNER}/generic/${PRODUCT_NAME}/${TAG}/$file" || { + echo "❌ 上传失败: $file" + exit 1 + } + done + + # 上传 Debian 包到 Debian Package Registry + echo "" + echo "📦 上传 Debian 包到 Debian Package Registry..." + for file in *.deb; do + [ ! -f "$file" ] && continue + echo " ⬆️ $file" + curl -fsSL -X PUT \ + -H "Authorization: token ${TOKEN}" \ + --upload-file "$file" \ + "https://${REGISTRY}/api/packages/${OWNER}/debian/pool/bookworm/main/upload" || { + echo "❌ Debian 包上传失败: $file" + exit 1 + } + done + + # 生成 Release 描述(包含 Package Registry 和 Release 附件两种下载方式) + echo "" + echo "📝 生成 Release 描述..." + BODY="## Release ${TAG}\n\n" + BODY="${BODY}### 📥 下载方式\n\n" + BODY="${BODY}#### 方式 1: 直接下载(推荐)\n\n" + BODY="${BODY}点击下面 **Assets** 部分的文件名直接下载。\n\n" + BODY="${BODY}#### 方式 2: Generic Package Registry\n\n" + for file in *.tar.gz; do + [ -f "$file" ] && BODY="${BODY}- [\`${file}\`](https://${REGISTRY}/api/packages/${OWNER}/generic/${PRODUCT_NAME}/${TAG}/${file})\n" + done + BODY="${BODY}\n#### 方式 3: Debian Repository\n\n" + BODY="${BODY}\`\`\`bash\n" + BODY="${BODY}# Add repository\n" + BODY="${BODY}echo \"deb https://${REGISTRY}/api/packages/${OWNER}/debian bookworm main\" | sudo tee /etc/apt/sources.list.d/xxxigcc-proxy.list\n\n" + BODY="${BODY}# Update and install\n" + BODY="${BODY}sudo apt-get update\n" + BODY="${BODY}sudo apt-get install xxxigcc-proxy\n" + BODY="${BODY}\`\`\`\n" + + # 创建 Release + echo "" + echo "🎉 创建 Release..." + RESPONSE=$(curl -fsSL -w "\n%{http_code}" -X POST \ + -H "Authorization: token ${TOKEN}" \ + -H "Content-Type: application/json" \ + "https://${REGISTRY}/api/v1/repos/${{ gitea.repository }}/releases" \ + -d @- << EOF + { + "tag_name": "${TAG}", + "name": "Release ${TAG}", + "body": "${BODY}", + "draft": false, + "prerelease": false + } + EOF + ) + + HTTP_CODE=$(echo "$RESPONSE" | tail -n1) + RESPONSE_BODY=$(echo "$RESPONSE" | head -n-1) + + if [ "$HTTP_CODE" = "201" ]; then + echo "✅ Release 创建成功" + RELEASE_ID=$(echo "$RESPONSE_BODY" | grep -o '"id":[0-9]*' | head -1 | cut -d':' -f2) + echo " Release ID: ${RELEASE_ID}" + elif [ "$HTTP_CODE" = "409" ]; then + echo "⚠️ Release 已存在,获取现有 Release ID..." + RELEASE_ID=$(curl -fsSL \ + -H "Authorization: token ${TOKEN}" \ + "https://${REGISTRY}/api/v1/repos/${{ gitea.repository }}/releases/tags/${TAG}" | \ + grep -o '"id":[0-9]*' | head -1 | cut -d':' -f2) + echo " Release ID: ${RELEASE_ID}" + else + echo "❌ 创建 Release 失败 (HTTP ${HTTP_CODE})" + echo "$RESPONSE_BODY" + exit 1 + fi + + # 上传文件作为 Release 附件 + echo "" + echo "📎 上传文件作为 Release 附件..." + for file in *.tar.gz *.deb; do + [ ! -f "$file" ] && continue + echo " ⬆️ $file" + + # 使用 multipart/form-data 上传附件 + curl -fsSL -X POST \ + -H "Authorization: token ${TOKEN}" \ + -F "attachment=@${file}" \ + "https://${REGISTRY}/api/v1/repos/${{ gitea.repository }}/releases/${RELEASE_ID}/assets?name=${file}" || { + echo " ⚠️ 附件上传失败: $file(可能已存在)" + } + done + + echo "" + echo "✅ Release 创建完成!" + echo "🔗 访问: https://${REGISTRY}/${{ gitea.repository }}/releases/tag/${TAG}" diff --git a/debian/build-deb.sh b/debian/build-deb.sh new file mode 100755 index 0000000..5c96eb6 --- /dev/null +++ b/debian/build-deb.sh @@ -0,0 +1,85 @@ +#!/bin/bash +set -e + +# 参数检查 +if [ $# -ne 3 ]; then + echo "Usage: $0 " + echo "Example: $0 amd64 3.4.6-xg1 xxxigcc-proxy-amd64-ubuntu-3.4.6-xg1.tar.gz" + exit 1 +fi + +ARCH=$1 +VERSION=$2 +TARGZ_FILE=$3 +PKG_NAME="xxxigcc-proxy" +DEB_FILE="${PKG_NAME}_${VERSION}_${ARCH}.deb" + +# 转换架构名称(Docker 使用的架构名到 Debian 架构名) +case "$ARCH" in + amd64) + DEB_ARCH="amd64" + ;; + arm64) + DEB_ARCH="arm64" + ;; + *) + echo "Unsupported architecture: $ARCH" + exit 1 + ;; +esac + +echo "📦 Building Debian package: ${DEB_FILE}" +echo " Architecture: ${DEB_ARCH}" +echo " Version: ${VERSION}" +echo " Source: ${TARGZ_FILE}" + +# 创建临时目录 +BUILD_DIR=$(mktemp -d) +trap "rm -rf $BUILD_DIR" EXIT + +# 创建包目录结构 +PKG_DIR="${BUILD_DIR}/${PKG_NAME}_${VERSION}_${DEB_ARCH}" +mkdir -p "${PKG_DIR}/DEBIAN" +mkdir -p "${PKG_DIR}/opt/xxxigcc-proxy" +mkdir -p "${PKG_DIR}/lib/systemd/system" + +# 解压二进制文件 +echo "📂 Extracting binary..." +tar -xzf "${TARGZ_FILE}" -C "${PKG_DIR}/opt/xxxigcc-proxy" + +# 生成 control 文件 +echo "📝 Generating control file..." +sed -e "s/{{VERSION}}/${VERSION}/" \ + -e "s/{{ARCH}}/${DEB_ARCH}/" \ + debian/control.template > "${PKG_DIR}/DEBIAN/control" + +# 复制维护脚本 +echo "📋 Copying maintainer scripts..." +cp debian/postinst "${PKG_DIR}/DEBIAN/postinst" +cp debian/prerm "${PKG_DIR}/DEBIAN/prerm" +cp debian/postrm "${PKG_DIR}/DEBIAN/postrm" +chmod 755 "${PKG_DIR}/DEBIAN/postinst" +chmod 755 "${PKG_DIR}/DEBIAN/prerm" +chmod 755 "${PKG_DIR}/DEBIAN/postrm" + +# 复制 systemd service 文件 +echo "🔧 Installing systemd service..." +cp debian/xxxigcc-proxy.service "${PKG_DIR}/lib/systemd/system/" + +# 设置权限 +chmod 755 "${PKG_DIR}/opt/xxxigcc-proxy/xxxigcc-proxy" +chmod 644 "${PKG_DIR}/opt/xxxigcc-proxy/config.json" +chmod 644 "${PKG_DIR}/lib/systemd/system/xxxigcc-proxy.service" + +# 构建 deb 包 +echo "🔨 Building package..." +dpkg-deb --build --root-owner-group "${PKG_DIR}" "${DEB_FILE}" + +# 检查包 +echo "✅ Package built successfully!" +echo "📦 Package: $(pwd)/${DEB_FILE}" +echo "📊 Package info:" +dpkg-deb --info "${DEB_FILE}" + +echo "" +echo "🎉 Done!" diff --git a/debian/control.template b/debian/control.template new file mode 100644 index 0000000..b68d13a --- /dev/null +++ b/debian/control.template @@ -0,0 +1,16 @@ +Package: xxxigcc-proxy +Version: {{VERSION}} +Section: net +Priority: optional +Architecture: {{ARCH}} +Depends: libc6, libuv1, libssl3 | libssl1.1, libhwloc15 | libhwloc5 +Maintainer: XXXigCC Team +Homepage: https://github.com/Bendr0id/xmrigcc-proxy +Description: Cryptocurrency mining proxy + XXXigCC Proxy is a customized build of xmrigcc-proxy, + a cryptocurrency mining proxy server. + . + This package includes: + - The xxxigcc-proxy binary + - Systemd service configuration + - Default configuration file diff --git a/debian/postinst b/debian/postinst new file mode 100644 index 0000000..1c81471 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,50 @@ +#!/bin/sh +set -e + +# Create user and group if they don't exist +if ! getent group xxxigcc-proxy >/dev/null; then + addgroup --system xxxigcc-proxy +fi + +if ! getent passwd xxxigcc-proxy >/dev/null; then + adduser --system --ingroup xxxigcc-proxy --no-create-home \ + --home /opt/xxxigcc-proxy --shell /usr/sbin/nologin \ + --gecos "XXXigCC Proxy Service" xxxigcc-proxy +fi + +# Create log directory +mkdir -p /var/log/xxxigcc-proxy +chown xxxigcc-proxy:xxxigcc-proxy /var/log/xxxigcc-proxy +chmod 750 /var/log/xxxigcc-proxy + +# Create config directory +mkdir -p /etc/xxxigcc-proxy + +# Copy default config if it doesn't exist +if [ ! -f /etc/xxxigcc-proxy/config.json ]; then + cp /opt/xxxigcc-proxy/config.json /etc/xxxigcc-proxy/config.json + chown xxxigcc-proxy:xxxigcc-proxy /etc/xxxigcc-proxy/config.json + chmod 640 /etc/xxxigcc-proxy/config.json +fi + +# Set permissions +chown -R xxxigcc-proxy:xxxigcc-proxy /opt/xxxigcc-proxy +chmod 755 /opt/xxxigcc-proxy +chmod 755 /opt/xxxigcc-proxy/xxxigcc-proxy + +# Reload systemd +if [ -d /run/systemd/system ]; then + systemctl daemon-reload + + # Enable and start service + if ! systemctl is-enabled xxxigcc-proxy.service >/dev/null 2>&1; then + systemctl enable xxxigcc-proxy.service + fi + + # Start service if not running + if ! systemctl is-active xxxigcc-proxy.service >/dev/null 2>&1; then + systemctl start xxxigcc-proxy.service + fi +fi + +exit 0 diff --git a/debian/postrm b/debian/postrm new file mode 100644 index 0000000..705597e --- /dev/null +++ b/debian/postrm @@ -0,0 +1,30 @@ +#!/bin/sh +set -e + +case "$1" in + purge) + # Remove log directory + rm -rf /var/log/xxxigcc-proxy + + # Remove config directory + rm -rf /etc/xxxigcc-proxy + + # Remove user and group + if getent passwd xxxigcc-proxy >/dev/null; then + deluser --system xxxigcc-proxy 2>/dev/null || true + fi + + if getent group xxxigcc-proxy >/dev/null; then + delgroup --system xxxigcc-proxy 2>/dev/null || true + fi + ;; + + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + # Reload systemd + if [ -d /run/systemd/system ]; then + systemctl daemon-reload + fi + ;; +esac + +exit 0 diff --git a/debian/prerm b/debian/prerm new file mode 100644 index 0000000..e8ddf50 --- /dev/null +++ b/debian/prerm @@ -0,0 +1,15 @@ +#!/bin/sh +set -e + +# Stop service before removal +if [ -d /run/systemd/system ]; then + if systemctl is-active xxxigcc-proxy.service >/dev/null 2>&1; then + systemctl stop xxxigcc-proxy.service + fi + + if systemctl is-enabled xxxigcc-proxy.service >/dev/null 2>&1; then + systemctl disable xxxigcc-proxy.service + fi +fi + +exit 0 diff --git a/debian/xxxigcc-proxy.service b/debian/xxxigcc-proxy.service new file mode 100644 index 0000000..539244b --- /dev/null +++ b/debian/xxxigcc-proxy.service @@ -0,0 +1,39 @@ +[Unit] +Description=XXXigCC Proxy Service +After=network.target + +[Service] +Type=simple + +# 工作目录 +WorkingDirectory=/opt/xxxigcc-proxy + +# 执行命令 +ExecStart=/opt/xxxigcc-proxy/xxxigcc-proxy --config=/etc/xxxigcc-proxy/config.json --log-file=/var/log/xxxigcc-proxy/proxy.log --access-log-file=/var/log/xxxigcc-proxy/access.log + +# 重启策略 +Restart=always +RestartSec=10 + +# 用户和组 +User=xxxigcc-proxy +Group=xxxigcc-proxy + +# 安全设置 +NoNewPrivileges=true +PrivateTmp=true +ProtectSystem=strict +ProtectHome=true +ReadWritePaths=/var/log/xxxigcc-proxy + +# 日志设置 +StandardOutput=journal +StandardError=journal +SyslogIdentifier=xxxigcc-proxy + +# 资源限制 +LimitNOFILE=65535 +LimitNPROC=4096 + +[Install] +WantedBy=multi-user.target diff --git a/docker/Dockerfile.alpine b/docker/Dockerfile.alpine new file mode 100644 index 0000000..78346e5 --- /dev/null +++ b/docker/Dockerfile.alpine @@ -0,0 +1,54 @@ +FROM alpine:latest AS base + +# 根据目标架构设置构建参数 +ARG TARGETARCH + +RUN apk update && apk add --no-cache \ + git \ + make \ + cmake \ + libstdc++ \ + gcc \ + g++ \ + automake \ + libtool \ + autoconf \ + linux-headers \ + libuv-dev \ + openssl-dev \ + hwloc-dev + +FROM base AS build + +ARG XMRIGCC_PROXY_VERSION +ARG TARGETARCH +ARG BUILDPLATFORM +ARG TARGETPLATFORM + +RUN git clone --recursive https://github.com/Bendr0id/xmrigcc-proxy.git && \ + mv xmrigcc-proxy xxxigcc-proxy && \ + cd xxxigcc-proxy && \ + git checkout ${XMRIGCC_PROXY_VERSION} + +WORKDIR /xxxigcc-proxy + +COPY ./init.sh ./init.sh + +# 根据目标架构优化编译 +RUN chmod +x ./init.sh && ./init.sh && \ + mkdir build && cd build && \ + if [ "$BUILDPLATFORM" != "$TARGETPLATFORM" ]; then \ + MAKE_JOBS="-j2"; \ + else \ + MAKE_JOBS="-j$(nproc)"; \ + fi && \ + echo "Building with parallel jobs: $MAKE_JOBS (cross-compile: $([ "$BUILDPLATFORM" != "$TARGETPLATFORM" ] && echo yes || echo no))" && \ + cmake .. -DCMAKE_BUILD_TYPE=Release && \ + make $MAKE_JOBS + +FROM scratch + +ARG TARGETARCH + +COPY --from=build /xxxigcc-proxy/build/xxxigcc-proxy /linux_${TARGETARCH}/xxxigcc-proxy +COPY --from=build /xxxigcc-proxy/src/config.json /linux_${TARGETARCH}/config.json \ No newline at end of file diff --git a/docker/Dockerfile.ubuntu b/docker/Dockerfile.ubuntu new file mode 100644 index 0000000..757308b --- /dev/null +++ b/docker/Dockerfile.ubuntu @@ -0,0 +1,53 @@ +# 使用 Ubuntu 22.04 作为基础镜像 +FROM ubuntu:22.04 AS base + +ARG TARGETARCH +ARG BUILDPLATFORM + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && apt-get install -y \ + git \ + wget \ + build-essential \ + cmake \ + libuv1-dev \ + libssl-dev \ + libhwloc-dev \ + openssl \ + && rm -rf /var/lib/apt/lists/* + +FROM base AS build + +ARG XMRIGCC_PROXY_VERSION +ARG TARGETARCH +ARG BUILDPLATFORM +ARG TARGETPLATFORM + +RUN git clone --recursive https://github.com/Bendr0id/xmrigcc-proxy.git && \ + mv xmrigcc-proxy xxxigcc-proxy && \ + cd xxxigcc-proxy && \ + git checkout ${XMRIGCC_PROXY_VERSION} + +WORKDIR /xxxigcc-proxy + +COPY ./init.sh ./init.sh + +# 根据目标架构优化编译 +RUN chmod +x ./init.sh && ./init.sh && \ + mkdir build && cd build && \ + if [ "$BUILDPLATFORM" != "$TARGETPLATFORM" ]; then \ + MAKE_JOBS="-j2"; \ + else \ + MAKE_JOBS="-j$(nproc)"; \ + fi && \ + echo "Building with parallel jobs: $MAKE_JOBS (cross-compile: $([ "$BUILDPLATFORM" != "$TARGETPLATFORM" ] && echo yes || echo no))" && \ + cmake .. -DCMAKE_BUILD_TYPE=Release && \ + make $MAKE_JOBS + +FROM scratch + +ARG TARGETARCH + +COPY --from=build /xxxigcc-proxy/build/xxxigcc-proxy /linux_${TARGETARCH}/xxxigcc-proxy +COPY --from=build /xxxigcc-proxy/src/config.json /linux_${TARGETARCH}/config.json \ No newline at end of file diff --git a/init.sh b/init.sh new file mode 100644 index 0000000..b471bb6 --- /dev/null +++ b/init.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +# Modify the CMakeLists.txt and source files to change the project name from "xmrigcc-proxy" to "xxxigcc-proxy" +sed -i 's/project(xmrigcc-proxy)/project(xxxigcc-proxy)/' CMakeLists.txt + +# Modify donate functionality +sed -i 's/kDefaultDonateLevel = 2/kDefaultDonateLevel = 0/' src/donate.h +sed -i 's/donate.graef.in/127.0.0.1/' src/net/strategies/DonateStrategy.cpp +sed -i 's/87.106.163.52/127.0.0.1/' src/net/strategies/DonateStrategy.cpp +sed -i 's/"donate-level", 1/"donate-level", 0/' src/core/config/Config_platform.h +sed -i 's/"donate-level": 2/"donate-level": 0/' src/config.json + +# Modify version information +sed -i 's/xmrigcc/xxxigcc/' src/version.h +sed -i 's/XMRigCC/XXXigCC/' src/version.h + +# Modify the config.json to set verbose to true +sed -i 's/"verbose": false/"verbose": true/' src/config.json \ No newline at end of file