Ben Gruver
1e655c2e54
Handle unicode filename collisions on mac
...
Some unicode characters are considered equivalent for filename purposes on mac.
This adds logic to treat these collisions the same way as case sensitivy
collisions are currently handled -- by adding a numeric suffix to the
file/directory anytime there is a collision.
See pull request #789 for more information.
2021-02-16 16:52:15 -08:00
Ben Gruver
fd3e00ab35
Refactor most of the utility classes from util into dexlib2
...
Now, util only contains the utilities that are needed by smali/baksmali,
but not dexlib2. E.g. the common command line parsing utilities, some path
utilities, etc.
This also reverses the dependency between the util module and dexlib2.
2018-07-01 14:08:33 -07:00
Lanchon
239b64ba00
Fix accidental dependencies on JCommander outside of dexlib2
2018-06-14 15:13:47 -07:00
Ben Gruver
31ad2bc100
Refactor how classpath loading works
2016-09-19 09:08:53 -07:00
Ben Gruver
9f794030da
Fix how parameter delegates are handled
2016-09-17 21:30:28 -07:00
Ben Gruver
c12b7e6e00
Change the classpath arguments to be split only by a colon
2016-09-17 21:30:28 -07:00
Ben Gruver
30bdb7fda9
Do a cleanup pass on the various commands/arguments/help text
2016-09-05 10:07:58 -07:00
Ben Gruver
ca48e6f7d0
Revamp the CLI usage/help formatting
2016-05-28 18:52:26 -07:00
Ben Gruver
e474301e60
Revamp how classpath loading works
2016-05-28 18:51:42 -07:00
Ben Gruver
8a5a6e3fc5
Add a --classes parameter to the list vtables command
2016-05-16 16:58:55 -07:00
Ben Gruver
41ec13e81f
Remove unneeded commons_cli stuff from util project
2016-05-16 16:58:54 -07:00
Ben Gruver
5a5eafb818
Implement a new command line interface for baksmali
2016-05-16 16:58:53 -07:00
Ben Gruver
912a474644
Merge branch 'master' into smalidea
2015-03-31 20:02:14 -07:00
Ben Gruver
923f5a7d10
Fix a bounds check problem in IndentingWriter
2015-03-20 16:39:07 -07:00
Ben Gruver
75bef01d10
Merge branch 'master' into smalidea
2015-03-18 21:00:32 -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
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
8c1d8ddef2
Merge branch 'master' into smalidea3
2015-03-04 20:58:14 -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
bbc11c79e5
Add lexer implementation based on existing smali lexer
2015-01-21 09:32:00 -08:00
Ben Gruver
a4dd1fd25b
Make ClassFileNameHandler thread-safe
2015-01-20 19:01:39 -08:00
Ben Gruver
e032f1d8c7
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
2015-01-07 17:14:44 -08:00
Ben Gruver
aae58716e7
Fix some javadoc issues
2014-12-28 14:14:19 -08:00
Ben Gruver
d33fd6773c
Implement implicit method/field references in baksmali
2014-07-19 20:26:50 -07:00
Ben Gruver
3b5d84c3ae
Truncate filenames based on their utf-8 length
2014-02-01 14:43:54 -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
68564258a3
occured -> occurred
2013-12-08 17:44:15 -08:00
Ben Gruver
6cd686fbf5
Make windows reserved filename detection more robust
...
This checks for more reserved filenames than just aux
2013-09-14 11:35:53 -07:00
Ben Gruver
d868692e33
Truncate the filename for overly long class names
2013-09-14 11:33:18 -07:00
Ben Gruver
5ff4ee9a3f
Add missing copyright/license headers
2013-09-14 00:43:41 -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
7e25c35df7
Make baksmali thread safe, and add -j option
2013-05-12 12:31:24 -07:00
Ben Gruver
d38f3a7983
Fix up line number handling to be unsigned int safe
2013-05-03 19:35:47 -07:00
Ben Gruver
936cc551f7
Clean up some TODOs
2013-04-30 21:57:08 -07:00
Ben Gruver
1bf6f23245
Implementation of new generificationified writer functionality
2013-04-27 22:23:30 -07:00
Ben Gruver
3d5423ed2b
Tweak how hashCode and equals works for MethodReferences
...
This fixes an issue where method references weren't being properly
interned when generating a dex file
2013-04-17 00:13:12 -07:00
Ben Gruver
d9c50f3f36
Fix IndentingWriter.printUnsignedLongAsHex and printSignedIntAsDec
...
A previous change had introduced a regression where they were printing
numbers backwards.
2013-04-16 00:26:24 -07:00
Ben Gruver
ec28400394
Switch to new parameter syntax
...
The new syntax is:
.param p1, firstParamName
which is closer to the existing local syntax:
.local v0, someLocal:I
2013-04-16 00:24:46 -07:00
Ben Gruver
7e58d497ef
Improve the performance of the IndentingWriter
2013-04-09 17:42:33 -07:00
Ben Gruver
ffe82bdcb5
Fully remove the dependency on the old dexlib from baksmali
2013-04-08 00:09:15 -07:00
Ben Gruver
9531284b1b
Port MethodAnalyzer and various dependencies from dexlib
2013-03-30 16:36:27 -07:00
Ben Gruver
31d87776c4
Refactor/rewrite the AnnotatedBytes class and helpers
...
This allows annotations to be added out-of-order, rather than the previous
requirement of forward-only annotating
2013-03-03 18:00:53 -08:00
Ben Gruver
46cefa3d5b
Factor out dependency versions, and upgrade to gradle 14.0
2013-03-03 17:58:02 -08:00
Ben Gruver
60d834f951
Annotate StringDataItems
2013-03-02 15:21:33 -08:00
Ben Gruver
6d607ebe1d
Annotate CodeItems
2013-03-02 14:04:51 -08:00
Ben Gruver
373ff22ec6
Beginning of annotated dump implementation
2013-02-24 15:58:24 -08:00
Ben Gruver
bfd74a869e
Create AbstractForwardSequentialList util class
2013-02-24 15:30:25 -08:00
Ben Gruver
7d5439950f
Fix various issues related to comparing method references.
2012-12-29 14:50:15 -08:00
Ben Gruver
3d0419c963
Track and seek to the current position in RandomAccessFileOutputStream
2012-12-28 17:40:46 -08:00