Skip to content

isJackeroo/NROS_plugins

Repository files navigation

C2000Max / NRadio 插件安装脚本说明

这个目录主要用于维护一套面向 NRadio / NROS / OpenWrt AppCenter 的插件接入脚本与相关打包产物。

当前主脚本是 NRadio_plugins_Installer.sh。它的目标不只是“安装一个 ipk”,而是把插件完整接入 OEM 的 AppCenter 体系,包括:

  • 下载并安装插件包
  • 自动补齐或修正依赖
  • 写入 UCI 配置
  • 注册 /etc/config/appcenter
  • 修复或生成 LuCI 兼容页面
  • 在安装后给出可用路由和刷新提示

如果你的设备只是普通 OpenWrt,没有 AppCenter,这个脚本不一定适合直接使用。

支持的插件

目前脚本支持以下 4 类插件:

  • ttyd
  • OpenClash
  • KMSvlmcsd / luci-app-vlmcsd
  • OpenListopenlist2 / luci-app-openlist2

适用环境

建议在下面这类设备上使用:

  • 基于 OpenWrt 的 NRadio / NROS 固件
  • 系统已安装 LuCI
  • 系统存在 AppCenter
  • 存在 /etc/config/appcenter

脚本运行前会校验关键文件是否存在,不满足条件会直接退出。

主要能力

相比普通安装脚本,这个脚本额外做了不少兼容工作:

  • opkg feeds 切换到预设可用镜像
  • 统一下载、安装、重装流程
  • 对部分不兼容插件做二次处理
  • 自动启用并重启相关服务
  • 备份关键配置和页面文件到本地
  • 把插件注册到 AppCenter 菜单并写入元数据

其中两个重点兼容场景是:

  • OpenClash:会额外修补 LuCI 兼容问题,smart core 默认跳过,避免安装过程长时间卡住
  • OpenList:会解压上游发布包,批量安装组件,并生成适配 OEM 页面

运行要求

执行脚本前请确认:

  • 必须使用 root
  • 系统存在 opkguci、LuCI、/etc/init.d/*
  • 设备可以联网下载依赖和插件包
  • /usr 分区有足够空间,尤其是安装 OpenList

脚本内部已经包含部分兜底逻辑,例如:

  • 自动运行 opkg update
  • 自动尝试 curl / wget / uclient-fetch
  • 必要时使用 --force-depends--force-overwrite

但这并不意味着所有固件都一定兼容,OEM 魔改较深的系统仍可能需要按实际情况微调。

使用方法

1. 菜单模式

直接执行:

sh NRadio_plugins_Installer.sh

会显示交互菜单:

1. 安装 ttyd
2. 安装 OpenClash
3. 安装 KMS
4. 安装 OpenList

2. 命令行模式

安装 ttyd

sh NRadio_plugins_Installer.sh ttyd

安装 OpenClash

sh NRadio_plugins_Installer.sh openclash

安装 KMS

sh NRadio_plugins_Installer.sh kms

安装 OpenList

sh NRadio_plugins_Installer.sh openlist

各插件说明

ttyd

ttyd 安装流程除了安装 ttydluci-app-ttyd 之外,还会:

  • 自动生成 /etc/config/ttyd
  • 写入适配 NRadio 风格的终端页与配置概览页
  • 注册 AppCenter 路由 admin/services/ttyd/ttyd

适合把 WebShell 以 AppCenter 弹窗方式直接嵌入。

OpenClash

OpenClash 是处理最复杂的一项,脚本会:

  • 从镜像源获取版本号和安装包
  • 安装必要依赖
  • 直接安装上游 ipk,依赖不匹配时由 opkg --force-depends 兜底
  • 生成 OpenClash 专用 NRadio 入口页,在插件页内提供稳定的顶部 tab 导航
  • 清理旧版脚本覆盖过的 OpenClash 模板补丁
  • 默认跳过 smart core 下载,可按需手动启用
  • 注册路由 admin/services/openclash-nradio,通过专用入口打开 OpenClash 各原生页面
  • 保留 OpenClash 原生页面的 header 资源加载,只在 iframe 内用样式隐藏重复导航,避免丢失 OpenClash 自带 CSS/JS

这部分比较依赖固件环境,建议安装后按提示执行一次浏览器强刷。

KMS

KMS 部分安装的是:

  • vlmcsd
  • luci-app-vlmcsd

安装后会启用服务,并注册到:

admin/services/vlmcsd

这部分逻辑相对简单,主要目的是让 AppCenter 能正常打开对应页面。

OpenList

OpenList 部分会:

  • 根据当前 DISTRIB_ARCH 下载对应发布包
  • 解压上游 tar.gz 包并提取内部 ipk
  • 安装 openlist2luci-app-openlist2 和可用的中文语言包
  • 生成适配 AppCenter 的封装页面
  • 启用并重启 openlist2
  • 注册路由 admin/services/openlist2/basic

注意:

  • 首次安装后默认密码需要立即修改
  • 安装前会检查 /usr 可用空间

安装流程概览

每个插件大致都会按下面的统一流程执行:

  1. 检查 root 权限
  2. 检查 AppCenter 关键文件
  3. 准备工作目录和镜像源
  4. 下载插件包或发布归档
  5. 自动继续安装
  6. 安装插件及依赖
  7. 写入兼容页面或配置
  8. 注册到 AppCenter
  9. 启动服务并输出提示信息

备份与临时目录

脚本会把关键文件备份到:

运行时临时目录默认使用:

  • /tmp/NRadio_plugin

通常会备份这些内容:

  • distfeeds.conf
  • /etc/config/ttyd
  • /etc/config/openlist2
  • LuCI controller / view 文件

可调环境变量

脚本预留了一些环境变量,适合在执行前覆盖:

  • OPENCLASH_BRANCH
  • OPENCLASH_MIRRORS
  • OPENCLASH_CORE_VERSION_MIRRORS
  • OPENCLASH_CORE_SMART_MIRRORS
  • INSTALL_OPENCLASH_SMART_CORE
  • KMS_CORE_VERSION
  • KMS_CORE_IPK_BASE_URL
  • KMS_LUCI_IPK_URL
  • OPENLIST_RELEASE_SDK
  • OPENLIST_RELEASE_VERSION
  • OPENLIST_RELEASE_BASE_URL
  • OPENLIST_GH_PROXY
  • OPENLIST_MIN_FREE_MB
  • DOWNLOAD_CONNECT_TIMEOUT
  • DOWNLOAD_MAX_TIME
  • DOWNLOAD_RETRIES
  • OPENCLASH_CORE_DOWNLOAD_MAX_TIME
  • MIRROR_PING_COUNT
  • MIRROR_PING_TIMEOUT

OpenClash 相关镜像下载会先 ping 每个镜像主机,按平均延迟从低到高排序后再下载。设备不支持 ping 或所有镜像 ping 失败时,会自动回退到原始镜像顺序。

示例:

INSTALL_OPENCLASH_SMART_CORE=1 OPENCLASH_CORE_DOWNLOAD_MAX_TIME=240 sh NRadio_plugins_Installer.sh openclash

默认不会在安装流程中下载 smart core。需要脚本顺带下载时设置 INSTALL_OPENCLASH_SMART_CORE=1;如果 core 镜像下载失败,脚本会保留已经安装好的 OpenClash LuCI 包并给出 warning,不中断整个安装。

或者:

OPENLIST_GH_PROXY=https://ghproxy.net sh NRadio_plugins_Installer.sh openlist

目录说明

当前目录中除了主脚本,还包含一些辅助文件和历史产物:

也就是说,这个目录既有“安装脚本”,也有“插件打包实验文件”,README 的重点仍然以前者为主。

风险提醒

在真实设备上运行前,建议先了解下面几点:

  • 脚本会修改系统配置和 LuCI 页面文件
  • 会重启相关服务
  • 会替换 opkg 源配置
  • 不同 OEM 固件的页面结构可能不完全一致
  • 当前版本不会修改系统 AppCenter 模板;如果旧版本已经改过 /usr/lib/lua/luci/view/nradio_appcenter/appcenter.htm,请从脚本目录 .backup 中恢复对应备份

如果你准备在更多机型上复用,建议先在测试设备验证一轮,再固化默认参数。

如果运行时第一行出现类似 et: not found,通常表示上传到设备的脚本首行被改坏或漏了开头字符。先在设备上执行:

head -n 3 plugin.sh

正常第一行应为 #!/bin/sh,第二行应为 set -eu。如果看到单独的 etet -eu,请重新上传脚本后再运行。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors