关于android:安卓手机安装magisk

5次阅读

共计 8795 个字符,预计需要花费 22 分钟才能阅读完成。

刷机与装置Magisk,工具与流程,雏鹰腾飞,一条龙手把手式文档

Magisk呈现的背景

抉择 Android 手机的同时,也抉择了一种有限的可能,究竟还是时势造英雄

  • 为了冲破 OEMOriginal Equipment Manufacturer,代工生产)定制利用的机型限度,给Android 插上一双翅膀
  • 为了解决 NetflixGoogle Play 等一众利用不能在曾经 root 的手机上失常运行
  • 为了解决改变过的系统文件的 ROM(硬盘存储) 不能通过 OEM 渠道进行失常的 OTA 降级(Over-the-Air Technology, 在线降级手机零碎)

Magisk做了什么

通过挂载一个与系统文件相隔离的文件系统来加载自定义内容,为零碎分区关上了一个通往平行世界的入口,所有改变在那个世界(Magisk 分区)里产生,在必要的时候却又能够被认为是(从零碎分区的角度而言)没有产生过

达到的成果

  • 不毁坏或更改原有零碎的完整性,零碎处于一个非 root 状态,然而 Magisk 外部运行的模块能够获取到 root 权限
  • 当被挂载的 Magisk 分区被暗藏甚至被勾销挂载时,原有零碎分区的完整性丝毫未损
  • 能够运行须要 root 验证的程序
  • 能够运行对设施认证状态有要求的利用
  • 能够进行须要验证零碎完整性的 OTA 更新
  • Magisk能够被看作是一种挂载文件系统,这种文件系统通过奇妙的实现形式避开了对系统文件的间接批改,从稳定性上来看要优于以往任何一种零碎框架

Magisk我的项目信息

官网我的项目地址

https://github.com/topjohnwu/Magisk

release包信息

https://github.com/topjohnwu/Magisk/releases

须要在 release 模块下载一个 release apk 包,目前最新的是Magisk-v26.1.apk,后续如果有更新的就先尝试下载更新的包,下载实现之后把文件名称改一下,后缀改成zip,改成Magisk.zip

本机测试的时候可能因为机型比拟旧,Magisk装置实现之后点击 Android 图标无反馈,所以就降版本到 Magisk-v25.2.apk 之后再次装置才胜利

前提常识

手机刷机 rootunlockBootloader的比照

  • root手机是获得了零碎的最高权限,应用该账号能够读写以及执行零碎的任意文件
  • UnlockBootloader是解除系统启动加载器 Bootloader 的原厂限度,让用户能够进行更多操作 (刷新内核,刷ROM),bootloader/fastboot 模式 处于设施上电开机到进入零碎前的一个阶段或者模式,实现刷机是在 bootloader 阶段之后的 recovery 模式

Android 分区与模式

  • Android设施有 3 个重要分区:启动加载程序 (Boot loader)、复原(Recovery) 和 手机零碎(Android ROM)
  • Boot loader最先加载并决定要加载的下一个分区,此分区通常是Android ROM
  • Recovery模式是一个小型 Linux 操作系统,用于装置 Android ROM 分区更新的模式,在对手机复原出厂设置时也会应用 Recovery 模式
  • Fastboot是一种协定,可用于通过 USB 从计算机连贯到设施,并向设施的分区收回更新
  • fastboot模式是 android sdk 附带的工具,能够用来 re-flash 设施的分区,能够装置recovery image

进入到不同的模式

每个手机进入到 fastboot 界面和 recovery 的按钮操作是不同的

  • 小米手机是按住 电源键 + 音量下键 进入到 fastboot 界面
  • 小米手机在启动的时候,按住 电源键 + 音量上键 ,当呈现小米logo 界面,松开 电源键 ,呈现recovery 界面的时候能力松开 音量上键

其余手机进入到 fastboot 界面,参考

https://tutorials.how/android/boot-into-fastboot-mode/

其余手机进入到 recovery 界面,参考

https://www.xda-developers.com/how-to-boot-to-recovery/?newsletter_popup=1

试验设施信息

Xiaomi Redmi note 7 Pro

小米 / 一加等手机官网反对unlock Bootloader,操作起来会比拟不便

最初要做好思维筹备,试验手机上的所有数据即便全副失落也没关系,当手机启动的时候界面弹出 your system has been destroyed 而后只能关机的时候也不要慌乱(这个状况下尽管不能进入到手机零碎,然而还是能够进入到 bootloader 界面,能够进入到 recovery 模式刷机解决)

手机刷机必要步骤

  • unlock bootloader
  • 配置手机的明码解锁(输出字符的)以及图案明码,如果有指纹解锁,也配置一下,如果不配置可能影响到前面手机进入 recovery 模式时候的操作,手机进入到recovery 模式失常的时候是须要输出一下明码的,该明码就是配置的手机解锁明码
  • 开启手机 USB 调试模式,手机刷机过程中,重启之后 USB 调试模式可能会被敞开,所以每次开机实现之后尽量检查一下该模式

解锁bootloader

关上开发者选项,点击进入设施解锁状态,而后会看到官网的设施解锁操作流程,依照其流程操作

  1. 个别是插入 SIM 卡之后,绑定实现小米账号
  2. 从小米的官网获取到解锁工具地址,在 windows 零碎上,下载安装解锁工具,拜访地址 http://www.miui.com/unlock/index.html进行下载,下载之后运行压缩包外面的 miflash_unlock.exe,这时须要再次登录小米账号( 如果显示 miflash 有更新,肯定要抉择更新
  3. 之后应用 usb 数据线连贯手机与电脑,同时手机须要关上 USB 调试模式,配置 USB 可传输文件形式
  4. windows 上关上 设施管理器 ,在 其余设施 选项上面会有一个 Android Phone 的选项,点击 更新驱动 ,抉择 浏览计算机以查找驱动程序软件 (R),抉择从http://www.miui.com/unlock/index.htmlmiui下载的解锁工具解压进去的 driver 文件夹进行驱动更新 (旧版本的解锁工具是没有driver 文件夹的,所以在运行解锁工具的时候有更新提醒,肯定要更新,目前下载的版本是 miflash_unlock-6.5.406.31,解压进去会有个driver 文件夹)
  5. 更新实现之后查看电脑端解锁工具,根据提醒操作手机
  6. 操作手机进入到 bootloader 模式,该模式有点相似与 PC 装机时候常常看到的 BIOS 模式
  7. 最初 windows 上的解锁工具检测到设施之后点击解锁,重启手机,进入开发者模式,看到如下信息,示意手机 unlock 胜利

    Android platform tools装置

官网下载拜访地址

https://developer.android.com/tools/releases/platform-tools

Ubuntu 零碎装置 ADBfastboot

$ sudo apt install android-tools-adb android-tools-fastboot

ADB工具(Android Debug Bridge)

一种容许模拟器或已连贯的 Android 设施进行通信的命令行工具,它可为各种设施操作提供便当,如装置和调试利用,并提供对 Unix shell(可用来在模拟器或连贯的设施上运行各种命令)的拜访

次要性能

  • 在设施上运行 Shell 命令
  • 将本地 apk 软件装置至模拟器或 Android 设施
  • 治理设施或手机模拟器上的预约端口
  • 在设施或手机模拟器上复制或粘贴文件

adb 命令的根本语法

$ adb [-d|-e|-s <serial-number>] <command>

参数解释

  • -d指定以后惟一通过 USB 连贯的 Android 设施为命令指标
  • -e指定以后惟一运行的模拟器为命令指标
  • -s <serial-number>指定相应设施序列号的设施 / 模拟器为命令指标

如果只有一个设施 / 模拟器连贯时,能够省略掉 [-d|-e|-s <serial-number>] 这一部分,间接应用 adb <command>

在多个设施 / 模拟器连贯的状况下较罕用的是 -s <serial-number> 参数,serial-number是指设施的设施序列号,能够通过 adb devices 命令获取

查看曾经连贯的设施

$ adb devices
List of devices attached

手机应用数据线连贯电脑的时候,关上手机 开发者选项 USB 调试模式,会弹出手机与计算机RSA 密钥指纹匹配的确认按钮,之后再次执行查看曾经连贯设施,如下示意手机与电脑之间的调试连贯胜利

$ adb devices
List of devices attached
5ba7ca2f    device

通过 adb 进入到手机的 shell 环境,前缀 violet 是红米 note 7 Pro 的版本代号

$ adb shell
violet:/ $ pwd
/

violet:/ $ ls
acct       charger debug_ramdisk mnt     product_services sys    
apex       config  default.prop  odm     res              system 
bin        cust    dev           oem     sbin             vendor 
bugreports d       etc           proc    sdcard           
cache      data    lost+found    product storage  

把电脑端的某个文件推送到手机,假如电脑端以后门路存在一个文件 test.txt,推送到手机门路为/sdcard/test.txt 地位(在手机处于 recovery 模式的时候也能够应用该操作)

$ adb push test.txt /sdcard

或者也能够间接推送到根门路下

$ adb push test.txt /

重启手机

$ adb reboot

重启手机到 recovery 模式

$ adb reboot recovery

重启手机到 fastboot/bootloader 模式

$ adb reboot bootloader

更多应用请参考

https://juejin.cn/post/6844903645289398280

fastboot工具与模式

fastboot意思是疾速启动,在安卓手机中 fastboot 是一种比 recovery 更底层的刷机模式,应用 USB 数据线,连贯电脑的一种刷机模式,通常称为“线刷”刷机,当手机不能进入到零碎或者不能进入到 recovery 模式的时候,如果还能进入到 fastboot 模式,手机还能援救,如果不能进入到fastboot,则彻底变砖了

当手机进入到 fastboot 模式的时候,adb工具就不能应用了,只能应用 fastboot 工具

次要性能有

  • 实现分区镜像烧录
  • 分区擦除
  • 设施重启
  • 获取设施状态信息

当手机和电脑端应用数据线连贯的时候 (之前执行了adb 绑定手机与电脑)

重启设施操作

$ fastboot reboot

假如电脑以后 shell 门路下存在一个文件 twrp.img,把该文件刷到手机recovery 分区

$ fastboot flash recovery twrp.img

TWRP recovery镜像

twrp(Team Win Recovery Project)是一款第三方刷机软件,是一个 recovery image,在recovery 模式下应用

官网地址

https://twrp.me/

不同设施抉择镜像地址,每个设施都有对应的镜像

https://twrp.me/Devices/

Xiaomi Redmi Note 7 Pro抉择镜像如下

https://twrp.me/xiaomi/xiaomiredminote7pro.html

recovery模式装置Magisk

在手机处于 fastboot 模式的时候,电脑端执行命令(演示须要,在下载实现 twrp 镜像之后把名称对立批改为 twrp.img),把第三方的recovery image 刷入手机的 recovery 分区,替换掉零碎厂商自带的 recovery,有些手机重启之后第三方的recovery image 可能会被零碎自带的 recovery image 还原,从新刷入第三方 recovery image 即可

$ fastboot flash recovery twrp.img

之后执行命令重启手机

$ fastboot reboot

在手机重启的一瞬间,要依照不同手机的按键操作,保障前面进入 recovery 模式

进入到 recovery 分区之后须要输出开机明码,如果没有弹出开机明码输入框,后续装置 Magisk 的时候报错 Operation not permitted 可能与这个无关 (从recovery 模式启动阶段输入的日志来看,开机明码输出之后,明码参数可能是解密某些区域数据的一个解密参数,如果缺失该参数,加密数据未被解密,就会导致装置 magisk 的时候报错operation not permitted

格式化手机 data 分区

该步骤不是必须的,如果装置 Magisk 不胜利,能够尝试本步骤

该步骤会清空手机零碎保留的用户数据信息,下载安装的软件,相当于复原出厂设置

进入到 recovery 模式之后点击抉择 Wipe 模块,再点击Format Data,最初在弹出的确认框输出yes

装置Magisk

recovery 模式 adb 工具是可用的

电脑端操作发送之前下载好的 Magisk.zip 到手机根门路

$ adb push Magisk.zip /      
Magisk.zip: 1 file pushed. 34.0 MB/s (11278270 bytes in 0.317s)

手机操作,点击 Install 模块,文件夹操作找到根门路下的 Magisk.zip 文件,点击抉择之后,滑动图标 Swipe to confirm Flash 确认装置,查看装置终端日志输入无报错之后点击 Reboot System 按钮重启零碎(如果零碎卡住不能进入零碎,间接按住电源键强制关机再启动)

进入零碎后续操作

首先看到的是 MagiskApp,短少图片素材版本的,点击图标弹出一个提示框,Magisk 须要下载完整版 Magisk 能力失常运行 ,前面查看Magisk 版本信息发现是 1.0 版本,依照提醒点击确认之后发现没什么反馈,是因为 Magisk 更新的时候申请的地址须要迷信解决

此处举荐 v2ray 我的项目

https://github.com/v2fly/v2ray-core
https://www.v2fly.org/

手机端能够装置 Android 版本利用

https://github.com/2dust/v2rayNG

迷信实现之后,再次点击 Magisk 图标进行更新

之后进入 Magisk 界面查看,留神看到版本号地位是有参数的,同时 超级用户 模块 地位是能够点击的(如果 Magisk 这三块中央异样,可能就不是通过 recovery 模式装置的 Magisk,可能是间接在零碎运行之后装置Magisk,这样的话就不能应用到Magisk 的魔法了)

Operation not permitted报错

该报错是 redmi note 7 pro 的报错,miui论坛发现有很多 redmi note 系列的都会有这个报错

在装置 Magisk 过程中,报错操作未被容许,该谬误可能和 twrprecovery image无关,所以决定换另外一个三方的镜像

解决方案参考

https://xiaomi.eu/community/threads/rn8-problems-with-twrp-recovery.58846/

redme note 7 pro解决方案镜像下载地址

https://www.mediafire.com/file/9g239qv3wk6sz5k/violet01-01-2021test.img/file

后续操作依照后面章节 刷入 recovery image操作

最初装置胜利界面如下

your system has been destroyed解决方案

手机开机的时候呈现这个界面,不要慌,这个状况还能补救,每个人遇到这个界面的状况可能千奇百怪,我这边是进入到 recovery 的时候格式化了一些分区,手抖了一下意外的把 system 分区都格式化了

解决方案参考

https://droidwin.com/the-system-has-been-destroyed-error-on-xioami-fix/

小米手机能够拜访 https://xiaomifirmwareupdater.com/ 下载对应手机型号的fastboot rom,其余手机搜寻fastboot rom

我的手机是抉择了如下版本,china发行版本,stable, fastboot模式的,比拟新的一个版本(事实上我是看这个文件又大又新还是 stable 才抉择这个的)

下载实现压缩包后解压,解压进去的文件夹内蕴含 flash_all.sh 相干文件

放弃数据线连贯到手机,手机进入到 fastboot 模式,执行命令如下(PS:有些人可能会感觉只须要刷入一点 vbmeta.img 或者一些 boot.img 之后再启动零碎,能够最大限度的保留数据,然而我的理论经验示意,手机都快变砖了,数据什么都无所谓了,可能失常开机进入零碎才是我惟一在乎的)

$ ./flash_all.sh

Magisk模块介绍与装置

Magisk就像是一个 docker 技术,是一个平台,Magisk modules是平台上用户理论应用的货色,就像是一个个运行的 docker 容器

优良 Magisk 模块举荐与装置参考文章

https://www.xda-developers.com/best-magisk-modules/

Magisk开发者文档参考

https://topjohnwu.github.io/Magisk/guides.html

装置模块抉择一个高级充电管制的 Magisk Module 我的项目,模块装置能够应用 Magisk App 点击装置,也能够抉择应用 adb 装置

充电管制我的项目仓库地址

https://github.com/VR-25/acc

抉择一个 releasezip版本下载

目前抉择的版本是acc_v2022.7.30-dev_202207300_2206.zip

下载之后应用压缩包管理器查看外面的文件,留神看压缩包外面的根门路的地位,Magisk在解压压缩包的时候默认提取实现之后 install.sh 等文件就是在以后门路,而不是还要去某个文件夹拜访

假如当初有个 temp 文件夹,须要打包压缩为zip

能够在文件夹里面执行命令,这个是最常见的办法

$ zip -r temp.zip temp/

也能够进入到 temp 文件夹外面执行命令,两个命令产生的压缩包的文件根门路是不一样的,Magisk module要求的就是 zip 包外面的文件根门路就是/,否则装置模块的时候会报错Unzip error

$ zip -r temp.zip *

为不便演示,此处应用 adb 形式装置模块

查看 adb 连贯设施信息,如果是像上面这样的输入,须要敞开手机USB 调试模式,再次关上保障手机和电脑配对

$ adb devices
List of devices attached
5ba7ca2f    unauthorized

失常输入如下

$ adb devices
List of devices attached
5ba7ca2f    unauthorized

把模块压缩推送到手机 /sdcard 地位(如果该地位不存在,能够间接把文件推送到 / 门路)

$ adb push acc_v2022.7.30-dev_202207300_2206.zip /sdcard
acc_v2022.7.30-dev_202207300_2206.zip:...hed. 3.7 MB/s (173493 bytes in 0.045s)

进入到手机 shell 环境

$ adb shell 

# 查看对应地位是否有相干压缩包文件
violet:/ $ ls /sdcard/                                                         
Alarms   Lark          Pictures                              miad  
Android  MIUI          Podcasts                              sogou 
AppTimer Movies        Ringtones                             
DCIM     Music         TWRP                                  
Download Notifications acc_v2022.7.30-dev_202207300_2206.zip 

# 获取到 root 权限, 输出 su,点击回车之后手机上会弹出一个确认框,点击确认即可
violet:/ $ su

# 开始装置模块
violet:/ # magisk --install-module /sdcard/acc_v2022.7.30-dev_202207300_2206.zip 
- Device is system-as-root
...
Installing in /data/adb/modules/acc/...
- Done
LINKS
....
Rebooting is unnecessary.
- acc commands may require the /dev/.vr25/acc/ prefix (e.g., /dev/.vr25/acc/acc -v) until system is rebooted.
- Daemon started.

violet:/ # 

个别装置模块之后是须要重启手机的,这个模块的装置信息显示Rebooting is unnecessary

装置实现之后关上 Magisk App,点击抉择 模块 按钮,就能够看到装置好的模块

参考浏览

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

The system has been destroyed error on Xiaomi: How to Fix

How to boot into recovery mode using button combos, ADB, and root apps

Boot any Android Device into Fastboot Mode

ADB 操作命令详解及用法大全

Android 调试桥 (adb)

Best Magisk modules

Magisk Developer Guides

正文完
 0