Ben Gruver
dda097947f
Fix implementation of equals for BaseTypeReference
...
This fixes the implementation so it matches what is described in the
documentation for the TypeReference interface. Specifically, it allows
for comparison to a CharSequence
2013-04-17 00:12:20 -07:00
Ben Gruver
36b6a31685
Fix issue with empty superclass when dumping a Ljava/lang/Object; class
2013-04-16 23:19:06 -07:00
Ben Gruver
6c15046f2b
Refactor smali to use dexlib2
...
Array data instructions aren't working yet
2013-04-15 20:47:00 -07:00
Ben Gruver
ab73502b60
Massage the try blocks before writing them out to a dex file
2013-04-14 18:36:05 -07:00
Ben Gruver
8c3d16b7ee
Add logic to TryListBuilder to merge contiguous try blocks with identical handlers
2013-04-14 18:14:06 -07:00
Ben Gruver
5916df9999
Port TryListBuilder from dexlib
2013-04-14 17:17:00 -07:00
Ben Gruver
bddef6af3c
Always use one of 2 pre-built ImmutableBooleanEncodedValue instances
2013-04-13 21:44:56 -07:00
Ben Gruver
f24f26738d
Add AnnotationVisibility.getVisibility(String)
2013-04-13 21:44:18 -07:00
Ben Gruver
ddf18a996e
Add convenience constructor for ImmutableClassDef
2013-04-13 20:19:41 -07:00
Ben Gruver
8979759556
Gracefully handle duplicate fields/methods in baksmali
2013-04-13 18:55:34 -07:00
Ben Gruver
0a18ea7f8b
Separate direct/virtual methods and static/instance fields in the ClassDef interface
...
This is unfortunately required to support not-quite-well-formed dex files
containing duplicate static/instance fields, or duplicate direct/virtual methods,
which dalvik inadvertently allows.
In cases when there are duplicate fields/methods in the same category, we
unambiguously remove/hide the latter duplicate fields/methods.
2013-04-13 16:25:37 -07:00
Ben Gruver
2363e6e43c
Gracefully handle unknown instructions
2013-04-11 23:58:43 -07:00
Ben Gruver
5fa302678c
Add support for custom inline tables
2013-04-10 21:14:46 -07:00
Ben Gruver
fd258ad543
Add support for class path entries that look like dalvik-cache entries
2013-04-09 23:44:06 -07:00
Ben Gruver
2887ade533
Remove unneeded/unused getFormat() method in UnresolvedOdexInstruction
2013-04-09 23:43:02 -07:00
Ben Gruver
45dfbd6d58
Remove invalid assert
2013-04-09 23:42:33 -07:00
Ben Gruver
39b3a7c5a9
Fix issue when deodexing invoke-object-init/range instruction
2013-04-09 23:42:20 -07:00
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