Loading services/java/com/android/server/PackageManagerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -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 Loading tests/AndroidTests/src/com/android/unit_tests/PackageManagerTests.java +27 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading
services/java/com/android/server/PackageManagerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
tests/AndroidTests/src/com/android/unit_tests/PackageManagerTests.java +27 −0 Original line number Diff line number Diff line Loading @@ -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 Loading