Alex Light
89ef73b927
Make smali respect order of implements
...
Previously smali would reorder implements directives to be
alphabetical in the dex file. In the Java 8 Language the order of
interfaces may affect the order of initializer invocation when using
default methods. Therefore we will preserve this order in
smali/baksmai.
Bug: 24338722
Change-Id: I6851b02a5402c7d4cd4b60af54052c320e48d0bf
2015-09-30 14:18:32 -05:00
Ben Gruver
7a3d09cc47
Add ability to list methods/fields/types when assembling with smali
...
This can be useful in analyzing why you are going over the 64k
method/field/type limit
2015-09-30 14:17:16 -05:00
Ben Gruver
52fd17a436
Handle invalid debug item offsets more gracefully
2015-09-30 14:16:48 -05:00
Ben Gruver
fd489e990c
Add backwards compatible version of DexFileFactory.loadDexFile and Opcodes
...
Keep the old prototype, so we don't break existing code.
2015-09-30 14:16:29 -05:00
Ben Gruver
008b12f97c
Replace a missed usage of Iterators.emptyIterator()
2015-09-30 14:16:15 -05:00
Ben Gruver
5cd9d01a9e
Remove usages of the deprecated Iterators.emptyIterator() method
2015-09-30 14:14:05 -05:00
Ben Gruver
0370416d90
Add the generated accessorTest to source control
...
Some java compilers don't generate the synthetic accessor methods in the
way that the accessorTest is trying to test. So we build the test dex
file using a known-good compiler and check it in, ensuring the test is
always run using an appropriate dex file.
Conflicts:
brut.apktool.smali/dexlib2/build.gradle
2015-05-23 19:43:56 -05:00
Connor Tumbleson
1fb87e3e4c
Post smali 2.0.6 cleanup
...
- fix smaliDecoder/AccessorTest to use new DexFileFactory params
- remove unneeded ds/tree files
- cleanup unmerged lines
2015-05-02 06:59:36 -05:00
Ben Gruver
4cc5f07fd2
Bump the version number to 2.0.6
...
Conflicts:
build.gradle
2015-05-01 10:53:51 -05:00
Ben Gruver
91a47123bf
Ensure the stream is closed in DexFileFactory.loadDexFile
2015-05-01 10:53:08 -05:00
Rover12421
122af6253c
DuplicateTest FAILED fix
2015-05-01 10:52:00 -05:00
Ben Gruver
90e6923ae7
Fix a bounds check problem in IndentingWriter
2015-05-01 10:51:37 -05:00
Ben Gruver
fa773b5382
Comment out unused switch payload instructions
2015-05-01 10:51:27 -05:00
Ben Gruver
7b3e5a1668
Don't wrap a large (>32k) register count in a register directive
2015-05-01 10:51:13 -05:00
Ben Gruver
1c084171ed
Duplicate a switch payload that is refered to multiple times
2015-05-01 10:50:38 -05:00
Ben Gruver
395043667a
Ensure that sparse switch items are written out in the correct order
2015-05-01 10:50:11 -05:00
Ben Gruver
32a400396d
Fix up the whitespace normalization in TextUtils.normalizeWhitespace
...
Previously, all inter-line whitespace was being removed. And it now
normalizes trailing new lines as well
2015-05-01 10:49:40 -05:00
Ben Gruver
a01bf8c832
Don't propagate exceptions from RoundtripTest.runTest()
2015-05-01 10:49:29 -05:00
Ben Gruver
ce8a993bc7
Extract out a base RoundtripTest and IdenticalRoundtripTest class
2015-05-01 10:49:08 -05:00
Ben Gruver
6d3497f72d
Add Member and Annotatable interfaces
2015-05-01 10:48:36 -05:00
Ben Gruver
eb3b01f318
Make sure the elements are sorted in an encoded annotation
2015-05-01 10:48:11 -05:00
Ben Gruver
757e1dac45
Don't assume dx is on-path. Rather, grab it from maven central
...
The version of dx in maven central seems to be fairly old, but it works
well enough for our purposes.
Conflicts:
build.gradle
2015-05-01 10:48:00 -05:00
Igor Murashkin
58b7c27316
Add lambda experimental dalvik opcodes
...
* Add new -X/--experimental flag to [dis]assemble opcodes not in art yet
* Add new opcodes liberate-variable, box-lambda, unbox-lambda,
capture-variable, create-lambda, invoke-lambda
* Add support for encoding 25x instructions
* Adds LambdaTest to check new opcodes assemble/disassemble properly
TODO: invoke-lambda-range
Change-Id: I5c8bcbfa8b6cb9a13ef2017fce2d1b7fda6e11c3
2015-05-01 10:46:51 -05:00
Ben Gruver
d54c78d966
Use [^] for the lexer's catch-all rule
...
[^] matches the entire character set, while . doesn't match new lines, etc.
2015-05-01 10:46:07 -05:00
Ben Gruver
8284715f4d
Don't try to test for reserved file names
...
Instead, we'll just check os.name
2015-05-01 10:45:50 -05:00
Ben Gruver
b903c2066a
Enable parallel gradle execution by default
2015-05-01 10:45:01 -05:00
Ben Gruver
df0156aa7e
Use single-quotes in build.gradle files when double-quotes aren't needed
...
Conflicts:
brut.apktool.smali/baksmali/build.gradle
brut.apktool.smali/smali/build.gradle
build.gradle
2015-05-01 10:43:59 -05:00
Ben Gruver
d36b066007
Simplify how the accessorTest is built and run
...
Conflicts:
brut.apktool.smali/dexlib2/build.gradle
brut.apktool.smali/dexlib2/src/accessorTest/java/org/jf/dexlib2/AccessorTest.java
dexlib2/src/accessorTest/java/org/jf/dexlib2/AccessorTest.java
dexlib2/src/test/java/org/jf/dexlib2/AccessorTest.java
2015-05-01 10:41:41 -05:00
Ben Gruver
13b4c65ca1
Use the antlr plugin for gradle
...
Conflicts:
brut.apktool.smali/smali/build.gradle
brut.apktool.smali/smali/src/main/antlr3/smaliParser.g
brut.apktool.smali/smali/src/main/antlr3/smaliTreeWalker.g
brut.apktool.smali/smali/src/test/antlr3/org/jf/smali/expectedTokensTestGrammar.g
smali/src/main/antlr/smaliParser.g
smali/src/main/antlr/smaliTreeWalker.g
smali/src/main/antlr3/smaliParser.g
smali/src/main/antlr3/smaliTreeWalker.g
smali/src/test/antlr/org/jf/smali/expectedTokensTestGrammar.g
smali/src/test/antlr3/org/jf/smali/expectedTokensTestGrammar.g
2015-05-01 10:37:03 -05:00
Ben Gruver
08dca73690
Use the jflex plugin for gradle
...
Conflicts:
brut.apktool.smali/smali/build.gradle
brut.apktool.smali/smali/src/main/jflex/smaliLexer.flex
build.gradle
smali/src/main/jflex/smaliLexer.flex
smali/src/main/jflex/smaliLexer.jflex
2015-05-01 10:31:01 -05:00
Connor Tumbleson
0003d56389
Switch to Proguard Gradle
2015-05-01 10:26:10 -05:00
Ben Gruver
b8016ae6ef
Use the proguard plugin for gradle
...
Conflicts:
brut.apktool.smali/baksmali/build.gradle
brut.apktool.smali/smali/build.gradle
build.gradle
2015-05-01 09:19:55 -05:00
Connor Tumbleson
46d2fb899f
Upgrade to gradle 2.3
...
- port of b3f933d27a140db265c47d2771937d88e126ac5a
2015-05-01 09:15:56 -05:00
Jiri Hruska
9450cc915c
Fix for Dalvik VM crash on parameter annotations
...
Dalvik VM before Jelly Bean MR1 (4.2) crashes if there are any
NO_OFFSET (0) values in parameter annotation list.
(https://code.google.com/p/android/issues/detail?id=35304 )
2015-05-01 09:11:35 -05:00
Ben Gruver
2abcd59cbe
Remove stale license noticeds from NOTICE file
2015-05-01 09:09:37 -05:00
Connor Tumbleson
d1cea54cc7
[skip] fix proguard warning
2015-04-16 08:24:13 -05:00
Connor Tumbleson
ea38c65e82
beab30089c8faa53b3e30e5caf5bc9dac7e089d0
...
- update remaining reference to Proguard 5.2
2015-02-28 07:40:48 -06:00
Connor Tumbleson
2590521b33
fix all cherry-picks dumping files in wrong location
2015-01-21 08:10:42 -06:00
Ben Gruver
604e326412
Bump version number to 2.0.5
...
Conflicts:
build.gradle
2015-01-21 07:43:36 -06:00
Ben Gruver
2312848efc
Make ClassFileNameHandler thread-safe
2015-01-21 07:42:30 -06:00
Ben Gruver
d9e5b0a487
Switch the default for implicit references
2015-01-21 07:42:18 -06:00
Ben Gruver
97c52167cf
Add stringtemplate dependency to smali, because proguard.
...
Conflicts:
build.gradle
2015-01-21 07:42:02 -06:00
Ben Gruver
59a0d2f09b
Refactor ClassFileNameHandler
...
This makes the logic quite a bit easier to follow, and fixes an issue
with the previous implementatation, where it didn't correctly handle
the case when were multiple long names that collided after being
shortened
Conflicts:
brut.apktool.smali/util/src/main/java/ds/tree/DuplicateKeyException.java
brut.apktool.smali/util/src/main/java/ds/tree/RadixTree.java
brut.apktool.smali/util/src/main/java/ds/tree/RadixTreeImpl.java
brut.apktool.smali/util/src/main/java/ds/tree/RadixTreeNode.java
brut.apktool.smali/util/src/main/java/ds/tree/Visitor.java
brut.apktool.smali/util/src/main/java/ds/tree/VisitorImpl.java
2015-01-21 07:40:52 -06:00
Jeff Smith
12107ecde8
No need to reevaluate 'resource != null'
2015-01-21 07:39:34 -06:00
Jeff Smith
f5765d37c8
Give comment-generating functions more precise naming
2015-01-21 07:39:20 -06:00
Jeff Smith
a4d5d2299b
baksmali: Write comments about possible floating-point values
...
Conflicts:
brut.apktool.smali/baksmali/src/main/java/org/jf/baksmali/Adaptors/Format/InstructionMethodItem.java
2015-01-21 07:39:11 -06:00
Connor Tumbleson
5afd6f5e69
[skip] adjust path to match apktool structure
2015-01-21 07:33:51 -06:00
Ben Gruver
52482802dc
Make the checkPackagePrivateAccess functionality an option
...
This is only needed for 4.2.0, but not 4.2.1. Both are api 17, so we can't
tie this functionality to an api level.
2015-01-21 07:30:19 -06:00
Connor Tumbleson
89e6b06521
Implement dex entry for non classes.dex files
...
Conflicts:
brut.apktool.smali/dexlib2/src/main/java/org/jf/dexlib2/DexFileFactory.java
2015-01-21 07:29:57 -06:00
Ben Gruver
6b6c2c09b6
Fix some generics issues when compiling with java 8
2015-01-21 07:27:17 -06:00