鸿蒙os初步研究,从源码编译系统镜像
因为有着openwrt开发的一些经验,论坛不少老哥都想刷鸿蒙系统,所以无聊搞着玩。
然而目前OpenHarmony OS 2.0 的源码仅支持Hi3516DV300的开发板,所以其他手机还是省省吧,还有需要一些烧录工具。
家中常备各种烧录工具,杜邦线,夹子,卷到一坨了,用的时候在分。
开发板已从朋友那里借到,几天后发过来
在编译OpenHarmony OS 2.0之前,我们需要配置下基础环境,这里可以在基于linux的宿主机上实现,也可以用wsl或者docker
我更推荐使用docker,毕竟宿主机上安装的软件太多,linux下很多软件依赖需要解决,还是docker用起来方便。
这里我们需要拉取一个linux镜像,这里我选择ubuntu20.04,使用docker pull ubuntu:xenial-20210611拉取最新版。
docker run xxx运行容器
使用docker ps -a查看运行的容器,看到ubuntu已经在运行啦,找到容器的id。
使用 docker exec -it 容器id /bin/bash 进入容器
参考鸿蒙开发论坛,要把shell改为bash
https://harmonyos.51cto.com/posts/2749
现在需要安装些依赖工具:
apt-get update
apt-get install binutils git-core git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 python2.7 python3-pip
按下y,安装这些包。
现在我们就准备克隆源码了
配置git,参考:https://www.jianshu.com/p/6e1de95828a8:
git config --global user.name "用户名"
git config --global user.email "邮箱"
git config --global credential.helper store
安装repo
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > repo
chmod 777 repo
sudo mv repo /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
创建一个文件夹OpenHarmonyOs
mkdir OpenHarmonyOs && cd OpenHarmonyOs
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
这里会花很长时间下载
repo forall -c 'git lfs pull'
下载编译工具:
curl https://gitee.com/landwind/script-tools/raw/master/Shell/OpenHarmony/OpenHarmony_2.0_canary_prebuilts_download.sh >./prebuilts.sh
执行:./prebuilts.sh
如果提示无权限,chmod +x 走你
提示缺少wget ,apt-get install wget,缺什么补什么
配置nodejs
mkdir -p prebuilts/build-tools/common/nodejs
cd prebuilts/build-tools/common/nodejs
wget --no-check-certificate https://nodejs.org/download/release/v12.18.4/node-v12.18.4-linux-x64.tar.gz
tar -zxvf node-v12.18.4-linux-x64.tar.gz
返回到上一次的工作目录 cd -
后面就不附截图了,就复制粘贴我的代码就行。
如果是龟速,那么一般是移动的宽带 笑。
cd third_party/jsframework
export PATH=../../prebuilts/build-tools/common/nodejs/node-v12.18.4-linux-x64/bin:${PATH}
npm install
cd -
mkdir -p prebuilts/build-tools/common/js-framework
cp -rp third_party/jsframework/node_modules prebuilts/build-tools/common/js-framework/
安装hc-gen :
wget https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar
tar -xvf hc-gen-0.65-linux.tar -C ~/
使用vi修改环境变量
apt-get install vim
vim ~/.bashrc
加入:export PATH=~/hc-gen:$PATH
退出vi
source ~/.bashrc
编译系统:
执行build.sh即可,需要注意的是目前只支持Hi3516DV300,所以也要加上参数
./build.sh --product-name Hi3516DV300 --ccache
如果不出错就会构建成功,然后烧录到板子中即可,如果出错就根据出错代码下载依赖包。
基于官方教程弄的hello world
输出:
有老哥说,咱们搞这么久就为了输出helloworld??
不要小瞧这个hello world,这是一切的开端,命运之轮开始转动,传说从这里开始。。。。
不过我以前挺喜欢java,念大学的时候时不时就借java相关书籍,python也挺喜欢,最近又在捣腾perl,我汉化过的lan就是基于perl的。
附录:
其实Openharmony 和 HarmonyOS(鸿蒙操作系统) 是两个完全不同的概念。华为把 HarmonyOS 中基础功能提取出来,打包成功一个项目叫做“Openharmony” ,把 Openharmony 捐献给了原子开源基金会。
而华为自己的商业版本HarmonyOS 2 并没有捐出,这个商业版本也是基于开源项目 OpenHarmony 2.0 开发的,兼容了 AOSP( Android 10.0.0_r2),增加了 HMS 。
看了下有老哥在gitee 上咨询鸿蒙系统的软件工程师,得到的回复是Harmony 2.0 的 AOSP 的预编译文件来自 Android 10.0.0_r2 版本,版本比我们手机op9系列使用的安卓11要低,所以没必要移植鸿蒙到我们的手机,即使要移植得多个厂商配合提供驱动呢。
参考着大佬的教程弄着玩的,如有不足请指正