This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
What is deodexation? | |
As everyone knows, the executable code in apk files is located in the classes.dex file. This file can be parsed, edited and reassembled. However, in many firmwares the code is moved from the apk file to the * .odex file, the so-called "optimized" dex. But the * .odex file cannot be parsed directly - before that it must be deodexed, that is, brought to the form classes.dex and returned to the apk file. This process is called deodexation. | |
2. Why deodex the firmware? | |
It makes sense to deodex the firmware only in one case - if you need to modify the smali code of applications. Deodexed firmware has no other advantages. | |
3. What tools are used to deodex * .odex files? | |
There is only one tool for deodexing android 4.x and below: baksmali. Deodexing android 4.x and below is quite reliable, and if there were no errors during deodexing, then with a 99% probability the applications will also work without errors. | |
For android 5.x another tool is used: oat2dex. Moreover, the reliability of android 5. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A little help in Smali | |
(To be supplemented) | |
# | |
general information | |
# | |
Smali | |
Types | |
Dalvik bytecode has two main type classes, primitive types and reference types. Reference types are objects and arrays, everything else is primitive. |