了解更多开源请访问:开源基础软件社区https://ost.51cto.com一、介绍OnePlus6T开源Harmony的移植主要利用空闲时间移植后工作。目前只是开机正常,触摸屏正常。最新版本已经初步支持GPU,其他功能只能呵呵了。OpenHarmony版本基于OpenHarmony3.2Beta5,内核基于Linux6.1。它还支持OpenHarmony的主线5.10内核版本(尚未使用)。重要说明:目前OpenHarmony只是初步适配,不适合使用。它仅用于学习目的。如刷入后手机变砖或出现其他问题,后果自负。虽然已经适配初步支持GPU,但还没有适配2D图形加速功能,普通操作还是很慢,等慢慢优化后再放体验包。本文旨在让您了解如何在手机上快速安装OpenHarmony,并简单说明一下刷机的一些要求和问题。移植超出了本文的范围。二、准备工作1、确认系统分区OnePlus6T支持A/B分区功能,当前刷入的镜像都在B分区。一加6T的分区确认:Model:SAMSUNGKLUDG4U1EA-B0C1(scsi)Disk/dev/block/sda:125GBSectorsize(logical/physical):4096B/4096BPartitionTable:gptDiskFlags:NumberStartEndSizeFilesystemNameFlags124.6kB32.8kB8192Bssd232.8kB33.6MB33.6MBext4persist333.6MB34.6MB1049kBmisc434.6MB35.7MB1049kBparam535.7MB36.2MB524kBkeystore636.2MB36.7MB524kBfrp736.7MB305MB268MBext4op28305MB316MB10.5MBoem_dycnvbk9316MB326MB10.5MBoem_stanvbk10326MB334MB8290kBreserve111334MB351MB16.6MBreserve212351MB352MB524kBconfig13352MB3350MB2999MBext2system_a143350MB6349MB2999MBext2system_b156349MB6454MB105MBext4odm_a166454MB6559MB105MBext4odm_b176559MB125GB118GBext4userdata其中,刷机时,vender分区对应手机的vender_b分区,实际对应的分区号为/dev/block/sde44分区信息确认方法:通过adbshell确认进入手机原系统,或者进入TWRP使用parted命令行工具确认(使用方法可以自行上网搜索,不在本文讨论范围内)。当前闪存包移植的OpenHarmony镜像对应一加6T闪存分区如下:relateduserdata.img/dev/block/sda17userdata分区用户(应用)数据,目前提供的镜像只是放置部分Linux社区镜像boot.img不需要关注boot_b分区启动相关,system.img和userdata.img分区镜像,目前OpenHarmony已经可以了,与芯片平台无关。理论上其他手机或开发板(arm或aarch64架构)只要满足基本的存储和硬件要求,都可以通用(刷入)。boot.img和vendor.img与芯片平台相关,需要根据硬件适配定制。重要提示:不建议刷入不符合以上分区的手机。如强行刷机,后果自负。刷机前请备份好系统数据和引导镜像。其中,boot_a分区可能需要覆盖,尤其是当Bootloader没有选择进入boot_b启动时,现象是一直在进入Bootloader(当前boot分区可以通过fastboot命令获取),以及可能需要将boot.imgFlash镜像到boot_a分区2.解锁Bootloader的详细方法请参考教程:解锁一加6,6T,7,7Pro,刷入TWRP,Magisk,ROOT教程请在电脑(PC)上安装fastboot命令行工具,刷机主要使用fastboot命令,也可以使用TWRP刷机(本文不再赘述)。目前使用fastboot刷入系统,理论上适用于所有支持fastboot的机型烧录更新系统,无论是手机还是各种开发板。初步适配,不推荐刷机,仅供学习OpenHarmony刷机使用。目前还没有2D加速,GPU版体验还是很慢,敬请期待后续分享。CPU版本图片:链接:https://pan.baidu.com/s/1DQ7oZ7wQMNgSJxl4dnKrhw?pwd=zs35提取码:zs35图片包目录结构:.|--README.md#thisdocument|--figures#image|--images|--script#刷机BAT脚本||--0.解锁.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和adbtool3.刷机步骤目前只提供简单的BAT脚本进行刷机。在脚本目录下,可以一步步执行脚本。重要提示:刷入之前,每次都要先进入Bootloader刷入镜像。如果连续刷入下一个镜像,执行BAT脚本或输入命令,超过30秒命令行窗口没有返回,则需要重新进入Bootloader,然后刷入你要刷入的镜像。镜像。状态如下(建议进入Bootloader后按音量下键选择此功能,然后再次按电源键进入Bootloader,操作请参考视频)Step1,flashintoboot.img参考命令(如果需要刷入boot_a分区,改成boot_a和dtbo_a即可):fastbootset_activebfastbooterasedtbo_bfastbootflashboot_bboot.img第二步,刷入userdata.img参考命令:fastbooteraseuserdatafastbootflashuserdatauserdata.imgStep3,flashintovendor.img参考命令:fastbooterasevendor_bfastbootflashvendor_bvendor.imgStep4.Flashintosystem.img参考命令:fastbooterasesystem_bfastbootflashsystem_bsystem.img四、常见问题1.刷完后镜像,建议执行如下命令选择B分区尝试启动,然后重启:fastbootset_activeb2。刷入镜像后,进入Bootloader确认设备信息,命令如下:fastbootgetvarall关注系统从哪个分区启动:(bootloader)current-slot:a(bootloader)has-slot:boot:yes(bootloader)插槽重试计数:b:7(引导加载程序)插槽无法启动:b:是(引导加载程序)插槽成功:b:否(引导加载程序)插槽重试计数:a:2(引导加载程序)插槽无法启动:a:yes(bootloader)slot-successful:a:nowhere(bootloader)current-slot:a表示当前是从A分区启动,而我当前调试的机器,即使选择B分区启动,restart之后,仍然选择分区A进行引导。我不确定为什么,但是可以通过再次刷新boot_a和userdata来解决。注意:如果刷了boot_a,目前无法正常进入原系统。如果有原boot_a分区的备份镜像,就体现了它的重要性。3、刷入镜像后可以正常进入OpenHarmony,但是无法显示欢迎页面。您可能需要再次刷新userdata.img。请参考刷机步骤。五、常用操作1、如何进入Bootloader。关机按音量上+电源键(或者开机后在adb下运行adbrebootbootloader)2.fastboot解锁命令fastbootoemunlock说明:需要进入Bootloader,一加6T手机进入Bootloader方法:关机然后按音量加+电源键(或者开机后在adb下运行adbrebootbootloader)3.输出当前BL(Bootloader)锁定状态。fastbootoemdevice-info命令返回以下结果(仅供参考):(bootloader)Veritymode:true(bootloader)Deviceunlocked:true(bootloader)Devicecriticalunlocked:false(bootloader)Chargerscreenenabled:true(bootloader)enable_dm_verity:true(bootloader)have_console:false(bootloader)selinux_type:SELINUX_TYPE_bootloaderID(bootloaderID):NORMAL_MODE(bootloader)kmemleak_detect:false(bootloader)force_training:0(bootloader)mount_tempfs:0(bootloader)op_abl_version:0x31(bootloader)cal_reboot1OK:0[0.018s]完成。总时间:0.019fastbootgetvar全部返回的结果如下(仅供参考):(bootloader)hw-revision:20001(bootloader)unlocked:yes(bootloader)off-mode-charge:1(bootloader)charger-screen-启用:1...。..(引导加载程序)有插槽:调制解调器:是(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(引导加载程序)插槽成功:b:否(引导加载程序)插槽重试计数:a:6(引导加载程序)插槽无法启动:a:是(引导加载程序)插槽成功:a:否(引导加载程序)插槽计数:2(引导加载程序)安全:是(引导加载程序)serialno:567dc0e0(引导加载程序)产品:sdm845(引导加载程序)最大下载大小:536870912(引导加载程序)内核:uefiall:完成。总耗时:0.469s6、附录一、一加6T线刷包(省砖)链接:https://pan.baidu.com/s/1XSAF-yeP2RkhodPig5-gwQ?pwd=43j6提取码:43j62,参考刷机视频一加6T开源鸿蒙移植系列-完整刷机流程了解更多开源内容请访问:来自开源软件社区https://ost.51cto.com
