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
Izzat Bahadirov
e7ab4b681b
Unit tests for offset modification in SparseSwitchPayload and PackedSwitchPayload.
2013-03-25 13:14:14 -04:00