comparison paraspace/dexfile.py @ 67:9504ad530dbf

Add DEXFile.make_checksum()
author Thinker K.F. Li <thinker@codemud.net>
date Wed, 29 Jun 2011 19:27:09 +0800
parents fa44a8acba6a
children 9422a25e798d
comparison
equal deleted inserted replaced
66:fa44a8acba6a 67:9504ad530dbf
1633 def children(self): 1633 def children(self):
1634 map_items = [self.block_defs[map_item.type] 1634 map_items = [self.block_defs[map_item.type]
1635 for map_item in self.maps.items.items] 1635 for map_item in self.maps.items.items]
1636 children = map_items 1636 children = map_items
1637 return children 1637 return children
1638
1639 def make_checksum(self):
1640 from paraspace.tools import adler32
1641 raw = self.to_str()
1642 sz = self.header.fileSize
1643 nosum = _DEX_header.magic.sizeof(self.header.magic) + \
1644 _DEX_header.checksum.sizeof(self.header.checksum)
1645 checksum = adler32(0, raw, nosum, sz - nosum)
1646 self.header.checksum = checksum
1647 pass
1638 pass 1648 pass
1639 1649
1640 1650
1641 if __name__ == '__main__': 1651 if __name__ == '__main__':
1642 dex = DEXFile.open('data/testdata1.dex') 1652 dex = DEXFile.open('data/testdata1.dex')