Detect UID from data directories

This commit is contained in:
topjohnwu
2019-06-03 23:32:49 -07:00
parent 80d834fb55
commit 4fcdcd9a8a
3 changed files with 15 additions and 44 deletions

View File

@@ -254,12 +254,11 @@ int validate_manager(string &alt_pkg, int userid, struct stat *st) {
st = &tmp_st;
// Prefer DE storage
const char *base = access("/data/user_de", F_OK) == 0 ? "/data/user_de" : "/data/user";
char app_path[128];
sprintf(app_path, "%s/%d/%s", base, userid, alt_pkg.empty() ? "xxx" : alt_pkg.data());
sprintf(app_path, "%s/%d/%s", APP_DATA_DIR, userid, alt_pkg.empty() ? "xxx" : alt_pkg.data());
if (stat(app_path, st)) {
// Check the official package name
sprintf(app_path, "%s/%d/" JAVA_PACKAGE_NAME, base, userid);
sprintf(app_path, "%s/%d/" JAVA_PACKAGE_NAME, APP_DATA_DIR, userid);
if (stat(app_path, st)) {
LOGE("su: cannot find manager");
memset(st, 0, sizeof(*st));