From 8324a6ee8334668c25e05c669bc04bf9c0c8c583 Mon Sep 17 00:00:00 2001 From: Yusuke Sato Date: Tue, 18 Aug 2015 17:23:22 -0700 Subject: Trace scanDirLI() Change-Id: I3761b4991d45684e9b712c5870bcacd08dc806de --- .../android/server/pm/PackageManagerService.java | 25 +++++++++++++++------- 1 file 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)) { -- cgit v1.2.3-59-g8ed1b