1837 Commits

Author SHA1 Message Date
Lanchon
b9a725e726 MemoryDataStore: Handle weird arguments values correctly
Namely:
- Negative arguments to InputStream::skip(n).
- Large arguments to readAt(offset).
2018-06-13 14:11:46 -07:00
Lanchon
c645b9d546 MemoryDataStore: More efficient overridable growth policy 2018-06-13 14:11:46 -07:00
Lanchon
b0a69fce34 MemoryDataStore: Add a data-trimming getData() method 2018-06-13 14:11:46 -07:00
Lanchon
53cdb13acc MemoryDataStore: Rename the buffer getter method 2018-06-13 14:11:46 -07:00
Lanchon
6917c1fa14 MemoryDataStore: Keep track of actual size of data 2018-06-13 14:11:46 -07:00
Lanchon
d7b389da39 MemoryDataStore: Fix InputStream::read(byte[] b, int off, int len) bug 2018-06-13 14:11:46 -07:00
Lanchon
387299c6e3 MemoryDataStore: Allow overriding of growth policy 2018-06-13 14:11:46 -07:00
Lanchon
ea7c265d12 MemoryDataStore: Fix growth calculation 2018-06-13 14:11:46 -07:00
Albert Gorski
f10643fa43 Handle Changes in OAT Files for Android 8.1 (OAT 131)
- The OAT Header has a new field containing the offset to the
  entries for the DEX files.
    - The change was made in OAT 127.
    - All offsets in the header had to be adjusted to account
      for this new field.
    - The offset to the entries for the DEX files also had to
      be adjusted to use this field as they are no longer
      right after the key value store.
- The format of the DEX entries also changed in OAT 127 and
  again in OAT 131.
    - The field containing the offset to the method bss
      mapping was added in OAT 127.
    - The field containing the offset to the dex sections
      layout was added in OAT 131 right before the method
      bss mapping offset.
2018-06-12 13:39:43 -07:00
ale5000
ec31f76206 Simplified mapApiToArtVersion 2018-06-12 00:52:27 -07:00
Ben Gruver
854f117d3d Bump the version to 2.2.4 2018-06-11 23:34:07 -07:00
Ben Gruver
97fd796213 Bump the gradle version to 4.6 2018-06-11 23:33:49 -07:00
Ben Gruver
5916586f93 Add roundtrip tests for the 2 new opcodes 2018-05-23 13:34:16 -07:00
Ben Gruver
e2cffa23f7 Add support for const-method-handle and const-method-type in the tree walker 2018-05-23 13:34:16 -07:00
Ben Gruver
a387fa8b48 Add support for const-method-handle and const-method-type in the lexer and parser 2018-05-23 13:34:16 -07:00
Ben Gruver
2db1dec703 Add support for dex version 39 in dexlib2 2018-05-23 13:34:16 -07:00
Ben Gruver
69d004cbfd Add a roundtrip test for invoke-custom 2018-05-23 13:34:16 -07:00
Ben Gruver
a198c85a8e Add support for dumping the new structures 2018-05-23 13:34:16 -07:00
Ben Gruver
077c5c1b91 Let baksmali infer the api level when possible 2018-05-23 13:34:16 -07:00
Ben Gruver
e6f4475c87 Add full invoke-custom example 2018-05-23 13:34:16 -07:00
Ben Gruver
48d13b297f Add support for invoke-custom and related structures in baksmali 2018-05-23 13:34:16 -07:00
Ben Gruver
e8760aa46b Add support for method handle and call site references in ReferenceUtil 2018-05-23 13:34:16 -07:00
Ben Gruver
d82252e4d6 Make sure to close the writer after dumping 2018-05-23 13:34:16 -07:00
Ben Gruver
ba7a653fdf Add support for invoke-custom and related structures in the tree walker 2018-05-23 13:34:16 -07:00
Ben Gruver
858d264db9 Change the name of the invoke method handle types
Change the names to match the name used in the smali grammar
2018-05-23 13:34:16 -07:00
Ben Gruver
9ccda3a1bf Add support for invoke-custom and related structures in the parser and lexer 2018-05-23 13:34:16 -07:00
Ben Gruver
c7036da909 Make method_prototype rule build and return a MethodProtoReference 2018-05-23 13:34:16 -07:00
Ben Gruver
0a8839663b "occured" -> "occurred" in SmaliTestUtils 2018-05-23 13:34:16 -07:00
Ben Gruver
5c5e4ae279 Implement support for new structures in DexWriter 2018-05-23 13:34:16 -07:00
Ben Gruver
cc34359691 Create separate section for encoded arrays 2018-05-23 13:34:16 -07:00
Ben Gruver
2d227a7349 Fix nullable issue in annotations rule 2018-05-23 13:34:16 -07:00
Ben Gruver
fa5d0cc73a Add Immutable implementations of the new structures 2018-05-23 13:34:16 -07:00
Ben Gruver
8bdb50381d Fix up a few non-immutable members in immutable encoded value implementations 2018-05-23 13:34:16 -07:00
Ben Gruver
dea793447f Add DexBacked implementations of the new structures 2018-05-23 13:34:16 -07:00
Ben Gruver
ead2e033d0 Add getItemCount method to EncodedArrayItemIterator 2018-05-23 13:34:16 -07:00
Ben Gruver
2215e031bf Fix typo in DexBackedMethodEncodedValue 2018-05-23 13:34:16 -07:00
Ben Gruver
88ece20f9f Move the map item related methods from RawDexfile to DexBackedDexFile 2018-05-23 13:34:16 -07:00
Ben Gruver
e3fd1e8115 StaticInitialValueIterator -> EncodedArrayItemIterator 2018-05-23 13:34:16 -07:00
Ben Gruver
6c054e1b44 Minor javadoc fixes in MethodProtoReference 2018-05-23 13:34:16 -07:00
Ben Gruver
b575410a8a Add the basic structures necessary to support invoke-custom 2018-05-23 13:34:16 -07:00
Ben Gruver
dfdde5ee21 Bump the version to 2.2.3 2018-03-07 16:22:53 -08:00
Ben Gruver
1fed67b820 Don't use java 1.6 for release.
It's becoming non-trivial to even get a 1.6 JDK these days.

Releases will be done with 1.8 instead
2018-03-07 16:19:45 -08:00
Ben Gruver
37eb703409 Make smali file iteration more deterministic
In some cases, even when running in single threaded mode (-j 1), smali
could produce slightly different results if files are not listed in
a consistent order.

This ensures that we assemble a given set of smali files in a consistent
order when running in single-threaded mode, regardless of the order
they are listed in.
2018-02-28 16:22:47 -08:00
Andreas Gampe
681222d391 Fix NaN comparison
Use Float.isNaN/Double.isNaN to correctly detect NaN.

Detected by errorprone.
2018-01-23 11:56:02 -08:00
Ben Gruver
948c0205b8 Bump the version to 2.2.2 2017-10-30 15:34:58 -07:00
Ben Gruver
38f575608f Fix line_start annotation in debug_info_item
line_start can be > 2^31, so we have to use readBigUleb128 instead
of readSmallUleb128
2017-10-02 19:10:31 -07:00
Ben Gruver
20a272dbb9 Fix an issue when writing uleb128 values larger than 2^31 2017-10-02 19:10:31 -07:00
Orion Hodson
b84345935a Fix out registers for invoke-polymorphic
The calculation of the number of output registers for
invoke-polymorphic and invoke-polymorphic-range should be based on the
number of registers provided.
2017-09-12 14:34:56 -07:00
Ben Gruver
93a4373023 Bump the version to 2.2.1 2017-05-17 11:32:05 -07:00
Daniel Bali
d4702a45a7 Add basic support for ODEX instructions 2017-05-17 11:20:30 -07:00