For instance, we have
/system/app. According to some unofficial documentation,
phone.odex is used to expedite the process of loading an app. However, why do we not just put
What's more weird is: There exists a file named
[email protected]@[email protected] under
/data/dalvik, when the app is loading, which one takes priority to load,
/data/dalvik/[email protected]@[email protected]?
Is it totally redundant to put
Best How To :
/system/app directory is read-only on normal (non-developer) devices, and only updated when the system receives an update. The point of
/system/app/*.odex is that the .odex file can be delivered as part of a system update, so it doesn't have to be generated on the first post-update boot, and doesn't eat up space on the /data partition.
If the .apk and .odex files are out of sync, the system is not able to overwrite the .odex in
/system/app, and will try to generate a correct version in
/data/dalvik-cache. Normally this will fail, because when .apk and .odex are delivered in pairs, the .apk does not contain a .dex file (it would be redundant to do so).
The .odex in
/system/app is scanned first, so it essentially takes priority.
Finding a redundant .odex is not expected, and suggests that at some point the device had a
phone.apk that included a .dex and that did not match the .odex.