OpenHarmony开发者论坛

标题: OpenHarmony-V4.0 release OTA差分包制作脚本卡住不动,制作失败。 [打印本页]

作者: yjka    时间: 2023-11-17 20:25
标题: OpenHarmony-V4.0 release OTA差分包制作脚本卡住不动,制作失败。
本帖最后由 yeyao 于 2023-11-23 16:51 编辑

[md]> 本帖最后由 yjka 于 2023-11-22 18:18 编辑

### 【问题描述】

1. packaging_tools 目录下执行下面命令:
   `python build_update.py ./target_package/ ./output_package/  -s ./source_package.zip  -pk ./rsa_private_key2048.pem`
2. 命令执行后窗口打印下图,卡着很久没有生成差分包,可以看到后台diff在运行,但是运行了一夜一直没有结果。
   ![image.png](https://forums-obs.openharmony.c ... vyakkvrdzmkkdk8.png "image.png")
   
   ![](https://static.dingtalk.com/medi ... XkCmAA_1310_406.png)

### 【运行环境】

* packagint_tools目录配置如下:
  .
  ├── LICENSE
  ├── OAT.xml
  ├── README.md
  ├── README_zh.md
  ├── __pycache__
  │   ├── blocks_manager.cpython-38.pyc
  │   ├── build_pkcs7.cpython-38.pyc
  │   ├── create_hashdata.cpython-38.pyc
  │   ├── create_signed_data.cpython-38.pyc
  │   ├── create_update_package.cpython-38.pyc
  │   ├── gigraph_process.cpython-38.pyc
  │   ├── image_class.cpython-38.pyc
  │   ├── log_exception.cpython-38.pyc
  │   ├── patch_package_process.cpython-38.pyc
  │   ├── script_generator.cpython-38.pyc
  │   ├── transfers_manager.cpython-38.pyc
  │   ├── unpack_updater_package.cpython-38.pyc
  │   ├── update_package.cpython-38.pyc
  │   ├── utils.cpython-38.pyc
  │   └── vendor_script.cpython-38.pyc
  ├── blocks_manager.py
  ├── build_hmp.py
  ├── build_module_img.py
  ├── build_module_package.py
  ├── build_pkcs7.py
  ├── build_update.py
  ├── code_yacc.py
  ├── create_hashdata.py
  ├── create_signed_data.py
  ├── create_update_package.py
  ├── digest
  ├── gigraph_process.py
  ├── image_class.py
  ├── lib
  │   ├── diff
  │   ├── e2fsdroid
  │   ├── libext2_com_err.so
  │   ├── libext2_misc.so
  │   └── libext2fs.so
  ├── log_exception.py
  ├── output_package
  │   └── updater_full.zip
  ├── patch_package_process.py
  ├── rsa_private_key2048.pem
  ├── script_generator.py
  ├── sign_cert
  │   └── signing_cert.crt
  ├── signature
  ├── source_package.zip
  ├── target_package
  │   ├── MiniLoaderAll.bin
  │   ├── boot_linux.img
  │   ├── boot_linux_hdmi.img
  │   ├── boot_linux_mipi.img
  │   ├── chip_prod.img
  │   ├── config.cfg
  │   ├── eng_system.img
  │   ├── parameter.txt
  │   ├── ramdisk.img
  │   ├── resource_hdmi.img
  │   ├── resource_mipi.img
  │   ├── sys_prod.img
  │   ├── system.img
  │   ├── uboot.img
  │   ├── updater.img
  │   ├── updater_binary
  │   ├── updater_config
  │   │   ├── BOARD.list
  │   │   ├── VERSION.mbn
  │   │   └── updater_specified_config.xml
  │   ├── userdata.img
  │   └── vendor.img
  ├── test
  │   ├── __init__.py
  │   ├── create_package_data.py
  │   ├── fake_data.py
  │   ├── source_vendor_data
  │   ├── target_vendor_data
  │   ├── test_build_update.py
  │   ├── test_image_class.py
  │   ├── test_inc.py
  │   ├── test_log_exception.py
  │   ├── test_script_generator.py
  │   ├── test_update_package.py
  │   ├── test_utils.py
  │   └── test_vendor_script.py
  ├── transfers_manager.py
  ├── unpack_updater_package.py
  ├── update_package.py
  ├── utils.py
  ├── vendor_script.py
  └── zipalign
  ├── BUILD.gn
  ├── build
  │   └── META-INF
  │       └── MANIFEST.MF
  ├── build_jar.py
  └── src
  └── main
  └── java
  └── com
  └── ohos
  └── ZipAlign.java
* target_package/updater_config/BOARD.list内容

```
HI3516
RK3568
```

* target_package/updater_config/VERSION.mbn内容
  
  ```
  OpenHarmony 4.0.10.14
  ```
* target_package/updater_config/updater_specified_config.xml内容

```
<?xml version="1.0"?>
<package>
    <head name="Component header information">
        <info fileVersion="01" prdID="RK3568" softVersion="4.0.10.14" date="2023-11-17" time="12:30">head info</info>
    </head>
    <group name = "Component information">
        <component compAddr="vendor" compId="12" resType="05" compType="1" compVer="1.0">./vendor.img</component>
        <component compAddr="system" compId="18" resType="05" compType="1" compVer="1.0">./system.img</component>
    </group>
</package>
```

* source_package.zip 中的版本号是OpenHarmony 4.0.10.13
  全量包可以正常制作和升级,差分包一直 卡在这,该如何处理?
  
  ### 问题更新
  
  以上问题是由于e2fsprogs内的e2fsdroid引起的,比较简单的解决方法是找一个合适的e2fsdroid。
  经测试使用Android12 编译的e2fsdroid和e2fsck(位于out\soong\host\linux-x86\bin目录下)替换Packaging_tools/lib/下面的这两个文件后可以编译出差分包且升级成功。
  Android12 e2fsprogs版本为v1.45.4
  OpenHarmony e2fsprogs版本为v1.46.4
  Android12下v1.45.4的e2fsdroid和e2fsck库文件:![lib.zip](https://forums-obs.openharmony.cn/forum/ "lib.zip")
  lib目录如下:
  .
  ├── diff
  ├── e2fsck
  ├── e2fsdroid
  ├── libext2_blkid.so
  ├── libext2_com_err.so
  ├── libext2_e2p.so
  ├── libext2_misc.so
  ├── libext2_quota.so
  ├── libext2_uuid.so
  ├── libext2fs.so
  └── mke2fs
  升级日志:![updater_log.txt](https://forums-obs.openharmony.cn/forum/ "updater_log.txt")

[/md]
作者: martinhu    时间: 2023-11-20 16:10
[md]我也遇到了相同问题😕 ,蹲个后续结果

[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5