636 Commits

Author SHA1 Message Date
JesusFreke@JesusFreke.com
61eedba1ab Fix a bug when creating a dex file that has a blank section for one of the indexed item types
git-svn-id: https://smali.googlecode.com/svn/trunk@452 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 06:58:50 +00:00
JesusFreke@JesusFreke.com
a6bf1ed0fe store types as strings, to allow for intermediate types that don't exist in the dex file
git-svn-id: https://smali.googlecode.com/svn/trunk@451 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 06:38:01 +00:00
JesusFreke@JesusFreke.com
c3deed2751 Added a tricky test case for the deodexer
git-svn-id: https://smali.googlecode.com/svn/trunk@450 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 05:15:40 +00:00
JesusFreke@JesusFreke.com
e942607e1a delete TODO
git-svn-id: https://smali.googlecode.com/svn/trunk@449 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 05:09:45 +00:00
JesusFreke@JesusFreke.com
726d88404d Handle a rare case where deodexing an instruction invalidates a previously deodexed instruction somewhere else because of the new register information available
git-svn-id: https://smali.googlecode.com/svn/trunk@448 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 04:21:20 +00:00
JesusFreke@JesusFreke.com
8b260a1d81 Changed the instruction map to a Sparse array, plus various cleanup
git-svn-id: https://smali.googlecode.com/svn/trunk@447 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 03:40:31 +00:00
JesusFreke@JesusFreke.com
c2c37aed3b removed todo comment
git-svn-id: https://smali.googlecode.com/svn/trunk@446 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 01:44:48 +00:00
JesusFreke@JesusFreke.com
a3d7d2423d - removed insn.fixed
- added a merge table for the register type merge logic

git-svn-id: https://smali.googlecode.com/svn/trunk@445 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-09 01:43:57 +00:00
JesusFreke@JesusFreke.com
e6e9569227 change the field lookup to a field dump, and the inline method lookup to an inline method dump
git-svn-id: https://smali.googlecode.com/svn/trunk@444 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 23:05:53 +00:00
JesusFreke@JesusFreke.com
6fa95185b7 Added caching for the rest of the deodexerant commands
git-svn-id: https://smali.googlecode.com/svn/trunk@443 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 23:04:44 +00:00
JesusFreke@JesusFreke.com
f0e3677538 fix the "null" fixed instructions.. again
git-svn-id: https://smali.googlecode.com/svn/trunk@442 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 20:34:19 +00:00
JesusFreke@JesusFreke.com
7f91677f24 Add a check on the vtable index when doing a virtual method lookup
git-svn-id: https://smali.googlecode.com/svn/trunk@441 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 20:27:12 +00:00
JesusFreke@JesusFreke.com
665884682c - Add support for the change in deodexerant where it now dumps all vtable entries, instead of having to query for a specific one
- cache the vtable information we get from deodexerant

git-svn-id: https://smali.googlecode.com/svn/trunk@440 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 20:19:28 +00:00
JesusFreke@JesusFreke.com
4ef9fbbd21 Change the virtual method lookup to dump the entire vtable for the class
git-svn-id: https://smali.googlecode.com/svn/trunk@439 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 20:18:01 +00:00
JesusFreke@JesusFreke.com
285dfd013a Fix the registers in the dummy method calls used to replace null pointer method invokes/field accesses
git-svn-id: https://smali.googlecode.com/svn/trunk@438 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 08:27:52 +00:00
JesusFreke@JesusFreke.com
631326836e Add opcode parameter
git-svn-id: https://smali.googlecode.com/svn/trunk@437 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 07:28:06 +00:00
JesusFreke@JesusFreke.com
d24694eda4 minor cleanup
git-svn-id: https://smali.googlecode.com/svn/trunk@436 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 07:27:42 +00:00
JesusFreke@JesusFreke.com
5b89857df3 Initial commit of deodex functionality in dexlib and baksmali
git-svn-id: https://smali.googlecode.com/svn/trunk@435 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 06:27:32 +00:00
JesusFreke@JesusFreke.com
df2a55dee5 Initial commit of deodexerant
git-svn-id: https://smali.googlecode.com/svn/trunk@434 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-08 06:26:34 +00:00
JesusFreke@JesusFreke.com
5f98a29260 Add support for the odex only opcodes
git-svn-id: https://smali.googlecode.com/svn/trunk@432 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-30 04:28:11 +00:00
JesusFreke@JesusFreke.com
73a63516fc preliminary support for reading in odex files
git-svn-id: https://smali.googlecode.com/svn/trunk@431 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-30 02:32:27 +00:00
JesusFreke@JesusFreke.com
4a4fac96de Update the version to .96
git-svn-id: https://smali.googlecode.com/svn/trunk@430 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-30 02:31:42 +00:00
JesusFreke@JesusFreke.com
aaa11529d4 Check if the method is static to determine if there is an extra "this" register, not if it's a direct method
git-svn-id: https://smali.googlecode.com/svn/trunk@428 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-29 05:03:13 +00:00
JesusFreke@JesusFreke.com
2ec8d992d0 Don't use substraction to compare signed integral types, use comparisons
git-svn-id: https://smali.googlecode.com/svn/trunk@427 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-28 07:30:42 +00:00
JesusFreke@JesusFreke.com
e1b2408a8c Don't create a type list for prototypes with no paremeters
git-svn-id: https://smali.googlecode.com/svn/trunk@426 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-28 05:32:12 +00:00
JesusFreke@JesusFreke.com
fd427e41ea use the address, not the address delta when calling emitAdvancePC
git-svn-id: https://smali.googlecode.com/svn/trunk@425 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-28 05:31:21 +00:00
JesusFreke@JesusFreke.com
c604ed6c1a Add .hashcode and .equals to EncodedCatchHandler and EncodedTypeAddrPair, so that the TryListBuilder can build a unique hash to avoid duplicate EncodedCatchHandler entries
git-svn-id: https://smali.googlecode.com/svn/trunk@424 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-28 03:58:42 +00:00
JesusFreke@JesusFreke.com
0da75f71eb Initialize the offset of ClassDefItems to -1 before placing them
git-svn-id: https://smali.googlecode.com/svn/trunk@423 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-26 04:42:18 +00:00
JesusFreke@JesusFreke.com
e88cdf2010 If the ArrayData pseudo instruction has an odd size, write out a final padding byte
git-svn-id: https://smali.googlecode.com/svn/trunk@422 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-26 03:08:55 +00:00
JesusFreke@JesusFreke.com
59cc9d09b7 Sort the ClassDefItems by offset after placing them
git-svn-id: https://smali.googlecode.com/svn/trunk@421 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-26 03:07:57 +00:00
JesusFreke@JesusFreke.com
af88d65aac Compare values using compareTo, not compareValue
git-svn-id: https://smali.googlecode.com/svn/trunk@420 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-26 02:38:23 +00:00
JesusFreke@JesusFreke.com
97da4a7699 Check for nulls
git-svn-id: https://smali.googlecode.com/svn/trunk@419 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-25 02:33:40 +00:00
JesusFreke@JesusFreke.com
3c48a886bd Add padding if needed
git-svn-id: https://smali.googlecode.com/svn/trunk@418 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-25 02:33:18 +00:00
JesusFreke@JesusFreke.com
4da483a55b use assert. duh
git-svn-id: https://smali.googlecode.com/svn/trunk@417 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-25 02:14:35 +00:00
JesusFreke@JesusFreke.com
e9c67dbb9c use unsigned shift while writing an unsigned leb128
git-svn-id: https://smali.googlecode.com/svn/trunk@416 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-25 01:16:26 +00:00
JesusFreke@JesusFreke.com
2773319471 Fixes for a few instruction formats that have a blank byte after the opcode
git-svn-id: https://smali.googlecode.com/svn/trunk@415 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-25 00:58:14 +00:00
JesusFreke@JesusFreke.com
c74042b943 Add a convenience method that accepts a string instead of a StringIdItem
git-svn-id: https://smali.googlecode.com/svn/trunk@414 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-24 05:48:14 +00:00
JesusFreke@JesusFreke.com
3687f27ddd When interning an item, don't forget to add the item to the items list
git-svn-id: https://smali.googlecode.com/svn/trunk@413 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-24 05:47:29 +00:00
JesusFreke@JesusFreke.com
7eca83ddb6 Various changes mostly relating to changing the getInterned* item methods to accept lists instead of arrays
git-svn-id: https://smali.googlecode.com/svn/trunk@412 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-24 05:46:45 +00:00
JesusFreke@JesusFreke.com
eb21bb1783 use java's assert
git-svn-id: https://smali.googlecode.com/svn/trunk@411 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-24 05:45:10 +00:00
JesusFreke@JesusFreke.com
83e6f4bb60 Changed the "from-scratch" constructor in the format classes to a static emit method
git-svn-id: https://smali.googlecode.com/svn/trunk@410 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-24 05:42:49 +00:00
JesusFreke@JesusFreke.com
f75a5c351c Change getInternedAnnotationDirectoryItem to accept lists of composite item+annotation objects instead of separate arrays of everything
git-svn-id: https://smali.googlecode.com/svn/trunk@409 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 20:08:52 +00:00
JesusFreke@JesusFreke.com
ea64b6e653 Change TypeListItem constructor to take an array rather than a list, to be consistent with other classes
git-svn-id: https://smali.googlecode.com/svn/trunk@408 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 07:11:42 +00:00
JesusFreke@JesusFreke.com
11503ec26e Merged in DebugInfoBuilder.java from the prior dexlib, and fixed it up to work with the new dexlib
git-svn-id: https://smali.googlecode.com/svn/trunk@407 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 06:28:54 +00:00
JesusFreke@JesusFreke.com
3080fb1bfc Merged in TryListBuilder.java from the prior dexlib, and fixed it up to work with the new dexlib
git-svn-id: https://smali.googlecode.com/svn/trunk@406 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 05:05:04 +00:00
JesusFreke@JesusFreke.com
1877b664de When making a ClassDataItem from scratch, sort the fields and methods
git-svn-id: https://smali.googlecode.com/svn/trunk@405 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 03:43:19 +00:00
JesusFreke@JesusFreke.com
b90597bd9b When making a ClassDefItem from scratch, sort the static field initializers appropriately
git-svn-id: https://smali.googlecode.com/svn/trunk@404 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-23 03:41:27 +00:00
JesusFreke@JesusFreke.com
f49271eb8f Include the size of the map header during placement
git-svn-id: https://smali.googlecode.com/svn/trunk@403 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-22 22:00:50 +00:00
JesusFreke@JesusFreke.com
66146deb47 Write out the map header
git-svn-id: https://smali.googlecode.com/svn/trunk@402 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-22 21:52:34 +00:00
JesusFreke@JesusFreke.com
6389c5bc6b Fix an issue with how encoded booleans are written
git-svn-id: https://smali.googlecode.com/svn/trunk@401 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-08-21 07:02:15 +00:00