Ben Gruver
cf01f5db09
Refactor ClassDefItem
...
This primarily adds nullable/nonnull annotations, and fixes a few related issues
2012-06-05 18:34:09 -07:00
Ben Gruver
10ebad1205
Refactor the ClassDataItem interface
...
This improves the usability and makes the nullness (or nonnullness) for
various things explicit.
2012-06-05 18:09:38 -07:00
Ben Gruver
d320d6ce8c
Add Item.isPlaced() method and replace getOffset() != -1 with !isPlaced() in ClassDefItem
2012-06-05 18:09:38 -07:00
Ben Gruver
e5466fee23
Add annotation lookup functionality to AnnotationDirectoryItem
2012-06-05 18:09:33 -07:00
Ben Gruver
1ffc028a3b
Add a check to Item.getOffset() and getIndex() to ensure the item has been placed
2012-06-05 17:59:55 -07:00
Ben Gruver
b71c12967b
Refactor the interface of AnnotationDirectoryItem
...
This makes it easier to use, and fixes a few null safeness issues.
2012-06-05 17:59:45 -07:00
Ben Gruver
0044afa4c3
Don't let later entries in the classpath override classes from earlier entries
2012-03-23 01:53:16 -07:00
Ben Gruver
1acfb0ef18
Instruction3rmi should use Format3rmi, not Format3rms
2012-03-10 20:18:42 -08:00
Ben Gruver
0d57d42794
Fix stupid infinite loop problem
2012-01-12 00:45:22 -08:00
Ben Gruver
a9f36cda13
Fix idiotic "this" alias
2012-01-11 22:11:31 -08:00
Ben Gruver
96b803c882
Add support for version 36 dex files
2012-01-11 22:11:27 -08:00
Ben Gruver
d89375a663
Fix-up InlineMethodResolver_version35 to use the new OdexedInvokeInline interface
2011-12-20 20:27:55 -08:00
Ben Gruver
4d3b3311e1
Fix a few issues with Format 35mi
2011-11-20 20:21:30 -08:00
Ben Gruver
9e78b6b021
Add CAN_INITIALIZE_REFERENCE flag for Opcodes
2011-11-20 20:09:48 -08:00
Ben Gruver
0d785ac315
Add support for jumbo volatile field access opcodes
2011-11-20 15:47:53 -08:00
Ben Gruver
4dda65fdb3
Add an opcode flag for jumbo opcodes
2011-11-20 15:47:53 -08:00
Ben Gruver
a43de2411e
Add support for the invoke-object-init/jumbo odex opcode
2011-11-20 15:47:53 -08:00
Ben Gruver
4a5692f827
Add support for the return-void-barrier odex instruction
2011-11-20 15:47:49 -08:00
Ben Gruver
c8de336727
Use Format 35c for invoke-direct-empty, and get rid of Format 35s
2011-11-20 15:46:40 -08:00
Ben Gruver
ea7afb0265
Add support for the invoke-object-init/range opcode in ICS
2011-11-20 15:46:40 -08:00
Ben Gruver
5967598d01
Add support for specifying a custom inline method table to use while deodexing
2011-11-20 15:46:40 -08:00
Ben Gruver
c2f08d5123
Add support for an --api-level parameter
2011-11-20 15:46:40 -08:00
Ben Gruver
6729493700
Add support in MethodAnalyzer for the new opcodes
2011-11-20 15:46:40 -08:00
Ben Gruver
b0ca7cb99b
Add support for auto-upgrading to /jumbo variants of instructions when needed/possible
2011-11-20 15:46:39 -08:00
Ben Gruver
c4db7e2473
Add support for Format5rc
2011-11-20 15:46:39 -08:00
Ben Gruver
de5b35dbb6
Add support for Format52c (field references)
2011-11-20 15:46:39 -08:00
Ben Gruver
1efc2c0388
Add support for Format52c (type references)
2011-11-20 15:46:39 -08:00
Ben Gruver
d863324ffb
Add support for Format41c (field references)
2011-11-20 15:46:39 -08:00
Ben Gruver
8b3b577f00
Add additional checks for index size when writing various items
2011-11-20 15:46:39 -08:00
Ben Gruver
d12c769276
Add support for Format41c (type references)
2011-11-20 15:46:38 -08:00
Ben Gruver
9c5ea8fa92
Lay the groundwork for general 32-bit IndexedItem references
2011-11-20 15:46:38 -08:00
Ben Gruver
95cd71c2d0
Lay the groundwork for expanded (16-bit) opcodes
2011-11-20 15:46:32 -08:00
Ben Gruver
166fc9296e
Refactor out the getRegCount method into a seperate InvokeInstruction interface
2011-11-19 11:39:49 -08:00
Ben Gruver
b0c62b9781
Seperate out execute-inline and execute-inline/range into seperate 35mi and 3rmi formats
2011-11-19 11:39:49 -08:00
Ben Gruver
3bfd77dff0
Use the term VtableIndex rather than MethodIndex for invoke-*-quick instructions/formats
2011-11-19 11:39:49 -08:00
Ben Gruver
8e51717604
Add support for the THROW_VERIFICATION_ERROR opcode in MethodAnalyzer
2011-11-19 11:39:49 -08:00
Ben Gruver
225535b1c9
Add .gitignore files to exclude the target directory for the various modules
2011-11-19 11:39:45 -08:00
Ben Gruver
94e5a39ad2
Add initial support for allowing assembly of odex instructions
...
Initially, only throw-verification-error is supported
2011-10-09 22:51:44 -04:00
Ben Gruver
bbe539f2d2
Add support for the throw-verification-error opcode
2011-10-09 22:51:39 -04:00
Ben Gruver
82cdb8a8af
Fix an incorrectly formatted offset to the debug info, in the dump for a code item
2011-09-20 22:38:51 -04:00
Ben Gruver
049bba5d98
Fix an infinite loop in findMethodByMethodIdInternal
2011-08-14 20:09:12 -04:00
Ben Gruver
a91109b8a7
Take into account defining class information when resolving field offsets
...
This fixes an issue when deodexing, where a field offset is incorrectly
resolved when trying to access a field defined in an ancestor class
when the the child class defines a field with the same name
Kudos to brightidea @ xda-dev for digging into this issue and figuring
out the problem!
2011-08-13 02:22:16 -04:00
Ben Gruver
c2e3d1a320
Remove unused instanceFieldLookup field in ClassPath.ClassDef
2011-08-12 22:51:50 -04:00
jesusfreke@jesusfreke.com
fadcc2dcb9
Ignore the link section in the header
...
git-svn-id: https://smali.googlecode.com/svn/trunk@812 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2011-07-15 09:22:43 +00:00
jesusfreke@jesusfreke.com
2f376953b4
Add helper comments for synthetic member accessors
...
This adds a comment before a synthetic member accessor is called, which
mentions what member in the parent is being accessed
Kudos to jasta for suggesting this feature!
git-svn-id: https://smali.googlecode.com/svn/trunk@809 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2011-05-20 06:16:22 +00:00
jesusfreke@jesusfreke.com
7ed253b78b
Fix bug in ByteArrayInput.readLong
...
Thanks to deuns.martinez for reporting this fix
git-svn-id: https://smali.googlecode.com/svn/trunk@808 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2011-05-15 17:06:57 +00:00
jesusfreke@jesusfreke.com
817f2e0a76
Fix invalid cast when deodexing an execute inline instruction on an odex file from eclair or earlier
...
git-svn-id: https://smali.googlecode.com/svn/trunk@807 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2011-01-02 18:39:15 +00:00
JesusFreke@JesusFreke.com
1ad2f503bb
The fastIndexOf inline method should be a direct method, not virtual
...
git-svn-id: https://smali.googlecode.com/svn/trunk@800 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-12-22 01:49:08 +00:00
JesusFreke@JesusFreke.com
d4417d7269
add support for the new odex opcodes for volatile field access that were added in gingerbread
...
git-svn-id: https://smali.googlecode.com/svn/trunk@799 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-12-21 17:33:30 +00:00
JesusFreke@JesusFreke.com
595cdad3d6
Add support for the new inline methods added in gingerbread
...
git-svn-id: https://smali.googlecode.com/svn/trunk@798 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-12-21 17:33:25 +00:00