android 手机获取root权限(刷入magisk面具方式)_获取刷入模块_MIUI_android7/android12实践

文章目录

预备环节

基础参考内容

视频教程 ★ \bigstar

基础知识准备

  • 将前面列出的参考都看一遍
  • 最好把文章结尾的基础知识以看看
    • 特别是@晨钟(极客湾)的视频,相对全面,可以看他个两三遍(一遍估计不太好消化),当然如果不搞游戏什么的进阶后面的部分可以略过

推荐具有的技能(optional)

  • 遇到问题时,会使用搜索引擎/论坛寻求帮助查找问题
    • 会google更好,会使用搜索语法就更好
    • 能完整版酷安搜贴也不错(或xda)
    • 会点英文更好

工具/材料准备

硬件和软件

magisk app注意事项/刷入面具

  • 下载完后,及时安装上magisk app,即,在刷入之前就安装好
    • 这个步骤主要是针对修补文件是来自其他人提供的情况下
    • 如果是自己修补的,那么一般不会有问题(自己修补,magisk app是肯定是已经安装好了才有的修补(不用第二台手机参与的情况下)
  • 我试过如果在刷入后,才安装magisk app可能会使得root无法被magisk app接管
    • 但如果,你是线刷入修补文件而后才安装magisk app,那么请重启一下,看看magisk app能否接管root(但不一定有效,这时候考虑再刷以便面具)
    • 重启对于twrp刷入magisk的方式有效(试验过)
关于刷进入magisk面具方式

玩机root注意事项

  • 玩机有风险

    • 硬件损坏风险
    • 数据/信息泄漏风险
  • 建议用旧手机(备用机)试着操作一遍,总体简单

  • android7之后的都可以(root过程差不多),提高主设备刷写的成功率(当然,如果只是体验一下,主设备就不用root了)

工作窗口预览(optional)

在这里插入图片描述

GUI工具箱辅助操作

交互式脚本进行root

核心步骤(正式)

操作声明

  • 主要内容为:获取boot.img并修补为magisk_patched文件
  • 为了使文章主体部分简洁,将一些细节放置到了文末(按自己需要,查看目录跳转)

设置工作路径(语境约定!🤗⛔推荐小白使用)

  • 默认路径(我们也叫默认工作目录):如果你对命令行工具的使用比较陌生,那么推荐你选定一个工作路径,我们可以将其称之为默认路径,之后的所有的操作到集中到该目录下!

  • 将前面提到的命令行工具下载下来(下载后建议拖到桌面,并解压该压缩包,得到一个platform-tools文件夹)

  • 如果你不设置环境变量(文章末尾会提供),那么采用下面的方案中的一种即可

方式1:在platform-tools文件夹下打开cmd

  • 在这里插入图片描述

  • 这种方式和简单(推荐)

    • 首先打开解压后的platform-tools.zip文件夹
    • 在资源管理器的地址栏中输入cmd
    • 弹出一个命令行窗口(最小化,备用)
  • 此时的默认工作目录就是这个被打开的文件夹

    • 后续的操作需要把修补的文件也放入到这个目录中!
    • 下面的方式2也还行,选择一种即可

方式2:基于桌面下的文件夹设置默认路径(目录/文件夹)

  • 我们最熟悉,最明显的路径就是桌面了

    • 这有利于我们可视化操作文件!
  • 打开cmd

    • 打开开始菜单搜索cmd

    • 在这里插入图片描述

    • 或者键盘同时按下windows徽标联合字母键r启动窗口

      • 在这里插入图片描述

      • 输入cmd 回车即可打开cmd窗口

        • 一般来说,会是一个黑黑的窗口
  • 命令行跳转到桌面做准备:

    • cd %userprofile%/desktop/
      • 复制上述命令行,并粘贴到cmd窗口中
  • 正式设定默认工作目录🤗🤗🤗🤗

    • 工作目录就设定在platform-tools文件夹下

      • 将这个文件夹放在桌面上,将下面的命令行粘贴到cmd窗口回车执行
    • cd %userprofile%/desktop/platform-tools

获取boot.img(可选的步骤)

  • 未修补的初始boot.img的获取方式多种

    • 可以自己下载rom然后(转化)提取

    • 在这里插入图片描述

    • 也可以直接到网上找找别人提取好的boot.img文件(譬如酷安论坛中找找帖子)

    • 可选操作:把boot.img文件拖入到默认工作目录platform-tools

获取magisk_patched文件

注意事项

  • 将之前获取的boot.img进行修补,即可得到magisk_patched文件

  • 获取boot.img可以是别人分享的(酷安找帖子),也可以是自己提取

  • 但是,修补boot.img建议自己修补,即,使用自己安装的magisk app自行修补

    • 这样可以保证magisk app(客户端)和修补出来的magisk_patched文件具有一致性和兼容性,不容易出现异常
    • 异常情况包括但不限于
      • 无法开机
      • 开机了,但是magisk app无法管理root权限
  • 上述方式是推荐的方式,不过你还是可以试试用别人修补过的magisk_patched文件

    • 但不建议,会增加风险(本人失败过(❁´◡`❁),幸好找到了一份未修补的boot.img,成功重刷恢复过来)

传输boot.img到手机(optional)

  • 如果只是用手机就下载/提取到了boot.img那么这一步骤就可以跳过

  • 如果是通过电脑获取的boot.img文件,那么将boot.img 通过任意一种你喜欢或你会的方式传输到手机

    • 可以用qq/微信发送
    • 也可以用adb push方式传输
      • 可选操作:(将文件拖入到默认工作目录platform-tools中,以便于使用adb 传输
  • 下载软件工具和修补过的.img文件都已经放置到合适的位置了,下面准备刷写

修补过程的操作细节(包括不同android版本)

早期版本的android修补boot.img

注意,对于较早版本的android(譬如下面的情况是我的android7老设备(已经有了AB分区的概念了)
(第二幕中,会使用android12设备root的实践报告)


修补前肯能遇到的选项:

  • 保留AVbobo2.0
  • 保持强制加密(默认勾选)
  • 修补boot镜像中的vbmeta
  • (一般我们保持默认即可)
  • image-20220727002112541
  • 点击下一步
  • 选择boot.img文件
  • 选择完毕会回到面具,点击开始修补(let's go)
  • 在这里插入图片描述
较高版本的android修补boot.img
  • 对于android12设备,应该没有这么多选项(反而简洁),也是直接默认,在方式(method)选择boot.img文件直接进行修补

  • 简而言之,如果有选项这一栏,实际保持默认即可

    • (建议保持加密,否则系统可能无法引导,
    • 不过救砖不难,只需要刷入未修补的boot.img即可恢复)
  • 选择下一步,选择我们前面准备好的boot.img,文件进行修补(选择完文件后点击开始)

  • 输出过程和低版本android类似,等待all done!提示

修补操作小结
  • 利用已经安装的magisk 手机端app进行修补boot.img文件
    • 这将得到一个修补过的boot.img(实际名字类似于magisk_patched-some-id-token.img)
    • 例如我的这次操作:得到修补后的文件magisk_patched-25200_LFBPs.img

将修补好的magisk_patched文件传输到电脑(required!)

修补后的文件放置在哪里/如何传输文件

  • 首先注意,手机端,magisk app修补出来的文件会被magisk app放置到手机的/sdcard/Download/目录下

    • 对应到模拟路径也就是,/storage/emulated/0/Download/magisk_patchedxxxx.img
    • 具体以magisk app修补完给出的提示为准(见上一目的截图:output file is written to...)
  • adb方式传输文件

    • PS D:\usersByCxxu\DownloadsAll> adb pull /storage/emulated/0/Download/magisk_patched-25200_VBQAh.img
      /storage/emulated/0/Download/magisk_patched-25200..., 0 skipped. 20.6 MB/s (29777192 bytes in 1.379s)
      
  • 也可以使用qq/微信传输文件(友好方式)

  • 或者其他方式

    • 感觉windows资源管理器不太靠谱

文件传输到那个文件夹

  • 有多种方式传输文件到pc端,电脑路径可以是你熟悉的任何路径(譬如桌面)
    • 可选操作:将修补好的magisk_patched文件拖入到先前约定的默认工作目录platform-tools文件夹中

fastboot刷入修补好的magisk_patched文件

  • 前面说到,adb是个好用的工具,但对于本教程并不是必须的
  • fastboot是本教程必须的

进入fastboot(bootloader)模式

  • 按住电源键+音量键下(不同机型可能有不同组合键)
    • 在开机状态下可能可以直接进入到fastboot
    • 如果这不生效,可以关机后再按住上述组合键
  • 或者在开机状态下,允许计算机usb调试手机,使用命令行工具adb执行adb reboot bootloader
  • 某些recovery提供了重启到bootloader模式,也可以从recovery处重启进入
验证fastboot是否联通(可用)
  • 至此,电脑可以通过fastboot对手机执行相关操作
    • 使用命令fastboot devices进行查询设备连通性
    • 如果成功,会返回一串设备号和编码
刷入命令格式
  • 本教程唯一一条必要命令(其他命令的是可以别其他方式替代)

  • fastboot flash boot .\magisk_patched-25xxx.img

    • 注意,上述命令在以下环境条件才可以
      • 上述命令的magisk_patchedxxx文件名字要修改为自己修补好的文件名
      • cmd进入到默认工作目录platform-tools文件夹中再执行
        • 这是为了简化命令行(fastboot.exe和magisk_patchedxxx.img文件都在同一个目录下)
  • 可选方式:用绝对路径也可以,这样就可以在任何目录下执行相应命令

    • 例如:C:\Users\userName\Desktop\platform-tools\fastboot.exe --help

      • C:\Users\userName\Desktop\platform-tools\fastboot.exe flash boot C:\Users\userName\Desktop\platform-tools\magisk_patched-25200_VBQAh.img
      • 这样就无视任何环境,但是命令行变得很长
    • PS C:\Users\cxxu> C:\Users\cxxu\Desktop\platform-tools\fastboot.exe --help
      
      usage: fastboot [OPTION...] COMMAND...
      
      flashing:
       update ZIP                 Flash all partitions from an update.zip package.
       flashall                   Flash all partitions from $ANDROID_PRODUCT_OUT.
                                  On A/B devices, flashed slot is set as active.
      
    • 总之,如果没有相应配置,甚至没有默认工作目录的语句,可以考虑用绝对路径来帮助系统找到命令行工具fastbootmagisk_patched文件路径(但是建议用默认路径比较方便)

开始刷写&结果
  • 调整好路径后,开始刷写
PS D:\usersByCxxu\DownloadsAll> fastboot flash boot .\magisk_patched-25200_VBQAh.img
Sending 'boot' (29079 KB)                          OKAY [  0.936s]
Writing 'boot'                                     OKAY [  0.818s]
Finished. Total time: 2.015s
上面的命令做了什么&原理(optional)
  • 查看帮助文档

    • PS D:\usersByCxxu\DownloadsAll> fastboot -h
      usage: fastboot [OPTION...] COMMAND...
      
      flashing:
       update ZIP                 Flash all partitions from an update.zip package.
       flashall                   Flash all partitions from $ANDROID_PRODUCT_OUT.
                                  On A/B devices, flashed slot is set as active.
                                  Secondary images may be flashed to inactive slot.
       flash PARTITION [FILENAME] Flash given partition, using the image from
                                  $ANDROID_PRODUCT_OUT if no filename is given.
      
      basics:
       devices [-l]               List devices in bootloader (-l: with device paths).
       getvar NAME                Display given bootloader variable.
       reboot [bootloader]        Reboot device.
      
      
    • 可以看到, flash PARTITION [FILENAME] .(Flash given partition, using the image from $ANDROID_PRODUCT_OUT if no filename is given)

    • 而我们的命令fastboot flash boot magisk_patchedxx.img就是让fastboot这个程序执行子命令flash,flash 会把指定的文件刷入到指定分区partition(这里也就是boot分区);从而实现对boot分区的修改

重启手机查看效果

  • 打开magisk app

  • image-20220727114346605

  • 顺利的话,则成功获取

android12注意事项:刷入magisk获取&管理root权限

  • 注意较高版本的android7+之后引入的a/b分区,如果上述刷入无效
    • fastboot flash boot magisk_patch-xxx.img不生效(或异常)
    • 那么尝试显式指定boot为boot_a&boot_b分别执行并刷写之
    • 然后使用fastboot reboot重启手机

image-20220727105229883

预期结果

  • 如果上述步骤都顺利的话,并且能够重启成功,那么magisk app应该能够获取到root权限并进行管理

root 之后的玩机部分

更多参考内容

线刷&卡刷(第三方recovery)

  • 关于卡刷第三方包(经常使用流行的twrp来操作)
  • twrp虽然不是本主题(root)的重点,但是可以参考一下思路和操作
  • TeamWin - TWRP
  • 例如redmi 4x的教程

android推荐工具(optional)(文件管理客户端)

驱动/命令行工具:adb&fastboot的使用和注意事项

RSA秘钥指纹

  • 驱动现在一般不是问题,win10/11自带对android的驱动

  • 但是注意,除了驱动问题可能导致命令行工具链接不上手机

    • 特别是,如果没有经过下面的授权,在关机状态下的fastboot模式可能无法使用fastboot指令!
  • 还可能是因为手机端没有同意电脑对设备的控制(RSA秘钥指纹)

    • image-20220810082950377
  • 所以说,建议在开机状态下,确保命令行工具可以访问手机

    • adb devices -l
    • 将上述命令行复制到cmd窗口(cmd处于默认工作目录platform-tools下),既可以检查连通性

adb链接

大小写问题&斜杠问题(optional)

  • 由于linux(android)都是区分大小写的,windows虽然不区分,但是本教程要求区分

    • 特别是使用adb&fastboot相关命令的时候是区分大小写的,传输文件的时候末尾斜杠不要多(访问目录则是可加可不加)
    • 总之就是,传输文件的时候,文件名末尾没有斜杠/
    • 指定目录参数的时候,推荐加上斜杠/
  • 尤其是,手机上的目录是,/sdcard/Download

    • 斜杠方向
    • Download而不是小写download(x)
    • 是不带s的单数Download
      在这里插入图片描述
  • 尽管如此,选择一个短的路径会有利于找到文件

    • 譬如,push 文件到android 设备目录设置为/sdcard/,而不必放到/sdcard/Download/这一子目录下
    • 只要确保你可以方便的找到该文件即可

adb 文件传输示例

绝对路径传输文件实例
  • 这里我将一个压缩包传输到手机上
    • 这里要注意,第二个路径参数的斜杠是linux规范的/,如果写成\会导致意外的结果(文件传输到意料之外的地方,找不到了)
  • 对于目录,即为可以不加斜杠,但是推荐加上,这样一目了然
PS C:\Users\cxxu\Downloads> adb push C:\Users\cxxu\downloads\Compressed\MK90.0-santoni-210620-HISTORY.zip /sdcard/Download
C:\Users\cxxu\downloads\Compressed\MK90.0-santoni-21062...shed, 0 skipped. 25.2 MB/s (695991497 bytes in 26.315s)
PS C:\Users\cxxu\Downloads>
相对路径传输示例
  • PS C:\Users\cxxu\Downloads\Compressed> adb push  .\lineage-18.1-20220720-UNOFFICIAL-0xCAFEBABE-Mi8937.zip /sdcard/Download/
    .\lineage-18.1-20220720-UNOFFICIAL-0xCAFEBAB...pped. 23.7 MB/s (783898135 bytes in 31.594s)
    PS C:\Users\cxxu\Downloads\Compressed>
    
利用adb shell 检查android 设备文件
  • 可选操作:检查android指定目录下是否存在某文件(下面是已经root的才有权限)

    • santoni:/ # cd sdcard/
      santoni:/sdcard # ls
      Alarms   MIUI     Music         Ringtones baidu                did    sogou
      Android  MT2      Notifications TWRP      browser              jeejen wlan_logs
      DCIM     MiMarket Pictures      Xiaomi    com.miui.voiceassist miad
      Download Movies   Podcasts      backups   dctp                 mipush
      santoni:/sdcard # cd Download/
      santoni:/sdcard/Download # ls
      3b515ef2c77d9f04e58c1d75a3add549-0-o_1g8cle2dk1mia12ds1vjs13eost32c-uid-408649.apk
      DevCheck_4.37.apk
      GitHub\ -\ yc9559_uperf_\ Userspace\ performance\ controller\ for\ android.mhtml
      MK90.0-santoni-210620-HISTORY.zip
      app-releas.zip
      app-release.apk
      app-release_mini.apk
      boot.img
      boots.zip
      magisk_patched-25200_VBQAh.img
      miui_HM4X_V11.0.1.0.NAMCNXM_7e7448fe6d_7.1.zip
      uperf-dev-22.07.24.zip
      

配置命令行工具相关环境变量或命令行工具别名(optional)

环境变量方式
别名方式
  • 如果你熟悉powershell,可以对上述两个命令行工具配置别名,同样是方便的,由于是可选的内容我就不展开了,另外查阅资料,或者查看powershell帮助手册
    • man Set-Alias
    • 如果喜欢,你还可以固化别名配置
什么都不配置
  • 都不想配置,那就得老老实实的将工作目录锁定在工具箱目录下

    • 在这里插入图片描述
  • 😂还有一种方式,就是每次执行命令,都将命令行工具的绝对路径打出来,很不方便

关于fastboot工具和adb工具的使用场景和帮助名令

  • adb可以在开机的状态下使用

    • 在一些不需要root权限但又高于普通android用户权限的时候,adb用得多
    • 本教程中,adb是可选的(例如,可以做到以下事情
      • 检查设备是否成功链接(驱动是否正常):adb devices -l
        • 注意devices的拼写
      • adb reboot bootloader使得开机的(并且已经允许计算机调试的android直接重启到bootloader(fastboot模式))
        • 这可以省去关机后按音量减&电源键的物理方式进入fastboot模式,更加高效
      • 使用adb push可以用来向anroid设备传输文件
      • 另一方面,adb pull可以从android 设备将文件拉取到电脑上
      • 以上都是可选,可以用你喜欢的传输方式进行传输文件
  • 获取帮助 adb --help

    • PS D:\usersByCxxu\DownloadsAll> adb --help
      Android Debug Bridge version 1.0.41
      Version 33.0.2-8557947
      Installed as D:\exes\platform-tools\adb.exe
      
      global options:
       -a                       listen on all network interfaces, not just localhost
       -d                       use USB device (error if multiple devices connected)
       -e                       use TCP/IP device (error if multiple TCP/IP devices available)
       -s SERIAL                use device with given serial (overrides $ANDROID_SERIAL)
       -t ID                    use device with given transport id
       -H                       name of adb server host [default=localhost]
       -P                       port of adb server [default=5037]
       -L SOCKET                listen on given socket for adb server [default=tcp:localhost:5037]
       很长,省略篇幅
      
  • fastboot是线刷的主角命令

    • 用来对处于fastboot模式下的android设备进行操作
  • fastboot帮助手册fastboot --help

    • PS D:\usersByCxxu\DownloadsAll> fastboot --help
      usage: fastboot [OPTION...] COMMAND...
      
      flashing:
       update ZIP                 Flash all partitions from an update.zip package.
       flashall                   Flash all partitions from $ANDROID_PRODUCT_OUT.
                                  On A/B devices, flashed slot is set as active.
                                  Secondary images may be flashed to inactive slot.
       flash PARTITION [FILENAME] Flash given partition, using the image from
                                  $ANDROID_PRODUCT_OUT if no filename is given.
      
      basics:
       devices [-l]               List devices in bootloader (-l: with device paths).
       getvar NAME                Display given bootloader variable.
       reboot [bootloader]        Reboot device.
       
       省略篇幅
      
      

基础知识补习

玩机论坛/网站

fastboot命令

bootloader(fastboot)下的常用操作

常用的fastboot子命令Commands

Some of the most commonly used fastboot commands include:

  • flash – rewrites a partition with a binary image stored on the host computer.

  • flashing unlock/oem unlock – unlocks an OEM locked bootloader for flashing custom/unsigned ROMs. The is a device specific unlock key.

  • flashing lock/oem lock – an opposite action.

  • erase – erases a specific partition.

  • reboot – reboots the device into either the main operating system, the system recovery partition or back into its boot loader.

  • devices – displays a list of all devices (with the serial number) connected to the host computer.

  • format – formats a specific partition; the file system of the partition must be recognized by the device.

  • oem device-info – checks the bootloader state.

    • 例如,对于未解锁的设备,有如下提示

      • 这种情况下,许多fastboot的指令无法顺利执行.
    • fastboot oem device-info
      (bootloader) Verity mode: true
      (bootloader) Device unlocked: false
      (bootloader) Device critical unlocked: false
      (bootloader) Charger screen enabled: false
      OKAY [  0.015s]
      Finished. Total time: 0.015s
      
  • getvar all – displays all information about device (IMEI, bootloader version, battery state etc.).

android 分区

附(资源)

小米/redmi 刷机包获取(optional)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值