diff options
author | Dianne Hackborn <hackbod@google.com> | 2010-09-20 16:54:22 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-09-20 16:54:22 -0700 |
commit | 4db643eb8430d063b1adc4ba164bfa1c1281bdf3 (patch) | |
tree | 09d806c356f8d849f37d721d8c1325992b79af64 /services/java | |
parent | a4270e7e1e09bf5f60c65102d34e887033c5befa (diff) | |
parent | 3b4bac7a2a940483c81a6bfda21039e02e62157d (diff) | |
download | frameworks_base-4db643eb8430d063b1adc4ba164bfa1c1281bdf3.zip frameworks_base-4db643eb8430d063b1adc4ba164bfa1c1281bdf3.tar.gz frameworks_base-4db643eb8430d063b1adc4ba164bfa1c1281bdf3.tar.bz2 |
Merge "In theory the package manager now scans /vendor/app" into gingerbread
Diffstat (limited to 'services/java')
-rw-r--r-- | services/java/com/android/server/PackageManagerService.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java index 72784d5..4c15c94 100644 --- a/services/java/com/android/server/PackageManagerService.java +++ b/services/java/com/android/server/PackageManagerService.java @@ -222,6 +222,9 @@ class PackageManagerService extends IPackageManager.Stub { // This is the object monitoring the system app dir. final FileObserver mSystemInstallObserver; + // This is the object monitoring the system app dir. + final FileObserver mVendorInstallObserver; + // This is the object monitoring mAppInstallDir. final FileObserver mAppInstallObserver; @@ -234,6 +237,7 @@ class PackageManagerService extends IPackageManager.Stub { final File mFrameworkDir; final File mSystemAppDir; + final File mVendorAppDir; final File mAppInstallDir; final File mDalvikCacheDir; @@ -927,6 +931,14 @@ class PackageManagerService extends IPackageManager.Stub { scanDirLI(mSystemAppDir, PackageParser.PARSE_IS_SYSTEM | PackageParser.PARSE_IS_SYSTEM_DIR, scanMode); + // Collect all vendor packages. + mVendorAppDir = new File("/vendor/app"); + mVendorInstallObserver = new AppDirObserver( + mVendorAppDir.getPath(), OBSERVER_EVENTS, true); + mVendorInstallObserver.startWatching(); + scanDirLI(mVendorAppDir, PackageParser.PARSE_IS_SYSTEM + | PackageParser.PARSE_IS_SYSTEM_DIR, scanMode); + if (mInstaller != null) { if (DEBUG_UPGRADE) Log.v(TAG, "Running installd update commands"); mInstaller.moveFiles(); @@ -2493,9 +2505,13 @@ class PackageManagerService extends IPackageManager.Stub { } private void scanDirLI(File dir, int flags, int scanMode) { - Log.d(TAG, "Scanning app dir " + dir); - String[] files = dir.list(); + if (files == null) { + Log.d(TAG, "No files in app dir " + dir); + return; + } + + Log.d(TAG, "Scanning app dir " + dir); int i; for (i=0; i<files.length; i++) { |