# ohos_tool **Repository Path**: davis180/ohos_tool ## Basic Information - **Project Name**: ohos_tool - **Description**: 给OpenHarmonyOS的linux下开发提供一些方便的工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-04-14 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ohos_tool 给OpenHarmonyOS的linux下开发提供一些方便的工具 ## 安装 1. 在该项目打目录下根据shell执行一条命令 ```sh # bash shell echo "export OHOS_TOOL='$(pwd)'" >> ~/.bashrc echo "[ -e $(pwd) ] && source $(pwd)/scripts/ohos-tool-env.sh" >> ~/.bashrc # zsh shell echo "export OHOS_TOOL='$(pwd)'" >> ~/.zshrc echo "[ -e $(pwd) ] && source $(pwd)/scripts/ohos-tool-env.sh" >> ~/.zshrc ``` 2. 重新打开shell ## 特性计划 - [x] 自动更新 - [x] 更新展示 - [x] 更方便的引入 - [x] 工程化 - [x] 添加仓库UI - [x] docker自动reset - [x] 添加使用例子 - [ ] 修复zsh补全 - [x] cc@rebuild - [x] OHOS_TOOL重构 - [x] report重构(命令的错误报告) - [x] 命令的参数内化 - [ ] 依赖树形UI化 - [ ] autopush增强(自动判定是否会被install) - [ ] autohdc(自动连接设备、设置环境变量) - [ ] stack增强 UI化 - [ ] windows push ## 使用例子 所有命令均可--help ### 0. 配置 配置ohos-tool的一些行为: - 用docker编译 - 用窗口提醒耗时操作完成 - 自动更新 ```sh ohos-tool config@config ``` ### 1. 仓库名 为了支持openharmony代码开发时能够并发, 用仓库名来指代不同的repo仓库。 openharmony更新很快,而且有的时候会滚挂, 所以也需要备一些代码仓库。 命令会自行寻找当前路径所在仓库, 所以在仓库目录下就不需要再指定仓库了。 - 添加仓库并命名为ohos1: `ohos-tool config@repo ohos1 --add $(pwd)` - 删除仓库ohos1: `ohos-tool config@repo ohos1 --del` - 配置仓库ohos1的编译产品: `ohos-tool config@repo ohos1 --product` - 指定仓库ohos1的编译产品为Hi3516DV300: `ohos-tool config@repo ohos1 --product Hi3516DV300` ### 2. 编译 编译分docker编译和真机编译。 真机编译需要开发者自己配置编译环境, docker编译则会用docker容器进行编译。 编译命令均需要仓库。 - 编译的错误日志: `ohos-tool ohos1 cc@err` - 整编,出镜像: `ohos-tool ohos1 cc@hosp` - 编译BUILD.gn: `ohos-tool ohos1 cc@buildgn` - 编译所有测试: `ohos-tool ohos1 cc@alltest` - 编译sdk(有hdc): `ohos-tool ohos1 cc@sdk` - 重新编译已经失败的文件: `ohos-tool ohos1 cc@rebuild` - 编译wmtest测试的命令为: `ohos-tool ohos1 cc@hosp --target wmtest` 在ohos1项目目录下可以忽略仓库名 ### 3. docker构建 若开发环境中存在docker且不需要sudo时, 可以用docker系列命令来构建最初的docker镜像。 ```sh ohos-tool docker@image ``` ### 4. hdc 此功能不稳定,需要连上板子 ### 5. 同步代码 用仓库自带的repo进行sync + lfs pull ```sh ohos-tool repo@sync ``` ### 6. 实用功能 - utils@image: 打包镜像为OHOS_IMAGE_NAME放在OHOS_IMAGE_DIR下 - utils@out: 在out/ohos-arm-release下启动bash,用于反复编译 - utils@asm: 反汇编 - utils@stack: 打印Crash堆栈对应的文件堆栈 ```sh ohos-tool utils@stack Ctrl+V粘贴Crash堆栈 #01 pc 0000000000006951(00000000b64d4951) /system/lib/libivi-shell.z.so(ivi_layout_surface_destroy+31) #02 pc 0000000000019ff1(00000000b5ba6ff1) /system/lib/libwmserver.z.so(wet_module_init+15747) #03 pc 0000000000019c1b(00000000b5ba6c1b) /system/lib/libwmserver.z.so(wet_module_init+14765) #04 pc 0000000000036f93(00000000b6df3f93) /system/lib/libweston.z.so(weston_surface_destroy+33) Ctrl+D结束输入 ```