风险告知书
@soft_deprecation of “刷机必修一”
我突然发现,与其写一篇 all-in-one 的文章,不如多多引用其他教程。
此外,直接告诉新手大致框架并不适合作为小白教程。相反,其他网站提供的手把手教程能更好的帮助小白迈出第一步。
因此本篇文章将只用作基本的风险告知书和部分基础知识导航而存在。基础知识导航不一定局限于联想设备。
Step 0: 了解刷机用途和风险
用途
刷机是向设备刷入非官方适配的底层软件,可能可以获得功能增强和不同的使用体验。例如:
- 使用不同厂商的操作系统(ROM)
- 通过系统级的广告过滤工具杜绝烦人的开屏广告
- 加载表现优异的第三方性能调度器来提高游戏帧速率
- 劫持 ART (Android RunTime) 来修改上层 APP (实现防撤回)
- 其他非常多的用途...不管合法与否...
风险
刷机需谨慎
刷机需谨慎,安全不能丢。风险并非源于“刷机”本身,而是来自背景不明的系统包、不可信的工具、不规范的流程以及缺乏安全意识的操作。广大民众在追求极致的玩机体验时,更应注意保护信息及数据安全。查看原文 - 人民号
没有刷机操作是 100% 安全的,但是我们在此仍将“令所进行的操作尽可能稳定”作为目标。如果你认为这个观点是错误的,去本项目仓库发起 Issue ,然后直接跳转到 Step 1。
为了达成这个目标,必须先了解刷机风险。
解锁 Bootloader 后方可进行刷机,此操作有风险,过程中无法保留你的数据,务必提前做好备份。
TIP
对于部分有安全漏洞的设备可以不解锁 Bootloader 刷写经过处理的刷机包来实现刷机。早期的 Android 设备也可能可以直接刷机。
必须说明,使用这样的方法进行刷机是对安全漏洞的利用,且这个漏洞很可能不会被修复,请注意你的数据安全。
解锁 Bootloader 后,设备的多数安全防护措施将变得不可靠。如果设备遗失或者被尝试窥探信息的用户掌握,其中存储的数据将变得不安全,可能可以被随意读取、写入(和删除)。
解锁 Bootloader 之后设备绝大多数分区可以被自由刷写,很容易因为错误操作导致设备损坏(所谓的“变砖”)。
解锁 Bootloader 后可能无法正常安装系统更新。
解锁 Bootloader 会导致你的设备被认为“不可信”(比如可以按照“用途”中的说法修改欺骗上层 APP),设备可能被部分互联网厂商乃至制造商本身拒绝提供部分或者全部服务。例如:
- 难以获得购物平台的大额优惠券
- 部分金融支付类软件的指纹支付功能失效,例如微信、云闪付
- 游戏应用中容易被认为是使用外挂软件的用户,例如三角洲行动
- 临时或永久损坏设备级安全模块,造成安全支付等功能不可用,例如一加(刷入官方系统并锁定 Bootloader 后恢复)和三星(永久损毁)
- 无法使用便利功能,例如无法在小布建议中绑定国铁吉讯账号
解锁 Bootloader 后,根据不同厂商政策,你的保修可能失效。
刷写恶意或者未正确调整的第三方固件可能丢失重要的设备信息,例如:
- OPPO/一加/真我 设备的
ocdt分区被格式化会造成设备无法启动,且售后无法修复 - 联想设备存放在
persist分区中的串号丢失会造成 AI 服务无法使用、系统更新失效,如果persist被格式化将导致无法开机
- OPPO/一加/真我 设备的
第三方固件可能带来额外的 Bug ,例如:
- 平板的手写笔和键盘在第三方 ROM 下失效
- NFC 功能由于安全验证问题不可用
- 由于设备验证问题而不能使用厂商提供的强大定制相机
IMPORTANT
设备制造商不对安装的第三方固件的安全、性能等指标做任何保障,且原则上不为这些设备提供保修。如刷写第三方固件,不要向官方渠道反馈你遇到的 Bug 。
什么,还要继续吗?
那么请继续阅读本文的其余部分。
Step 1: 准备环境并解锁 Bootloader
这部分内容已经迁移。请转到 解锁 Bootloader 继续阅读。
Step 2: 刷写 Root
拥有 Root 权限相当于拥有了 Windows 的管理员账户,可以进行大多数关于系统底层的修改了。
如果您完全没有了解过刷机,可以考虑直接了解更现代的 KernelSU。如果您使用过 SuperSU ,可以尝试操作逻辑更接近的 Magisk :
| \ | Magisk | KernelSU | KernelSU Next | SukiSU Ultra | APatch |
|---|---|---|---|---|---|
| 优势 | - 兼容性好 - 内置 Zygisk - 授权直观 | - 元模块- 稳定安全 - 隐匿性好 - 精细授权 | - 元模块- 隐匿性好 - 个性化管理器 - 精细授权 | - 元模块- 隐匿性好 - 个性化管理器 - 精细授权 | - 极致隐藏 - 内核模块 |
| 劣势 | - 易被检测 | - 授权不直观 | - 授权不直观 | - bug 较多 - 授权不直观 | - 易被误伤 |
DANGER
免解锁用户如果不了解 AVB 签名请跳过本步剩下的文本。你需要跟随本站的其他教程,用已经处理好的镜像通过 9008 刷机。
- 确定可用的 Root 实现:
- 5.10 以下内核版本的设备:首选
Magisk。 - 5.10 及以上内核版本的设备:
Magisk,KernelSU和APatch任君选择。
TIP
关于确定内核版本,请参考 KernelSU - 安装 。
- 5.10 以下内核版本的设备:首选
- 得到
init_boot或boot镜像 ,通过下载系统包实现。
那么问题来了:如何确定应该使用 init_boot 还是 boot ?
答:
- APatch:
boot - Magisk / KernelSU LKM 模式:
- 出厂 Android 版本小于等于
Android 12,或者内核版本前两位小于等于5.10:boot; - 出厂为
Android 13及以上,或者内核版本前两位大于等于5.15:init_boot。
- 出厂 Android 版本小于等于
下载系统包:
- https://rom.oppo.help/ (小米、OPPO、vivo)
- https://xiaomirom.com/ (小米)
卡刷和线刷:卡刷包可用于直接更新系统,线刷包用于电脑刷机。这里只提取我们需要的镜像,因此下载哪个都可以。
下载完系统包之后将系统包解压,找到你需要的 boot.img 或者 init_boot.img 提取出来即可。
进阶玩法
还可以通过深度刷机模式和带有 Root 的 DSU 系统更新包获取需要的镜像。还有一个叫做 Payload Dumper Compose 的软件,它可以直接通过 全量 OTA 链接 读取我们需要的某个镜像,实现按需下载,节省流量和存储空间。
- 选择 Root 实现并安装:
- 方法 1: Magisk / Alpha / Kitsune Mask: Magisk 中文网
- 方法 2: KernelSU / KernelSU Next / SukiSU Ultra: 官方文档 或者 KernelSU 中文网
- 方法 3: APatch: APatch 中文网
> [!note] 需要更换新的 KPM 模块?
> 这个步骤将重新修补 `boot` 并刷入。如果你的设备是免解锁刷入的 APatch,应当将这个镜像重新签名然后再刷入。
>
> 注意这里的签名和 APatch 圈子中常说的签名不一样。
WARNING
就算没有深度刷机能力,到这一步你也可以备份用户数据了!详情参考dd命令 - 从入门到精通。你还可以利用 Shell 编写一个脚本实现分区备份的自动化。
Step 3: 玩机:基础必备模块
模块是一个压缩包,可以被 Magisk 、 KernelSU 等管理器安装,并提供对系统的修改。
为什么使用模块?
与上古时期用户在 Root 后手动修改系统文件相比,模块提供了以下优点:
- 统一管理,便于维护:用户不需要记忆每个修改的文件,管理器会记录所有安装的模块,如果需要停用更改,管理器会帮你完成一切,而不需要手动到每个目录替换文件。
- 挂载修改,破坏性小:利用
OverlayFS或者Magic OverlayFS,由模块提供的修改文件被覆盖到原始系统文件“上方”。- 可以这样理解:原始系统是一张写有内容的稿纸。
- 不使用模块进行修改,那么就需要用铅笔直接在原始内容上进一步勾画;如果要停用更改,就要小心翼翼地用橡皮擦掉,且有时还会出现意外事故,比如把纸擦破了(永久破坏硬件)或者擦到了其他原始内容(破坏了系统文件)。
- 使用模块进行修改,相当于在纸上添加了一块玻璃板,所有更改通过马克笔等形式在玻璃板上完成。虽然原稿会因为存在一块玻璃呈现些许不清晰(部分文件无法通过模块修改),但是如果需要移除更改,只需要挪走玻璃板。纸上的二维生命不会察觉到多数更改(如果他们能感觉光照强度,可能会觉得太阳变暗了 -> 指某些较为先进的环境检测软件)
- 整合文件,便于分发:所有的更改被整合到一个
zip文件中,不需要用户处理复杂的文件路径和权限。压缩后的文件体积更小,更适合网络分发。
模块的坏处?
- 细节被隐藏,不利后续维护:用户无法在出现问题后精确定位“更改哪个文件导致问题发生”,只能知道“刷了这个模块后问题出现了”。
- 模块间作用顺序不明确:可能出现“模块打架”(多个模块修改同一个文件,造成文件相关的行为不确定)
- 用户门槛降低,破坏用户设备变得更容易:用户只需要下载并刷入模块,潜在的消去了“下载并知道我所更改的每一个文件”的步骤,导致恶意代码容易藏身于模块中。且模块痕迹基本不残留在更改的文件中,导致作恶后难以追踪“幕后凶手”。案例 - zygisk.apk 事件
为了克服这些坏处,我们应该怎么做?
- 永远只从官方发布源下载模块,例如下载 Zygisk Next 应当访问他们的 GitHub Releases 页面(也就是这里)
- 不能确定模块的用途、适用环境和用法则不要刷入;
- 大道至简,少刷玄学模块,减少模块数量。
对于 TB710FU 的具体建议:
- Zygisk Next: 一切需要 Zygisk 框架的模块的基石
- LSPosed: 基于 Zygisk 的现代 XPosed 实现, 需要 Zygisk 模块,例如 Zygisk Next!!!
关于 LSPosed 2.0 的兼容性
LSPosed API 100 是个从来没有正式发布的版本,一些基于这个 API 等级开发的模块在 LSPosed 2.0 中将不受支持。如果需要 API 100 的支持,考虑使用 Vector 或者其他分支。
- 如果需要调度模块:吟惋兮维护的最新 uperf 模块。
- 如果需要隐藏 Root 痕迹:
- TEESimulator: 软件模拟 TEE 处理密钥认证方面的问题,下载:GitHub Releases
- TS Addon: 为 TEESimulator 提供方便的管理界面,下载:GitHub Releases
TIP
Zygisk Next 自 1.3.0 版本起整合了 Shamiko (曾经常用的一个 Root 隐藏模块)的绝大多数功能,对隐藏 Root 痕迹有所帮助。
如果是免解锁 Root 的设备可以不管隐藏 Root 痕迹一事。
Step 4: 玩机:Root 授权
Magisk 及其分支会在用户开启需要 Root 权限的 APP 时弹出申请 Root 权限的提示框。这和更早期的 SuperSU
以及 KingRoot 等方案一致。KernelSU 及其分支需要用户在 APP 中设置 Root 权限列表。
如果要为新安装的 APP 申请 Root 权限,最好重启管理器。
如果为正在运行的 APP 授予 Root 权限,可能需要重启应用才能生效。
KernelSU 及其分支还允许通过 APP Profile 精细控制应用的权限等级,详情参考KernelSU - APP Profile。
找不到需要授权的应用?
重启 Root 管理器一般可以解决问题。
Step 5: 出问题了怎么办?
- 保命技:强制重启,
电源键 + 音量下键(仅在小新 Pad Pro GT 上测试过)
TIP
事实上,如果你不确定强制重启的快捷键,可以直接按住 电源键 + 音量上键 + 音量下键 不放,直到屏幕熄灭后立即松手。
不过这么做有可能让你进入深度刷机模式。在深度刷机模式下屏幕也不会亮起,且需要特定的按键组合才能退出。因此不要盲目按住全部按键。
刷完模块不开机:
KernelSU 系列用户:按3次音量下进入 KernelSU 提供的安全模式,进入系统后关闭刚刚刷入的问题模块
较新的 Magisk 管理器用户和 APatch 用户:查找安全模式的按键组合并使用按键组合进入安全模式
有救砖模块:等待救砖模块作用;如果是音量键救砖,按模块说明方法操作进行救砖。
刷完系统不开机:
尝试回滚更改:刷入之前备份的底层或者没问题的刷机包。
还是不行?抱歉,需要具体情况具体分析。
执行脚本后不开机:
重新刷写稳定系统镜像。
被格机了?抱歉,有可能需要编程器或者授权刷机。如果可以的话尝试寻找售后协助。
怀疑中 Root 相关的病毒了?
卸载 Root ,刷回版本正确的原厂镜像而非只卸载管理器。
最好重新全新刷机,连用户数据都不一定能留了。
Step 6: 一些基本界面
这部分内容已经迁移。请转到 术语表 继续阅读。
还有什么需要知道的吗?
解锁是为了刷写未经认证的镜像。
获取 Root 的过程就是刷入一个经过第三方修改,可以和操作系统内应用程序交互的镜像。
解锁 BootLoader 或者想办法获得官方的签名,都能让修改过的镜像在设备上工作。