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

原创 2015年07月07日 20:08:24
当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)

Android 5.1编译大于2G的OTA包是会出 Android OverflowError: size does not fit in an int或者would require ZIP64 ex

Android 5.1编译大于2G的OTA包是会出 AndroidOverflowError: size does not fit in an int或者would require ZIP64exte...
  • oman111
  • oman111
  • 2015年12月11日 16:12
  • 1614

修改system.img的大小限制

运行make -j6,出现以下错误: make_ext4fs -s -l 419430400 -a system out/target/product/rk2928sdk/obj/PACKAGI...
  • mafei852213034
  • mafei852213034
  • 2015年10月16日 09:02
  • 639

systemimage 太大导致的编译失败

针对此种异常可以做以下操作: 1、可以删除out目录下一些,多余的预置apk out/target/product/system/priv-app/** 之后调用make snod 直接进行打包...
  • xiaolli
  • xiaolli
  • 2017年05月31日 15:05
  • 439

Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚

随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误: UNEXPECTED TOP-...
  • t12x3456
  • t12x3456
  • 2014年11月10日 00:05
  • 157535

python zipfile解压缩zip数据流

#-*- coding=utf-8 -*- #!/usr/bin/env python import zipfile import StringIO # the variable zip_...
  • bytxl
  • bytxl
  • 2014年03月15日 12:00
  • 1659

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

当system分区预制过多apk时如果img size超过2G 在make otapackage时会报如下错误  zipfile.LargeZipFile: Zipfile size would...
  • sergeycao
  • sergeycao
  • 2015年07月07日 20:08
  • 3017

Python之路: 模块篇

模块   随着python越来越强大,相同的代码也在不段复杂。为了能够更好更方便的维护,人们越来越愿意把很多写出来的功能函数保存在不同的文件夹中,这样在用的时候调用,不用的时候可以忽略。这就是模块的...
  • tomisaboy
  • tomisaboy
  • 2016年07月17日 15:32
  • 2312

android编译及添加apk到system.img

------------------------------添加apk到system.img中------------------------------- 1.添加第三方apk的package到s...
  • pashanhu6402
  • pashanhu6402
  • 2016年06月01日 18:04
  • 1881

OTA编译失败两种情况的解决办法

在RK3288 Android5.1上使用 make otapackage 命令编译OTA升级包时,出现如下错误: No RK Loader for TARGET_DEVICE rk3288 t...
  • JKjiang123
  • JKjiang123
  • 2017年06月15日 14:24
  • 634

Python之路【第四篇】:模块

模块,用一砣代码实现了某个功能的代码集合。  类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来,可能需要多个函数...
  • xiangxizhishi
  • xiangxizhishi
  • 2017年12月19日 11:15
  • 126
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 5.x system.img 大于2G导致编译otapackage时报错如何处理
举报原因:
原因补充:

(最多只允许输入30个字)