Comments (8)
Comment #1 originally posted by JesusFreke on 2010-06-10T14:36:06.000Z:
Some additional discussion of this is in the comments on issue 29: http://code.google.com/p/smali/issues/detail?id=29
from smali.
Comment #2 originally posted by JesusFreke on 2010-06-10T14:38:03.000Z:
Keep up the great work JF! :-)
P
from smali.
Comment #3 originally posted by JesusFreke on 2010-06-11T05:38:58.000Z:
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
from smali.
Comment #4 originally posted by JesusFreke on 2010-06-11T12:54:37.000Z:
So far so good... :-)
from smali.
Comment #5 originally posted by JesusFreke on 2010-06-11T13:20:25.000Z:
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.
from smali.
Comment #6 originally posted by JesusFreke on 2010-06-12T02:31:39.000Z:
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!
from smali.
Comment #7 originally posted by JesusFreke on 2010-06-12T15:53:03.000Z:
Great! Thanks for trying it out and letting me know Paul and jrEE2kX :)
from smali.
Comment #8 originally posted by JesusFreke on 2010-06-13T21:03:40.000Z:
The changes have been merged to trunk, and are included in 1.2.3.
from smali.
Related Issues (20)
- Ive been Hacked please help me HOT 6
- Parsing smali methode HOT 1
- The Fields do not keep their initial values if they're default value
- odex error
- Error while writing instruction at code offset 0x8
- How to calculate the contribution of each class to the dex HOT 2
- Dex file size increases by ~50% without making changes (DexFileFactory.loadDexFile then DexFileFactory.writeDexFile) HOT 7
- missing EOF at '.class'
- any method to replace one String with modifiedString in StringIds section of dex file using dexlib2? HOT 3
- How to create a new method using dexlib2 HOT 2
- Try to run examples/BracketedMemberNames HOT 1
- how to copy class to new dex using dexlib2 HOT 4
- Smali patcher does not support Dex version 039 HOT 1
- java.lang.NoSuchMethodError when calling DexPool.internClass
- smali report error
- how to move the useless classes to a new dex using dexlib2? HOT 1
- [Feature Request] Could we support dex v41? HOT 3
- Won't build under Debian WSL
- Regenerate correct boot.oat/.art/.vdex files after a recompile
- dexlib2 cannot open dex file extracted from framework.jar (/system/framework/framework.jar)
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.