Comments (8)
Some additional discussion of this is in the comments on issue 29:
http://code.google.com/p/smali/issues/detail?id=29
Original comment by [email protected]
on 10 Jun 2010 at 2:36
- Added labels: ****
- Removed labels: ****
from smali.
Keep up the great work JF! :-)
P
Original comment by [email protected]
on 10 Jun 2010 at 2:38
- Added labels: ****
- Removed labels: ****
from smali.
I've committed some experimental changes which should better handle cases like
these. Please grab a copy of the ExperimentalDeodexChange branch and try it
out, and let me know how it works for you :)
svn checkout http://smali.googlecode.com/svn/branches/ExperimentalDeodexChange
smali
Original comment by [email protected]
on 11 Jun 2010 at 5:38
- Added labels: ****
- Removed labels: ****
from smali.
So far so good... :-)
Original comment by [email protected]
on 11 Jun 2010 at 12:54
- Added labels: ****
- Removed labels: ****
from smali.
Great! :)
I had an epiphany last night, which led to this implementation. Before, I was
commenting out the dead code after a deodexeable instruction, because there
were some cases where that following code wouldn't pass dalvik's validation,
due to the missing register information from the replaced instruction.
But then I realized - dalvik doesn't validate dead code :). By always replacing
the deodexable instructions with a throw, it renders the following code really
dead. Before, in the cases where I was replacing them with a different invoke
instruction, dalvik still thought that execution could continue on past the
invoke, and so it would procede to validate the following code. Since execution
can never procede past a throw, dalvik's verifier never reaches the following
dead code, and I don't have to worry about making it verification safe - I can
just leave it as-is instead of commenting it out. I just have to replace any
other dead odex instructions in the following code with a throw as well.
Original comment by [email protected]
on 11 Jun 2010 at 1:20
- Added labels: ****
- Removed labels: ****
from smali.
Just wanted to let you know that everything is well for me after your latest
update. Deodexed Froyo is on my n1 with no issues atm. Keep up the good work JF!
Original comment by [email protected]
on 12 Jun 2010 at 2:31
- Added labels: ****
- Removed labels: ****
from smali.
Great! Thanks for trying it out and letting me know Paul and jrEE2kX :)
Original comment by [email protected]
on 12 Jun 2010 at 3:53
- Added labels: ****
- Removed labels: ****
from smali.
The changes have been merged to trunk, and are included in 1.2.3.
Original comment by [email protected]
on 13 Jun 2010 at 9:03
- Changed state: Fixed
- Added labels: ****
- Removed labels: ****
from smali.
Related Issues (20)
- baksmali on ICS not working HOT 2
- Issues with Google Guice with baksmali/smali v2.0.3 HOT 24
- ArrayIndexOutOfBoundsException - Dexlib2 - Iterating Instructions HOT 2
- Error occurred while disassembling class Landroid.support Invalid method index: 35 HOT 21
- Smali doesn't support odex instruction throw-verification-error HOT 1
- Unsigned short value out of range HOT 3
- Deodexing android L preview framework files issue HOT 19
- deodexerant BUG HOT 3
- please disable /4, /16, /jumbo in output HOT 1
- Cannot Deodex GT 5312 system app HOT 1
- How to write arabic strings in Smali code ? const-string ? HOT 3
- Enhancement: getTypeCount in DexBackedDexFile HOT 1
- problem with recompiling edited systemui HOT 3
- Can't build on Windows using JDK 1.6/1.7/1.8 HOT 2
- Exception in thread "main" org.jf.util.ExceptionWithContext: Calculator.odex is not an apk, dex file or odex file. HOT 4
- baksmali doesn't work on Windows 8.1 HOT 5
- smali cannot reassemble baksmali... HOT 5
- Out-of-order encoded_annotation name_idx HOT 2
- Enhancement: Common base interfaces in org.jf.dexlib2.iface HOT 3
- Failed to load dvmGetInlineOpsTable HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from smali.