android 5 x system img 大于2G导致编译otapackage时报错如何处理

当system分区预制过多apk时如果img 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
//http://blog.csdn.net/sergeycao
这是由于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  (但此方法占时提高write size 到32bits相当于4G, 如果超过4G仍会出现问题)   另外还需修改一下脚本  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)

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

上一篇:ZIP:ZipFile


下一篇:多线程(H2O 生成)