From 0ac83f5a7c05ff5b7e213e5953590bfbeb4efb43 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Mon, 30 Aug 2010 15:12:24 -0700 Subject: [PATCH] Native libraries on SD * Add native library tests during package move * Fix omission that let PackageSettings and ApplicationInfo get out of sync. Change-Id: Ic4958f971cb2c9cfd270522fdc120b4031c1124a --- .../coretests/src/android/content/pm/PackageManagerTests.java | 2 ++ services/java/com/android/server/PackageManagerService.java | 1 + 2 files changed, 3 insertions(+) diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java index de3d153fad8a4..975a4c2ddc7bf 100755 --- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java +++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java @@ -1392,8 +1392,10 @@ public class PackageManagerTests extends AndroidTestCase { assertNotNull(info); if ((moveFlags & PackageManager.MOVE_INTERNAL) != 0) { assertTrue((info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) == 0); + assertTrue(info.nativeLibraryDir.startsWith(info.dataDir)); } else if ((moveFlags & PackageManager.MOVE_EXTERNAL_MEDIA) != 0){ assertTrue((info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0); + assertTrue(info.nativeLibraryDir.startsWith(SECURE_CONTAINERS_PREFIX)); } } } catch (NameNotFoundException e) { diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java index a2d329802ac35..ab50ba75fe12e 100644 --- a/services/java/com/android/server/PackageManagerService.java +++ b/services/java/com/android/server/PackageManagerService.java @@ -9833,6 +9833,7 @@ class PackageManagerService extends IPackageManager.Stub { ps.codePathString = ps.codePath.getPath(); ps.resourcePath = new File(pkg.applicationInfo.publicSourceDir); ps.resourcePathString = ps.resourcePath.getPath(); + ps.nativeLibraryPathString = newNativePath; // Set the application info flag correctly. if ((mp.flags & PackageManager.INSTALL_EXTERNAL) != 0) { pkg.applicationInfo.flags |= ApplicationInfo.FLAG_EXTERNAL_STORAGE;