Grant permissions to apps on sd when enabling/disabling packages.
Change-Id: I0f011bd4a3348ccd46fd7ae9765edf8933b94142
This commit is contained in:
@@ -9552,6 +9552,8 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
// Scan the package
|
||||
if (scanPackageLI(pkg, parseFlags, SCAN_MONITOR) != null) {
|
||||
synchronized (mPackages) {
|
||||
updatePermissionsLP(pkg.packageName, pkg,
|
||||
pkg.permissions.size() > 0, false);
|
||||
retCode = PackageManager.INSTALL_SUCCEEDED;
|
||||
pkgList.add(pkg.packageName);
|
||||
// Post process args
|
||||
|
||||
@@ -2156,6 +2156,33 @@ public class PackageManagerTests extends AndroidTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Ensure that permissions are properly declared.
|
||||
*/
|
||||
public void testInstallOnSdPermissionsUnmount() {
|
||||
InstallParams ip = null;
|
||||
boolean origMediaState = getMediaState();
|
||||
try {
|
||||
// **: Upon installing a package, are its declared permissions published?
|
||||
int iFlags = PackageManager.INSTALL_INTERNAL;
|
||||
int iApk = R.raw.install_decl_perm;
|
||||
ip = installFromRawResource("install.apk", iApk,
|
||||
iFlags, false,
|
||||
false, -1, PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY);
|
||||
assertInstall(ip.pkg, iFlags, ip.pkg.installLocation);
|
||||
assertPermissions(BASE_PERMISSIONS_DEFINED);
|
||||
// Unmount media here
|
||||
assertTrue(unmountMedia());
|
||||
// Mount media again
|
||||
mountMedia();
|
||||
//Check permissions now
|
||||
assertPermissions(BASE_PERMISSIONS_DEFINED);
|
||||
} finally {
|
||||
if (ip != null) {
|
||||
cleanUpInstall(ip);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*---------- Recommended install location tests ----*/
|
||||
/*
|
||||
* TODO's
|
||||
|
||||
Reference in New Issue
Block a user