239 Commits

Author SHA1 Message Date
Ben Gruver
ac2686b3fc Add the ability to parse dependencies from odex files 2013-04-09 23:41:27 -07:00
Ben Gruver
5c6cad2822 Fix an issue when there's a dir with the same base name as a class path entry 2013-04-09 17:42:37 -07:00
Ben Gruver
8c2d92d954 Enforce strict reference equality for uninit ref register types 2013-04-08 21:45:22 -07:00
Ben Gruver
3f05570b6b Always use .equals for comparing RegisterType instances 2013-04-08 20:27:35 -07:00
Ben Gruver
059e1249b4 Use the correct destination register for invoke-direct on an <init> 2013-04-08 00:09:15 -07:00
Ben Gruver
b6c52bc254 Fix up some of the comments in RegisterType 2013-04-08 00:09:15 -07:00
Ben Gruver
02f1d6cc1a Use the correct register category for the uninitialized "this" reference 2013-04-08 00:09:15 -07:00
Ben Gruver
13993573b2 Fix the calculation of method parameter register in MethodAnalyzer 2013-04-08 00:09:15 -07:00
Ben Gruver
71a580878f Correctly handle fill-array-data instruction when building instruction list 2013-04-08 00:09:15 -07:00
Ben Gruver
8887625162 Add some getter methods in MethodAnalyzer 2013-04-08 00:09:15 -07:00
Ben Gruver
9cb9c76d50 Add ability to build a ClassPath from a list of files 2013-04-08 00:09:15 -07:00
Ben Gruver
4bf810ee76 Add the parameter register count to the stored state in MethodAnalyzer 2013-04-08 00:09:15 -07:00
Ben Gruver
4cf7845ea4 Throw a NoClassesDexException for an apk/jar/zip with no classes.dex 2013-04-08 00:09:15 -07:00
Ben Gruver
e6d10fc788 Rename Format.payloadFormat to isPayloadFormat 2013-04-08 00:09:15 -07:00
Ben Gruver
77ebf6842f Add codeAddress field to AnalysisException 2013-04-08 00:09:15 -07:00
Ben Gruver
e3478f4fd4 Fix the calculation of the "this" register in MethodAnalyzer 2013-04-08 00:09:15 -07:00
Ben Gruver
8d74f47b45 Fix IndexOutOfBounds exception when there's a wide parameter 2013-04-08 00:09:15 -07:00
Ben Gruver
64fb5097e0 Fix NPE when merging a reference and a null/unknown register 2013-04-08 00:09:15 -07:00
Ben Gruver
0a9ae5a0a7 Fix minor issue in MethodAnalyzer.analyzeMoveException 2013-04-08 00:09:15 -07:00
Ben Gruver
45972c352c Merge pull request #9 from izzytwosheds/jumbos_nops_offsets
Handling jumbo string conversions and consequent offset adjustments for ...
2013-04-02 20:59:44 -07:00
Ben Gruver
1803b576fd Merge pull request #8 from izzytwosheds/encoded_array_sort
Sorting items in encoded_array to match the order of fields.
2013-04-02 20:12:10 -07:00
Izzat Bahadirov
8191cd9a7a Using sorted static field set in EncodedArrayPool Key. 2013-03-31 01:53:57 -04:00
Ben Gruver
9531284b1b Port MethodAnalyzer and various dependencies from dexlib 2013-03-30 16:36:27 -07:00
Izzat Bahadirov
1d4b31a11c First filtering for static fields, then sorting them. Using filtered list in a Key. Removed deprecated guava methods. 2013-03-29 20:14:27 -04:00
Ben Gruver
08637a8e1f Port InlineMethodResolver from dexlib 2013-03-28 23:56:24 -07:00
Ben Gruver
995572831d Port AnalyzedInstruction from dexlib 2013-03-28 22:08:23 -07:00
Izzat Bahadirov
63abdc37e7 Fixing comment alignment. 2013-03-28 18:23:37 -04:00
Izzat Bahadirov
bad3ae4dd9 Refactoring unit tests. 2013-03-25 21:32:49 -04:00
Izzat Bahadirov
3d721348c5 Unit test for iterative goto embiggening and consequent payload re-alignment. 2013-03-25 19:06:07 -04:00
Izzat Bahadirov
dae24249f1 Fix for bug with incorrect removal of previously inserted alignment nop. 2013-03-25 19:04:39 -04:00
Izzat Bahadirov
c995fb5086 Unit tests for goto and goto/16 instructions embiggening. 2013-03-25 17:59:21 -04:00
Izzat Bahadirov
6e524ece32 Fix for incorrect goto/16 to goto/32 conversion. 2013-03-25 16:44:32 -04:00
Izzat Bahadirov
add494945d Unit tests for payload alignment. Also, typo correction. 2013-03-25 14:07:58 -04:00
Izzat Bahadirov
e7ab4b681b Unit tests for offset modification in SparseSwitchPayload and PackedSwitchPayload. 2013-03-25 13:14:14 -04:00
Izzat Bahadirov
8309057de3 Minor refactoring of simple unit tests, using the same test implementation for all branch target instructions. 2013-03-25 12:28:43 -04:00
Izzat Bahadirov
e05e01eee0 Simple unit tests for const-string to const-string/jumbo conversions, as well as target offset modifications for goto and branch target instructions. 2013-03-25 11:41:38 -04:00
Izzat Bahadirov
f598b96244 Proper opcode for const-string instruction modification prediction. 2013-03-25 11:39:22 -04:00
Izzat Bahadirov
5df16db108 Iterative logic to handle embiggening of goto instructions, when subsequent code shifts are inserted. Layout logic creates a HashMap of predicted instruction replacements and nop insertions to be used later in writing method, which is more cromulent solution than simply replicating the logic, given its iterativeness. 2013-03-21 11:25:12 -04:00
Ben Gruver
9bd604cf7d Add a missing @Nonnull 2013-03-17 21:37:30 -07:00
Ben Gruver
39e4d4487e Fully implement common superclass functionality 2013-03-17 21:37:14 -07:00
Ben Gruver
8f383501c1 Initial implementation of ClassPath and finding a common superclass 2013-03-14 20:37:29 -07:00
Ben Gruver
a555aa0c01 Return one of the original RegisterType instances when merging, if possible 2013-03-13 20:54:42 -07:00
Ben Gruver
dd714d9196 Fix up the spacing of the merge table 2013-03-13 20:54:42 -07:00
Ben Gruver
9347c142bf Get rid of the empty PrototypeUtils class 2013-03-13 20:22:04 -07:00
Ben Gruver
e1e9510f41 Copy RegisterType class from dexlib and refactor for dexlib2 2013-03-13 00:00:34 -07:00
Ben Gruver
db7795ffaa Add support for odex format 20bc 2013-03-09 20:35:26 -08:00
Ben Gruver
61277b50b3 Add support for odex formats 3rms and 3rmi 2013-03-09 19:28:19 -08:00
Ben Gruver
2a91d72a15 Add support for odex format 35mi 2013-03-09 18:41:52 -08:00
Ben Gruver
8a151ae671 Add support for odex format 35ms 2013-03-09 18:07:25 -08:00
Ben Gruver
e88723c666 Add support for odex format 22cs 2013-03-09 18:07:19 -08:00