3

OnePlus6T OpenHarmony简明刷机指南

 1 year ago
source link: https://www.51cto.com/article/746469.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

OnePlus6T OpenHarmony简明刷机指南

作者:AlgoIdeas 2023-02-14 17:11:50
OpenHarmony版本基于OpenHarmony 3.2 Beta5,内核基于Linux 6.1,同时也支持OpenHarmony的主线5.10内核版本(暂未使用)。
5632f59977ff01132e4113bed3cda08d76c7f8.png

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

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

重要说明:

  1. 目前OpenHarmony只是初步适配,不适合使用,仅供学习用途,如果自己刷入后,手机变砖或其他问题,后果自行承担。
  2. 虽然已经适配初步支持了GPU,但是还没有适配2d图形加速功能,普通的操作依然很卡,后续慢慢优化后释放体验包。
  3. 本文的目的是让大家如何在手机上快速刷入OpenHarmony并针对刷机的一些要求和一些问题作简明说明,移植不在本文讨论范围。

二、准备工作

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/sda14

system_b分区

vendor.img

/dev/block/sde44

vendor_b分区

userdata.img

/dev/block/sda17

userdata分区

用户(应用)数据,目前提供镜的像只是放置了部分Linux社区图片

boot.img

boot_b分区

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

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

重要说明:

  1. 不符合上述分区的手机不建议刷入,如果强行刷入,后果自行承担
  2. 刷机前请备份好系统数据,和boot镜像。其中boot_a分区有可能需要被刷入覆盖,尤其是Bootloader启动的时候不选择进入boot_b启动,表现的现象就是一直进入Bootloader(可通过fastboot命令获取当前启动分区),此时可能需要将boot.img镜像刷入boot_a分区

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目录下,可按步骤执行脚本进行即可。

重要说明:

  1. 刷机前先进入Bootloader
  2. 每次刷入镜像,如果连续刷入下一个镜像,执行BAT脚本或输入命令,命令行窗口等超过30s没有返回,需再次进入Bootloader,再刷入想要刷入的镜像。 如下状态(建议进入Bootloader后,通过音量下键,先选择到该项功能,按电源键即可再次进入Bootloader,请参考视频操作)

步骤一、刷入boot.img

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

fastboot set_active b
fastboot erase dtbo_b
fastboot flash boot_b boot.img

步骤二、刷入userdata.img

参考命令:

fastboot erase userdata
fastboot flash userdata userdata.img

步骤三、刷入vendor.img

参考命令:

fastboot erase vendor_b
fastboot flash vendor_b vendor.img

步骤四、刷入system.img

参考命令:

fastboot erase system_b

fastboot flash system_b system.img

四、常见问题

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

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

fastboot set_active b

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

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

fastboot getvar all

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

(bootloader) current-slot:a
(bootloader) has-slot:boot:yes
(bootloader) slot-retry-count:b:7
(bootloader) slot-unbootable:b:yes
(bootloader) slot-successful:b:no
(bootloader) slot-retry-count:a:2
(bootloader) slot-unbootable:a:yes
(bootloader) slot-successful:a:no

其中(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解锁命令

fastboot oem unlock

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

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

fastboot oem device-info

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

(bootloader) Verity mode: true
(bootloader) Device unlocked: true
(bootloader) Device critical unlocked: false
(bootloader) Charger screen enabled: true
(bootloader) enable_dm_verity: true
(bootloader) have_console: false
(bootloader) selinux_type: SELINUX_TYPE_INVALID
(bootloader) boot_mode: NORMAL_MODE
(bootloader) kmemleak_detect: false
(bootloader) force_training: 0
(bootloader) mount_tempfs: 0
(bootloader) op_abl_version: 0x31
(bootloader) cal_rebootcount: 0x31
OKAY [  0.018s]
Finished. Total time: 0.019s
4、输出该设备的所有信息
fastboot getvar all

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

(bootloader) hw-revision:20001
(bootloader) unlocked:yes
(bootloader) off-mode-charge:1
(bootloader) charger-screen-enabled:1
 ... ...
(bootloader) has-slot:modem:yes
(bootloader) has-slot:system:yes
(bootloader) current-slot:a
(bootloader) has-slot:boot:yes
(bootloader) slot-retry-count:b:6
(bootloader) slot-unbootable:b:yes
(bootloader) slot-successful:b:no
(bootloader) slot-retry-count:a:6
(bootloader) slot-unbootable:a:yes
(bootloader) slot-successful:a:no
(bootloader) slot-count:2
(bootloader) secure:yes
(bootloader) serialno:567dc0e0
(bootloader) product:sdm845
(bootloader) max-download-size:536870912
(bootloader) kernel:uefi
all:
Finished. Total time: 0.469s

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

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

提取码: 43j6

2、参考刷机视频

​一加6T开源鸿蒙移植系列 - 完整刷机过程​

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

责任编辑:jianghua 来源: 51CTO 开源基础软件社区

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK