参考链接

  1. Kali-Nethunter官方刷机包下载地址,从中选择OnePlus7版本的
    1. OnePlus 7 / OnePlus 7 Pro (OxygenOS 10)
  2. 官方教程:Installing NetHunter On the OnePlus 7
  3. OnePlus 7 解密包,原作者下载页面
    1. Disable_Dm-Verity_ForceEncrypt_11.02.2020.zip
  4. TWRP下载地址:TWRP for OnePlus 7 (guacamoleb)

感想

历时5天,从一个纯萌新,一步一步研究手机刷机,root,收集大量网上资料,经历无数失败和变砖救砖。

终于学到了很多新的知识,在最终完成的那一刻,心情无比激动。

特发文分享一下我的喜悦。

环境声明

手机系统:Oxygen OS 10.3.8.GM57AA

ADB工具版本:
Android Debug Bridge version 1.0.41
Version 33.0.1-8253317

TWRP版本:twrp-3.6.1_11-0-guacamole

Magisk版本:Magisk-v24.1

One Plus 7 OEM Unlock

One Plus 7 OEM Unlock章节说明:该小章节经过网友评论提醒,后续补充的,由于时间有点久了,我已经忘了是参考了哪位大佬发表的文章了,没有参考链接,仅以当时我自己的操作记录补充以下OEM解锁步骤

  1. 打开手机开发者模式,开启“OEM解锁”选项和“USB调试”选项。

  2. 用数据线连接手机和电脑

  3. 电脑下载adb工具

  4. 通过adb命令,进入手机的BootLoader界面:adb reboot bootloader

  5. 通过adb命令,进行解锁:fastboot oem unlock

    此处遇到了问题:只要进入手机bootloader界面,adb就找不到手机设备了

    F:\oneplus7\platform-tools_r33.0.1-windows\platform-tools>fastboot oem unlock
    < waiting for any device >
    
  6. 手机退出bootloader界面,重新正常开机,连接电脑后,打开【我的电脑】,双击【CD 驱动器:OnePlus Drivers】安装一加驱动。

  7. 确认目录是否存在:C:\Program Files (x86)\OnePlus USB Drivers,换用该目录下android目录下的adb.exe工具。

  8. win10按步骤强制关闭驱动签名:参考WIN10 WIN8.1 安装ADB驱动 强制关闭驱动签名教程

  9. 手机切换USB偏好设置为“文件传输”。

  10. 可以这样刷新一下win10设备管理:右键根节点,点击【扫描检测硬件改动】,会发现一个有问号或者叹号的安卓设备

  11. 右键点击问号的安卓设备,选择更新驱动,选择“浏览计算机以查找驱动程序”,修改目录为C:\Program Files (x86)\OnePlus USB Drivers,勾选包括子文件夹,然后点击下一步

  12. 等待安装完成(如果没有关闭驱动签名,这一步会显示安装失败)。

  13. 检查win10设备管理,会发现多出了一Android Phone/OnePlus Android Bootloader interface

  14. fastboot devices命令扫描设备,也可以看到能够识别到

    C:\Program Files (x86)\OnePlus USB Drivers\Android>fastboot devices
    b8835ac2        fastboot
    
  15. 一切做好准备后,重新进行解锁:

    C:\Program Files (x86)\OnePlus USB Drivers\Android>fastboot oem unlock
    ...
    OKAY [  0.030s]
    finished. total time: 0.033s
    

    解锁成功,手机画面会显示以下一段文字

    <!>
    
    By unlocking the bootloader, you will be able to install custom operating system on this phone. A custom OS is not subject to the same level of testing as the original OS, and can cause your phone and installed applications to stop working properly.
    
    Software integerity cannot be guaranteed with a custom OS, so any data stored on the phone while the bootloader is unlocked may be at risk.
    
    To prevent unauthorized access to your personal data, unlocking the bootloader will also delete all personal data on your phone.
    
    Press the Volume keys to select whether to unlock the bootloader, then the Power Button to continue.
    
    -----------------------------------------
    DO NOT UNLOCK THE BOOLOADER
    -----------------------------------------
    UNLOCK THE BOOTLOADER
    -----------------------------------------
    
    

    提示解锁会清除手机的个人数据,可以通过音量键来选择下面两个选项,上面的是“不解锁”,下面的是“继续解锁”。

  16. 手机上通过音量键,选择“UNLOCK THE BOOTLOADER”选项,然后按电源键确认,然后等待手机解锁和重启就行,中间会有文字提示,提示按电源键暂停,可以不用管。

  17. 解锁会清理手机所有个人数据,其实和恢复出厂设置类似,重启后需要初始化设置一遍,这里不作多解释。

安装TWRP

TWRP下载地址:TWRP for OnePlus 7 (guacamoleb)

手机打开开发者模式,开启USB调试,用数据线连接手机和电脑。

电脑cmd执行命令尝试连接手机:

  1. adb kill-server:关闭电脑adb服务
  2. adb start-server:启动电脑adb服务

    这两步主要是确认adb可用,adb服务默认会扫描可识别的安卓手机

  3. adb devices

    这一步是确认可以连接到手机,首次可能会触发手机授权确认,手机上勾选“允许”并点击“确定”即可。

准备就绪后,下一步,将手机重启到bootloader模式(引导加载模式)

可以手机电源键长按,选择“引导加载模式”实现,也可以通过adb命令实现:

adb reboot bootloader

进入bootloader模式后,执行下面的命令,确保电脑上的安卓驱动安装成功,并且确保手机能被电脑识别。

fastboot devices

如果这一步有问题,请参阅其他文章,或者评论留言

成功连接手机后,用电脑上的引导镜像,进入临时的twrp(第三方Recovery):

fastboot boot <twrp>.img

成功进入twrp界面后,一次点击:【Advance】>【Flash current twrp boot】

日志:

正在更新分区详情...
...完成
正在解包 Boot...
正在备份 Boot...
正在打包 Boot...
[开始刷入镜像]
刷入镜像:"/tmp/repackorig//new-boot/img"
正在计算恢复详情...
[镜像刷入完成]
正在更新分区详情...
...完成
正在备份 Boot...
[开始刷入镜像]
刷入镜像:"/tmp/repackorig//new-boot.img"
正在计算恢复详情...
[镜像刷入完成]
如果设备之前有root权限,现在可能被覆盖,请重新获取root权限。
正在更新分区详情...
...完成

通过TWRP刷入Magisk

下载Magisk-v24.1.apk

拷贝一份副本,并修改文件后缀.apk.zip

现在twrp进行【wipe】>【FORMAT DATA】操作。

重启进入recovery模式,启动【Advance】>【adb sideload】

adb sideload Magisk-v24.1.zip

日志:

正在开始ADB sideload...
正在安装Zip刷机包"/sideload/package.zip"
************************
 Magisk 24.1 Installler
************************
- Current boot slot:_b
- Mounting /system
- Mounting /system_root
- Mountint /vendor
- Device is system-as-root
- Mounting /apex/com.android.apex.cts.shim
- Mounting /apex/com.android.resolv
- Mounting /apex/com.android.runtime
- Mounting /apex/com.android.conscrypt
- Mounting /apex/com.android.media
- Mounting /apex/com.android.media.swcodec
- Mounting /apex/com.android.tzdata
- System-as-root,keep dm/avb-verity
- Encrypted data, keep forceencrypt
- Target image:/dev/block/sde39
- Device platform:arm64-v8a
- Constructing environment
- Unpacking boot image
- Checking ramdisk status
- Stock boot image detected
- Patching ramdisk
- Repacking boot image
- Flashing new boot image
- Unmounting partitions
- Done

安装Disable_Dm-Verity_ForceEncrypt_11.02.2020.zip

由于“format data”过了,所以安装完Magisk后,马上进行解密包安装

adb sideload Disable_Dm-Verity_ForceEncrypt_11.02.2020.zip

过程中需要按音量键+和-来做出选择,请注意日志提示。

日志:

正在开始 ADB sideload...
正在安装 Zip 刷机包"/sideload/package.zip"

"*******************************************************"
"*DmVerity,ForceEncrypt, and DiscQuota Disabler*"
"*        By:Zackptgs            *"
"*   Headvily based on the work of:    *"
"*    TopJohnWu and Jcadduono          *"
"*******************************************************"

AnyKernel3 by osmOsis @ xda-developers

Installing...
/dev/bblock/by-name/boot_b
  Sideload detected! Zipname options can't be read
  Using Vol Key selection method

- Select Options-
  Vol+ = yes,Vol- = no

  Disable Disc Quota?(Select 'no' if unsure)
  Disable force encryption?

- Chosen/Default Arguments:
  Keep ForceEncrypt:false
  Keep Dm-Veritya:false
  Keep Disc Quota:true

-Detecting Root Method...
  MagiskSU detected!
-Unpacking boot img...
-Modifying existing .magisk file...
-Patching fstabs:
  /vendor/etc/fstab.qcom
  /vendor/etc/fstab_nodata.qcom
-Patching ramdisk...
-Patching fstab in dtb
-Repacking boot img...

Done!

刷入后重启系统,跳过任何指纹密码和其他密码设置。

注意此时不要去安装magisk app或者打开magisk,只需要开启开发者模式,启用USB调试,就可以重启到Recovery模式(TWRP)准备下一步了。

安装NetHunter

首先安装内核,内核下载地址

adb sideload kernel-nethunter-2021.3-oneplus7-oos-ten.zip

日志:

正在开始 ADB sideload...
正在安装 Zip 刷机包"/sideload/package.zip"
##################################################
##                                              ##
##  88      a8P         db        88        88  ##
##  88    .88'         d88b       88        88  ##
##  88   88'          d8''8b      88        88  ##
##  88 d88           d8'  '8b     88        88  ##
##  8888'88.        d8YaaaaY8b    88        88  ##
##  88P   Y8b      d8''''''''8b   88        88  ##
##  88     '88.   d8'        '8b  88        88  ##
##  88       Y8b d8'          '8b 888888888 88  ##
##                                              ##
####  ############# NetHunter ####################
   Kernel=NetHunter kernel
   Version="1.1"
   Author="re4son"
 
 
NetHunter kernel
 
AnyKernel3 by osm0sis @ xda-developers
Checking device...
OnePlus7

Installing...

Done!

接着正式刷入Kali NetHunter系统,下载地址

注意,刷入Kali NetHunter系统曾遇到一个问题,导出recovery日志发现是:

Error: Your data partition appears to be empty. Please complete the Android setup wizard before installing Kali NetHunter!
Aborting...

中文翻译:您的数据分区似乎为空。请在安装Kali NetHunter之前完成安卓安装向导!
意思是刷入kali NetHunter之前,安卓系统需要完成引导设置。
所以,记住这个阶段,不要进行双清操作。
如果不幸遇到这个问题,请重新进行magisk和解密包的安装。

adb sideload nethunter-2022.1-oneplus7-oos-ten-kalifs-full.zip

日志:

正在开始 ADB sideload…
正在安装 Zip 刷机包“/sideload/package.zip”
##################################################
##                                              ##
##  88      a8P         db        88        88  ##
##  88    .88'         d88b       88        88  ##
##  88   88'          d8''8b      88        88  ##
##  88 d88           d8'  '8b     88        88  ##
##  8888'88.        d8YaaaaY8b    88        88  ##
##  88P   Y8b      d8''''''''8b   88        88  ##
##  88     '88.   d8'        '8b  88        88  ##
##  88       Y8b d8'          '8b 888888888 88  ##
##                                              ##
####  ############# NetHunter ####################
Unpacking the installer...
Starting the installation
Installing busybox_nh-1.32 applets to /sbin
Checking for previous versions of NetHunter
SDK Version: 29
Installing apps:
- Installing NetHunter.apk
- Installing NetHunterTerminal.apk
- Installing NetHunter-KeX.apk
- Installing NetHunter-Store.apk
- Installing NetHunterStorePrivilegedExtension.apk
Done installing apps
Running busybox installer...
- Installing busybox_nh-1.25...
- Installing busybox_nh-1.32...
- Setting busybox_nh-1.32 as default
- /system/xbin/busybox not found! Symlinking...
Installing NetHunter wallpaper
- Found screen resolution: 1080x2340
- NetHunter wallpaper applied successfully
Installing NetHunter boot animation
Copying nano highlights to /system/etc/nano
Copying terminfo files to /system/etc/terminfo
Installing /system/bin binaries
Installing init.d scripts
Symlinking Kali boot scripts
Running kernel installer...
NetHunter kernel
- AnyKernel3 by osm0sis @ xda-developers
- Mounting Partitions
- Installing...
- A/B device Detected. Current slot: _b
- Target Image: /dev/block/sde39
- Copying firmware to /system/etc/firmware
- Installing /system/xbin binaries
- Applying additional anykernel installation patches
- Applying ak_patches/disable_brain_service
  - /vendor mounted already, remounting it as rw now
  - checking if patch had been applied previously
  - patch has not been applied previously, applying now
  - patch has been applied succesfully
- Unpacking boot image
- Unpacking ramdisk
- Repacking ramdisk
- Magisk detected! Patching kernel so reflashing Magisk is not necessary...
- Flashed new bootimage
- Pushing modules...
- Removing existing modules directories in /system_root/lib/modules/
Running Kali chroot installer...
- Found Kali chroot to be installed: kalifs-arm64-full.tar.xz
- Extracting Kali rootfs, this may take up to 25 minutes...
- Kali arm64 full chroot installed successfully!
Cleaning Up...
 
************************************************
*       Kali NetHunter is now installed!       *
*==============================================*
*   Please update the NetHunter app via the    *
*   NetHunter Store to work around an Android  *
*   permission issue and run the NetHunter app *
*       to finish setting everything up!       *
************************************************

重启系统

成功进入系统后,Magisk还不能打开,提示需要联网下载,其实只是需要额外安装一次apk就行。

通过adb安装:adb install Magisk-v24.1.apk

打开Magisk,提示需要额外的修复,点击确认,等待重启。

搞定。

成果图

在这里插入图片描述
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐