MoreRSS

site iconiMaeGoo | 虹墨修改

95后前端开发者,居住郑州,擅长前端技术,分享个人学习记录。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

iMaeGoo | 虹墨的 RSS 预览

联想拯救者 Y700 四代(TB322FC)刷入澎湃 OS 3 教程

2026-09-09 08:30:00

<p>以下教程是我在给平板刷澎湃 OS 的过程中,由 AI 总结出来的经验,我已经在 AI 的帮助下成功刷入了系统,所以教程是我验证过的。</p><p>我刷的是酷安 GUF26 大佬的包(<a href="https://www.coolapk.com/feed/73068360?s=OGUzZGJmYTc4MzYzZWc2YWEwNDk0OXoa1661">https://www.coolapk.com/feed/73068360?s=OGUzZGJmYTc4MzYzZWc2YWEwNDk0OXoa1661</a>),这个包在社区里评价很好,用起来稳定没什么 bug,只是没有刷机教程,第一次刷无从上手。包和所有工具的下载地址你都可以在链接的评论区里找到,这里为了尊重原作者,就不做搬运了。建议使用 123 云盘 APP 下包,不需要会员。下载后解压到一个不带中文的路径,然后我们教程开始。</p><hr><blockquote><p>9008(EDL)线刷方式 · 已解 BL 锁 + 已有 Root 版本<br>刷机包:HyperOS 3.0.307.0(移植自小米平板 8 Pro,作者:酷安 GUF26)<br>本教程基于对当前目录刷机包的<strong>逐文件逆向验证</strong>(rawprogram XML、工具箱脚本)+ 互联网公开资料整理</p></blockquote><hr><h2 id="⚠️-开始前必读"><a href="#⚠️-开始前必读" class="headerlink" title="⚠️ 开始前必读"></a>⚠️ 开始前必读</h2><ol><li><strong>刷机会清空平板内全部个人数据</strong>(照片、微信记录、游戏存档等)。先用 MTP &#x2F; 网盘 &#x2F; adb 把个人资料完整导出。</li><li>9008 是绕过系统的底层刷写模式,<strong>操作不当有变砖风险</strong>。本教程的备份步骤就是你的”后悔药”,一步都不要省。</li><li>刷机过程中<strong>严禁拔线、休眠、断电</strong>。</li><li>本包为第三方移植 ROM,无官方 OTA;遇到问题可在作者评论区反馈(或咸鱼找作者付费帮刷)。</li><li>电量保证 <strong>50% 以上</strong>,最好边插电边刷。</li></ol><span id="more"></span><hr><h2 id="一、为什么这个包不会丢序列号(已逐行验证)"><a href="#一、为什么这个包不会丢序列号(已逐行验证)" class="headerlink" title="一、为什么这个包不会丢序列号(已逐行验证)"></a>一、为什么这个包不会丢序列号(已逐行验证)</h2><p>联想 Y700 四代全系列支持 9008 刷机且<strong>未做端口加密</strong>(ROM乐园实测结论),而本包作者在制作线刷包时已经做了”通用化脱敏”处理——我已逐行核对包内 6 个 rawprogram XML,<strong>以下所有涉及序列号&#x2F;串号&#x2F;校准数据的分区,<code>filename</code> 字段全部为空(即刷写时自动跳过,不会写入任何字节)</strong>:</p><table><thead><tr><th>分区</th><th>作用</th><th>包内状态</th></tr></thead><tbody><tr><td><code>proinfo</code></td><td><strong>设备序列号(SN)</strong>、机型信息</td><td>✅ 跳过,不动</td></tr><tr><td><code>lenovolock</code></td><td>联想锁&#x2F;识别信息</td><td>✅ 跳过,不动</td></tr><tr><td><code>persist</code></td><td>传感器、WiFi&#x2F;BT 校准、DRM</td><td>✅ 跳过,不动</td></tr><tr><td><code>modemst1</code> &#x2F; <code>modemst2</code></td><td>NV 数据(本机为 WiFi 版,存 WiFi&#x2F;BT 相关校准)</td><td>✅ 跳过,不动</td></tr><tr><td><code>fsg</code> &#x2F; <code>fsc</code></td><td>NV 备份</td><td>✅ 跳过,不动</td></tr><tr><td><code>ssd</code></td><td>安全数据</td><td>✅ 跳过,不动</td></tr><tr><td><code>keystore</code></td><td>密钥库</td><td>✅ 跳过,不动</td></tr><tr><td><code>frp</code></td><td>Google 防重置锁</td><td>✅ 跳过,不动</td></tr><tr><td><code>devinfo</code></td><td>设备信息&#x2F;BL 状态</td><td>✅ 跳过,不动</td></tr><tr><td><code>uefivarstore</code> &#x2F; <code>secdata</code> &#x2F; <code>spunvm</code> &#x2F; <code>dpm</code> &#x2F; <code>qmcs</code> 等</td><td>UEFI 变量、安全数据</td><td>✅ 跳过,不动</td></tr><tr><td><code>userdata</code> &#x2F; <code>metadata</code></td><td>用户数据、加密元数据</td><td>✅ 跳过(所以<strong>必须手动清数据</strong>,见第七步)</td></tr></tbody></table><p><strong>包内实际会写入的分区</strong>(附录 A 有完整清单):GPT 分区表、xbl 引导、aop&#x2F;tz&#x2F;hyp 等固件、abl、boot、vendor_boot、init_boot、vbmeta、dtbo、recovery、modem、bluetooth、dsp、<strong>super(整个系统,22GB)</strong>、lenovocust 等——<strong>只写 A 槽</strong>(<code>_b</code> 槽位条目同样全部为空)。</p><h3 id="🚫-四条红线(违反才可能丢序列号-变砖)"><a href="#🚫-四条红线(违反才可能丢序列号-变砖)" class="headerlink" title="🚫 四条红线(违反才可能丢序列号&#x2F;变砖)"></a>🚫 四条红线(违反才可能丢序列号&#x2F;变砖)</h3><ol><li><strong>不要修改 images 目录里任何 XML</strong>,尤其不要把 <code>filename=&quot;&quot;</code> 填上内容。</li><li><strong>不要使用工具箱的「配置UFS(provision)」「擦除单个分区」功能</strong>,那才是真正的危险操作。</li><li>如果你自己改用 QFIL 等其他工具刷<strong>别的来源的全量包</strong>,绝不能勾选 “Erase All &#x2F; 全部格式化”(会抹掉 IMEI&#x2F;SN,不可逆)。本包配合自带工具箱不存在这个问题。</li><li>回读备份的分区文件是<strong>你设备独有的身份指纹</strong>(含 SN),不要发给别人、不要刷别的机器。</li></ol><hr><h2 id="二、刷机包内容速览"><a href="#二、刷机包内容速览" class="headerlink" title="二、刷机包内容速览"></a>二、刷机包内容速览</h2><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">y700-hyper-cloud\</span><br><span class="line">├─ images\ ← 澎湃OS 线刷镜像(实际刷入的内容)</span><br><span class="line">│ ├─ super.img ← 系统主体 22GB(刷入最耗时)</span><br><span class="line">│ ├─ boot.img / vendor_boot.img / init_boot.img / recovery.img / dtbo ...</span><br><span class="line">│ ├─ xbl.img / abl.img / tz.img / modem.img ... ← 底层固件</span><br><span class="line">│ ├─ rawprogram0~5.xml ← 分区表定义(UFS 共 6 个 LUN)</span><br><span class="line">│ └─ patch0~5.xml / gpt_*.bin ← GPT 分区表</span><br><span class="line">├─ tool\</span><br><span class="line">│ ├─ 高通工具箱.exe ← 主工具(酷安@某贼 BFF 框架,作者定制版)</span><br><span class="line">│ └─ 命令行.bat ← 自带 adb / fastboot 环境</span><br><span class="line">├─ boot.img ← SukiSU Ultra GKI 通用内核(KMI 6.6.118-android15-8,</span><br><span class="line">│ 与包内系统内核同 commit/同构建,已解包验证兼容;可选刷)</span><br><span class="line">├─ twrp.img ← TWRP recovery(可选刷)</span><br><span class="line">├─ ReSukiSU_v4.1.0_*.apk ← SukiSU 管理器(配合上面的 boot.img)</span><br><span class="line">├─ 高通官方全端口usb驱动-qud.win.1.1_installer_10061.1.exe ← 9008 驱动</span><br><span class="line">├─ 微软运行库.exe / 通用驱动2.exe ← 运行库与通用驱动</span><br><span class="line">└─ 捐赠支持作者\ ← 觉得好用可以打赏 😄</span><br></pre></td></tr></table></figure><hr><h2 id="三、准备工作"><a href="#三、准备工作" class="headerlink" title="三、准备工作"></a>三、准备工作</h2><h3 id="3-1-电脑端"><a href="#3-1-电脑端" class="headerlink" title="3.1 电脑端"></a>3.1 电脑端</h3><ul><li>Windows 10&#x2F;11 电脑一台,<strong>台式机用主板后置 USB2.0 口</strong>(最稳),笔记本插电源。</li><li>原装或高质量数据线(传输线,不是纯充电线)。</li><li>暂时<strong>退出&#x2F;关闭杀毒软件</strong>(360、火绒、Defender 实时防护都可能误杀工具箱里的 QSaharaServer &#x2F; fh_loader),或将整个刷机包目录加入白名单。</li><li>依次安装:<ol><li><code>微软运行库.exe</code></li><li><code>高通官方全端口usb驱动-qud.win.1.1_installer_10061.1.exe</code>(9008 端口识别全靠它)</li><li><code>通用驱动2.exe</code>(adb&#x2F;fastboot 通用驱动)</li></ol></li><li>电源设置:设置 → 系统 → 电源 → <strong>屏幕和睡眠全部改为”从不”</strong>(防止刷机中途电脑休眠)。</li><li>关闭手机助手类软件(会抢占 adb 端口)。</li></ul><h3 id="3-2-平板端"><a href="#3-2-平板端" class="headerlink" title="3.2 平板端"></a>3.2 平板端</h3><ul><li>⚠️ <strong>本机有两个 Type-C 口(长边一个、短边一个),实测只有长边的口支持 fastboot 模式</strong>。整个刷机过程(adb &#x2F; fastboot &#x2F; 9008)统一使用<strong>长边接口</strong>,短边口会导致 <code>adb devices</code> 有设备但 <code>fastboot devices</code> 无设备且设备管理器无任何反应。</li><li>电量 ≥ 50%。</li><li>导出全部个人数据。</li><li>记录当前序列号(验证用):<ul><li>开机进系统:<code>设置 → 关于平板 → 序列号</code>,或开启 USB 调试后执行 <code>adb shell getprop ro.serialno</code></li><li>建议顺手记录:<code>设置→关于平板</code> 里各版本信息、以及 当前 A&#x2F;B 槽位(见 4.2)</li></ul></li></ul><hr><h2 id="四、刷前检查(已解-BL-用户专属,2-分钟)"><a href="#四、刷前检查(已解-BL-用户专属,2-分钟)" class="headerlink" title="四、刷前检查(已解 BL 用户专属,2 分钟)"></a>四、刷前检查(已解 BL 用户专属,2 分钟)</h2><h3 id="4-1-确认-BL-已解锁"><a href="#4-1-确认-BL-已解锁" class="headerlink" title="4.1 确认 BL 已解锁"></a>4.1 确认 BL 已解锁</h3><p>fastboot 模式下执行 <code>fastboot getvar unlocked</code>,显示 <code>unlocked: yes</code> 即可。(你已经解过,此步走个流程)</p><h3 id="4-2-确认当前活动槽位是-A(重要!)"><a href="#4-2-确认当前活动槽位是-A(重要!)" class="headerlink" title="4.2 确认当前活动槽位是 A(重要!)"></a>4.2 确认当前活动槽位是 A(重要!)</h3><p>本包<strong>只写 A 槽</strong>。如果你的平板当前活动槽位是 B,刷完会拿 B 槽的旧引导去启动新系统,直接翻车。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb shell getprop ro.boot.slot_suffix (开机状态,显示 _a 或 _b)</span><br></pre></td></tr></table></figure><p>或在 fastboot 模式:<code>fastboot getvar current-slot</code></p><ul><li>显示 <code>a</code> → 完美,继续。</li><li>显示 <code>b</code> → 先执行 <code>fastboot --set-active=a</code>(你已解 BL,可直接执行),再继续。</li></ul><h3 id="4-3-(可选但推荐)先刷一次-TWRP-备个底"><a href="#4-3-(可选但推荐)先刷一次-TWRP-备个底" class="headerlink" title="4.3 (可选但推荐)先刷一次 TWRP 备个底"></a>4.3 (可选但推荐)先刷一次 TWRP 备个底</h3><p>你已解 BL + Root,可以趁系统还能开机,在 fastboot 下刷入包里自带的 TWRP:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">fastboot flash recovery twrp.img</span><br></pre></td></tr></table></figure><p>万一后面翻车,TWRP 里还能抢救数据&#x2F;刷包。(不需要可跳过,HyperOS 自带 recovery 也能恢复出厂)</p><hr><h2 id="五、进入-9008-模式"><a href="#五、进入-9008-模式" class="headerlink" title="五、进入 9008 模式"></a>五、进入 9008 模式</h2><p><strong>首选方法(系统还能开机时)</strong>:开启 USB 调试连接电脑,双击 <code>tool\命令行.bat</code>(自带 adb 环境),输入:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">adb reboot edl</span><br></pre></td></tr></table></figure><p>平板黑屏,看似”没反应”就是对的。</p><p><strong>备用方法(无法开机时)</strong>:关机状态下,<strong>按住音量上键不放</strong>插入数据线连接电脑(部分批次需同时按住音量上+下);仍不识别则需拆机短接主板测试点(最后手段,一般用不到)。</p><p><strong>确认识别成功</strong>:右键”此电脑 → 管理 → 设备管理器 → 端口(COM 和 LPT)”,出现:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Qualcomm HS-USB QDLoader 9008 (COMx)</span><br></pre></td></tr></table></figure><ul><li>如果显示带黄色叹号的 “QHSUSB_BULK” 或未知设备 → 9008 驱动没装好,重装第三章的高通驱动后再插拔。</li><li>记下这个 COM 口号。</li></ul><hr><h2 id="六、【重中之重】备份分区"><a href="#六、【重中之重】备份分区" class="headerlink" title="六、【重中之重】备份分区"></a>六、【重中之重】备份分区</h2><blockquote><p>作者原话:”刷入前务必自行备份底层”。这一步做到位,任何翻车都能救回来。</p></blockquote><p>双击 <code>tool\高通工具箱.exe</code>,按顺序操作:</p><h3 id="6-1-发送引导(一切-9008-操作的前提)"><a href="#6-1-发送引导(一切-9008-操作的前提)" class="headerlink" title="6.1 发送引导(一切 9008 操作的前提)"></a>6.1 发送引导(一切 9008 操作的前提)</h3><ol><li>平板处于 9008 模式并连接电脑。</li><li>工具箱中点击 <strong>「发送引导」</strong>(通用方式)。</li><li>引导文件选择 <strong><code>images\xbl_s_devprg_ns.melf</code></strong>(包内自带,四代 TB322FC 专用单文件引导)。<br>⚠️ <strong>不要选</strong> <code>tool\bin\tool\qctool\lenovo\devprg_legion-y700-5-*</code> 下的文件——那是五代&#x2F;更新处理器<br>的 multi-image 引导(工具提示里的”8E5新处理器”就是指它),四代用了会永远卡在”正在发送引导”。<br>已用作者 2026.07 刷机日志验证:四代的成功记录就是 <code>QSaharaServer.exe -s 13:xbl_s_devprg_ns.melf</code>,<br>约 1 秒完成。<br>📌 日志同时证实:发送时出现一条”从读取端口超时”的 WARNING 属<strong>正常现象</strong>(等待 HELLO 包的常规重试),<br>程序会自动继续;<strong>只有工具明确提示”发送引导失败”才需要处理</strong>。</li><li>提示发送成功(端口进入 firehose 模式)后,才能进行下面的读写操作。</li><li>注意:<strong>平板每次重新进入 9008 后,都要重新发送一次引导</strong>。</li></ol><h3 id="6-2-方案-A:回读全分区(最保险,推荐)"><a href="#6-2-方案-A:回读全分区(最保险,推荐)" class="headerlink" title="6.2 方案 A:回读全分区(最保险,推荐)"></a>6.2 方案 A:回读全分区(最保险,推荐)</h3><ol><li>工具箱点击 <strong>「回读全分区」</strong>,选择备份保存目录(如 <code>D:\y700_backup\</code>,<strong>路径不要有中文</strong>)。</li><li>工具会弹出每个 LUN 的分区清单(记事本),让你勾选要回读的分区:<strong>删掉某行方括号 <code>[ ]</code> 里的方括号符号即跳过该分区</strong>。</li><li>空间&#x2F;时间紧张时的取舍:<ul><li><strong><code>userdata</code> 可以跳过</strong>(反正马上要清空,个人数据你应该已在第三章导出)。</li><li><strong>其余分区尤其是底层小分区,一个都不要跳</strong>。</li></ul></li><li>确认保存文档后开始回读。不含 userdata 全部读完约 25GB,视 USB 速度约 30~90 分钟;若连 userdata 一起读(≈整机容量,256GB 版约需 240GB 磁盘空间 + 数小时)。</li><li>完成后检查备份目录:应有 <code>images\</code>(含全部 .img)与 <code>for_ROM_maker\</code>(含原始 GPT&#x2F;XML)两个文件夹。<strong>这就是完整的”字库备份”,恢复时用 xml批量刷入 选这组 xml 即可整机回滚</strong>。</li></ol><h3 id="6-3-方案-B:只回读关键底层分区(空间紧张时的最低要求)"><a href="#6-3-方案-B:只回读关键底层分区(空间紧张时的最低要求)" class="headerlink" title="6.3 方案 B:只回读关键底层分区(空间紧张时的最低要求)"></a>6.3 方案 B:只回读关键底层分区(空间紧张时的最低要求)</h3><p>逐个使用 <strong>「回读单个分区」</strong>,输入分区名,保存到一个专用文件夹(如 <code>D:\y700_backup\key\</code>)。最低必读清单:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">proinfo lenovolock persist ssd frp</span><br><span class="line">keystore modemst1 modemst2 fsg fsc</span><br><span class="line">devinfo uefivarstore secdata spunvm dpm</span><br><span class="line">qmcs connsec tzsc mdcompress misc</span><br><span class="line">apdp apdpb xbl_sc_test_mode xbl_sc_logs</span><br></pre></td></tr></table></figure><p>以及 A 槽引导三件套:<code>boot_a</code>、<code>init_boot_a</code>、<code>vendor_boot_a</code>(万一 root boot 出问题可刷回)。</p><h3 id="6-4-备份完成的自检"><a href="#6-4-备份完成的自检" class="headerlink" title="6.4 备份完成的自检"></a>6.4 备份完成的自检</h3><ul><li>确认 <code>proinfo</code> 备份文件存在且大小不为 0。</li><li>把整个备份目录<strong>复制到电脑另一块盘或移动硬盘</strong>,双保险。</li><li>再次强调:备份文件含你设备唯一的 SN&#x2F;校准数据,<strong>不要上传网盘分享</strong>。</li></ul><hr><h2 id="七、刷入澎湃-OS"><a href="#七、刷入澎湃-OS" class="headerlink" title="七、刷入澎湃 OS"></a>七、刷入澎湃 OS</h2><p>确认:① 备份已完成 ✅ ② 活动槽位 A ✅ ③ 电量充足 ✅</p><ol><li>平板保持 <strong>9008 模式</strong>连接电脑(如果中途重启过,重新进 9008 并<strong>重新发送引导</strong>)。</li><li>工具箱点击 <strong>「xml批量刷入」</strong>(批量模式&#x2F;刷完自动重启按提示选择)。</li><li>第一弹窗:选择 <strong>全部 6 个 rawprogram</strong>——<code>images\rawprogram0.xml</code> ~ <code>rawprogram5.xml</code>(多选,一次全选上)。</li><li>第二弹窗:选择 <strong>全部 6 个 patch</strong>——<code>patch0.xml</code> ~ <code>patch5.xml</code>。</li><li>工具自动读取设备信息 → 开始刷写。进度窗口会显示百分比:<ul><li><code>super.img</code> 22GB 是大头,<strong>整体预计 20~60 分钟</strong>(USB2.0 9008 速度)。</li><li>期间绝对不要碰线、不要让电脑休眠。</li></ul></li><li>全部完成会提示 <code>9008刷机完成</code>,并自动执行 <code>setbootablestoragedrive</code>。</li><li>刷完平板会重启(或长按电源键 10 秒强制重启)。</li></ol><blockquote><p>⚠️ 报错排查见第九章。若中途失败,不要慌:重新进 9008 → 重发引导 → 重新执行 xml批量刷入 即可,9008 模式下可以无限重来。</p></blockquote><hr><h2 id="八、首次开机前:清除数据(必做!)"><a href="#八、首次开机前:清除数据(必做!)" class="headerlink" title="八、首次开机前:清除数据(必做!)"></a>八、首次开机前:清除数据(必做!)</h2><blockquote><p>作者原话:”首次刷入一定要恢复出厂或者手动清除userdata&#x2F;metadata”。<br>本包不写入 userdata&#x2F;metadata(保护你的数据分区结构),但 ZUI 的旧加密数据和新系统不兼容,<strong>不清数据必然卡开机&#x2F;无限重启</strong>。</p></blockquote><p>方法一(推荐,图形界面):</p><ol><li>平板重启时按住 <strong>音量下 + 电源键</strong> 进入 fastboot(若进了 recovery 则在 recovery 里选重启到 bootloader)。</li><li>音量键选择 <strong>Recovery Mode</strong>,电源键确认 → 进入澎湃 Recovery。</li><li>选择 <strong>清除数据 → 恢复出厂(清除全部数据)</strong>,确认等待完成。</li><li>返回重启设备。</li></ol><p>方法二(命令行):</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># fastboot 模式下(你已解 BL)</span></span><br><span class="line">fastboot -w</span><br></pre></td></tr></table></figure><p><code>fastboot -w</code> 会格式化 userdata + metadata,等效恢复出厂。</p><p>方法三(还在 9008 时):工具箱「恢复出厂」功能(lenovo 方案,写 misc 后自动重启进出厂重置流程)。</p><hr><h2 id="九、开机与验证"><a href="#九、开机与验证" class="headerlink" title="九、开机与验证"></a>九、开机与验证</h2><ol><li><p>确认 fastboot 下活动槽位(第五章 4.2 若没做过,现在做):</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">fastboot getvar current-slot → 必须是 a</span><br><span class="line">fastboot --set-active=a → (若不是)</span><br></pre></td></tr></table></figure></li><li><p><code>fastboot reboot</code> 或长按电源键开机。</p></li><li><p><strong>首次开机较慢(5~15 分钟)</strong>,澎湃 LOGO 转圈属于正常,耐心等。</p></li><li><p>跳过&#x2F;登录小米账号,进入桌面。</p></li></ol><h3 id="验证清单"><a href="#验证清单" class="headerlink" title="验证清单"></a>验证清单</h3><table><thead><tr><th>检查项</th><th>方法</th><th>预期</th></tr></thead><tbody><tr><td><strong>序列号</strong></td><td><code>设置 → 关于平板 → 序列号</code>,与第三章记录的比对</td><td><strong>完全一致</strong>(proinfo 未被动过)</td></tr><tr><td>指纹录入</td><td>设置 → 指纹</td><td>正常录入解锁</td></tr><tr><td>亮度&#x2F;自动亮度</td><td>拉动亮度条</td><td>正常,无跳变</td></tr><tr><td>WiFi&#x2F;BT</td><td>连接测试</td><td>正常</td></tr><tr><td>游戏助手</td><td>进游戏横屏侧滑</td><td>性能调节&#x2F;旁路充电生效</td></tr><tr><td>扬声器&#x2F;杜比</td><td>播放视频</td><td>无爆音</td></tr></tbody></table><blockquote><p>作者提醒:<strong>不要卸载或覆盖安装 <code>com.miui.securitycenter</code>(手机管家)和 <code>com.miui.securityguard</code></strong>,游戏助手、触控调节等功能都集成在里面,卸了就失效。</p></blockquote><hr><h2 id="十、可选:Root(不想要-Root-直接跳过本章)"><a href="#十、可选:Root(不想要-Root-直接跳过本章)" class="headerlink" title="十、可选:Root(不想要 Root 直接跳过本章)"></a>十、可选:Root(不想要 Root 直接跳过本章)</h2><p>作者专门做了 <strong>免 Root 过认证</strong>(不刷 root 可三绿&#x2F;过春秋检测),所以:</p><ul><li>在意银行&#x2F;支付类 App 检测 → <strong>建议先别刷 root</strong>,稳定用一段时间再说。</li><li>确定要 root → 包里已备好全套:</li></ul><ol><li>平板进 fastboot,刷入已修补的内核:<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">fastboot flash boot boot.img (包根目录下的 boot.img,SukiSU 预修补)</span><br><span class="line">fastboot reboot</span><br></pre></td></tr></table></figure></li><li>安装 <code>ReSukiSU_v4.1.0_34965-arm64-v8a-release.apk</code>,打开授权管理即完成。</li><li>若刷 root boot 后卡开机:进 fastboot 用 <code>fastboot flash boot</code> 刷回第六章备份的 <code>boot_a</code> 即可还原。</li></ol><blockquote><p><strong>关于这个 boot.img 的验证结论</strong>(已解包核实):它是 SukiSU Ultra 官方 GKI 通用内核(含 SUSFS,构建于 GitHub CI),<strong>不是</strong>作者基于本包镜像定制的设备专属 boot;其 KMI 为 <code>6.6.118-android15-8</code>(GKI 内核模块接口版本),与包内系统内核<strong>同 commit、同构建号、同时间戳</strong>,GKI 机制下可安全搭配本 ROM 使用。DTB 为 Google GKI 通用设备树,靠 dtbo overlay 匹配本机,属 GKI 刷内核的标准形态。如果想要更保守的做法,可改用 SukiSU 管理器(安装 ReSukiSU APK 后”安装到未使用的槽位&#x2F;直接安装”)对<strong>本包原装 boot.img 自行修补</strong>后再刷。</p></blockquote><p>(也可以用 9008 工具箱「刷入单个分区」:选 boot.img + <code>rawprogram4.xml</code>,效果等同)</p><hr><h2 id="十一、常见问题与救砖"><a href="#十一、常见问题与救砖" class="headerlink" title="十一、常见问题与救砖"></a>十一、常见问题与救砖</h2><table><thead><tr><th>现象</th><th>原因</th><th>处理</th></tr></thead><tbody><tr><td>9008 端口不出现&#x2F;显示 QHSUSB_BULK</td><td>驱动未装好</td><td>重装高通 QUD 驱动;换 USB 口;换线</td></tr><tr><td>发送引导失败 &#x2F; Sahara 卡死</td><td>用错了引导(legion-y700-5 是五代用的)、EDL 会话卡死</td><td>必须用 <code>images\xbl_s_devprg_ns.melf</code>;等待 HELLO 时一条超时警告是正常的;报失败后直接重发引导,多次失败才强制重启重进 9008;换后置 USB2.0 口;关闭杀软</td></tr><tr><td>刷写&#x2F;回读中途报 <code>You forgot to send DeviceProgrammer first</code></td><td>firehose 会话中断(设备退回 EDL 待引导状态)</td><td><strong>不用重启平板</strong>,直接重新「发送引导」(选同一个 melf)即可恢复(作者日志同款场景实测有效)</td></tr><tr><td>xml批量刷入中途失败</td><td>USB 抖动&#x2F;休眠</td><td>重新进 9008 → 重发引导 → 重刷,可无限重来</td></tr><tr><td>刷完卡开机&#x2F;无限重启</td><td>没清 userdata(最常见)</td><td>回第八章清数据;确认槽位是 a</td></tr><tr><td>刷完进的是旧系统</td><td>活动槽位是 b</td><td>fastboot 下 <code>fastboot --set-active=a</code> 重启</td></tr><tr><td>序列号丢了(理论上不会发生)</td><td>手贱刷了别的全量包&#x2F;勾了全部擦除</td><td>用第六章备份,工具箱「刷入单个分区」回刷 <code>proinfo</code>、<code>lenovolock</code></td></tr><tr><td>彻底黑砖</td><td>极少见</td><td>9008 仍可识别(Y700 四代未加密)→ 重发引导 → 用<strong>自己的全分区备份</strong> xml批量刷入 整机还原;或刷联想官方 ZUI 9008 包</td></tr><tr><td>想回 ZUI</td><td>—</td><td>找官方 ZUI 线刷包,用本教程同一套工具刷入(同样先备份)</td></tr></tbody></table><p><strong>终极后悔药</strong> &#x3D; 第六章的完整备份 + 本工具箱。只要备份在,Y700 四代软件层面没有救不回来的砖。</p><hr><h2 id="附录-A:本包实际写入的分区清单(已逐行验证)"><a href="#附录-A:本包实际写入的分区清单(已逐行验证)" class="headerlink" title="附录 A:本包实际写入的分区清单(已逐行验证)"></a>附录 A:本包实际写入的分区清单(已逐行验证)</h2><table><thead><tr><th>LUN</th><th>实际写入(filename 非空)</th><th>跳过(filename&#x3D;””,保护性不动)</th></tr></thead><tbody><tr><td>0</td><td>lenovocust、lenovoraw、<strong>super</strong>、vbmeta_system_a、GPT</td><td>proinfo★、lenovolock★、ssd、persist★、keystore、frp、metadata、userdata</td></tr><tr><td>1</td><td>xbl_a、xbl_config_a、multiimgqti_a、multiimgoem_a、apdp、GPT</td><td>—</td></tr><tr><td>2</td><td>apdpb、GPT</td><td>xbl_b、xbl_config_b、multiimgqti_b、multiimgoem_b</td></tr><tr><td>3</td><td>ddr(写零)、GPT</td><td>cdt</td></tr><tr><td>4</td><td>uefi_a、aop_a、aop_config_a、tz_a、hyp_a、modem_a、bluetooth_a、abl_a、dsp_a、keymaster_a、spuservice_a、boot_a、devcfg_a、qupfw_a、vbmeta_a、dtbo_a、uefisecapp_a、imagefv_a、shrm_a、cpucp_a、featenabler_a、vendor_boot_a、qweslicstore_a、recovery_a、xbl_ramdump_a、init_boot_a、cpucp_dtb_a、pvmfw_a、soccp_debug_a、soccp_dcd_a、pdp_a、pdp_cdb_a、toolsfv、logfs、storsec、GPT</td><td>全部 <em>b 槽、devinfo★、qmcs、uefivarstore、secdata、spunvm★、dpm、connsec、tzsc、mdcompress、xbl_sc</em>*</td></tr><tr><td>5</td><td>GPT</td><td>modemst1★、modemst2★、fsg★、fsc★</td></tr></tbody></table><p>★ &#x3D; 与序列号&#x2F;设备身份&#x2F;校准直接相关的分区,全部处于保护状态。</p><h2 id="附录-B:参考来源"><a href="#附录-B:参考来源" class="headerlink" title="附录 B:参考来源"></a>附录 B:参考来源</h2><ul><li>刷机包作者原话(酷安):9008 刷入;刷前务必备份底层;首次刷入必须恢复出厂或手动清除 userdata&#x2F;metadata</li><li>ROM乐园《联想拯救者Y700四代平板解锁BL+TB322Fc获取root救砖教程》:Y700 全系列支持 9008 救砖降级,暂未进行端口加密;SN 位于 fastboot SERIAL NUMBER</li><li>ROM基地《TB322FC 降级&amp;刷国际版教程》:高通 9008 机型严禁勾选”全部格式化”,否则丢失 IMEI&#x2F;SN 不可逆</li><li>高通官方 QFIL&#x2F;QPST 资料:EDL 模式原理、Partition Manager 备份恢复、常见报错处理</li></ul><hr><p><em>教程生成于 2026-09-08,基于对刷机包内容的实际逆向验证。刷机有风险,备份保平安。</em></p>

各种 AI 工具来来回回切模型太麻烦?Bifrost 自建 AI 网关,实现模型切换自由

2026-09-01 12:00:00

<p>一直有个烦恼,AI 模型提供商太多,一会这个限免,一会那个涨价,所以经常要给 OpenCode、OpenClaw、WorkBuddy 等等各种客户端配置模型 API,家里电脑配一遍,单位笔记本又配一遍,Mac mini 上再配一遍,每次切换模型都要至少配 9 遍,是不是很烦?前段时间认识了 OrcaRouter,号称可以输入自己的 key,充当免费的代理,但他们的服务器在国外,多层转发就要慢半拍,也不知道模型 key 交给他们安不安全,于是我就在想,我能不能搭个自己的 AI 网关来实现这个功能?我一共试了三个方案,分别是 New API、OmniRoute、Bifrost,最终选定了 Bifrost。</p><p><strong><a href="https://github.com/QuantumNous/new-api">New API</a></strong>:功能大而全,适合搭建付费中转站,还需要单独部署一个数据库,个人使用也可以,有点太重了,用不了那么多功能。<br><strong><a href="https://github.com/diegosouzapw/OmniRoute">OmniRoute</a></strong>:适合个人使用,特点是能接入许多免费模型 API,适合不想花钱,用量不多的人,界面的 AI 味儿挺浓的。<br><strong><a href="https://github.com/maximhq/bifrost">Bifrost</a></strong>:企业级,界面简洁,宣称是最快的企业级 AI 网关,资源消耗很小(大约 200MB 内存)。</p><span id="more"></span><h3 id="部署-Bifrost"><a href="#部署-Bifrost" class="headerlink" title="部署 Bifrost"></a>部署 Bifrost</h3><p>我直接通过 Docker 部署到了 Mac mini,并绑定了公网域名。</p><p><img src="/gallery/2026/bifrost-router/1788236995820.webp" alt="Containers"></p><p>如果你也有 Docker,可以跟我一样用以下配置启动。</p><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">services:</span></span><br><span class="line"> <span class="attr">bifrost:</span></span><br><span class="line"> <span class="attr">image:</span> <span class="string">maximhq/bifrost</span></span><br><span class="line"> <span class="attr">container_name:</span> <span class="string">bifrost</span></span><br><span class="line"> <span class="attr">restart:</span> <span class="string">on-failure:3</span></span><br><span class="line"> <span class="attr">volumes:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./bifrost:/app/data</span></span><br></pre></td></tr></table></figure><h3 id="配置公网安全访问"><a href="#配置公网安全访问" class="headerlink" title="配置公网安全访问"></a>配置公网安全访问</h3><p>如果服务部署到公网服务器,必须到 Settings - Security 下打开 Enforce Virtual Keys on Inference(所有请求必须带 key),打开 Allow Direct API Keys(支持通过请求头传 key),打开 Password protect the dashboard(需要密码才能访问管理后台),并给管理后台设置一个用户名密码。如果需要通过浏览器调用模型接口,Allowed Origins 跨域保护要设置成自己的域名。</p><p><img src="/gallery/2026/bifrost-router/1788137852633.webp" alt="Security"></p><h3 id="配置模型接口"><a href="#配置模型接口" class="headerlink" title="配置模型接口"></a>配置模型接口</h3><p>到 Models - Model Providers 下配置模型接口。</p><p><img src="/gallery/2026/bifrost-router/1788137793999.webp" alt="Model Provider"></p><p>先点 Add New Provider - Custom provider 添加模型接口地址(注意地址不带 <code>/v1/chat/completions</code>),然后点 Add new key 添加模型 key,添加好 key 后,点 Refresh model list 刷新,如果刷新成功(Model list refreshed)就说明地址和 key 没有问题。我这里直接加了 6 个,阿里云百炼、DeepSeek、GMI Cloud、OpenRouter、OrcaRouter、小米 MiMo。</p><h3 id="配置-Virtual-Keys"><a href="#配置-Virtual-Keys" class="headerlink" title="配置 Virtual Keys"></a>配置 Virtual Keys</h3><p>到 Governance - Virtual Keys,点 Add Virtual Key,创建一个模型 key,Name 随便填,Provider Configurations 里面全选。</p><p><img src="/gallery/2026/bifrost-router/1788249669686.webp" alt="Add Virtual Key"></p><p>创建以后我们就可以用创建的 key 来调用网关的模型接口了。</p><h3 id="配置模型路由"><a href="#配置模型路由" class="headerlink" title="配置模型路由"></a>配置模型路由</h3><p>到 Models - Routing Rules,按照自己的习惯,创建路由规则。我给自己使用的模型分成了四种,免费(free)、快速(flash)、专业(pro)、视觉(vision)。</p><ul><li>免费模型用于<strong>简单任务</strong>,例如读取文件,目前在用 HY3。</li><li>快速模型用于<strong>日常任务</strong>,例如个人助理、智能家居等,目前在用 MiniMax-M3。</li><li>专业模型用于<strong>编码任务</strong>,目前在用 MiMo V2.5 Pro。</li><li>视觉模型用于<strong>图片理解</strong>,例如设计图识别,目前在用 Qwen3.8 Max。</li></ul><p><img src="/gallery/2026/bifrost-router/1788232484072.webp" alt="Routing Rules"></p><p>例如我们要添加一个模型路由 “free” 重定向到 HY3 模型,先在 Rule Name 中填入 free,再点击 Rule Builder 下方的 Add Rule,选择 <code>Model</code>、<code>=</code>,再输入 free,拉到最底选择 <code>Create &quot;free&quot;</code>。</p><p><img src="/gallery/2026/bifrost-router/1788233433838.webp" alt="Rule Builder"></p><p>再在 Routing Targets 中选择 HY3 模型。</p><p><img src="/gallery/2026/bifrost-router/1788233526661.webp" alt="Routing Targets"></p><p>最后 Save Rule 保存即可。</p><h3 id="测试模型调用"><a href="#测试模型调用" class="headerlink" title="测试模型调用"></a>测试模型调用</h3><p>接下来,只需要将 AI 客户端的模型 API 配置到网关的地址,模型 ID 配置成路由的名字,就能一劳永逸啦!之后想要切换模型提供商、模型,都只需要在网关中操作即可(配置模型接口、给 Virtual Keys 加 Provider 权限、修改模型路由,重定向到新的模型)。</p><p><img src="/gallery/2026/bifrost-router/1788233036151.webp" alt="测试模型调用"></p>

跨域预检请求失败问题分析

2026-08-19 14:30:00

<h2 id="问题描述"><a href="#问题描述" class="headerlink" title="问题描述"></a>问题描述</h2><p>浏览器发送 OPTIONS 预检请求后,Nginx 返回了 204 响应,且 <code>Access-Control-Allow-Headers</code> 设置为 <code>*</code>,但浏览器仍然报错:</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">Access to XMLHttpRequest at &#x27;http://.../api/...&#x27;</span><br><span class="line">from origin &#x27;http://...&#x27; has been blocked by CORS policy:</span><br><span class="line">Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.</span><br></pre></td></tr></table></figure><span id="more"></span><h2 id="根因分析"><a href="#根因分析" class="headerlink" title="根因分析"></a>根因分析</h2><h3 id="W3C-Fetch-规范限制"><a href="#W3C-Fetch-规范限制" class="headerlink" title="W3C Fetch 规范限制"></a>W3C Fetch 规范限制</h3><p>根据 <a href="https://fetch.spec.whatwg.org/#cors-preflight-fetch">W3C Fetch Standard</a> 规范:</p><blockquote><p>When <strong>credentials mode is “include”</strong>(即 <code>Access-Control-Allow-Credentials: true</code>),the following headers must <strong>NOT</strong> use wildcard <code>*</code>:</p><ul><li><code>Access-Control-Allow-Origin</code></li><li><code>Access-Control-Allow-Headers</code></li><li><code>Access-Control-Allow-Methods</code></li></ul></blockquote><p><strong>简而言之:<code>Access-Control-Allow-Credentials: true</code> 与通配符 <code>*</code> 互斥。</strong></p><h3 id="问题响应示例"><a href="#问题响应示例" class="headerlink" title="问题响应示例"></a>问题响应示例</h3><figure class="highlight http"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attribute">Access-Control-Allow-Credentials</span><span class="punctuation">: </span>true ← 要求明确列出允许的值</span><br><span class="line"><span class="attribute">Access-Control-Allow-Headers</span><span class="punctuation">: </span>* ← 通配符,浏览器直接忽略并拒绝</span><br><span class="line"><span class="attribute">Access-Control-Allow-Methods</span><span class="punctuation">: </span>* ← 同上</span><br></pre></td></tr></table></figure><p>浏览器检测到 credentials 模式下 <code>Allow-Headers</code> 为 <code>*</code>,认为这是一个无效的 CORS 响应,因此拦截了实际请求。</p><h2 id="修复方案"><a href="#修复方案" class="headerlink" title="修复方案"></a>修复方案</h2><p>将 Nginx 配置中的通配符替换为显式列举的值:</p><h3 id="修改前"><a href="#修改前" class="headerlink" title="修改前"></a>修改前</h3><figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="attribute">add_header</span> Access-Control-Allow-Methods <span class="string">&quot;*&quot;</span> always;</span><br><span class="line"><span class="attribute">add_header</span> Access-Control-Allow-Headers <span class="string">&quot;*&quot;</span> always;</span><br></pre></td></tr></table></figure><h3 id="修改后"><a href="#修改后" class="headerlink" title="修改后"></a>修改后</h3><figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="attribute">add_header</span> Access-Control-Allow-Methods <span class="string">&quot;GET, POST, PUT, DELETE, OPTIONS, PATCH, HEAD&quot;</span> always;</span><br><span class="line"><span class="attribute">add_header</span> Access-Control-Allow-Headers <span class="string">&quot;content-type, authorization, x-requested-with, x-custom-header, accept, origin&quot;</span> always;</span><br></pre></td></tr></table></figure><h2 id="参考资料"><a href="#参考资料" class="headerlink" title="参考资料"></a>参考资料</h2><ul><li><a href="https://fetch.spec.whatwg.org/#cors-preflight-fetch">Fetch Standard - CORS Preflight</a></li><li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials">MDN - CORS: Access-Control-Allow-Credentials</a></li><li><a href="https://caniuse.com/cors">Can I Use - CORS</a></li></ul>

谨慎选择京东云

2026-08-07 10:30:00

<p>贪便宜买的三年京东云,年年都能给你整点不一样的惊吓😂。阿里云腾讯云用了十来年都没碰到过一次糟心事。</p><p>2023 年 10 月买的京东云轻量云主机,有效期 3 年。</p><p><img src="/gallery/2025/fk-jdcloud/1786069127773.webp"></p><p>2024 年 3 月,发现硬盘 I&#x2F;O 严重问题,最低时仅有 3MB&#x2F;s,可以看我之前发的<a href="https://www.imaegoo.com/2024/jdcloud-bench/">这篇文章</a>,即使后来客服给换成了 SSD,也只达到勉强能用的 60MB&#x2F;s,不是哥们,我家监控的 TF 卡都比这个快…</p><span id="more"></span><img src="/gallery/2025/fk-jdcloud/1786069176818.webp" style="max-height: none"><p>2025 年 7 月,服务不可用长达 18 个小时,补偿是延长 6 天有效期?</p><img src="/gallery/2025/fk-jdcloud/1786069207717.webp" style="max-height: none"><p><img src="/gallery/2025/fk-jdcloud/1786069846634.webp"></p><p>2026 年 8 月,突然通知月底前必须完成备案,否则拦截请求,而备案又要求云主机有效期大于 3 个月,此时距离我这台云主机到期还有 2 个月又 25 天,意思就是不续费剩下两个月别想用了。</p><p><img src="/gallery/2025/fk-jdcloud/1786069231909.webp"></p><p><img src="/gallery/2025/fk-jdcloud/1786069516716.webp"></p><p><img src="/gallery/2025/fk-jdcloud/1786069617349.webp"></p><p><img src="/gallery/2025/fk-jdcloud/1786069584056.webp"></p><hr><p>后续:客服给了一个备案授权码,正在完成备案。</p>

浏览器直接访问正常,过了负载均衡就崩了?只因响应头里多了个空格

2026-05-23 09:30:00

<p>分享一个今天的生产问题,某系统直接访问正常,经过负载均衡就报连接被重置 <code>Connection Reset</code>,在机房查了两个多小时,最后发现是后端 Java 设置响应头的时候 <code>setHeader(&quot;Expires &quot;, xxx)</code>,Expires 后面多打了一个空格,导致响应头不符合 HTTP Header 规范(<code>key: value</code>),负载均衡处理不了这种不规范的响应头,直接丢包了。</p><p>排查过程难就难在,浏览器有容错,所以直接连接后端就没问题,也没有任何警告,后端也没有任何报错,负载均衡也没有任何报错,排除了一圈感觉谁都没问题,问 AI 也没用,这多的一个空格在响应头里,浏览器 Network 看不到,不用抓包工具根本发现不了,所以把这段经验分享给大家。</p>

Claude Code 怎样快速消耗 token

2026-05-21 18:30:00

<p>领导要求每人每周至少用 1 亿 token。但给的模型又太笨,参数 35B-A3B,上下文不到 100K,干啥啥不行,我人工去优化它生成的垃圾代码,还不如我自己写一遍快,不用又要被谈话。结果就是会用 AI 的人看不上,不会用 AI 的人用不上。因为一些没办法明说的原因,这考核指标又不是说取消就能取消的(以前还考核过代码行数、AI &#x2F; 人工代码占比,结果就是鼓励写重复冗余的垃圾代码)。那要怎样才能让 Claude Code 快速刷够 1 亿 token 呢?开个 Claude Code 窗口发</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/loop 1m 读取本项目中的所有源码,逐一进行详细总结,然后生成一份全面的架构分析报告,包含优缺点评估以及重构建议。</span><br></pre></td></tr></table></figure><p>这样跑几个小时就有了。</p>