diff options
| author | 2015-08-19 00:51:15 +0000 | |
|---|---|---|
| committer | 2015-08-19 00:51:15 +0000 | |
| commit | 10a2999a46dcbccfd8ba03d2bf34ba7aef8a680e (patch) | |
| tree | e76f8fe284095cedc20540d7c5a401d8bd6429ff | |
| parent | aa1fd4e6d3725777a122b151026dd8cd934b7aa9 (diff) | |
| parent | 8324a6ee8334668c25e05c669bc04bf9c0c8c583 (diff) | |
Merge "Trace scanDirLI()"
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index e8ec8b9d8e1c..47729f940763 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2080,24 +2080,24 @@ public class PackageManagerService extends IPackageManager.Stub { // For security and version matching reason, only consider // overlay packages if they reside in VENDOR_OVERLAY_DIR. File vendorOverlayDir = new File(VENDOR_OVERLAY_DIR); - scanDirLI(vendorOverlayDir, PackageParser.PARSE_IS_SYSTEM + scanDirTracedLI(vendorOverlayDir, PackageParser.PARSE_IS_SYSTEM | PackageParser.PARSE_IS_SYSTEM_DIR, scanFlags | SCAN_TRUSTED_OVERLAY, 0); // Find base frameworks (resource packages without code). - scanDirLI(frameworkDir, PackageParser.PARSE_IS_SYSTEM + scanDirTracedLI(frameworkDir, PackageParser.PARSE_IS_SYSTEM | PackageParser.PARSE_IS_SYSTEM_DIR | PackageParser.PARSE_IS_PRIVILEGED, scanFlags | SCAN_NO_DEX, 0); // Collected privileged system packages. final File privilegedAppDir = new File(Environment.getRootDirectory(), "priv-app"); - scanDirLI(privilegedAppDir, PackageParser.PARSE_IS_SYSTEM + scanDirTracedLI(privilegedAppDir, PackageParser.PARSE_IS_SYSTEM | PackageParser.PARSE_IS_SYSTEM_DIR | PackageParser.PARSE_IS_PRIVILEGED, scanFlags, 0); // Collect ordinary system packages. final File systemAppDir = new File(Environment.getRootDirectory(), "app"); - scanDirLI(systemAppDir, PackageParser.PARSE_IS_SYSTEM + scanDirTracedLI(systemAppDir, PackageParser.PARSE_IS_SYSTEM | PackageParser.PARSE_IS_SYSTEM_DIR, scanFlags, 0); // Collect all vendor packages. @@ -2107,12 +2107,12 @@ public class PackageManagerService extends IPackageManager.Stub { } catch (IOException e) { // failed to look up canonical path, continue with original one } - scanDirLI(vendorAppDir, PackageParser.PARSE_IS_SYSTEM + scanDirTracedLI(vendorAppDir, PackageParser.PARSE_IS_SYSTEM | PackageParser.PARSE_IS_SYSTEM_DIR, scanFlags, 0); // Collect all OEM packages. final File oemAppDir = new File(Environment.getOemDirectory(), "app"); - scanDirLI(oemAppDir, PackageParser.PARSE_IS_SYSTEM + scanDirTracedLI(oemAppDir, PackageParser.PARSE_IS_SYSTEM | PackageParser.PARSE_IS_SYSTEM_DIR, scanFlags, 0); if (DEBUG_UPGRADE) Log.v(TAG, "Running installd update commands"); @@ -2188,9 +2188,9 @@ public class PackageManagerService extends IPackageManager.Stub { if (!mOnlyCore) { EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_DATA_SCAN_START, SystemClock.uptimeMillis()); - scanDirLI(mAppInstallDir, 0, scanFlags | SCAN_REQUIRE_KNOWN, 0); + scanDirTracedLI(mAppInstallDir, 0, scanFlags | SCAN_REQUIRE_KNOWN, 0); - scanDirLI(mDrmAppPrivateInstallDir, PackageParser.PARSE_FORWARD_LOCK, + scanDirTracedLI(mDrmAppPrivateInstallDir, PackageParser.PARSE_FORWARD_LOCK, scanFlags | SCAN_REQUIRE_KNOWN, 0); /** @@ -5619,6 +5619,15 @@ public class PackageManagerService extends IPackageManager.Stub { return true; } + private void scanDirTracedLI(File dir, int parseFlags, int scanFlags, long currentTime) { + Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "scanDir"); + try { + scanDirLI(dir, parseFlags, scanFlags, currentTime); + } finally { + Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); + } + } + private void scanDirLI(File dir, int parseFlags, int scanFlags, long currentTime) { final File[] files = dir.listFiles(); if (ArrayUtils.isEmpty(files)) { |