551 Commits

Author SHA1 Message Date
JesusFreke@JesusFreke.com
3d632a6234 Fixed the template for commented out labels
git-svn-id: https://smali.googlecode.com/svn/trunk@471 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-13 22:06:09 +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
4a0d9d3fa1 Change the sytax for labels from label: to :label
git-svn-id: https://smali.googlecode.com/svn/trunk@467 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-13 02:50:42 +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
a37715b6ec remove debugging printf
git-svn-id: https://smali.googlecode.com/svn/trunk@461 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-11 01:58:34 +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
cc4bbc46ea Fixed a crash when trying to look up the superclass for Object
git-svn-id: https://smali.googlecode.com/svn/trunk@459 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-11 01:44:57 +00:00
JesusFreke@JesusFreke.com
04473936a1 remove test println
git-svn-id: https://smali.googlecode.com/svn/trunk@458 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-10 06:45:15 +00:00
JesusFreke@JesusFreke.com
8e9ceda4f9 expand the test case to test out more stuff
git-svn-id: https://smali.googlecode.com/svn/trunk@457 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-10 06:43:44 +00:00
JesusFreke@JesusFreke.com
a171922cbd add TODO
git-svn-id: https://smali.googlecode.com/svn/trunk@456 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-10 06:43:15 +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
JesusFreke@JesusFreke.com
ddc8655d10 Fix some null checking logic
git-svn-id: https://smali.googlecode.com/svn/trunk@454 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-10 02:01:38 +00:00
JesusFreke@JesusFreke.com
cf4e7ce360 added another deodex test case
git-svn-id: https://smali.googlecode.com/svn/trunk@453 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
2009-09-10 01:22:25 +00:00
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