最近小米6和一加6T的OpenHarmony移植,可以说是振奋人心,不禁感慨到OH终于有廉价的开发设备可用了。 我一直是比较关注OpenHarmony的发展和应用开发的相关技术,虽然对系统设备开发并不了解,但还是想着渐进式的尝试和学习下。 搭建编译环境编译官方rk3568(已完成)。 基于Wathinst的开源移植仓库,编译一加6T的OH系统,熟悉过程解锁一些知识盲区(已完成)。https:gitee。comwathinst 尝试移植其他更廉价的安卓设备(待完成)。 除此之外,我还会在我的开源组织ohosdev提交我个人学习开发的应用和相关工具。https:gitee。comohosdev 编译所使用的一加6T开源移植仓库是由Wathinst完成的。非常感谢Wathinst的耐心指点,我才能顺利编译成功。https:gitee。comwathinst 最终效果如下: 个人认为,这篇笔记更适合以下人群阅读(其实就是我〔手动狗头〕):缺乏系统移植经验或者没有想基于现有的开源移植仓编译OpenHarmony作为学习的开端尽快用上设备做应用开发真机调试,为OpenHarmony应用生态做贡献 设备和源码信息概述 如下:OnePlus6T(fajita)OpenHarmonymaster分支20230315 环境搭建和获取源码 官方文档,看这个就OK:https:docs。openharmony。cnpagesv3。2Betazhcndevicedevquickstartquickstartpkgprepare。md 我是用虚拟机跑的Ubuntu18。04,分配的8c16g,官方rk3568首次编译实测耗时85分钟。 关于环境搭建官方提供了3种,IDE、安装包、Docker,我用的第2种方式。 加入开源移植仓库并同步作者:https:gitee。comwathinst组织:https:gitee。comohosportWathinst移植的一加6T开源仓库 。repomanifestsipsetsall。xml追加:includenamechipsetsoneplusfajita。xml 新增:。repomanifestsipsetsoneplusfajita。xmllt;?xmlversinotallow1。0encodingUTF8?manifestremotefetchhttps:gitee。comohosportnameohosportreviewhttps:gitee。comohosport!defaultremoteohosportrevisinotallowmastersyncj4projectnamedeviceboardonepluspathdeviceboardoneplusremoteohosportrevisionmasterprojectnamedevicesocqualcommpathdevicesocqualcommremoteohosportrevisionmasterprojectnamevendoronepluspathvendoroneplusremoteohosportrevisionmastermanifest再次同步源码和编译:reposyncrepoforallcgitlfspull。build。shproductnamefajita 编译成功输出目录:ohosoutfajitapackagesphoneimages 修复编译中出现的代码错误 master分支问题会多一些,编译期间根据错误日志不断分析修正,直至成功(Release应该没什么问题的)。err1,2:作者已经修正,https:gitee。comohosportdeviceboardoneplusissuesI6ND82err3:thirdpartylibdrmtestsutilpattern。cvoidmembasemem;errfix1err4,5:foundationabilityformfwkservicessrcformeventutil。cppHILOGINFO({public}sformId:{public}lld,func,(longlong)formRecord。formId);errfix2HILOGINFO({public}sformId:{public}lld,func,(longlong)formRecord。formId);errfix3 OH源码和开源移植的修改记录 fstab调整:deviceboardoneplusfajitacfgfstab。fajitadevblocksda18修改为devblocksda17,因为一加6T的data分区就在这里,原作者新增分区做双系统,才这么配置的fstabfile。srcmntpointtypemntflagsandoptionsfsmgrflagsdevblocksda14usrext4ro,barrier1wait,requireddevblocksde44vendorext4ro,barrier1wait,requireddevblocksda18dataext4nosuid,nodev,noatime,barrier1,dataordered,noautodaallocwait,reservedsize104857600devblocksda3miscnonenonewait,required DPI修正:foundationwindowwindowmanagerresourcesconfigBUILD。gnwindowmanagerdayu210resourceconfigtrueline16,修改为falseinstallenablefalseline44,displaymanagerconfig下面的最后一个else中的改为true 编译内核和打包boot。imgsudoaptinstallabootimgmkdironepluscdoneplusgitclonehttps:gitee。comohosportlinuxsdm8456。2cdlinuxsdm8456。2。makesdm845。sh。makebootimg。sh我把boot。img输出目录INSTALLDIR改为了homeubuntu