# patch_tool **Repository Path**: thomkins/patch_tool ## Basic Information - **Project Name**: patch_tool - **Description**: 适配OpenHarmony L0/L1/L2的patch自动化工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-10 - **Last Updated**: 2021-11-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # patch_tool ## 功能介绍 适配OpenHarmony L0/L1/L2的patch自动化工具,具备以下功能: 1. 扫描厂商对OpenHarmony主干仓基线代码的修改,自动生成patch。 2. 将生成的patch分类管理,patch分为两类:一类是厂商各个产品的公共patch,另一类是某一产品独有的patch。将这两类patch分类存放,编译某一产品时,打入公共patch和该产品独有的patch。避免各个产品之间对代码的修改产生干扰。 3. 工具适配L0/L1和L2,设计新的编译入口,在编译之前先打入patch,再调用编译命令,根据传入参数的不同,分别调用hb build编译L0/L1,和./build.sh编译L2 4. 由于每次编译的时候,都会先打入patch,因此支持patch的重复打入。 ## 使用说明 1. 下载OpenHarmony源码,配置编译环境,能成功编译开源版本 2. 在OpenHarnmony目录下,下载本工具git clone https://gitee.com/thomkins/patch_tool.git 3. 适配L2的话,可以使用该工具:https://gitee.com/thomkins/config_L2 4. 厂商根据需要,对OpenHarmony主干仓的代码进行修改并提交,注意git commit的格式为 各个产品的公共修改 ```common: 详细提交信息``` 某一产品独有的修改 ```${product}: 详细提交信息,这里的${product}变量必须与vendor/${company}/${product}中的product名称一致``` ***一定要严格按照这个格式***,工具才能将每笔提交生成的patch分类管理 ***另外每笔提交的信息一定不要相同***,工具是根据提交信息来判断patch是否已经打入,否则会漏掉一些修改 5. 若是编译L0/L1,则先运行hb set,选择需要编译的产品。然后进入patch_tool目录,执行:python build_patch.py,或者直接在OpenHarmony根目录下执行python patch_tool/build_patch.py。 6. 若是编译L2,则运行python build_patch.py --standard --product-name *** 7. 同步主干代码后,先运行本工具,打入已有的patch, 启动编译。然后再进行进一步的修改。 ## 工具设计实现以及详细使用说明请参考 https://gitee.com/thomkins/patch_tool/blob/master/patch_tool_guide.md