Use AID_SYSTEM as uid when creating oat dir
Previously AID_INSTALL was used, which was causing permission denied errors when PackageManager was trying to recursively rename staging directory Bug: 19550105 Bug: 20087446 Change-Id: I3a9e3056c1fbc1ce0077a3ce52cf77ea6b5085ee
This commit is contained in:
parent
a60ff367a4
commit
8eed7e6a9b
@ -1711,12 +1711,7 @@ int create_oat_dir(const char* oat_dir, const char* instruction_set)
|
|||||||
ALOGE("invalid apk path '%s' (bad prefix)\n", oat_dir);
|
ALOGE("invalid apk path '%s' (bad prefix)\n", oat_dir);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if ((mkdir(oat_dir, S_IRWXU|S_IRWXG|S_IXOTH) < 0) && (errno != EEXIST)) {
|
if (fs_prepare_dir(oat_dir, S_IRWXU | S_IRWXG | S_IXOTH, AID_SYSTEM, AID_INSTALL)) {
|
||||||
ALOGE("cannot create dir '%s': %s\n", oat_dir, strerror(errno));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (chmod(oat_dir, S_IRWXU|S_IRWXG|S_IXOTH) < 0) {
|
|
||||||
ALOGE("cannot chmod dir '%s': %s\n", oat_dir, strerror(errno));
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (selinux_android_restorecon(oat_dir, 0)) {
|
if (selinux_android_restorecon(oat_dir, 0)) {
|
||||||
@ -1724,12 +1719,7 @@ int create_oat_dir(const char* oat_dir, const char* instruction_set)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
snprintf(oat_instr_dir, PKG_PATH_MAX, "%s/%s", oat_dir, instruction_set);
|
snprintf(oat_instr_dir, PKG_PATH_MAX, "%s/%s", oat_dir, instruction_set);
|
||||||
if ((mkdir(oat_instr_dir, S_IRWXU|S_IRWXG|S_IXOTH) < 0) && (errno != EEXIST)) {
|
if (fs_prepare_dir(oat_instr_dir, S_IRWXU | S_IRWXG | S_IXOTH, AID_SYSTEM, AID_INSTALL)) {
|
||||||
ALOGE("cannot create dir '%s': %s\n", oat_instr_dir, strerror(errno));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (chmod(oat_instr_dir, S_IRWXU|S_IRWXG|S_IXOTH) < 0) {
|
|
||||||
ALOGE("cannot chmod dir '%s': %s\n", oat_dir, strerror(errno));
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user