455 Commits

Author SHA1 Message Date
Ben Gruver
aae58716e7 Fix some javadoc issues 2014-12-28 14:14:19 -08:00
Ben Gruver
d15e31526f Expose the various fixed-size item counts in DexBackedDexFile 2014-12-28 12:25:03 -08:00
Ben Gruver
7296c9e957 Refactor VariableSizeLookaheadIterator
Previously, when referencing instance fields from readNextItem,
the fields wouldn't have been initialized yet on the first call to
readNextItem
2014-12-28 12:15:17 -08:00
yyjdelete
d1dbf6b14b Use options.checkPackagePrivateAccess 2014-11-14 21:59:08 +08:00
yyjdelete
62c103d92a checkPackagePrivateAccess only for API 17(4.2)
Google revert this for compatibility.
see 7284c78e14 for details.

BTW, it seems that is also disabled for late 4.2
2014-11-14 20:50:13 +08:00
Ben Gruver
686cf35c8e Add some additional checks related to instruction size 2014-11-06 23:03:46 -08:00
Connor Tumbleson
6811d13935 Implement dex entry for non classes.dex files 2014-11-06 23:09:44 -06:00
edwardxwu
d354893f71 Fixed the bug of not setting the location field of the instruction in addInstruction(i,instruction) method 2014-08-29 20:45:22 -07:00
Ben Gruver
0d8418ff1f Allow but ignore multiple exception handlers for the same exception 2014-07-21 18:54:30 -07:00
Ben Gruver
4143313b05 Fix potential NPE in MethodAnalyzer 2014-07-19 20:27:00 -07:00
Ben Gruver
d33fd6773c Implement implicit method/field references in baksmali 2014-07-19 20:26:50 -07:00
Ben Gruver
a37e508ffa Add missing "break" from switch statement in BuilderClassPool 2014-07-15 22:57:25 -07:00
Ben Gruver
5280047b42 Ensure the annotation elements are sorted when written 2014-07-15 22:54:41 -07:00
Ben Gruver
2d8cbfe6bc Add support for non-standard invoke-object-init/range instructions 2014-02-02 19:29:26 -08:00
Ben Gruver
4357de47e3 Add new experimental dex rewriter functionality 2014-01-18 20:34:30 -08:00
Ben Gruver
78328a6035 Minor comment fix in MutableMethodImplementation 2014-01-18 15:47:57 -08:00
Ben Gruver
1d28b32ff5 Refactor the maven upload build stuff
This also adds the required javadoc jars
2014-01-18 11:33:39 -08:00
Ben Gruver
5b411f3447 Add gradle configuration for uploading smali artifacts to maven 2014-01-17 02:04:07 -08:00
Ben Gruver
90db3a16b7 Lazily create the lists in MethodLocation
Millions of MethodLocations can be created and kept in memory when
using the Builder interface to build a large dex file. The arrays
backing these lists were taking up a large amount of memory.
2014-01-16 21:29:26 -08:00
Ben Gruver
029ad25c66 Skip the call to String.format when annotating, if there are no values 2013-12-12 01:35:29 -08:00
Ben Gruver
4f2620415d Add better handling for various types of invalid instructions 2013-12-08 17:44:11 -08:00
Ben Gruver
9057764c22 Add ReferenceInstruction.getReferenceType() 2013-12-07 15:11:37 -08:00
Ben Gruver
d3ba85b2ee Fix typo in method index OOB error message 2013-12-07 15:11:37 -08:00
Ben Gruver
dc802b0660 Make CodeItem annotations more robust 2013-12-07 15:11:37 -08:00
Ben Gruver
d7cd52308e Fix an issue with nop opcodes with a non-null second byte 2013-12-07 15:11:37 -08:00
Ben Gruver
b49126325f Fix the start offset when calculating the signature header value 2013-11-10 22:07:02 -08:00
Ben Gruver
20f675b86b When writing a debug item, always include all parameters 2013-11-10 22:07:02 -08:00
Ben Gruver
08d90ec360 Don't write out 0-length type lists 2013-11-10 22:07:02 -08:00
Ben Gruver
f6958ae4bc Don't trim empty parameter annotations 2013-11-10 22:07:02 -08:00
Ben Gruver
263083faed Use StringReference for MethodImplementationBuilder.addSetSourceFile 2013-10-23 14:23:35 -07:00
Ben Gruver
a2bf7f64bc Fix issue with BuilderPackedSwitchPayload instructions
The transformation is performed lazily, and the keys were incorrect
when iterating over the elements more than once
2013-10-17 16:46:06 -07:00
Ben Gruver
899b1e6611 Improve MutableMethodImplementation for external use
Add various utility methods and use more specific overrides, to better
allow external users to access labels
2013-10-14 17:45:46 -07:00
Ben Gruver
902ba7d72d Fix annotation/initial value issues when iterating over fields/methods in a DexBackedDexFile
Make sure to make a new annotation/initial value iterator when making a new
field/method iterator
2013-10-12 02:14:02 -07:00
Ben Gruver
9f48c72390 Fix issues with converting switch statements in MutableMethodImplementation 2013-10-12 01:50:53 -07:00
Ben Gruver
135631b11b Fix issue with Format21lh instructions in MutableMethodImplementation 2013-10-12 01:10:38 -07:00
Ben Gruver
987ac1ed12 Fix the name and type being swapped when converting to ImmutableDebugInfo 2013-10-11 21:50:01 -07:00
Ben Gruver
bc6fcd5ae3 Fix accidental case fall-throughs in MutableMethodImplementation 2013-10-11 21:32:33 -07:00
Ben Gruver
1697b1d97d Fix "hat" literal conversion in MutableMethodImplementation 2013-10-11 21:32:01 -07:00
Ben Gruver
6926ece0cd Check for null before using Iterables.filter 2013-10-10 19:46:02 -07:00
Ben Gruver
216ca5376b Always use the 035 version magic value when writing a dex file 2013-10-10 19:37:56 -07:00
Ben Gruver
7618e1636c Make extra sure we don't output blank debug items 2013-09-28 17:57:33 -07:00
Ben Gruver
84be16bf51 Fix DebugItems in the new builder stuff 2013-09-21 14:40:49 -07:00
Ben Gruver
edd961477e Remove the now unused builder instructions and instruction factories 2013-09-15 12:55:36 -07:00
Ben Gruver
f7d6d5fade Gracefully handle instructions with invalid references 2013-09-14 19:53:21 -07:00
Ben Gruver
45b8a4dae8 Allow "large" uleb128 values for method/field index deltas 2013-09-14 12:47:23 -07:00
Ben Gruver
5ff4ee9a3f Add missing copyright/license headers 2013-09-14 00:43:41 -07:00
Ben Gruver
6762350ca0 Add ability to converting MethodImplementation to MutableMethodImplementation 2013-09-14 00:32:32 -07:00
Ben Gruver
9a2de93a99 Implement just-in-time instruction fixup due to string jumboification 2013-09-08 21:41:23 -07:00
Ben Gruver
99b46173c5 Generify the IO requirements for writing a dex file
The DexWriter implementations now write to a generic "DexDataStore", instead
of writing directly to a file.

Also, writing of the DebugItems and CodeItems are linked, with the code
items being written to a temporary location, and then the entire code item
section is written as a batch after the debug item section.
2013-09-08 15:30:58 -07:00
Ben Gruver
160449b83a Implement instruction fixing in MutableMethodImplementation 2013-09-07 14:54:16 -07:00