OnePlus6T OpenHarmony简明刷机指南
AlgoIdeas
编辑于 2023年02月13日 08:09

一、简介

一加6T在开源鸿蒙(OpenHarmony)的移植,主要利用工作之余的空闲时间移植,目前仅正常开机启动,触屏正常,最新已经初步支持GPU,其他功能就只能呵呵。OpenHarmony版本基于OpenHarmony 3.2 Beta5,内核基于Linux 6.1,同时也支持OpenHarmony的主线5.10内核版本(暂未使用)。

重要说明:

二、准备工作

1、确认系统分区

一加6T支持A/B分区功能,目前刷入的镜像均在B分区。

一加6T的分区确认:

Model: SAMSUNG KLUDG4U1EA-B0C1 (scsi)

Disk /dev/block/sda: 125GB

Sector size (logical/physical): 4096B/4096B

Partition Table: gpt

Disk Flags:

Number  Start   End     Size    File system  Name         Flags

 1      24.6kB  32.8kB  8192B                ssd

 2      32.8kB  33.6MB  33.6MB  ext4         persist

 3      33.6MB  34.6MB  1049kB               misc

 4      34.6MB  35.7MB  1049kB               param

 5      35.7MB  36.2MB  524kB                keystore

 6      36.2MB  36.7MB  524kB                frp

 7      36.7MB  305MB   268MB   ext4         op2

 8      305MB   316MB   10.5MB               oem_dycnvbk

 9      316MB   326MB   10.5MB               oem_stanvbk

10      326MB   334MB   8290kB               reserve1

11      334MB   351MB   16.6MB               reserve2

12      351MB   352MB   524kB                config

13      352MB   3350MB  2999MB  ext2         system_a

14      3350MB  6349MB  2999MB  ext2         system_b

15      6349MB  6454MB  105MB   ext4         odm_a

16      6454MB  6559MB  105MB   ext4         odm_b

17      6559MB  125GB   118GB   ext4         userdata

其中刷机时,vender分区,对应手机的vender_b分区,实际对应分区号为/dev/block/sde44。

分区信息确认方法:

通过adb shell进入手机原系统进行确认,或进入TWRP采用parted命令行工具确认(可自行网上搜索使用方法,不在本文讨论范围之内)。

目前刷机包移植的OpenHarmony镜像对应一加6T刷机分区如下:

OpenHarmony镜像分区号分区名备注system.img/dev/block/sda14system_b分区系统分区vendor.img/dev/block/sde44vendor_b分区厂商相关userdata.img/dev/block/sda17userdata分区用户(应用)数据,目前提供镜的像只是放置了部分Linux社区图片boot.img不需关注boot_b分区启动相关

其中,system.img和userdata.img分区镜像,目前OpenHarmony已经可以做到与芯片平台无关,其他手机或开发板(arm或aarch64架构)理论上,在满足基本存储和硬件要求的情况下均可以通用(刷入)。

boot.img和vendor.img与芯片平台相关,需要根据硬件适配和定制。

重要说明:

2、解锁Bootloader

详细方法可参考教程:一加6、6T、7、7Pro 解锁,刷入TWRP、Magisk、ROOT教程

请在电脑(PC)安装好fastboot命令行工具,刷机主要采用fastboot命令进行操作,也可以采用TWRP刷机(本文不再赘述)。

目前采用fastboot刷入系统,理论上适合支持fastboot烧录更新系统的所有机型,无论是手机,还是各种开发板卡

3、下载镜像包

目前适配一加6T手机的开源鸿蒙镜像包,只是初步适配,不建议刷入,仅供学习OpenHarmony刷机使用。目前没有2D加速,GPU版本体验仍然很卡,请期待后续分享。

CPU版本镜像:

链接: https://pan.baidu.com/s/1DQ7oZ7wQMNgSJxl4dnKrhw?pwd=zs35 

提取码: zs35

镜像包目录结构

.

|-- README.md                #本文档

|-- figures                  #图片

|-- images

|-- script                   #刷机BAT脚本

|   |-- 0.unlock.bat

|   |-- 1.flash_boot_a.bat

|   |-- 1.flash_boot_b.bat

|   |-- 2.flash_userdata.bat

|   |-- 3.flash_vendor.bat

|   |-- 4.flash_system.bat

|   `-- 5.reboot.bat

`-- tools                    #工具

    |-- android

    |   `-- parted

    `-- windows

        `-- platform-tools.zip   # fastboot及adb工具

```

三、刷机步骤

目前仅提供简单的BAT脚本进行刷机,在script目录下,可按步骤执行脚本进行即可。

重要说明:

步骤一、刷入boot.img

参考命令(如需刷入boot_a分区,改成boot_a及dtbo_a即可):

步骤二、刷入userdata.img

参考命令:

步骤三、刷入vendor.img

参考命令:

步骤四、刷入system.img

参考命令:

四、常见问题

1、刷完镜像后,一直进入原系统

建议执行以下命令选择B分区启动尝试,然后重启:

2、刷完镜像后,一直进Bootloader

用以下命令确认设备信息:

重点关注下系统从哪个分区启动:

其中(bootloader) current-slot:a 表示当前从A分区启动, 目前自己在调试用的机器,即使选择B分区启动,重启后仍然选择A分区启动,暂时不确定原因,通过重新执行刷入boot_a和userdata解决。

说明: 如果刷入boot_a,原系统目前不能正常进入,如果有备份原boot_a分区镜像,这里就体现了其重要性。

3、刷完镜像后,能够正常进入OpenHarmony,但显示不出欢迎页面

可能需要重新刷入userdata.img,请参考刷机步骤。

五、常用操作

1.进入Bootloader的方法

关机下长按音量上 + 电源键(或者开机后adb下运行adb reboot bootloader)

2.fastboot解锁命令

说明:需进入Bootloader,一加6T手机进入Bootloader的方法: 关机下长按音量上 + 电源键(或者开机后adb下运行adb reboot bootloader)

3. 输出当前BL(Bootloader)锁状态

命令返回结果如下(仅供参考):

4.输出该设备的所有信息

返回结果如下(仅供参考):

六、附录

一加6T线刷包(救砖用)

链接: https://pan.baidu.com/s/1XSAF-yeP2RkhodPig5-gwQ?pwd=43j6

提取码: 43j6