cndaqiang Web Linux DFT

oneplus6刷windows 11 arm等

2021-07-09
cndaqiang
RSS

oneplus6刷机过程中还遇到了其他的问题, 记录一下

参考

主要参考了oneplus6t的教程

资源下载

本文用到的文件主要来自参考教程:

注:

  • 一加6的代号是enchilada,下载相关文件注意该关键词
  • 可以关注最新SDM845驱动GitHub -WOA-Drivers更新情况,用最新的驱动
  • 可关注最新的efi: boot-enchilada.img,以及大佬们提供uefi
  • PE以及windows10/11用ARM版的都可以

解BL锁

解锁会丢失所有用户数据

  • 进入开发者模式: 关于手机>连点五次版本号
  • 系统>开发者选项>OEM解锁,USB调试,一律允许USB调试

  • 解锁: 这里使用一加全机型万能工具箱v3.8.1.exe,其他方式也可以 音量选择unlock,电源键确认
  • 解锁后,因为丢失数据,第一次开机比较慢

刷twrp

这里使用一加全机型万能工具箱v3.8.1.exe

安卓10降级安卓9

因为一加全机型万能工具箱v3.8.1.exe目前只能给安卓9以下的一加6刷twrp,所以要降级.
如果能通过其他方式刷入twrp则不需要降级.

卡刷

复制fulldowngrade_wipe_MSM_17819_181025_2315_user_MP1_release.zip到手机
系统>系统更新>齿轮>本地升级
(注: fulldowngrade_wipe_MSM_17819_181025_2315_user_MP1_release.zip这个卡刷包是国外的,开机断开网络和手机卡,不然一直连不上google验证)

线刷

也可以用MsmDownloadTool线刷安卓9的包. 方法见下.
链接中提供了安卓8的H2_5.1.3系统

刷机后打开usb调试

刷twrp

一加6要刷两次, 按照提示操作即可

  • Advanced > ADB Sideload
  • 回车第一遍刷完
  • Back
  • Advance > ADB Sideload
  • 回车再刷一遍

分区

进入twrp界面

方法一: 电脑adb调试

  • 连上电脑复制parted到手机并分区
C:\Users\cndaqiang>adb shell
#
cp /sdcard/parted /sbin
chmod +x /sbin/parted

  • 卸载data分区
    umount /data && umount /sdccard
    #或者根据df -h 确定data是sda的第17个分区
    umount /dev/block/sda17
    
  • 进入分区界面
    parted /dev/block/sda
    

    rm 17 
    #下面的起始结束位置不同类型的手机不同,根据p返回的信息修改
    mkpart esp fat32 6559MB 7000MB
    mkpart pe fat32 7000MB 10000MB
    mkpart win ntfs 10000MB 70GB
    mkpart userdata ext4 70GB 125GB
    set 17 esp on
    #按q退出
    q
    

    最终分区的结果

  • 格式化新分区
    参考教程中给出oneplus6t是通过/dev/block/by-name/pe的方式分的, 我手里的版本,不存在该文件夹/dev/block/by-name
    下面通过硬盘编号分区,根据上面分的结果esp,pe,win,userdata分别是17,18,19,20
    mkfs.fat -F32 -s1 /dev/block/sda17
    mkfs.fat -F32 -s1 /dev/block/sda18
    mkfs.ntfs -f /dev/block/sda19
    mke2fs -t ext4 /dev/block/sda20
    

    再给userdata分区时出现错误,不影响,可以之后进fastboot分区

    ~ # mke2fs -t ext4 /dev/block/sda20
    mke2fs -t ext4 /dev/block/sda20
    CANNOT LINK EXECUTABLE "mke2fs": library "libext2_misc.so" not found
    libc: CANNOT LINK EXECUTABLE "mke2fs": library "libext2_misc.so" not found
    libc: Fatal signal 6 (SIGABRT), code -6 in tid 938 (mke2fs), pid 938 (mke2fs)
    Aborted
    

方法二: twrp界面操作方法

  • 把parted放到U盘(很图形化的操作)
  • 插入U盘
    • twrp>Mount>USB Storage
    • twrp>Advanced>File Manager
      进入/usbstroage/ ,按住parted文件,
      复制到/sbin(其实复制到哪都无所谓,后面执行时指定parted的绝对路径即可)
      进入/sbin/,parted 可执权限chmod 775
  • twrp>Adcance>Terminal
    输入同方法一的命令,卸载和分区

复制PE到pe分区

mount /dev/block/sda18 /mnt

插入包含PE文件的U盘到手机
twrp>Adcance>Terminal,复制PE到挂载点/mnt

cp /usbstroage/20h2pe_new/* /mnt

UEFI引导开机

重启进入Bootload
先修复刚才data分区格式化出错,CMD输入

fastboot format:ext4 userdata

从uefi的boot启动

fastboot boot D:\cndaqiang\Download\boot-enchilada.img

也可以把这个img直接刷入的boot里面(没必要),不刷则每次开机进windows都要进fastboot启动
flash命令(慎用)

fastboot flash boot D:\cndaqiang\Download\boot-enchilada.img

安装系统

进入PE界面

fastboot命令熟完后就会进行ARM版的PE界面

装载ISO文件

提前解压也,我们要用到里面/source/install.wim文件

打开ARM版的DISM++

和在PE下给x86装系统没有什么区别

  • 释放镜像 文件>释放镜像,选择install.wim和要安装到的分区,注意钩上添加引导
  • 加载驱动 打开对话>驱动管理>打开WOA的驱动

  • 关闭驱动验证 PE中的CMD
    #这个挂载EFI分区的命令在其他教程中也没提到
    mountvol Y: /S
    bcdedit /store Y:\efi\microsoft\boot\bcd /set {Default} testsigning on
    bcdedit /store Y:\efi\microsoft\boot\bcd /set {Default} nointegritychecks on
    

开机

从uefi的boot启动

fastboot boot D:\cndaqiang\Download\boot-enchilada.img

跟极客湾Geekerwan的视频教程一致,第一次蓝屏, 关机后再fastboot启动一次就可以了

很多硬件还是没有适配,触屏虽然能用也点不准

刷Ubuntu Touch

参考ubports-oneplus6
可以去上面仓库看看有没有最新版
目前的bug:

  • 电信卡不识别
  • 联通卡只能用卡2槽

过程:

  • 下载Release中的target.ziphalium-boot.img
  • 复制target.zip到手机存储
  • twrp安装target.zip
  • 启动,默认密码是phablet
    fastboot boot D:\cndaqiang\Download\halium-boot.img
    

    也可以写入

    fastboot flash boot D:\cndaqiang\Download\halium-boot.img
    

UbuntuTouch/Win11/Oneplus系统可以并存,设置fastboot启动不同img即可

其他备用

一加线刷恢复: MsmDownloadTool

一键回原厂, 恢复一加默认Recover,系统,硬盘分区,加BL锁等.

  • 按住电源+音量+,连接数据线,手机应该就黑屏, 设备管理器查看到COM设备后松手
  • windows自动更新9008驱动
  • MsmDownloadTool:start进行线刷恢复

本文首发于我的博客@cndaqiang.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!


类似文章

目录

访客数据