Skip to content

lcdyk0517/XiFan.mod

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

稀范科技 EmuELEC 魔改构建(README)

面向两套 GitHub Actions 工作流,分别用于生成 线刷包(EMMC)卡刷包(TF/SD) 的 *-mod 镜像,并自动:

  1. 将产物上传到当前仓库的 Release;
  2. (可选)按日期目录上传到百度网盘。

🧭 工作流一览

工作流名 用途 触发方式 Release 标签/名称前缀 设备矩阵 私仓脚本 大文件处理 网盘上传
稀范科技Emuelec线刷包魔改 线刷包(EMMC)魔改 手动 workflow_dispatch emmc-build-YYYYMMDD-HHMMSS 33263326_en private/emmc.sh >2GB 自动 7z 1.9GB/卷、无压缩 并上传分卷 使用 BaiduPCS-Go 串行下载/解压/上传/删除
稀范科技Emuelec卡刷包魔改 卡刷包(TF/SD)魔改 手动 workflow_dispatch tf-build-YYYYMMDD-HHMMSS 33263326_en private/build_mod_img.sh 同上 同上

两个工作流都接受相同的输入参数:

  • image_url(必填):原始镜像下载地址,仅支持 .img / .img.gz
  • baidu_dir(选填):百度网盘目录(当天会自动建子目录),默认 /Emuelec/魔改构建

⚙️ 前置准备

1) 私有仓库与 Token

  • 运行时会在工作目录 private/ 检出私有仓库:${{ github.actor }}/ee_img_build
  • 本仓库 Settings → Secrets and variables → Actions 中新增:
    • GH_PATGitHub Personal Access Token(至少 repo 权限),用于拉取私有仓库

2) 网盘上传(可选)

  • 如需上传至百度网盘,请新增:
    • BAIDU_COOKIEBaidu 网盘登录 Cookie 字符串(从已登录浏览器复制)
  • GITHUB_TOKEN 为内置 Token,用于在当前仓库创建/上传 Release 与通过 gh CLI 上传资产

3) Runner 及依赖

  • 默认 Runner:ubuntu-22.04
  • 将安装:jq curl wget xz-utils gzip tar coreutilsgdisk parted e2fsprogs xfsprogs dosfstools util-linuxkpartx squashfs-tools unzip p7zip-full
  • 上传阶段安装:gh p7zip-full unzip,并下载 BaiduPCS-Go v3.9.0

🚀 触发与参数

  1. 打开仓库 Actions → 选择对应工作流:
    • 线刷包:稀范科技Emuelec线刷包魔改
    • 卡刷包:稀范科技Emuelec卡刷包魔改
  2. 点击 Run workflow,填写:
    • image_url(必填):源镜像直链(.img / .img.gz
      • 脚本会自动下载,若为 .img.gzgunzip 解压得到 .img
      • 若文件小于 100MB 会被判定为下载异常并失败
    • baidu_dir(选填):远端父目录(默认 /Emuelec/魔改构建)。
      当天会自动创建子目录:<baidu_dir>/<YYYYMMDD>

🏗️ 构建流程(两套工作流通用)

1) Release 准备(仅一次)

  • 计算 UTC 时间戳并生成 Release tag/name
    • 线刷包:emmc-build-YYYYMMDD-HHMMSS
    • 卡刷包:tf-build-YYYYMMDD-HHMMSS
  • 使用 softprops/action-gh-release@v2当前仓库 创建/更新对应 Release

2) 并行构建(每个设备各跑一次)

  • 设备矩阵:["3326", "3326_en"]
  • 检出当前仓库与 私有仓库 ee_img_buildprivate/
  • 下载与解压输入镜像(只接受 .img / .img.gz
  • 执行私仓脚本:
    • 线刷包:sudo -E ./emmc.sh <device> <image.img>
    • 卡刷包:sudo -E ./build_mod_img.sh <device> <image.img>
  • 定位输出:匹配 *-mod.img / *-mod.img.gz(按时间排序取最新为主文件)

3) 上传到 Release(含大文件分卷)

  • 若主文件 > 2GB:使用 7z a -v1900m -mx=0 分卷(1.9GB/卷、无压缩),逐卷上传到 Release;否则直接上传单文件
  • 使用 gh release upload --clobber,可覆盖同名资产

4) 上传到百度网盘(可选)

  • Job upload_baidu两个设备都构建完成后执行;并用 concurrency.group: baidu-upload 串行化处理
  • Release 资产做同名归并:将同一镜像的分卷(.7z.001 / .7z.002 …)归为同一个 key(去掉 .7z.* 尾巴)
  • 处理流程(逐镜像):
    1. 下载分卷(若存在)→ 本地解压合并;否则下载单文件
    2. 上传到:<baidu_dir>/<YYYYMMDD>/
    3. 完成后删除临时文件
    4. 跳过文件名包含 mini 的镜像
  • 如缺少 BAIDU_COOKIE,该 Job 会报错并退出

5) 清理

  • 构建 Job 与上传 Job 都会清理临时/包管理缓存,保证磁盘充足

📦 产物与命名

  • 产物文件:*-mod.img*-mod.img.gz(由私仓脚本产出)
  • 存储位置:
    • GitHub:发布在本仓库对应的 Release(按时间戳命名)
    • 百度网盘(如启用):<baidu_dir>/<YYYYMMDD>/
  • 对超大文件,Release 中会出现多段分卷(.7z.001.7z.002…);网盘侧会先合并再上传单一文件

🧩 关键差异一览(两套工作流)

  • 线刷包工作流:调用 emmc.sh;标签前缀 emmc-build-
  • 卡刷包工作流:调用 build_mod_img.sh;标签前缀 tf-build-
  • 其余(输入参数、设备矩阵、分卷与网盘上传逻辑)保持一致

🛠️ 自定义与扩展

  • 新增设备:在 build.strategy.matrix.device 增加型号,并确保私仓脚本支持
  • 更改分卷大小/压缩级别:调整 7z a -v1900m -mx=0-v(分卷大小)与 -mx(压缩等级)
  • 调整网盘目录结构:改动 upload_baidu Job 中日期与目录拼接逻辑
  • 替换网盘实现:可将 BaiduPCS-Go 改为其他 CLI 或 API

❓ 常见问题(FAQ)

Q1:为什么提示 “Unsupported file type”?
仅支持 .img.img.gz,请确认 image_url 的扩展名与内容一致。

Q2:下载后报 “太小,疑似下载不完整(<100MB)”?
通常是直链失效/限速/重定向到 HTML 页面。请在浏览器验证直链或更换下载地址。

Q3:提示 “No mod image produced”?
说明私仓脚本未生成 *-mod.img(或 .img.gz)。请检查 ee_img_build 的脚本逻辑、依赖与机型匹配。

Q4:Release 分卷成功但网盘上传失败?
upload_baidu 会寻找 .001 起始分卷并合并;若缺失,说明 Release 资产不完整或命名被改动,请核对分卷是否齐全。

Q5:需要哪些权限?

  • GITHUB_TOKEN:创建/上传 Release(内置)
  • GH_PAT:拉取 私有仓库(需 repo 权限)
  • BAIDU_COOKIEBaiduPCS-Go 免扫码登录(Cookie 字符串)

Q6:如何只构建其中一个设备?
在 YAML 中将 strategy.matrix.device 改为单值,例如 ["3326"]


🔐 安全与合规

  • GH_PATBAIDU_COOKIE 为敏感凭据,请只存放于 GitHub Secrets,不要写入仓库
  • 确保你对原始镜像与私仓脚本拥有合法使用与再分发权限
  • 建议开启环境保护/审批流程以提高可审计性

✅ 一键检查清单

  • 已在当前仓库添加 GH_PATrepo 权限)
  • 如需网盘:已添加 BAIDU_COOKIE(有效且未过期)
  • 私有仓库 ${{ github.actor }}/ee_img_build 可被当前 Token 读取
  • 准备好可直链下载的 image_url.img / .img.gz,≥ 100MB)
  • 如需仅构建特定设备或更改分卷大小,已按需修改工作流 YAML

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published