JesusFreke@JesusFreke.com
8a8b2a988b
Minor cleanup in DeodexUtil
...
git-svn-id: https://smali.googlecode.com/svn/trunk@555 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:56:38 +00:00
JesusFreke@JesusFreke.com
6512a81a11
whitespace and comment changes
...
git-svn-id: https://smali.googlecode.com/svn/trunk@554 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:56:31 +00:00
JesusFreke@JesusFreke.com
096d4ec5ca
Use getMethodString() instead of combining separate parts in DeodexUtil.deodexerizeCode()
...
git-svn-id: https://smali.googlecode.com/svn/trunk@553 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:56:25 +00:00
JesusFreke@JesusFreke.com
16a911620c
General cleanup/refactoring/maintentance
...
- Added some additional context information for exceptions in various locations
- Refactored all code offsets so that they use 2-byte code block address, instead of a byte offset.
- Additionally changed all "offset" terminology refering to code offsets to "address" instead
- Changed the way the getItemByIndex and getOffsettedItemByOffset work, so that they throw an
exception if the index/offset is -1/0.
- Added additional getOptionalItemByIndex and getOptionalOffsettedItemByOffset methods, to be used
in the cases where an index/offset of -1/0 is valid, to indicate the absence of an item
- Other misc cleanup/maintentance
git-svn-id: https://smali.googlecode.com/svn/trunk@552 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:56:16 +00:00
JesusFreke@JesusFreke.com
3ae5a27b60
Remove unused InstructionWriter class
...
git-svn-id: https://smali.googlecode.com/svn/trunk@551 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:55:08 +00:00
JesusFreke@JesusFreke.com
25df744c31
Delete unused InstructionReader class
...
git-svn-id: https://smali.googlecode.com/svn/trunk@550 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:55:02 +00:00
JesusFreke@JesusFreke.com
4610bfd7a9
Add FiveRegisterInstruction and RegisterRangeInstruction interfaces
...
Implement new interfaces on appropriate Instruction classes
git-svn-id: https://smali.googlecode.com/svn/trunk@549 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:13:09 +00:00
JesusFreke@JesusFreke.com
4238ac2dd1
Add missing interfaces to a couple of Instruction classes
...
git-svn-id: https://smali.googlecode.com/svn/trunk@548 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-12 07:12:55 +00:00
JesusFreke@JesusFreke.com
0f78b15cd7
Change the enum name of the execute-inline instruction from INVOKE_EXECUTE_INLINE to EXECUTE_INLINE
...
git-svn-id: https://smali.googlecode.com/svn/trunk@546 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-01 22:36:09 +00:00
JesusFreke@JesusFreke.com
1c6b6d7591
whitespace change
...
git-svn-id: https://smali.googlecode.com/svn/trunk@545 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-01 22:36:01 +00:00
JesusFreke@JesusFreke.com
be2472d6d7
Add support for the upcoming execute-inline/range odexed instruction
...
git-svn-id: https://smali.googlecode.com/svn/trunk@544 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-01 22:35:54 +00:00
JesusFreke@JesusFreke.com
c043c35800
Add execute-inline to the list of instructions that can throw an exception
...
git-svn-id: https://smali.googlecode.com/svn/trunk@543 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-01 22:35:42 +00:00
JesusFreke@JesusFreke.com
c9c2ec3d48
Add "support" for odexed instructions using Format3rms
...
Also, change the name of the invoke-*-range-quick opcodes to invoke-*-quick/range,
to be consistent with the naming scheme of non-odexed opcodes
git-svn-id: https://smali.googlecode.com/svn/trunk@542 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2010-01-01 22:35:35 +00:00
JesusFreke@JesusFreke.com
da3b7b1150
change execute_inline to execute-inline, for consistency
...
git-svn-id: https://smali.googlecode.com/svn/trunk@538 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-31 22:34:37 +00:00
JesusFreke@JesusFreke.com
f29d8ae0b1
fix spelling of propogateRegisters method
...
git-svn-id: https://smali.googlecode.com/svn/trunk@529 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:06:09 +00:00
JesusFreke@JesusFreke.com
37885c5f82
Fix possible NPE
...
git-svn-id: https://smali.googlecode.com/svn/trunk@528 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:06:03 +00:00
JesusFreke@JesusFreke.com
64c389570e
Resolve inline methods lazily, to prevent issues when types for unused inline methods aren't present in the odex file
...
git-svn-id: https://smali.googlecode.com/svn/trunk@527 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:05:57 +00:00
JesusFreke@JesusFreke.com
f7c84c8c41
return the correct format for Instruction35s
...
git-svn-id: https://smali.googlecode.com/svn/trunk@526 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:05:50 +00:00
JesusFreke@JesusFreke.com
6325930f67
read in the field offset for Instruction22cs
...
git-svn-id: https://smali.googlecode.com/svn/trunk@525 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:05:43 +00:00
JesusFreke@JesusFreke.com
ba04c98bce
Whitespace fixes
...
git-svn-id: https://smali.googlecode.com/svn/trunk@523 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-25 23:05:28 +00:00
JesusFreke@JesusFreke.com
3ce2b6fcee
remove unneeded TODO
...
git-svn-id: https://smali.googlecode.com/svn/trunk@521 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:08:23 +00:00
JesusFreke@JesusFreke.com
5f758b60b4
fix an issue that occurs when a switch statement is the first instruction in a method
...
git-svn-id: https://smali.googlecode.com/svn/trunk@520 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:08:14 +00:00
JesusFreke@JesusFreke.com
b145895c49
remove an invalid assert
...
git-svn-id: https://smali.googlecode.com/svn/trunk@519 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:08:02 +00:00
JesusFreke@JesusFreke.com
146fbfd33a
Throw an error if a switch data pseudo-instruction is encountered when auto-fixing a method.
...
git-svn-id: https://smali.googlecode.com/svn/trunk@518 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:07:44 +00:00
JesusFreke@JesusFreke.com
a8ca776c1d
Remove unneeded TODO
...
git-svn-id: https://smali.googlecode.com/svn/trunk@517 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:07:33 +00:00
JesusFreke@JesusFreke.com
2e52e0e6e4
remove unneeded TODO: and added a new one
...
git-svn-id: https://smali.googlecode.com/svn/trunk@516 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-24 08:07:23 +00:00
JesusFreke@JesusFreke.com
2904f40603
Fix an issue when the current address immediatly after an AdvancePC debug instruction doesn't point to an instruction
...
git-svn-id: https://smali.googlecode.com/svn/trunk@515 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 23:46:18 +00:00
JesusFreke@JesusFreke.com
2ededb89b9
Don't set the encoded debug info when nothing needed to be changed
...
git-svn-id: https://smali.googlecode.com/svn/trunk@514 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 23:46:12 +00:00
JesusFreke@JesusFreke.com
e266117407
Add the offset past the end of the last instruction to the sparse arrays that translate between the new and old offsets
...
git-svn-id: https://smali.googlecode.com/svn/trunk@513 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 23:46:06 +00:00
JesusFreke@JesusFreke.com
01318cded8
use decodeHighUnsignedNibble instead of decodeHighSignedNibble for regB in Instruction22t
...
git-svn-id: https://smali.googlecode.com/svn/trunk@512 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 05:28:28 +00:00
JesusFreke@JesusFreke.com
311ee79fab
Complete and fix-up the implementation of autofixing instructions
...
git-svn-id: https://smali.googlecode.com/svn/trunk@511 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 05:28:21 +00:00
JesusFreke@JesusFreke.com
404816815f
use out.toByteArray() instead of out.getArray(), so we get a correctly sized array instead of the oversized internal buffer
...
git-svn-id: https://smali.googlecode.com/svn/trunk@509 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 05:27:49 +00:00
JesusFreke@JesusFreke.com
4433deb7dc
Use an int to store the 'base' value, when decoding a special debug opcode, to prevent an incorrect negative value
...
git-svn-id: https://smali.googlecode.com/svn/trunk@508 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 05:27:42 +00:00
JesusFreke@JesusFreke.com
91aa1ef2fa
Use the correct comparison for the keys, when writing out a sparse switch data pseudo-instruction
...
git-svn-id: https://smali.googlecode.com/svn/trunk@507 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 05:27:36 +00:00
JesusFreke@JesusFreke.com
526d617e05
When writing an Instruction31t opcode, align the offset to the switch/array data
...
git-svn-id: https://smali.googlecode.com/svn/trunk@506 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 05:27:30 +00:00
JesusFreke@JesusFreke.com
7570fe0382
Fix the way offsets are handled in Instruction21t and Instruction22t
...
Use a short internally for the offset, and validate the value in updateOffset()
git-svn-id: https://smali.googlecode.com/svn/trunk@505 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 05:27:23 +00:00
JesusFreke@JesusFreke.com
f6c7706102
ensure the string index is <= 0xFFFF before writing a string-const instruction
...
git-svn-id: https://smali.googlecode.com/svn/trunk@504 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 05:27:14 +00:00
JesusFreke@JesusFreke.com
fda2e631ac
Refactor instructions to store individual pieces of data instead of just using an offset into a buffer
...
Also included is a partial implementation of the logic needed to automatically fix various types of issues
git-svn-id: https://smali.googlecode.com/svn/trunk@502 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 05:26:59 +00:00
JesusFreke@JesusFreke.com
9ab2b45ec8
whitespace fixes
...
git-svn-id: https://smali.googlecode.com/svn/trunk@501 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 05:26:13 +00:00
JesusFreke@JesusFreke.com
5867263eb5
line ending and trailing whitespace cleanup
...
git-svn-id: https://smali.googlecode.com/svn/trunk@500 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-23 05:25:59 +00:00
JesusFreke@JesusFreke.com
b6ce091ae3
fix an issue reading the string index for indexes >16bits, for the const-string/jumbo opcode
...
git-svn-id: https://smali.googlecode.com/svn/trunk@495 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-12-09 09:56:13 +00:00
JesusFreke@JesusFreke.com
b09920f24f
Use the shorter form of decodeUnsignedShort
...
git-svn-id: https://smali.googlecode.com/svn/trunk@479 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-19 03:34:03 +00:00
JesusFreke@JesusFreke.com
29f49465ca
Use a SparseArray instead of a HashMap, and add get*Count methods to AnnotationDirectoryItem so we can initialize the SparseArrays with the correct capacity
...
git-svn-id: https://smali.googlecode.com/svn/trunk@478 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-19 03:18:35 +00:00
JesusFreke@JesusFreke.com
cd5d4c0385
Use proper hygiene. Close those files/streams!
...
git-svn-id: https://smali.googlecode.com/svn/trunk@477 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-14 02:37:26 +00:00
JesusFreke@JesusFreke.com
c8d83493d1
Add support for reading a classes.dex file from an apk/jar
...
git-svn-id: https://smali.googlecode.com/svn/trunk@470 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-13 21:55:24 +00:00
JesusFreke@JesusFreke.com
4080fe659d
Improve handling of the dex and odex magic values
...
git-svn-id: https://smali.googlecode.com/svn/trunk@469 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-13 19:57:25 +00:00
JesusFreke@JesusFreke.com
343848c849
Include the first 8 bytes of the file when reporting a bad magic value
...
git-svn-id: https://smali.googlecode.com/svn/trunk@468 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-13 19:45:54 +00:00
JesusFreke@JesusFreke.com
dbaa44be6c
wasn't propogating deadness in all cases
...
git-svn-id: https://smali.googlecode.com/svn/trunk@462 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-11 03:14:40 +00:00
JesusFreke@JesusFreke.com
a948461964
Check for null when looking up a superclass
...
git-svn-id: https://smali.googlecode.com/svn/trunk@460 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-11 01:45:28 +00:00
JesusFreke@JesusFreke.com
c65a8d8b5f
Added better support for the case when an optimized instruction can't be resolved due to the object register always being null. It should comment out any dead code following the unresolved instruction (to prevent verification issues, due to the changed method call)
...
git-svn-id: https://smali.googlecode.com/svn/trunk@455 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-10 06:40:58 +00:00