Loading core/tests/coretests/apks/install_complete_package_info/Android.mk +4 −2 Original line number Diff line number Diff line Loading @@ -5,7 +5,9 @@ LOCAL_MODULE_TAGS := tests LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := FrameworkCoreTests_install_complete_package_info LOCAL_PACKAGE_NAME := install_complete_package_info #LOCAL_MANIFEST_FILE := api_test/AndroidManifest.xml include $(BUILD_PACKAGE) include $(FrameworkCoreTests_BUILD_PACKAGE) #include $(BUILD_PACKAGE) core/tests/coretests/src/android/content/pm/PackageManagerTests.java +110 −91 Original line number Diff line number Diff line Loading @@ -73,7 +73,6 @@ import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @Suppress // Failing. public class PackageManagerTests extends AndroidTestCase { private static final boolean localLOGV = true; Loading Loading @@ -434,14 +433,6 @@ public class PackageManagerTests extends AndroidTestCase { SECURE_CONTAINERS_PREFIX, publicSrcPath); assertStartsWith("The native library path should point to the ASEC", SECURE_CONTAINERS_PREFIX, info.nativeLibraryDir); try { String compatLib = new File(info.dataDir + "/lib").getCanonicalPath(); assertEquals("The compatibility lib directory should be a symbolic link to " + info.nativeLibraryDir, info.nativeLibraryDir, compatLib); } catch (IOException e) { fail("compat check: Can't read " + info.dataDir + "/lib"); } } else { assertFalse( (info.privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0); Loading Loading @@ -1014,7 +1005,8 @@ public class PackageManagerTests extends AndroidTestCase { private static void assertUninstalled(ApplicationInfo info) throws Exception { File nativeLibraryFile = new File(info.nativeLibraryDir); assertFalse("Native library directory should be erased", nativeLibraryFile.exists()); assertFalse("Native library directory " + info.nativeLibraryDir + " should be erased", nativeLibraryFile.exists()); } public void deleteFromRawResource(int iFlags, int dFlags) throws Exception { Loading Loading @@ -1650,15 +1642,10 @@ public class PackageManagerTests extends AndroidTestCase { (info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0); assertStartsWith("Native library dir should point to ASEC", SECURE_CONTAINERS_PREFIX, info.nativeLibraryDir); final File nativeLibSymLink = new File(info.dataDir, "lib"); assertStartsWith("The data directory should have a 'lib' symlink that points to the ASEC container", SECURE_CONTAINERS_PREFIX, nativeLibSymLink.getCanonicalPath()); } } } catch (NameNotFoundException e) { failStr("Pkg hasnt been installed correctly"); } catch (Exception e) { failStr("Failed with exception : " + e); } finally { if (ip != null) { cleanUpInstall(ip); Loading Loading @@ -1689,6 +1676,7 @@ public class PackageManagerTests extends AndroidTestCase { sampleMoveFromRawResource(installFlags, moveFlags, fail, result); } @Suppress @LargeTest public void testMoveAppInternalToInternal() throws Exception { int installFlags = PackageManager.INSTALL_INTERNAL; Loading Loading @@ -2157,6 +2145,7 @@ public class PackageManagerTests extends AndroidTestCase { -1); } @Suppress @LargeTest public void testFlagFExistingI() throws Exception { int iFlags = PackageManager.INSTALL_INTERNAL; Loading Loading @@ -3272,14 +3261,15 @@ public class PackageManagerTests extends AndroidTestCase { assertTrue(false); // should have thrown } catch (IllegalArgumentException e) { } installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, final InstallParams ip = installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { ks = pm.getSigningKeySet(otherPkgName); assertTrue(false); // should have thrown } catch (SecurityException e) { } finally { cleanUpInstall(ip); } cleanUpInstall(otherPkgName); ks = pm.getSigningKeySet(mContext.getPackageName()); assertNotNull(ks); } Loading @@ -3288,6 +3278,7 @@ public class PackageManagerTests extends AndroidTestCase { * testGetKeySetByAlias - same as getSigningKeySet, but for keysets defined * by this package. */ @Suppress public void testGetKeySetByAlias() throws Exception { PackageManager pm = getPm(); String mPkgName = mContext.getPackageName(); Loading Loading @@ -3318,14 +3309,15 @@ public class PackageManagerTests extends AndroidTestCase { assertTrue(false); // should have thrown } catch(IllegalArgumentException e) { } installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, final InstallParams ip = installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { ks = pm.getKeySetByAlias(otherPkgName, "A"); assertTrue(false); // should have thrown } catch (SecurityException e) { } finally { cleanUpInstall(ip); } cleanUpInstall(otherPkgName); ks = pm.getKeySetByAlias(mPkgName, "A"); assertNotNull(ks); } Loading Loading @@ -3360,17 +3352,23 @@ public class PackageManagerTests extends AndroidTestCase { assertFalse(pm.isSignedBy(mPkgName, new KeySet(new Binder()))); assertTrue(pm.isSignedBy(mPkgName, mSigningKS)); installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, final InstallParams ip1 = installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { assertFalse(pm.isSignedBy(otherPkgName, mDefinedKS)); assertTrue(pm.isSignedBy(otherPkgName, mSigningKS)); cleanUpInstall(otherPkgName); } finally { cleanUpInstall(ip1); } installFromRawResource("keysetApi.apk", R.raw.keyset_splata_api, final InstallParams ip2 = installFromRawResource("keysetApi.apk", R.raw.keyset_splata_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { assertTrue(pm.isSignedBy(otherPkgName, mDefinedKS)); assertTrue(pm.isSignedBy(otherPkgName, mSigningKS)); cleanUpInstall(otherPkgName); } finally { cleanUpInstall(ip2); } } public void testIsSignedByExactly() throws Exception { Loading Loading @@ -3402,17 +3400,23 @@ public class PackageManagerTests extends AndroidTestCase { assertFalse(pm.isSignedByExactly(mPkgName, new KeySet(new Binder()))); assertTrue(pm.isSignedByExactly(mPkgName, mSigningKS)); installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, final InstallParams ip1 = installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { assertFalse(pm.isSignedByExactly(otherPkgName, mDefinedKS)); assertTrue(pm.isSignedByExactly(otherPkgName, mSigningKS)); cleanUpInstall(otherPkgName); } finally { cleanUpInstall(ip1); } installFromRawResource("keysetApi.apk", R.raw.keyset_splata_api, final InstallParams ip2 = installFromRawResource("keysetApi.apk", R.raw.keyset_splata_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { assertFalse(pm.isSignedByExactly(otherPkgName, mDefinedKS)); assertFalse(pm.isSignedByExactly(otherPkgName, mSigningKS)); cleanUpInstall(otherPkgName); } finally { cleanUpInstall(ip2); } } Loading Loading @@ -3465,11 +3469,10 @@ public class PackageManagerTests extends AndroidTestCase { int apk2 = APP2_CERT1_CERT2; String apk1Name = "install1.apk"; String apk2Name = "install2.apk"; InstallParams ip1 = null; try { ip1 = installFromRawResource(apk1Name, apk1, 0, false, final InstallParams ip = installFromRawResource(apk1Name, apk1, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { PackageManager pm = mContext.getPackageManager(); // Delete app2 File filesDir = mContext.getFilesDir(); Loading @@ -3480,12 +3483,10 @@ public class PackageManagerTests extends AndroidTestCase { getPm().deletePackage(pkg.packageName, null, PackageManager.DELETE_ALL_USERS); // Check signatures now int match = mContext.getPackageManager().checkSignatures( ip1.pkg.packageName, pkg.packageName); ip.pkg.packageName, pkg.packageName); assertEquals(PackageManager.SIGNATURE_UNKNOWN_PACKAGE, match); } finally { if (ip1 != null) { cleanUpInstall(ip1); } cleanUpInstall(ip); } } Loading @@ -3493,14 +3494,10 @@ public class PackageManagerTests extends AndroidTestCase { public void testInstallNoCertificates() throws Exception { int apk1 = APP1_UNSIGNED; String apk1Name = "install1.apk"; InstallParams ip1 = null; try { installFromRawResource(apk1Name, apk1, 0, false, true, PackageManager.INSTALL_PARSE_FAILED_NO_CERTIFICATES, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); } finally { } } /* Loading Loading @@ -3766,13 +3763,18 @@ public class PackageManagerTests extends AndroidTestCase { * Test that getInstalledPackages returns all the data specified in flags. */ public void testGetInstalledPackagesAll() throws Exception { int flags = PackageManager.GET_ACTIVITIES | PackageManager.GET_GIDS final int flags = PackageManager.GET_ACTIVITIES | PackageManager.GET_GIDS | PackageManager.GET_CONFIGURATIONS | PackageManager.GET_INSTRUMENTATION | PackageManager.GET_PERMISSIONS | PackageManager.GET_PROVIDERS | PackageManager.GET_RECEIVERS | PackageManager.GET_SERVICES | PackageManager.GET_SIGNATURES | PackageManager.GET_UNINSTALLED_PACKAGES; List<PackageInfo> packages = getPm().getInstalledPackages(flags); final InstallParams ip = installFromRawResource("install.apk", R.raw.install_complete_package_info, 0 /*flags*/, false /*cleanUp*/, false /*fail*/, -1 /*result*/, PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY); try { final List<PackageInfo> packages = getPm().getInstalledPackages(flags); assertNotNull("installed packages cannot be null", packages); assertTrue("installed packages cannot be empty", packages.size() > 0); Loading @@ -3795,6 +3797,9 @@ public class PackageManagerTests extends AndroidTestCase { assertNotNull("receivers should not be null", packageInfo.receivers); assertNotNull("services should not be null", packageInfo.services); assertNotNull("signatures should not be null", packageInfo.signatures); } finally { cleanUpInstall(ip); } } /** Loading @@ -3802,14 +3807,24 @@ public class PackageManagerTests extends AndroidTestCase { * flags when the GET_UNINSTALLED_PACKAGES flag is set. */ public void testGetUnInstalledPackagesAll() throws Exception { int flags = PackageManager.GET_UNINSTALLED_PACKAGES final int flags = PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_ACTIVITIES | PackageManager.GET_GIDS | PackageManager.GET_CONFIGURATIONS | PackageManager.GET_INSTRUMENTATION | PackageManager.GET_PERMISSIONS | PackageManager.GET_PROVIDERS | PackageManager.GET_RECEIVERS | PackageManager.GET_SERVICES | PackageManager.GET_SIGNATURES | PackageManager.GET_UNINSTALLED_PACKAGES; List<PackageInfo> packages = getPm().getInstalledPackages(flags); // first, install the package final InstallParams ip = installFromRawResource("install.apk", R.raw.install_complete_package_info, 0 /*flags*/, false /*cleanUp*/, false /*fail*/, -1 /*result*/, PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY); try { // then, remove it, keeping it's data around final GenericReceiver receiver = new DeleteReceiver(ip.pkg.packageName); invokeDeletePackage(ip.pkg.packageName, PackageManager.DELETE_KEEP_DATA, receiver); final List<PackageInfo> packages = getPm().getInstalledPackages(flags); assertNotNull("installed packages cannot be null", packages); assertTrue("installed packages cannot be empty", packages.size() > 0); Loading @@ -3832,8 +3847,12 @@ public class PackageManagerTests extends AndroidTestCase { assertNotNull("receivers should not be null", packageInfo.receivers); assertNotNull("services should not be null", packageInfo.services); assertNotNull("signatures should not be null", packageInfo.signatures); } finally { cleanUpInstall(ip); } } @Suppress public void testInstall_BadDex_CleanUp() throws Exception { int retCode = PackageManager.INSTALL_FAILED_DEXOPT; installFromRawResource("install.apk", R.raw.install_bad_dex, 0, true, true, retCode, Loading Loading
core/tests/coretests/apks/install_complete_package_info/Android.mk +4 −2 Original line number Diff line number Diff line Loading @@ -5,7 +5,9 @@ LOCAL_MODULE_TAGS := tests LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := FrameworkCoreTests_install_complete_package_info LOCAL_PACKAGE_NAME := install_complete_package_info #LOCAL_MANIFEST_FILE := api_test/AndroidManifest.xml include $(BUILD_PACKAGE) include $(FrameworkCoreTests_BUILD_PACKAGE) #include $(BUILD_PACKAGE)
core/tests/coretests/src/android/content/pm/PackageManagerTests.java +110 −91 Original line number Diff line number Diff line Loading @@ -73,7 +73,6 @@ import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @Suppress // Failing. public class PackageManagerTests extends AndroidTestCase { private static final boolean localLOGV = true; Loading Loading @@ -434,14 +433,6 @@ public class PackageManagerTests extends AndroidTestCase { SECURE_CONTAINERS_PREFIX, publicSrcPath); assertStartsWith("The native library path should point to the ASEC", SECURE_CONTAINERS_PREFIX, info.nativeLibraryDir); try { String compatLib = new File(info.dataDir + "/lib").getCanonicalPath(); assertEquals("The compatibility lib directory should be a symbolic link to " + info.nativeLibraryDir, info.nativeLibraryDir, compatLib); } catch (IOException e) { fail("compat check: Can't read " + info.dataDir + "/lib"); } } else { assertFalse( (info.privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0); Loading Loading @@ -1014,7 +1005,8 @@ public class PackageManagerTests extends AndroidTestCase { private static void assertUninstalled(ApplicationInfo info) throws Exception { File nativeLibraryFile = new File(info.nativeLibraryDir); assertFalse("Native library directory should be erased", nativeLibraryFile.exists()); assertFalse("Native library directory " + info.nativeLibraryDir + " should be erased", nativeLibraryFile.exists()); } public void deleteFromRawResource(int iFlags, int dFlags) throws Exception { Loading Loading @@ -1650,15 +1642,10 @@ public class PackageManagerTests extends AndroidTestCase { (info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0); assertStartsWith("Native library dir should point to ASEC", SECURE_CONTAINERS_PREFIX, info.nativeLibraryDir); final File nativeLibSymLink = new File(info.dataDir, "lib"); assertStartsWith("The data directory should have a 'lib' symlink that points to the ASEC container", SECURE_CONTAINERS_PREFIX, nativeLibSymLink.getCanonicalPath()); } } } catch (NameNotFoundException e) { failStr("Pkg hasnt been installed correctly"); } catch (Exception e) { failStr("Failed with exception : " + e); } finally { if (ip != null) { cleanUpInstall(ip); Loading Loading @@ -1689,6 +1676,7 @@ public class PackageManagerTests extends AndroidTestCase { sampleMoveFromRawResource(installFlags, moveFlags, fail, result); } @Suppress @LargeTest public void testMoveAppInternalToInternal() throws Exception { int installFlags = PackageManager.INSTALL_INTERNAL; Loading Loading @@ -2157,6 +2145,7 @@ public class PackageManagerTests extends AndroidTestCase { -1); } @Suppress @LargeTest public void testFlagFExistingI() throws Exception { int iFlags = PackageManager.INSTALL_INTERNAL; Loading Loading @@ -3272,14 +3261,15 @@ public class PackageManagerTests extends AndroidTestCase { assertTrue(false); // should have thrown } catch (IllegalArgumentException e) { } installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, final InstallParams ip = installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { ks = pm.getSigningKeySet(otherPkgName); assertTrue(false); // should have thrown } catch (SecurityException e) { } finally { cleanUpInstall(ip); } cleanUpInstall(otherPkgName); ks = pm.getSigningKeySet(mContext.getPackageName()); assertNotNull(ks); } Loading @@ -3288,6 +3278,7 @@ public class PackageManagerTests extends AndroidTestCase { * testGetKeySetByAlias - same as getSigningKeySet, but for keysets defined * by this package. */ @Suppress public void testGetKeySetByAlias() throws Exception { PackageManager pm = getPm(); String mPkgName = mContext.getPackageName(); Loading Loading @@ -3318,14 +3309,15 @@ public class PackageManagerTests extends AndroidTestCase { assertTrue(false); // should have thrown } catch(IllegalArgumentException e) { } installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, final InstallParams ip = installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { ks = pm.getKeySetByAlias(otherPkgName, "A"); assertTrue(false); // should have thrown } catch (SecurityException e) { } finally { cleanUpInstall(ip); } cleanUpInstall(otherPkgName); ks = pm.getKeySetByAlias(mPkgName, "A"); assertNotNull(ks); } Loading Loading @@ -3360,17 +3352,23 @@ public class PackageManagerTests extends AndroidTestCase { assertFalse(pm.isSignedBy(mPkgName, new KeySet(new Binder()))); assertTrue(pm.isSignedBy(mPkgName, mSigningKS)); installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, final InstallParams ip1 = installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { assertFalse(pm.isSignedBy(otherPkgName, mDefinedKS)); assertTrue(pm.isSignedBy(otherPkgName, mSigningKS)); cleanUpInstall(otherPkgName); } finally { cleanUpInstall(ip1); } installFromRawResource("keysetApi.apk", R.raw.keyset_splata_api, final InstallParams ip2 = installFromRawResource("keysetApi.apk", R.raw.keyset_splata_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { assertTrue(pm.isSignedBy(otherPkgName, mDefinedKS)); assertTrue(pm.isSignedBy(otherPkgName, mSigningKS)); cleanUpInstall(otherPkgName); } finally { cleanUpInstall(ip2); } } public void testIsSignedByExactly() throws Exception { Loading Loading @@ -3402,17 +3400,23 @@ public class PackageManagerTests extends AndroidTestCase { assertFalse(pm.isSignedByExactly(mPkgName, new KeySet(new Binder()))); assertTrue(pm.isSignedByExactly(mPkgName, mSigningKS)); installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, final InstallParams ip1 = installFromRawResource("keysetApi.apk", R.raw.keyset_splat_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { assertFalse(pm.isSignedByExactly(otherPkgName, mDefinedKS)); assertTrue(pm.isSignedByExactly(otherPkgName, mSigningKS)); cleanUpInstall(otherPkgName); } finally { cleanUpInstall(ip1); } installFromRawResource("keysetApi.apk", R.raw.keyset_splata_api, final InstallParams ip2 = installFromRawResource("keysetApi.apk", R.raw.keyset_splata_api, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { assertFalse(pm.isSignedByExactly(otherPkgName, mDefinedKS)); assertFalse(pm.isSignedByExactly(otherPkgName, mSigningKS)); cleanUpInstall(otherPkgName); } finally { cleanUpInstall(ip2); } } Loading Loading @@ -3465,11 +3469,10 @@ public class PackageManagerTests extends AndroidTestCase { int apk2 = APP2_CERT1_CERT2; String apk1Name = "install1.apk"; String apk2Name = "install2.apk"; InstallParams ip1 = null; try { ip1 = installFromRawResource(apk1Name, apk1, 0, false, final InstallParams ip = installFromRawResource(apk1Name, apk1, 0, false, false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); try { PackageManager pm = mContext.getPackageManager(); // Delete app2 File filesDir = mContext.getFilesDir(); Loading @@ -3480,12 +3483,10 @@ public class PackageManagerTests extends AndroidTestCase { getPm().deletePackage(pkg.packageName, null, PackageManager.DELETE_ALL_USERS); // Check signatures now int match = mContext.getPackageManager().checkSignatures( ip1.pkg.packageName, pkg.packageName); ip.pkg.packageName, pkg.packageName); assertEquals(PackageManager.SIGNATURE_UNKNOWN_PACKAGE, match); } finally { if (ip1 != null) { cleanUpInstall(ip1); } cleanUpInstall(ip); } } Loading @@ -3493,14 +3494,10 @@ public class PackageManagerTests extends AndroidTestCase { public void testInstallNoCertificates() throws Exception { int apk1 = APP1_UNSIGNED; String apk1Name = "install1.apk"; InstallParams ip1 = null; try { installFromRawResource(apk1Name, apk1, 0, false, true, PackageManager.INSTALL_PARSE_FAILED_NO_CERTIFICATES, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); } finally { } } /* Loading Loading @@ -3766,13 +3763,18 @@ public class PackageManagerTests extends AndroidTestCase { * Test that getInstalledPackages returns all the data specified in flags. */ public void testGetInstalledPackagesAll() throws Exception { int flags = PackageManager.GET_ACTIVITIES | PackageManager.GET_GIDS final int flags = PackageManager.GET_ACTIVITIES | PackageManager.GET_GIDS | PackageManager.GET_CONFIGURATIONS | PackageManager.GET_INSTRUMENTATION | PackageManager.GET_PERMISSIONS | PackageManager.GET_PROVIDERS | PackageManager.GET_RECEIVERS | PackageManager.GET_SERVICES | PackageManager.GET_SIGNATURES | PackageManager.GET_UNINSTALLED_PACKAGES; List<PackageInfo> packages = getPm().getInstalledPackages(flags); final InstallParams ip = installFromRawResource("install.apk", R.raw.install_complete_package_info, 0 /*flags*/, false /*cleanUp*/, false /*fail*/, -1 /*result*/, PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY); try { final List<PackageInfo> packages = getPm().getInstalledPackages(flags); assertNotNull("installed packages cannot be null", packages); assertTrue("installed packages cannot be empty", packages.size() > 0); Loading @@ -3795,6 +3797,9 @@ public class PackageManagerTests extends AndroidTestCase { assertNotNull("receivers should not be null", packageInfo.receivers); assertNotNull("services should not be null", packageInfo.services); assertNotNull("signatures should not be null", packageInfo.signatures); } finally { cleanUpInstall(ip); } } /** Loading @@ -3802,14 +3807,24 @@ public class PackageManagerTests extends AndroidTestCase { * flags when the GET_UNINSTALLED_PACKAGES flag is set. */ public void testGetUnInstalledPackagesAll() throws Exception { int flags = PackageManager.GET_UNINSTALLED_PACKAGES final int flags = PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_ACTIVITIES | PackageManager.GET_GIDS | PackageManager.GET_CONFIGURATIONS | PackageManager.GET_INSTRUMENTATION | PackageManager.GET_PERMISSIONS | PackageManager.GET_PROVIDERS | PackageManager.GET_RECEIVERS | PackageManager.GET_SERVICES | PackageManager.GET_SIGNATURES | PackageManager.GET_UNINSTALLED_PACKAGES; List<PackageInfo> packages = getPm().getInstalledPackages(flags); // first, install the package final InstallParams ip = installFromRawResource("install.apk", R.raw.install_complete_package_info, 0 /*flags*/, false /*cleanUp*/, false /*fail*/, -1 /*result*/, PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY); try { // then, remove it, keeping it's data around final GenericReceiver receiver = new DeleteReceiver(ip.pkg.packageName); invokeDeletePackage(ip.pkg.packageName, PackageManager.DELETE_KEEP_DATA, receiver); final List<PackageInfo> packages = getPm().getInstalledPackages(flags); assertNotNull("installed packages cannot be null", packages); assertTrue("installed packages cannot be empty", packages.size() > 0); Loading @@ -3832,8 +3847,12 @@ public class PackageManagerTests extends AndroidTestCase { assertNotNull("receivers should not be null", packageInfo.receivers); assertNotNull("services should not be null", packageInfo.services); assertNotNull("signatures should not be null", packageInfo.signatures); } finally { cleanUpInstall(ip); } } @Suppress public void testInstall_BadDex_CleanUp() throws Exception { int retCode = PackageManager.INSTALL_FAILED_DEXOPT; installFromRawResource("install.apk", R.raw.install_bad_dex, 0, true, true, retCode, Loading