Fix incorrect odex path handling
It's wrong to just concatenate the apk_path and .odex. The bug prevents the prebuilt odex being used since Kitkat. The patch is copied from the code of JellyBean. Change-Id: I0ce8a877e3df8ae1ab9a0e3aeeef2d5253efc223
This commit is contained in:
parent
3f0d5669eb
commit
0e8ae16f08
@ -685,9 +685,13 @@ int dexopt(const char *apk_path, uid_t uid, int is_public,
|
|||||||
/* Before anything else: is there a .odex file? If so, we have
|
/* Before anything else: is there a .odex file? If so, we have
|
||||||
* precompiled the apk and there is nothing to do here.
|
* precompiled the apk and there is nothing to do here.
|
||||||
*/
|
*/
|
||||||
sprintf(out_path, "%s%s", apk_path, ".odex");
|
strcpy(out_path, apk_path);
|
||||||
if (stat(out_path, &dex_stat) == 0) {
|
end = strrchr(out_path, '.');
|
||||||
return 0;
|
if (end != NULL) {
|
||||||
|
strcpy(end, ".odex");
|
||||||
|
if (stat(out_path, &dex_stat) == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (create_cache_path(out_path, apk_path)) {
|
if (create_cache_path(out_path, apk_path)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user