menu Chancel's blog
rss_feed
Chancel's blog
有善始者实繁,能克终者盖寡。

Android手机刷入魔趣系统实践

作者:Chancel Yang, 创建:2021-11-29, 字数:3701, 已阅:1881, 最后更新:2024-03-10

1. 背景

最近想对一款本地软件做修改,发现相较于IOS的越狱而言,Android手机先天开放性要强大易上手的多了

刚好手头有一台一加6,那么刷入一个第三方系统再刷入EdXposed后可以干的事情就很多很多了

  • APP的逆向破解
  • 自动化某些固定操作(例如蚂蚁森林快速收取能量)
  • 模拟位置(钉钉打卡)
  • 钛备份的强制备份还原
  • 微信/钉钉等软件的信息防撤回
  • ...

Tip:刷机有风险,数据风险尤其大,不建议在任何有支付场景的手机上使用非官方ROM,也切勿用于违法用途

2. 基本信息

在做到上述的那些功能之前,我们来明确一下几个基础知识,对于Android手机来说,存在以下几个知识

  • Bootloader:俗称BL锁,在内核运行之前启动,对应PC的引导程序,如果BL被厂商锁定,则无法刷任何第三方ROM,厂商出于安全考虑通常会锁住Bootloader区。
  • Recovery:本质上是一个极小的操作系统,用于系统故障时切换到Recovery模式方便进行一些特殊操作如更换操作系统、备份手机数据等,官方自带的Recovery通常只能刷入官方ROM,第三方的ROM通常使用TWRP刷入,官方网址:https://twrp.me/ ,可在官网寻找你的机器第三方Recovery
  • Fastboot:可以理解为与Bootloader交互的一组程序,用于刷入Recovery、官方ROM等特殊操作,在机器变砖、刷入Recovery时通常需要依赖于这种操作方法

第三方ROM

  • AOSP:谷歌主持的一个开源项目,国内不少UI都是基于AOSP的定制版(Android Open-Source Project)
  • LineageOS:曾经深受欢迎的定制ROM CyanogenMod继承者,也是目前最受国外欢迎的一款定制ROM
  • Pixel Experience:看名字就知道是模仿Google Pixel系列的定制ROM,包含了Google全家桶以及一些Pixel自带的软件(如启动器、主题、自体、动画等)
  • Evolution X:模仿Google Pixel系列的定制ROM
  • 魔趣:国产的开源ROM,适配国内手机速度快范围广
  • ...

现在追求刷机的多是2个用途,分别是不可描述的app破解或者是为了使用一些定制化模块

如对这方面有兴趣,可以去搜索有关EdXposed和Magisk的教程

  • EdXposed:Xposed的继任者,Xposed在Android8.0后支持非常少,EdXposed作为一个Magisk的模块继承了原本Xposed庞大的第三方库与相关的开发工作,继续支持8.0以后的Android版本
  • Magisk:Android root之后需要一个Root管理器,在这方面,Magisk有着无与伦比的优势,具体可以参考官网What is magisk? - magisk.me

Tip:Using Magisk, you can not only root your phone, but even you will also be able to enjoy tons of other features like MagiskSU, Magisk Hide, and manage root permissions for the third-party apps, etc. The great part of magisk is that you can root Android and enjoy custom MODs while untouching and hampering with Google Play Services and other major inbuilt features. Magisk is known as a “systemless” root method because it does its job without touching system partition and boot partition. This is why Magisk is easy and safer than any other way of Android rooting. Magisk is now the most popular tool for rooting Android devices.

选择合适的第三方系统很重要,这里以魔趣为例子,如果对其他操作系统有兴趣也可以自行尝试,大致步骤是差不多的

3. 刷入步骤

硬件

  • 一加6 手机

软件

  • TWRP Recovery临时包与刷入包
  • 氧OS_9.0 官方原生底包(Android9.0)
  • 魔趣9.0卡刷包
  • 魔趣9.0 Root权限卡刷包

PC环境配置

  • 准备adb/fastboot环境

3.1. 环境准备

首先,电脑端需要支持adb 和 fastboot两个命令行程序

可以在下面的链接中找到适合自己的版本,如无特殊要求,则取最新版本即可

  • https://androidmtk.com/download-minimal-adb-and-fastboot-tool

也可以从博客分享链接中下载

  • https://cloudreve.chancel.ltd/#/s/jGFe

安装后打开程序如图

接下来我们需分别下载

  • 魔趣系统ROM与ROOt权限包:https://www.mokeedev.com/
  • TWRP Recovery:https://twrp.me/

以及具体手机的官方底包一个,通常来讲,第三方包的Android版本要跟底包版本一致则不易出错

3.2. 解锁Bootloader锁

手机是有Bootloader锁的,需先解锁,不同厂商的解锁方式不一样,有一些厂商也可能没有BL锁

大部分支持解BL锁的手机都只需手机设置-开发者选项-OEM引导选择开启即可,然后打开USB调试模式

重启到Fastboot

Bash
adb reboot bootloader

解锁BL

Bash
fastboot oem unlock

选择解锁选项,然后手机会自动重启

3.3. 刷入Recovery

解锁Bootloader后就可以刷入第三方Recovery了,这里推荐Twrp系列

TWRP.ME 中选择自己的设备,除了一些比较旧的机型,大部分机型都是采用A/B分区的Recovery了

刷入步骤

  1. 刷入临时Twrp(通常是一个img文件)
  2. 进入临时Twrp,将Twrp刷入A/B分区(通常是一个zip文件)

以一加6为例,我们进入Twrp 一加6下载 页面中,选择下载3.2.1-0版本的Twrp,一共2个文件

  • twrp-3.2.1-0-enchilada.img
  • twrp-installer-enchilada-3.2.1-0.zip

刷入步骤如下

Bash
adb reboot bootloader
fastboot boot twrp-3.2.1-0-enchilada.img

执行成功手机会进入Twrp界面,注意此时的Twrp仍是一个临时的状态,重启手机就会失效

我们将手机连接数据线用adb将文件推入手机存储中,再使用Twrp刷入即可(在Twrp界面默认是开启adb的)

Bash
adb push twrp-installer-enchilada-3.2.1-0.zip /sdcard/

推送成功后,在Twrp界面中选择该安装包刷入即可,到此Recovery刷入结束

Tip:如果不是A/B分区的,则只需刷入img文件重启即可

3.4. 刷入魔趣系统

刷完Recovery之后,可以在界面选择Reboot-Recovery来重启至永久的Recovery中

如果已经进入手机系统,则需要打开USB调试模式,用adb重启手机至Recovery模式

Bash
adb reboot recovery

之后选择魔趣的系统包刷入即可,刷入成功后看需要再刷入其Root包

4. 结尾

在2021年,刷机已经变得非常冷门的需求了,刷机已经成为了少数app定制环境的需要了

再不复当年Android4.0时代的刷机热潮了,现在连刷机定制ROM都非常稀少了


[[replyMessage== null?"发表评论":"发表评论 @ " + replyMessage.m_author]]

account_circle
email
web_asset
textsms

评论列表([[messageResponse.total]])

还没有可以显示的留言...
[[messageItem.m_author]] [[messageItem.m_author]]
[[messageItem.create_time]]
[[getEnviron(messageItem.m_environ)]]
[[subMessage.m_author]] [[subMessage.m_author]] @ [[subMessage.parent_message.m_author]] [[subMessage.parent_message.m_author]]
[[subMessage.create_time]]
[[getEnviron(messageItem.m_environ)]]