Merge "Disallow external storage access without restricting other api calls" into tm-dev

This commit is contained in:
Samiul Islam
2022-05-05 13:39:34 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 13 deletions

View File

@@ -1361,6 +1361,18 @@ public class Environment {
return false;
}
// Apps with PROPERTY_NO_APP_DATA_STORAGE should not be allowed in scoped storage
final String packageName = AppGlobals.getInitialPackage();
try {
final PackageManager.Property noAppStorageProp = packageManager.getProperty(
PackageManager.PROPERTY_NO_APP_DATA_STORAGE, packageName);
if (noAppStorageProp != null && noAppStorageProp.getBoolean()) {
return false;
}
} catch (PackageManager.NameNotFoundException ignore) {
// Property not defined for the package
}
boolean defaultScopedStorage = Compatibility.isChangeEnabled(DEFAULT_SCOPED_STORAGE);
boolean forceEnableScopedStorage = Compatibility.isChangeEnabled(
FORCE_ENABLE_SCOPED_STORAGE);

View File

@@ -3055,19 +3055,7 @@ class StorageManagerService extends IStorageManager.Stub
return true;
}
if (packageName == null) {
return false;
}
final int packageUid = mPmInternal.getPackageUid(packageName,
PackageManager.MATCH_DEBUG_TRIAGED_MISSING, UserHandle.getUserId(callerUid));
if (DEBUG_OBB) {
Slog.d(TAG, "packageName = " + packageName + ", packageUid = " +
packageUid + ", callerUid = " + callerUid);
}
return callerUid == packageUid;
return mPmInternal.isSameApp(packageName, callerUid, UserHandle.getUserId(callerUid));
}
@Override