356 Commits

Author SHA1 Message Date
Ben Gruver
bf95959ae4 Move ExceptionWithContext to Util module 2012-10-15 20:23:01 -07:00
Ben Gruver
03a89d0ac1 Fix the javadoc for ClassDataItem.getParentType 2012-10-11 20:00:15 -07:00
Ben Gruver
1176b75123 Add support for new virtual table generation
This adds support for a fix in dalvik that changes the way
virtual tables are generated.

This new logic can be turned on with the -K option. This option
will be removed once the new functionality can be tied to a released
api level, at which point, it will be triggered when using an
appropriate api level with the -a option.
2012-10-11 19:59:49 -07:00
Ben Gruver
ff05a416c5 Add the new StrictMath inlines 2012-10-08 21:12:21 -07:00
Ben Gruver
92a9aa2aa5 Minor cleanup of synthetic access related stuff 2012-10-08 19:18:06 -07:00
Ben Gruver
9a12fbef99 Fix an issue related to synthetic access methods in an unexpected format 2012-10-08 19:17:08 -07:00
Ben Gruver
f4dd5319e9 Removed deleted argument from InitializeClassPath javadoc 2012-10-06 13:56:21 -07:00
Ben Gruver
598dcde6c9 Fix a deodex issue when merging an unresolved array type 2012-10-04 20:38:18 -07:00
Ben Gruver
60bb8c675c Simply the generic-ity around Instruction, OffsetInstruction and InstructionMethodItem 2012-09-25 20:18:42 -07:00
Ben Gruver
a59fe7e523 Change how the parent is determined for AnnotationDirectoryItem and ClassDataItem 2012-09-25 19:52:04 -07:00
Ben Gruver
15ecbaa9f0 Remove unneeded .gitignore files 2012-09-16 01:01:31 -07:00
Ben Gruver
1f1f012292 Fix BIG_ENDIAN constant in HeaderItem 2012-09-16 00:18:16 -07:00
Ben Gruver
181c04c839 Add copyright/license for build scripts 2012-09-16 00:03:44 -07:00
Ben Gruver
4c1774eb41 gradleize dexlib project 2012-09-15 15:58:43 -07:00
Ben Gruver
b58433a074 Allow multiple ClassDefItems to share a single empty ClassDataItem 2012-09-03 17:00:45 -07:00
Ben Gruver
ed33c426e7 Properly deodex instructions that come after an unresolvable odex instruction 2012-09-03 16:41:10 -07:00
Ben Gruver
4af666e4a6 Remove support for the extended opcodes 2012-08-24 16:54:05 -07:00
Ben Gruver
3cf9e0c1e5 Allow non-standard header sizes 2012-08-24 14:58:30 -07:00
Ben Gruver
5934004fe3 Allow try end addresses that fall in the middle of an instruction 2012-08-24 14:52:55 -07:00
Ben Gruver
7d37656282 Add getters for inWords and outWords in CodeItem 2012-07-13 18:31:13 -07:00
Ben Gruver
66b89545a4 Fix bug in Utf8Utils 2012-07-13 18:27:27 -07:00
Ben Gruver
343df2f456 Simplify deodexing
This makes it possible to deodex an odex file using only the dependencies
listed in the odex file itself. Adding extra dependencies via the -c
option should no longer be needed.
2012-07-05 21:55:54 -07:00
Ben Gruver
30ab0c266a Remove obsolete TODO regarding duplicate classes in the class path 2012-07-03 22:43:11 -07:00
Ben Gruver
a9ce1cf3ec For unknown opcodes, mention the original opcode value in a comment 2012-07-03 22:36:29 -07:00
Ben Gruver
2f81aec886 Treat unknown opcodes as nops 2012-06-28 23:13:45 -07:00
Ben Gruver
0aa30d93f8 Don't compare encoded values with item references by item index 2012-06-20 16:29:54 -07:00
Ben Gruver
3f70d08442 Gracefully handle duplicate methods and fields in baksmali
baksmali will emit duplicate methods and fields as commented blocks, when it
is safe to do so.
2012-06-19 16:03:20 -07:00
Ben Gruver
9c7c421f51 Check for duplicate field/method definitions in ClassDataItem 2012-06-19 12:04:58 -07:00
Ben Gruver
0d2ce20ee4 Fix up makeDefaultValueForType method
1. Remove the unused DexFile parameter
2. Add a convenience wrapper that accepts a TypeIdItem
2012-06-18 15:28:55 -07:00
Ben Gruver
662e425150 Rename MethodIdItem.getVirtualMethodString to getShortMethodString 2012-06-18 15:25:33 -07:00
Ben Gruver
94abcd3332 Add the ability to retrieve the checksum and signature from the header_item 2012-06-12 13:34:49 -07:00
Ben Gruver
4de8efcc31 Don't pre-sort ClassDefItems 2012-06-11 16:01:10 -07:00
Ben Gruver
9a295c54e1 Add EncodedLiteralInstruction interface 2012-06-06 18:16:49 -07:00
Ben Gruver
58e4b792b8 Add static utility methods to StringIdItem and TypeIdItem for getting their string representations 2012-06-06 11:09:46 -07:00
Ben Gruver
f7dfb272f3 Don't modify the staticFieldInitializers list passed in to ClassDefItem.intern... 2012-06-05 18:59:40 -07:00
Ben Gruver
cf01f5db09 Refactor ClassDefItem
This primarily adds nullable/nonnull annotations, and fixes a few related issues
2012-06-05 18:34:09 -07:00
Ben Gruver
10ebad1205 Refactor the ClassDataItem interface
This improves the usability and makes the nullness (or nonnullness) for
various things explicit.
2012-06-05 18:09:38 -07:00
Ben Gruver
d320d6ce8c Add Item.isPlaced() method and replace getOffset() != -1 with !isPlaced() in ClassDefItem 2012-06-05 18:09:38 -07:00
Ben Gruver
e5466fee23 Add annotation lookup functionality to AnnotationDirectoryItem 2012-06-05 18:09:33 -07:00
Ben Gruver
1ffc028a3b Add a check to Item.getOffset() and getIndex() to ensure the item has been placed 2012-06-05 17:59:55 -07:00
Ben Gruver
b71c12967b Refactor the interface of AnnotationDirectoryItem
This makes it easier to use, and fixes a few null safeness issues.
2012-06-05 17:59:45 -07:00
Ben Gruver
0044afa4c3 Don't let later entries in the classpath override classes from earlier entries 2012-03-23 01:53:16 -07:00
Ben Gruver
1acfb0ef18 Instruction3rmi should use Format3rmi, not Format3rms 2012-03-10 20:18:42 -08:00
Ben Gruver
0d57d42794 Fix stupid infinite loop problem 2012-01-12 00:45:22 -08:00
Ben Gruver
a9f36cda13 Fix idiotic "this" alias 2012-01-11 22:11:31 -08:00
Ben Gruver
96b803c882 Add support for version 36 dex files 2012-01-11 22:11:27 -08:00
Ben Gruver
d89375a663 Fix-up InlineMethodResolver_version35 to use the new OdexedInvokeInline interface 2011-12-20 20:27:55 -08:00
Ben Gruver
4d3b3311e1 Fix a few issues with Format 35mi 2011-11-20 20:21:30 -08:00
Ben Gruver
9e78b6b021 Add CAN_INITIALIZE_REFERENCE flag for Opcodes 2011-11-20 20:09:48 -08:00
Ben Gruver
0d785ac315 Add support for jumbo volatile field access opcodes 2011-11-20 15:47:53 -08:00