---
url: https://eoht.net/asus/illegal-keywords.md
description: >-
  保留旧版梅林改版软件中心离线安装提示“非法关键词”的处理方法，先核对 ks_tar_install.sh 和 detect_package
  调用，再备份、修改、验证与恢复；不将历史脚本路径扩展为所有现行版本的通用方案。
---

# 梅林固件离线安装提示“检测到非法关键词”的解决方法 {#detect-illegal-keywords}

本文针对旧版梅林改版软件中心离线安装包时的“安装包名含非法关键词”提示，涉及 `/koolshare/scripts/ks_tar_install.sh` 中的 `detect_package` 调用。历史方法要求 arm380/X7.x 固件的软件中心为 `1.4.8` 或以上；这不是对所有新版软件中心的兼容承诺。

先核对固件、软件中心和插件的版本及安装包来源。若当前版本已改变脚本路径或检测逻辑，应使用该维护者的安装说明；文件不存在时，不要为了套用本文而新建同名脚本。解除关键词检测也不能解决插件架构不匹配或安装包本身的问题。

## 检查脚本并备份

在局域网内开启路由器 SSH，登录后检查目标文件和相关行：

```sh
install_script='/koolshare/scripts/ks_tar_install.sh'
ls -l "$install_script"
grep -n 'detect_package' "$install_script"
```

阅读匹配行附近的代码，区分函数定义、注释与真正执行的调用。下方示例只修改“独占一行、没有参数的 `detect_package` 调用”。若调用带有参数、条件或其他语句，不适用此替换。

确认目标正确后备份，保留终端中显示的完整备份路径：

```sh
install_backup="${install_script}.bak.$(date +%Y%m%d-%H%M%S)"
cp -p "$install_script" "$install_backup"
printf '%s\n' "$install_backup"
```

只有复制成功、备份文件可读后才继续。如果后面重新登录 SSH，应重新设置 `install_script`，并把 `install_backup` 指向这次已经存在的备份，不要用新时间戳替代旧路径。

## 预览修改，再替换文件

先生成候选文件，不直接原地修改：

```sh
install_candidate="${install_backup}.candidate"
sed 's/^\([[:space:]]*\)detect_package[[:space:]]*$/\1# detect_package/' \
  "$install_script" > "$install_candidate"
grep -n 'detect_package' "$install_candidate"
diff -u "$install_backup" "$install_candidate"
```

`diff` 返回 `1` 表示文件有差异，应检查差异是否仅为预期调用前加了 `#`。若没有差异、出现读取错误，或改动超出预期，停止处理。不要扩大正则去注释所有包含同名字符串的行。

先对候选文件做 shell 语法检查；只有该命令成功退出后，才复制回原路径：

```sh
sh -n "$install_candidate"
```

```sh
cp "$install_candidate" "$install_script"
grep -n 'detect_package' "$install_script"
```

重新执行一次离线安装并阅读完整日志，确认是否已越过关键词检测，以及插件安装本身是否成功。没有再次出现关键词提示，不等于插件已经正确安装或运行。

## 恢复与后续升级

若需要恢复，先确认备份属于当前这个软件中心版本，再复制回来：

```sh
cp -p "$install_backup" "$install_script"
sh -n "$install_script"
```

软件中心升级可能替换脚本。升级后重新检查实际文件，不把旧脚本备份覆盖到新版本上，也不自动重放历史替换命令。

旧文还记录过梅林 386 改版升级后插件状态显示双叉、通过兼容版本离线覆盖安装恢复的情况。若遇到相同现象，应先按当前插件维护者的说明核对版本和日志，再决定是否覆盖安装；双叉状态不能单独证明是关键词检测造成的。
