oneplus6刷机过程中还遇到了其他的问题, 记录一下
参考
主要参考了oneplus6t的教程
- Windows10 on arm64@Skr-niao’Blog
- 给手机装Windows11!还能玩大型游戏?!@极客湾Geekerwan
- How to downgrade OnePlus 6/6T to Android 9 Pie from Android 10
- TWRP: Could not mount /data (even after format data / change file system)
资源下载
本文用到的文件主要来自参考教程:
- 一加6刷机文件下载, 密码: enkh
不包含windows镜像,可以使用aria2从UUP dump下载很快
注:
- 一加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分区~ # [6nmke2fs -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>Advanced>File Manager
- 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.zip
和halium-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 协议 ,转载请注明出处!