983 Commits

Author SHA1 Message Date
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
5b4073a85c Add the findbugs library to baksmali explicitly, rather than transitively through dexlib 2012-07-05 21:54:03 -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
9069177bff Bump version number to 1.3.4-dev 2012-06-20 22:45:14 -07:00
Ben Gruver
5f2ad8bd13 Suppress some warnings when doing the proguard thing 2012-06-20 22:22:11 -07:00
Ben Gruver
0534f304b6 Use proguard on the assembled smali/baksmali jars
This is primarily to remove any unused classes, to reduce the jar size
2012-06-20 16:32:28 -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
7bb622e0b1 Set the default local to en-US, to avoid locale specific weirdness 2012-06-19 18:03:44 -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
2bfc114146 Clean up the maven configuration
This allows everything to be built with a simple "mvn package" from the root
2012-05-23 14:31:11 -07:00
Ben Gruver
36c2f08ba0 Clean up how the usage messages are printed
This also fixes an OOM issue when trying to print the usage message
on a terminal that doesn't report its width.
2012-05-13 11:57:50 -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
8ca89226fa Bump the version number to 1.3.3-dev 2012-01-12 00:46:32 -08:00
Ben Gruver
0d57d42794 Fix stupid infinite loop problem 2012-01-12 00:45:22 -08:00
Ben Gruver
b7cd134fd3 Bump the version number to 1.3.2-dev 2012-01-11 22:12:46 -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
a4b5f66e4c Fix an issue with missing parameter annotations in methods without a body 2011-12-20 20:27:55 -08:00
Ben Gruver
c94ca5ff8d Bump the version number to 1.3.1-dev 2011-12-20 20:27:55 -08:00
Ben Gruver
0da8e11d11 Make sure the api level is set before reading in the dex file 2011-11-20 23:13: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
dd88a39a72 Update version to 1.3.0-dev for new release 2011-11-20 15:50:24 -08:00
Ben Gruver
9c67b1508e Only allow assembling odex opcodes for api levels that it works on 2011-11-20 15:47:53 -08:00
Ben Gruver
0d785ac315 Add support for jumbo volatile field access opcodes 2011-11-20 15:47:53 -08:00
Ben Gruver
4dda65fdb3 Add an opcode flag for jumbo opcodes 2011-11-20 15:47:53 -08:00
Ben Gruver
a43de2411e Add support for the invoke-object-init/jumbo odex opcode 2011-11-20 15:47:53 -08:00
Ben Gruver
4a5692f827 Add support for the return-void-barrier odex instruction 2011-11-20 15:47:49 -08:00
Ben Gruver
c8de336727 Use Format 35c for invoke-direct-empty, and get rid of Format 35s 2011-11-20 15:46:40 -08:00
Ben Gruver
ea7afb0265 Add support for the invoke-object-init/range opcode in ICS 2011-11-20 15:46:40 -08:00
Ben Gruver
5967598d01 Add support for specifying a custom inline method table to use while deodexing 2011-11-20 15:46:40 -08:00
Ben Gruver
e00d96c438 Fix an issue with the handling of sparse-switch-data blocks 2011-11-20 15:46:40 -08:00