Merge "More robust restorecon and additional debug info." into tm-dev

This commit is contained in:
Alex Buynytskyy
2022-05-04 00:38:03 +00:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 3 deletions

View File

@@ -239,8 +239,12 @@ static jboolean setFileCon(JNIEnv *env, jobject, jstring pathStr, jstring contex
char *tmp = const_cast<char *>(context.c_str());
int ret = setfilecon(path.c_str(), tmp);
ALOGV("setFileCon(%s, %s) => %d", path.c_str(), context.c_str(), ret);
return (ret == 0) ? true : false;
if (ret == 0) {
ALOGV("setFileCon(%s, %s) => %d", path.c_str(), context.c_str(), ret);
return true;
}
ALOGE("setFileCon(%s, %s) => %d, err: %s", path.c_str(), context.c_str(), ret, strerror(errno));
return false;
}
/*

View File

@@ -1034,7 +1034,16 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
}
if (!SELinux.restorecon(stageDir)) {
throw new IOException("Failed to restorecon session dir: " + stageDir);
String path = stageDir.getCanonicalPath();
String ctx = SELinux.fileSelabelLookup(path);
boolean success = SELinux.setFileContext(path, ctx);
Slog.e(TAG,
"Failed to SELinux.restorecon session dir, path: [" + path + "], ctx: [" + ctx
+ "]. Retrying via SELinux.fileSelabelLookup/SELinux.setFileContext: "
+ (success ? "SUCCESS" : "FAILURE"));
if (!success) {
throw new IOException("Failed to restorecon session dir: " + stageDir);
}
}
}