微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > system.img>2G导致编译otapackage时报错如何处理

system.img>2G导致编译otapackage时报错如何处理

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
当system分区预制过多apk时如果image size超过2G 在make otapackage时会报如下错误zipfile.LargeZipFile: Zipfile size would require ZIP64 extensions
或in writestr zinfo.CRC = crc32(bytes) & 0xffffffff # CRC-32 checksum OverflowError: size does not fit in an int
[SOLUTION]
这是由于python 2.7 脚本限制
参考/prebuilts/python/linux-x86/2.7.5/lib/python2.7/
ZIP64_LIMIT = (1 << 31) - 1 (31bits相当于2G)
python 3.0+ 已提供solution, 但目前android 编译环境使用2.x 语法与 3.0不兼容
对此google提供一个workaround solution
参考以下网址有提供详细patch内容
https://android-review.googlesource.com/#/c/142984
另外还需修改以下脚本 build/tool/releasetools/
1、sign_target_files_apks
2、replace_img_fROM_target_files.py
3、ota_from_target_files
4、img_from_target_files.py
5 、img_from_target_files
6、common.py
7、add_img_to_target_files
针对所有zipfile.ZipFile 添加最后 allowZip64=True 参数值
ex:
原始文件:
output_zip = zipfile.ZipFile(filename, "a", compression=zipfile.ZIP_DEFLATED)
修改为:
output_zip = zipfile.ZipFile(filename, "a", compression=zipfile.ZIP_DEFLATED, allowZip64=True)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top