Commit Graph

639 Commits

Author SHA1 Message Date
816e793f81 Tweak to the numSectionItems field naming in DexWriter 2013-04-29 20:10:54 -07:00
242dd62a71 Get rid of the encoded array pool 2013-04-29 20:10:50 -07:00
5c2353878c Sorting virtual methods when adding them. 2013-04-29 17:04:46 -04:00
0f61ce9a6f Fix for broken tests. 2013-04-29 17:02:14 -04:00
6a2a627d3b Fixed formatting. 2013-04-29 16:36:13 -04:00
03b8247850 Renamed getVersion() to getOdexVersion() in DexBackedOdexFile. 2013-04-29 16:27:45 -04:00
64898161b3 Added API level check to adding methods to vtable. 2013-04-29 16:09:36 -04:00
2206c7638b Adding @Nonnull's and removing unnecessary null checks. 2013-04-29 15:58:35 -04:00
e3b5efd7d8 Unified interface table creation logic. No more duplication. 2013-04-28 17:30:11 -04:00
0f198bc78b Fix some nitpicks in dex writer code path 2013-04-28 12:17:45 -07:00
3c3a3c4af8 Add missing @Nonnull attributes for various EncodedValue.getValue() methods 2013-04-28 01:11:23 -07:00
1bf6f23245 Implementation of new generificationified writer functionality 2013-04-27 22:23:30 -07:00
afc0a7d325 If an exception occurs while dumping, write out what we have so far 2013-04-27 22:22:55 -07:00
8340ecf3d5 Fix potential formatting issue with local variable signatures in dump output 2013-04-27 22:22:55 -07:00
70c5b247e6 Fix formatting issue with negative jump offsets in dump output 2013-04-27 22:22:55 -07:00
389c3a6afa Fix for invoke-virtual/range with no register range. 2013-04-27 23:19:17 -04:00
d4e3ab3fd5 Fixed querying for odex version. 2013-04-22 17:20:26 -04:00
6cf22f1eac Object register value now lives in register C, not D. 2013-04-22 16:12:48 -04:00
9c72df65f7 Using standard InlineMethodResolver if no custom one is provided. 2013-04-22 14:00:49 -04:00
231034cf95 Make sure to truncate the output file before writing the new dex file 2013-04-20 01:28:31 -07:00
2fe6041fa9 Add support for empty sparse switch data instructions 2013-04-20 01:28:31 -07:00
c89097680e Add support for empty packed switch data instructions 2013-04-20 01:28:31 -07:00
4879652a47 Remove the unused classes field from writer.DexFile 2013-04-20 01:28:31 -07:00
d6737943e1 Fixed alignment. 2013-04-19 17:44:54 -04:00
ea4ee3e8de Better wording for dump usage printout. 2013-04-19 17:43:14 -04:00
10fdd19778 Moving to ClassDef.getVirtualMethods() API. 2013-04-19 17:31:05 -04:00
b2ce899471 Getting instance fields by offset and methods by vtable index.
- Dump utilities
2013-04-19 17:31:05 -04:00
f939e912b5 Fix issue with out-of-order iteration of virtual methods 2013-04-19 14:29:07 -07:00
b6435e7a47 Add support to smali for a .source directive with no source file 2013-04-18 00:27:16 -07:00
83f77f51aa Refactor how api specific Opcodes work (make them non-static) 2013-04-17 22:32:08 -07:00
9062640179 Fix issue with interning proto_id_items while writing dex file 2013-04-17 00:25:05 -07:00
3d5423ed2b Tweak how hashCode and equals works for MethodReferences
This fixes an issue where method references weren't being properly
interned when generating a dex file
2013-04-17 00:13:12 -07:00
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
36b6a31685 Fix issue with empty superclass when dumping a Ljava/lang/Object; class 2013-04-16 23:19:06 -07:00
0dceb148f3 Update to latest antlr3/string template 2013-04-15 20:47:53 -07:00
6c15046f2b Refactor smali to use dexlib2
Array data instructions aren't working yet
2013-04-15 20:47:00 -07:00
ab73502b60 Massage the try blocks before writing them out to a dex file 2013-04-14 18:36:05 -07:00
8c3d16b7ee Add logic to TryListBuilder to merge contiguous try blocks with identical handlers 2013-04-14 18:14:06 -07:00
5916df9999 Port TryListBuilder from dexlib 2013-04-14 17:17:00 -07:00
bddef6af3c Always use one of 2 pre-built ImmutableBooleanEncodedValue instances 2013-04-13 21:44:56 -07:00
f24f26738d Add AnnotationVisibility.getVisibility(String) 2013-04-13 21:44:18 -07:00
ddf18a996e Add convenience constructor for ImmutableClassDef 2013-04-13 20:19:41 -07:00
8979759556 Gracefully handle duplicate fields/methods in baksmali 2013-04-13 18:55:34 -07:00
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
2363e6e43c Gracefully handle unknown instructions 2013-04-11 23:58:43 -07:00
5fa302678c Add support for custom inline tables 2013-04-10 21:14:46 -07:00
fd258ad543 Add support for class path entries that look like dalvik-cache entries 2013-04-09 23:44:06 -07:00
2887ade533 Remove unneeded/unused getFormat() method in UnresolvedOdexInstruction 2013-04-09 23:43:02 -07:00
45dfbd6d58 Remove invalid assert 2013-04-09 23:42:33 -07:00
39b3a7c5a9 Fix issue when deodexing invoke-object-init/range instruction 2013-04-09 23:42:20 -07:00