分享好友 最新动态首页 最新动态分类 切换频道
Android - Bootloader? root原理?Recovery? SuperSU?Magisk?Xposed?ROM包?这都啥玩意?
2024-12-26 23:53

整理了一些我了解 Android root 过程中看过的文章。
抽出了一些我觉得必要的部分写在这里,相信看完至少能对谈及的几个系统or框架有个宏观的了解。

Android - Bootloader? root原理?Recovery? SuperSU?Magisk?Xposed?ROM包?这都啥玩意?

解锁Bootloader

限制我们获取root权限的第一步是Bootloader锁。

手机开机时,最先运行的小程序就叫做bootloader(PC的BIOS+引导,我们用它来进行开机自检和初始化手机硬件,它会指引手机找到系统分区并启动操作系统,相当于电脑上的BIOS.

通过bootloader,我们可以启动正常的操作系统,也可以启动recovery系统(什么是recovery系统?下面讲

对bootloader解锁,意味着我们可以运行第三方的操作系统和recovery。

Bootloader的解锁方式有两种,官方解锁和强制解锁。

  • 很多手机厂商提供了官方解锁的方式,可以去手机官网发邮件或者通过论坛申请解锁boatloader
  • 但有些手机不支持官方解锁,我们有一些别的民间方法强制解锁,具体方法可以自行搜索

参考

  • 学会Root,让你的安卓更快更强(上
  • 学会Root,让你的安卓更快更强(下

熟悉 的童鞋都知道,我们只需要打上 的命令,就可以拥有管理员权限。

su是运行环境变量PATH下面的一个可执行文件,当任意软件运行su时,软件的权限就会被提升到Root权限。

未Root的安卓系统是没有su这个文件的所以Root一个手机,就是将su文件放入到系统运行环境变量PATH下面。 之后软件运行su程序,就可以提升到Root权限。

通常在PATH下的目录有:





一般把文件放到下

我们先来看一段古老的代码

 

(su即supersu,超级用户的缩写 r代表该文件可读,w代表可写,x代表可执行,-就代表没有该权限

这段代码的作用是获取root

可是若要修改system分区 就必须先获得ROOT权限 然而这段代码就是用来获取ROOT权限的 这样就进入了死循环。

聪明的开发者们想到了许多种方法

目前常见的方式有以下两种

  • 一键Root工具
  • 刷入第三方Recovery,再刷入SuperSU.zip/再刷入已经含有Root权限的ROM包

我们刚刚说过,Root一个手机,其实就是把su文件放入安卓系统文件夹/system/xbin

首先要解决的问题是安卓系统文件夹对于普通用户来说,只能读不能写。作为一个普通用户,我们是怎么将一个su文件放入系统文件夹呢。

方法就是,利用系统漏洞,将某一个进程提权到Root权限,并利用它将su文件放入到系统文件夹

一键Root就是使用的这种方法

  1. 首先利用系统漏洞获取某个进程的Root 权限
  2. 使/system/xbin/目录可写,并拷贝su到/system/xbin/
  3. 拷贝并安装Root权限管理器

下面说说一键Root的好处和坏处

  • 好处:简单,易懂好,操作
  • 坏处:很多机型无法Root,即使是同一个机型,效果也不稳定,有时候可以Root成功,有时候无法Root成功。甚至有时候软件显示成功,其实并没有成功。Root失败之后,还有可能导致死机,无法开机,变砖块等随机问题。

而且一键Root利用了手机的系统漏洞对进程提权放入su文件。随着安卓系统的发展,这些漏洞被逐渐修复,早期寻找系统漏洞的方式在大多数机器上无法被用。
这就是为什么刷机党们很少采用一键Root

今天,最常用的方法就是卡刷,安全高效,进入recovery执行代码。

我们先来复习一下

Root就是赋予手机管理员权限
本质就是将su程序放入手机系统文件夹下面
而难点在于系统文件夹没有管理员权限,可读不可写,我们无法轻而易举地把su文件放在里面
这时候,我们可以利用第三方的Recovery将su程序放入系统文件夹

什么是Recovery

一个安卓系统有以下不同的分区

  • 分区包含系统主体文件
  • 分区里放的是recovery.img 镜像文件
  • 分区包含APP的安装包APK文件和相应的数据
  • 分区包含缓存文件放在cache分区

Recovery像是一个独立的微型系统,可以不依赖于安卓操作系统主体单独运行。Recovery的中文名是恢复,顾名思义,当手机系统文件被损坏从而不能正常启动时,我们可以进入recovery小系统对主体系统进行修复。

手机正常启动时,我们进入的是普通的操作系统。但是通过手机厂商预设的组合键(通常是电源+音量加,我们可以进入recovery 系统。

进入recovery 系统之后,我们可以对安卓主体系统进行自由管理
但手机本身是自带厂商的官方recovery的,这个recovery功能较少,一般可以清除缓存,擦除所有数据,刷入官方指定的系统
如果我们有第三方的recovery ,就可以实现更多功能,例如调整分区大小,进行文件管理,还有刷入SuperSU.zip以及第三方的ROM 包。

目前最最好用的第三方Recovery叫做, 它是由国外android爱好者开发的一款工具 ,可以从以下网址下载
https://twrp.me/

但如果每个应用都拥有root权限,那手机还有什么安全可言

因此,出现了软件授权管理工具 SuperSU和Magisk 。

什么是SuperSU

SuperSU由国外大神开发,是全球用户都在用的授权管理软件

分为和两个版本。

  • ZIP为用户提供了Root的安卓设备的解决方案,市面上全部机型的Root权限获取与管理
  • APK主要功能是对已获得Root权限的设备进行进行权限管理。

到SuperSU 的官网,我们就可以看到apk文件和zip文件

SuperSU 的变味

参考

  • 还在用SuperSU权限管理器root手机?supersu v2.80或藏杀机
  • SuperSU殿堂级大神退役

由于SuperSU被收购和新兴框架的出现(Magisk提供的新的root解决方案,现在网上关于SuperSU的讨论基本停在了2017年末。

实在想试下,这篇文章值得参考: 如何用SuperSU和TWRP来root安卓手机

Magisk vs SuperSU

参考

  • Magisk vs SuperSU

在Android世界中,Magisk是新手,SuperSU是老手。这两种流行的工具可用于某些相同的事物,但是它们的工作方式截然不同。

  • 首先,让我们谈谈SuperSU如何获得root权限。SuperSU更改系统文件并将新文件添加到linux的系统分区。

    在Google加强安全性之前,这种方法一直有效,直到Android Marshmallow出现。修改系统分区会向尝试检测根目录的应用发送红色标记。Google SafetyNet是一个用于监视系统的API,如果检测到篡改,它将阻止某些应用程序运行。您不能将Google Pay或Netflix与SuperSU一起使用。修改系统后,您也不会获得任何 OTA(Over The Air Updates, 无线下载 )更新 。

  • Magisk被称为“systemless” root ,因为它不涉及任何这些系统文件。

    它修改启动分区,并保留了系统文件。这种修改只是虚拟地覆盖在原始文件上。当某些东西请求系统文件时,修改后的版本将被发送到magisk指定的位置。但是由于所有系统文件都是完整的,因此可以欺骗SafetyNet认为一切正常。应用仍然可以在有被root的手机上运行。

模组化
Magisk的一个功能是SuperSU不包含的。Magisk Manager应用程序允许用户对root权限进行管理,同时他还是一个模块库。“模块”是一些可以被安装的rom,可以做很多很cool的事情。

比如Active Edge自定义,表情符号替换,RAM管理修复,Camera2API启动器等等。

SuperSU没有内置模块,但是拥有root用户可以让您使用Xposed等其他框架来安装mod。

开源和闭源
两者之间的另一个大区别是开源与开源。SuperSU是封闭源,而Magisk是开放源。开源的伟大之处在于任何人都可以查看Magisk源代码。而SuperSU于几年前出售给一家名为CCMT的公司后就闭源了。有些人不喜欢使用陌生公司的封闭源软件不难理解。

毕竟Android是建立在开放源代码模型上的,这使很多人更喜欢Magisk的方法。(尽管大多数人不会去看他开源出来的代码。。

Magisk原理

参考

  • 每个 Android 玩家都不可错过的神器(一:Magisk 初识与安装

Magisk原理和下面要讲的Xposed很像。二者的工作机制都是「拦截」。

  • Xposed 通过劫持 Android 系统的 zygote 进程来加载自定义功能,这就像是半路截杀,在应用运行之前就已经将我们需要的自定义内容强加在了系统进程当中。

  • Magisk 则另辟蹊径,通过挂载一个与系统文件相隔离的文件系统来加载自定义内容,为系统分区打开了一个通往平行世界的入口,所有改动在那个世界(Magisk 分区)里发生,在必要的时候却又可以被认为是(从系统分区的角度而言)没有发生过。

它的魔力不止于 root

很多人对 Magisk 的初步认识可能是 root ——在 SuperSU 销声匿迹之后,它自然而然就成为了当前 Android 社区用来获取 root 权限的主流方式。

不过 Magisk 特殊的运作机制还赋予了它相较于 Android 平台其他定制工具而言独一无二的特质——。这种 systemless 特质让 Magisk 拥有了获取 root 权限之外的诸多优势

  • 一方面,得益于独特的挂载机制,使用 Magisk 时我们可以有针对性地隐藏 root,甚至暂时隐藏 Magisk 本身。

  • 另一方面,挂载系统的存在,也让 Magisk 拥有了多样的模块化生态系统。

既然用了「开外挂」的实现方式,那不妨就多挂载一些额外的东西,字体、音效、驱动……甚至 Xposed 本身。Magisk 提供了一个独立于系统分区以外的、可以随时隐形的「沙盒」,那自然不能将其才华禁锢于 root 这一件事上。在 Magisk 的模块仓库里,我们可以找到各式各样的模块(modules)来满足自己的定制化需求,借助这些模块,我们在 root 之后能做的事情其实也还有很多。

在这里的讨论语境下,Magisk 如何给人们留下「框架」这一认知误区的原因就浮出水面了。只是功能方面好不逊色的 Magisk,稳定性和上手门槛对大部分用户来说都更加友好。

如何安装 Magisk

作为一套复杂的文件系统,Magisk 的安装步骤却是十分简单。

视频:https://www.bilibili.com/video/BV14i4y1t7mS?from=search&seid=1656913929162768577

在电脑上配置好 adb 环境 并解开 Bootloader 锁后(自行搜索,如果你的设备有来自 TWRP 的官方支持,只需在打开 USB 调试后将手机与电脑相连,然后打开电脑端的命令行窗口

  1. 执行 进入 界面
  2. 执行 进入临时
  3. 在 中刷入你下载的 安装包

此时进入系统,你会发现你已经成功安装了 Magisk(如果显示没有安装则为获取失败,请检查操作过程重新尝试,但这还不够,我们还得进入 Magisk Manager,选择安装(install)——install——Direct Install(直接安装)才能将临时 root 转换为永久 root。

三星、华为等特殊机型的 Magisk 安装方法参见 Magisk 官方帮助文档。

卸载 Magisk 最为彻底的方式就是在 Magisk Manager 中点击「卸载」、「完全卸载」,应用会自动下载刷完 uninstall.zip 卸载包、自动卸载它自己、自动重启。如果你无法进入系统,在 TWRP 中手动刷入 uninstall.zip 卸载包即可。

至于哪些模块值得刷,就是完全看个人需求了。

Xposed原理

Xposed与root关系并不大

我们常常能看到自动抢红包插件 破解应用

这些软件的运行都需要Xposed框架

先上概念

原理:劫持Zygote进程及其创建的虚拟机,拿自己的app_process覆盖掉Android原生提供的文件,app_process在启动过程中会额外加载XposedBridge.jar这一个包,从而改变APP的运行结果。

(看不懂没关系 下面详解

Zygote进程:追溯到开机的一瞬间 【Zygote进程】在内部会先启动【Dalvik虚拟机】,加载一些必要的系统资源和系统。在系统启动脚本system/core/rootdir/init.rc文件中,我们可以看到启动【Zygote进程】的脚本命令

import /init.${ro.zygote}.rc

app_process:app的启动程序。 【zygote fork()】调用一个 【app_process】作为app的载体(细胞核叫一个蛋白质作为营养物质的载体,物质在载体上才能被运输,app也是一样,有载体才能顺利运行,xposed会把系统自带的【app_process】文件替换成【xposed app_process】

再来看一遍概念:劫持Zygote进程及其创建的虚拟机,拿自己的app_process覆盖掉Android原生提供的文件,app_process在启动过程中会额外加载XposedBridge.jar这一个包,从而改变APP的运行结果。

Xposed劫持了Zygote进程。原本是zygote调用【app_process】来运行程序,现在有了xposed后,zygote调用【被xposed替换后的app_process】来运行程序,使得程序在开启时,额外加载一个jar(可理解为游戏Mod,从而改变APP的运行结果。

什么是ROM包?

华为,小米,OPPO等都是安卓手机,但它们的系统又各不相同。
华为手机的系统叫做EMUI,小米手机的系统叫做MIUI, OPPO的操作系统叫做ColorOS。
但是,这些系统本质上都是基于安卓系统的,他们对安卓系统进行优化和定制化,加入自己特有的APP和服务。
比如我们看到很多华为手机出厂就自带华为APP,这些就是 定制化之后的安卓系统 , 这些安卓系统就叫做ROM包

ROM包(ROM image)只读内存bai镜像
ROM(Read-Only Memory)就是和RAM(Random Access Memory)一对的那个ROM

所谓的刷ROM或者刷机,指的就是重装手机操作系统。刷机的步骤主要分为以下三部

  1. 解锁bootloader
  2. 刷入第三方recovery
  3. 刷入SuperSU.zip 或者ROM包
最新文章
重磅通报“正宗南通长牌怎么开挂”玩家曝光开挂详情-知乎
您好:正宗南通长牌这款游戏可以开挂,确实是有挂的,咨询加微信【5722507】很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实
抖音直播的5种主流玩法
抖音直播的主流玩法有哪些,抖音是时下特别热门的营销平台,那么在直播方面有哪些主流玩法呢。一起来看看下面的介绍吧。1、 模式分析:兴趣电商+Tiktok选择联盟,即商家在选择联盟中选择高佣金产品,使用直播内容(如前文写的跑步)激发观
苹果手机最好用的浏览器【手机最好用的浏览器 知乎】
有时候我们在手机上看视频或听音乐时,遇到好的在线资源想下载回来,这时就需要用到嗅探功能去找到资源的真实地址,再把它下载到手机里。带有这种功能的浏览器在安卓系统的手机里比比皆是,但苹果手机里却是凤毛麟角,不是功能不够好,就是
耐克300亿美元买来的教训:品牌没效?不,是你做品牌的方式失效了
前些天我去上海出差,见了我的好朋友苗庆显老师,苗老师最近金句频出,他说:"自从有了成熟的品牌理论,就很少诞生伟大品牌了"。正好,最近又有另一位好朋友王赛老师发了条消息,他说呼吁了多年将"Marketing"译为"营销"是一个失误,目前学
白板标注器
直播讲课画笔标注工具白板标注器直播讲课工具,占用空间小;网课标注工具,操作简单,界面简洁;线上会议重点标注,用途广泛,开启快速;主播都在用,赶紧下载吧! 51下载站提供白板标注器app官方版下载地址,有需要的用户可免费下载使用!
肠炎和直肠炎的区别是什么
肠炎和直肠炎的区别在于病变部位、病因、症状、治疗方法以及预后情况。1.病变部位肠炎指的是整个肠道出现炎症反应,包括小肠和大肠。而直肠炎仅涉及直肠末端部分。2.病因肠炎可能由病毒、细菌感染或食物不耐受引起,如轮状病毒感染、志贺菌
聊天被诬陷性骚扰犯法吗
一、聊天被诬陷性骚扰犯法吗在交流过程中受到指控涉嫌性骚扰,然而仅凭恶意的指责而缺乏实际行为作为支撑,此种情况并不符合犯罪构成要件。若该项诬告最终导致指控者承受了不当的制裁或名誉受到了实质性的伤害,那么诽谤者则有可能就其恶意
苹果哪款手机拍照效果最好?苹果十大最佳拍照手机排名
苹果当中拍照好的手机很多,苹果十大最佳拍照手机排名为:iPhone SE 2020,iPhone 12 Pro,iPhone 11,iPhone SE 2,iPhone 6S Plus,iPhone 6S,iPhone12 Pro Max,iPhone 12 mini,iphone 12,iPhone 13 mini,这十款苹果手机是目前拍照
联想笔记本电池驱动(联想笔记本进BIOS按什么键)
1. 引起读者的注意在现代社会中,笔记本电脑已经成为人们日常生活不可或缺的工具。随着使用时间的增加,笔记本电池的性能逐渐下降,给用户带来了不便。而联想作为知名的电脑品牌,其笔记本电池驱动更是备受关注。我们如何进入联想笔记本的B
一文全方位掌握“架构原则”:3 总则、4 域细则与 TOGAF 10 原则
架构设计不像数学公式或者物理定律那样有固定的解答。很多时候,它是设计师在各种需求、技术限制和未来规划之间做出的权衡结果,是一种最符合实际情况的“智慧输出”。不过,虽然架构设计充满了不确定性,但一些好的架构原则和思路可以帮助
相关文章
推荐文章
发表评论
0评