1386 Commits

Author SHA1 Message Date
Alex Light
c456c55c40 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-24 13:04:30 -07:00
Ben Gruver
0c7e7b7ffc 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-05 16:11:21 -07:00
Ben Gruver
05221069a9 Update README.md
Updated links, info, etc. now that googlecode is fully deprecated.
2015-09-05 13:24:58 -07:00
Ben Gruver
4d8ec4c795 Handle invalid debug item offsets more gracefully 2015-08-26 15:55:30 -07:00
Ben Gruver
3065d6b7de Add backwards compatible version of DexFileFactory.loadDexFile and Opcodes
Keep the old prototype, so we don't break existing code.
2015-06-18 17:44:30 -07:00
Ben Gruver
b960e8950b Replace a missed usage of Iterators.emptyIterator() 2015-06-18 17:40:57 -07:00
Ben Gruver
a5de80a453 Bump the version number to 2.0.7 2015-06-18 14:06:43 -07:00
Ben Gruver
7c97ddbb45 Remove usages of the deprecated Iterators.emptyIterator() method 2015-06-18 13:34:12 -07:00
Ben Gruver
0f1e995099 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.
2015-05-23 11:26:35 -07:00
Ben Gruver
8f0026eb46 Bump the version number to 2.0.6 2015-04-30 23:27:54 -07:00
Ben Gruver
583079cc43 Ensure that java 6 is used for release builds 2015-04-30 23:26:23 -07:00
Rover12421
17828564ba README link fix 2015-04-09 21:51:09 -07:00
Ben Gruver
abd113eb3b Ensure the stream is closed in DexFileFactory.loadDexFile 2015-04-09 21:33:33 -07:00
Ben Gruver
0a26ac2e5b Upgrade to proguard 5.2.1 2015-04-09 21:33:22 -07:00
Rover12421
9838b83be9 ignore .idea directory 2015-04-10 11:58:29 +08:00
Rover12421
c55bef3604 DuplicateTest FAILED fix 2015-04-10 11:56:44 +08:00
Ben Gruver
923f5a7d10 Fix a bounds check problem in IndentingWriter 2015-03-20 16:39:07 -07:00
Ben Gruver
b742c40263 Comment out unused switch payload instructions 2015-03-20 16:38:19 -07:00
Ben Gruver
2a0e4657ea Don't wrap a large (>32k) register count in a register directive 2015-03-18 20:13:02 -07:00
Ben Gruver
bd6385f062 Duplicate a switch payload that is refered to multiple times 2015-03-18 20:01:49 -07:00
Ben Gruver
1aad736c20 Ensure that sparse switch items are written out in the correct order 2015-03-17 21:18:19 -07:00
Ben Gruver
32e76b181b 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-03-17 21:16:36 -07:00
Ben Gruver
d4bce2e768 Don't propagate exceptions from RoundtripTest.runTest() 2015-03-17 21:14:24 -07:00
Ben Gruver
1e0677617c Extract out a base RoundtripTest and IdenticalRoundtripTest class 2015-03-17 20:41:20 -07:00
Ben Gruver
0c982a02f1 Add Member and Annotatable interfaces 2015-03-16 20:52:55 -07:00
Ben Gruver
bf167c2f0e Make sure the elements are sorted in an encoded annotation 2015-03-16 20:36:34 -07:00
Ben Gruver
b76dee7ebd 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.
2015-03-16 19:54:57 -07:00
Ben Gruver
dd91dd1a71 Merge pull request #31 from iam/lambda_work
Add lambda experimental dalvik opcodes
2015-03-16 16:01:29 -07:00
Igor Murashkin
144951a9e9 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-03-16 11:40:58 -07:00
Ben Gruver
f70084bdfe Use [^] for the lexer's catch-all rule
[^] matches the entire character set, while . doesn't match new lines, etc.
2015-03-04 00:16:46 -08:00
Ben Gruver
e7f1549573 Merge pull request #28 from victorkp/master
Update doedexerant makefile
2015-03-03 18:10:16 -08:00
Ben Gruver
6a56d9a9e9 Merge pull request #29 from yirkha/master
Fix for Dalvik VM crash on parameter annotations
2015-03-03 18:08:44 -08:00
Ben Gruver
ea4074fdcc Don't try to test for reserved file names
Instead, we'll just check os.name
2015-03-01 22:42:48 -08:00
Ben Gruver
c19627e2d3 Enable parallel gradle execution by default 2015-03-01 22:35:30 -08:00
Ben Gruver
f0c481a7a1 Use single-quotes in build.gradle files when double-quotes aren't needed 2015-03-01 22:30:33 -08:00
Ben Gruver
3279a8cd4b Simplify how the accessorTest is built and run 2015-03-01 22:30:33 -08:00
Ben Gruver
57bd527d43 Use the antlr plugin for gradle 2015-03-01 20:31:10 -08:00
Ben Gruver
0f6f00a325 Use the jflex plugin for gradle 2015-03-01 20:30:09 -08:00
Ben Gruver
900ad6ea87 Use the proguard plugin for gradle 2015-03-01 19:51:34 -08:00
Ben Gruver
b3f933d27a Upgrade to gradle 2.3 2015-03-01 19:23:56 -08:00
Ben Gruver
59e56fb0dd Add IDEA project files to .gitignore 2015-03-01 19:14:27 -08:00
Jiri Hruska
5dde46b43d 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-02-19 02:59:41 +01:00
Victor Kaiser-Pendergrast
a922d5a155 Update doedexerant makefile
Fixes "CANNOT LINK EXECUTABLE: empty/missing DT_HASH in "./deodexerant" (build with --hash-style=gnu?)" error
2015-02-18 10:55:45 -05:00
Ben Gruver
0f8017e16a Remove stale license noticeds from NOTICE file 2015-01-22 16:50:49 -08:00
Ben Gruver
bc5ad6ab70 Bump version number to 2.0.5 2015-01-20 19:07:07 -08:00
Ben Gruver
a4dd1fd25b Make ClassFileNameHandler thread-safe 2015-01-20 19:01:39 -08:00
Ben Gruver
f5d3fc4a6d Switch the default for implicit references 2015-01-20 19:01:18 -08:00
Ben Gruver
39c77fa5bd Bump version number to 2.0.4 2015-01-20 08:55:16 -08:00
Ben Gruver
103e04a4a9 Add stringtemplate dependency to smali, because proguard. 2015-01-20 08:55:16 -08:00
Caleb Fenton
9546ddf95a Add registers directive so example will compile 2015-01-20 08:18:32 -08:00