1595 Commits

Author SHA1 Message Date
Ben Gruver
07dc76c03f Switch to jprante's jflex plugin 2016-07-09 13:42:15 -07:00
Ben Gruver
6c6b9f0845 Upgrade to gradle 2.14 2016-07-09 13:41:30 -07:00
Ben Gruver
93100e57b2 Improve how the instance-of + if-eqz/if-nez type propagation works
We now perform the type propagation while analyzing the if-eqz/if-nez
instruction. Additionally, AnalyzedInstruction.setsRegister now has
special case logic to check for this case, so we don't incorrectly
propagate the original type past the if-eqz/if-nez
2016-04-23 14:01:36 -07:00
Ben Gruver
9802cf3428 Propagate the narrowed type for an if-nez after an instance-of 2016-04-23 11:08:21 -07:00
Ben Gruver
7fd5f88caf Merge pull request #391 from allight/new-dex-version
Dex version 37 support
2016-04-04 11:11:49 -07:00
Alex Light
40bbf5c347 Dex version 37 support
Make dexlib able to read and write version 37 dex files.

Bug: 27809626

Change-Id: I3d0ca6201c7abe7763d2fb925e9ee1edbef24230
2016-04-04 11:00:02 -07:00
Ben Gruver
87d10dac27 Add more programmatic-friendly entry points for smali/baksmali
This adds entry points that are more friendly to programmatic usage. E.g.
no calls to System.exit()
2016-02-28 12:19:27 -08:00
Ben Gruver
a198b46e20 Fix issue with parameter list parsing
This fixes an issue that was initially introduced in the smalidea branch
2016-02-28 12:15:22 -08:00
Ben Gruver
11d179bfdb Get rid of the default 6 thread maximum thing 2016-02-28 11:22:16 -08:00
Ben Gruver
616a0738dd Fix the release task for smalidea 2016-02-27 20:11:39 -08:00
Ben Gruver
81e0309ed6 Keep the since/until IDEA versions specified in the plugin.xml 2016-02-27 20:06:20 -08:00
Ben Gruver
5a8a2a47b6 Fix an NPE in SmaliPositionManager.createPrepareRequest 2016-02-27 18:32:53 -08:00
Ben Gruver
d018443797 Return an empty list from SmaliClass.getVisibleSignatures()
Don't return null from a @NotNull method, silly.
2016-02-27 17:42:47 -08:00
Ben Gruver
4d8aeebc07 Fix how SmaliPositionManager gets the current class 2016-02-27 17:39:25 -08:00
Ben Gruver
37fbbe8e15 Submit issues to the smalidea-issues repo
Let's not spam the nice people who watch the smali repo. (I'm looking
at you jcase)
2016-02-27 17:39:03 -08:00
Ben Gruver
82f031210e Add support for java inner classes
It's now possible to reference java inner classes based on what their
name would be in smali
2016-02-27 13:00:19 -08:00
Ben Gruver
66892009f5 Fix a possible NPE in SmaliCodeFragmentFactory 2016-02-27 12:51:26 -08:00
Ben Gruver
3bdedd6380 Fix up the sandbox directory for smalidea tests 2016-02-27 12:50:54 -08:00
Ben Gruver
29d714f71f Conditionally add the smalidea project to the root project
The smalidea project is only added when you're actually in the
smalidea directory
2016-02-26 22:09:08 -08:00
Ben Gruver
ff4c85c5e4 Provide better register type information 2016-02-26 21:13:29 -08:00
Ben Gruver
6417e812e1 Refactor ClassPath to take ClassProviders
This allows for a more general mechanism for providing defined classes
2016-02-26 21:13:29 -08:00
Ben Gruver
aebb205aeb Add better support for conditional expressions for breakpoints 2016-02-20 12:04:48 -08:00
Ben Gruver
1df3869a30 Don't add tools.jar when building the idea project files 2016-02-20 12:04:48 -08:00
Ben Gruver
7b387e06c5 Gracefully handle analysis errors 2016-02-20 12:04:47 -08:00
Ben Gruver
5b2943d89b Check for switch offset validity in the MethodAnalyzer 2016-02-20 12:04:47 -08:00
Ben Gruver
6429b3daa9 Clean up the jar naming
The previous naming was interfering with 'gr install' installing the
artifacts locally.
2016-02-20 12:04:47 -08:00
Ben Gruver
4b337cc04d Allow local search scopes when searching class usages 2016-02-20 12:00:05 -08:00
Ben Gruver
f16ea398a1 Don't require an active debugging session when making a code fragment
This is needed, e.g. when editing a conditional statement in the
breakpoint window.
2016-02-20 12:00:05 -08:00
Ben Gruver
92f8ec50c5 Add the ideadirs task for smalidea 2016-02-14 12:53:56 -08:00
Ben Gruver
df4e74e41c Make smalidea a separate gradle/idea project 2016-02-14 12:53:56 -08:00
Ben Gruver
6e788c8a8e Move META-INF/plugin.xml under resources 2016-02-14 12:50:31 -08:00
Ben Gruver
2e7fe1b8fe Fix the tests that require a real jdk 2016-02-14 12:50:31 -08:00
Ben Gruver
327957ae66 Update for new MethodAnalyzer signature 2016-02-14 12:50:31 -08:00
Ben Gruver
1b00e0a155 Add the .tokens files to the binary jar 2016-02-14 12:50:31 -08:00
Ben Gruver
0be7264eb3 Bump gradle up to 2.11 2016-02-14 12:50:31 -08:00
Ben Gruver
5bdb7ee520 Bump the version to 2.1.2 2016-02-14 12:50:31 -08:00
Ben Gruver
8533ab7429 Merge branch 'master' into smalidea 2016-02-13 15:43:37 -08:00
Ben Gruver
b12d4e9ec8 Bump the version number to 2.1.1 2016-01-10 11:24:31 -08:00
Ben Gruver
73bd8ce9d4 Add a speculative fix for unicode filename errors on Mac 2015-12-04 12:00:27 -08:00
Ben Gruver
3e265038f5 Implement support for adding new labels to a MutableMethodImplementation 2015-10-18 13:24:34 -07:00
Ben Gruver
b8e255f389 Add support for 64-bit oat files 2015-10-17 14:47:10 -07:00
Ben Gruver
e202aeede5 Pass in the Opcodes to use for SyntheticAccessorFSM 2015-10-17 13:50:26 -07:00
Ben Gruver
4c66761aea Minor javadoc fix for AnalyzedInstruction.setPostRegisterType 2015-10-17 13:48:54 -07:00
Ben Gruver
da58cc8991 Only use the instance-of/if-eqz type info if we're getting more information
We should only use the type info from an instance-of/if-eqz combo if we're
going from an interface to a class, or going from a class to a subtype
of that class -- otherwise, we're actually losing information.
2015-10-17 13:18:55 -07:00
Ben Gruver
3124e94d4b Add support for static volatile opcodes in OdexedFieldInstructionMapper
This fixes a regression introduced in 2.1
2015-10-16 19:07:50 -07:00
Ben Gruver
37d14becd1 Fix register propagation when overriding a register type from a predecessor 2015-10-14 21:57:23 -07:00
Ben Gruver
398630dde5 Infer the register type based on the result of an instance-of instruction
In oat files, it's possible that a check-cast is removed based on the
register being provably of the type being cast to, based on the result
of an instance-of check.

Supporting this in general would require more sophisticated static analysis
than is currently done. Instead, this adds a special-case specifically
for the case of an instance-of followed immediately by an if-eqz
2015-10-13 21:59:47 -07:00
Ben Gruver
d6b17b9935 Don't add an empty .param annotation when not writing debug info 2015-10-13 18:46:13 -07:00
Ben Gruver
ccf087b0dd Bump up MAX_OAT_VERSION to 71 2015-10-01 22:51:10 -07:00
Ben Gruver
7844089286 Add support for alternate field ordering starting at oat version 67 2015-10-01 22:50:35 -07:00