一加6T OpenHarmony 基于开源移植仓库编译成功刷入 原创 精华
westinyang
发布于 2023-3-17 03:49
浏览
2收藏
关于作者:I’m westinyang
最近 小米6@Diemit、一加6T@AlgoIdeas 和 一加6T@Wathinst 的OpenHarmony移植,可以说是振奋人心,不禁感慨到OH终于有廉价的开发设备可用了,我一直是比较关注OpenHarmony的发展和应用开发的相关技术,虽然对系统设备开发并不了解,但还是想着渐进式的尝试和学习下:
- 搭建编译环境编译官方rk3568(已完成)
- 基于Wathinst的开源移植仓库,编译一加6T的OH系统,熟悉过程解锁一些知识盲区(已完成)
- 尝试移植其他更廉价的安卓设备(待完成)
- 除此之外,我还会在我的 开源组织 ohos-dev 提交我个人学习开发的应用和相关工具
编译所使用的一加6T开源移植仓库是由 @Wathinst 完成的。非常感谢 @Wathinst 的耐心指点,我才能顺利编译成功
个人认为,这篇笔记更适合以下人群阅读(其实就是我 [手动狗头]):
- 缺乏系统移植经验或者没有
- 想基于现有的开源移植仓编译OpenHarmony作为学习的开端
- 尽快用上设备做应用开发真机调试,为OpenHarmony应用生态做贡献
0 设备和源码信息概述
- OnePlus 6T (fajita)
- OpenHarmony master 分支 2023-03-15
1 环境搭建和获取源码
- 官方文档,看这个就OK
- 我是用虚拟机跑的Ubuntu18.04,分配的8c16g,官方rk3568首次编译实测耗时85分钟
- 关于环境搭建官方提供了3种,IDE、安装包、Docker,我用的第2种方式
2 加入开源移植仓库并同步
作者:https://gitee.com/wathinst
组织:https://gitee.com/ohos_port@Wathinst移植的一加6T开源仓库
.repo/manifests/chipsets/all.xml
追加<include name="chipsets/oneplus/fajita.xml" />
- 新增
.repo/manifests/chipsets/oneplus/fajita.xml
<?xml version="1.0" encoding="UTF-8"?> <manifest> <remote fetch="https://gitee.com/ohos_port/" name="ohos_port" review="https://gitee.com/ohos_port/"/> <!-- <default remote="ohos_port" revision="master" sync-j="4" /> --> <project name="device_board_oneplus" path="device/board/oneplus" remote="ohos_port" revision="master"/> <project name="device_soc_qualcomm" path="device/soc/qualcomm" remote="ohos_port" revision="master"/> <project name="vendor_oneplus" path="vendor/oneplus" remote="ohos_port" revision="master"/> </manifest>
- 再次同步源码和编译
repo sync repo forall -c 'git lfs pull' ./build.sh --product-name fajita
- 编译成功输出目录
~/ohos/out/fajita/packages/phone/images
3 修复编译中出现的代码错误
master分支问题会多一些,编译期间根据错误日志不断分析修正,直至成功(Release应该没什么问题的)
# err1,2: 作者已经修正,https://gitee.com/ohos_port/device_board_oneplus/issues/I6ND82
# err3: third_party/libdrm/tests/util/pattern.c
// void *mem_base = mem; // @errfix 1
# err4,5: foundation/ability/form_fwk/services/src/form_event_util.cpp
HILOG_INFO("%{public}s formId:%{public}lld", __func__, (long long) formRecord.formId); // @errfix 2
HILOG_INFO("%{public}s formId:%{public}lld", __func__, (long long) formRecord.formId); // @errfix 3
4 OH源码和开源移植的修改记录
fstab调整
# device/board/oneplus/fajita/cfg/fstab.fajita
# /dev/block/sda18 修改为 /dev/block/sda17,因为一加6T的data分区就在这里,原作者新增分区做双系统,才这么配置的
# fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/sda14 /usr ext4 ro,barrier=1 wait,required
/dev/block/sde44 /vendor ext4 ro,barrier=1 wait,required
/dev/block/sda18 /data ext4 nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc wait,reservedsize=104857600
/dev/block/sda3 /misc none none wait,required
DPI修正
# foundation/window/window_manager/resources/config/BUILD.gn
window_manager_dayu210_resource_config = true # line 16,修改为false
install_enable = false # line 44,display_manager_config下面的最后一个else中的改为true
5 编译内核和打包boot.img
sudo apt install abootimg
mkdir ~/oneplus & cd ~/oneplus
git clone https://gitee.com/ohos_port/linux-sdm845-6.2
cd linux-sdm845-6.2
./make_sdm845.sh
./make_bootimg.sh # 我把boot.img输出目录INSTALL_DIR改为了/home/ubuntu/
6 刷机指南
持续关注
- 关于作者:I’m westinyang
- 哔哩哔哩:个人主页
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2024-1-17 23:58:09修改
赞
4
收藏 2
回复
相关推荐
期待鸿蒙未来能跑在更多的手机上
赞,希望越来越多大佬参与进来
真弄到了一加6T,厉害
能刷成功才算厉害
学习学习