diff options
author | 2017-04-04 21:34:03 +0000 | |
---|---|---|
committer | 2017-04-04 21:34:03 +0000 | |
commit | f4628d92e0fed4bf63d630a3bf92eae09c64afe3 (patch) | |
tree | 171ee23b12367861876fd48ff3d4d7b5cd9db140 | |
parent | 5889c3628bff3811015095086f9743829c7d837c (diff) | |
parent | 200d5202614582463f62728c1f564096ec16d6b4 (diff) |
Merge "Offer to "fixup" GIDs used for app data." into oc-dev am: 359ce10912
am: 200d520261
Change-Id: Id2e36dad9e750904c8c2b6e2de61a173631a73e0
-rw-r--r-- | services/core/java/com/android/server/pm/Installer.java | 10 | ||||
-rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 9 |
2 files changed, 19 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java index 7eef7adc7e12..9f7c4a2793db 100644 --- a/services/core/java/com/android/server/pm/Installer.java +++ b/services/core/java/com/android/server/pm/Installer.java @@ -66,6 +66,7 @@ public class Installer extends SystemService { public static final int FLAG_FREE_CACHE_V2 = 1 << 13; public static final int FLAG_FREE_CACHE_V2_DEFY_QUOTA = 1 << 14; public static final int FLAG_FREE_CACHE_NOOP = 1 << 15; + public static final int FLAG_FORCE = 1 << 16; private final boolean mIsolated; @@ -202,6 +203,15 @@ public class Installer extends SystemService { } } + public void fixupAppData(String uuid, int flags) throws InstallerException { + if (!checkBeforeRemote()) return; + try { + mInstalld.fixupAppData(uuid, flags); + } catch (Exception e) { + throw InstallerException.from(e); + } + } + public void moveCompleteApp(String fromUuid, String toUuid, String packageName, String dataAppName, int appId, String seInfo, int targetSdkVersion) throws InstallerException { diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index f8bfd46a5bd8..4112719f7aa8 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2717,6 +2717,15 @@ public class PackageManagerService extends IPackageManager.Stub { UserHandle.USER_SYSTEM, storageFlags, true /* migrateAppData */, true /* onlyCoreApps */); mPrepareAppDataFuture = SystemServerInitThreadPool.get().submit(() -> { + Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "fixup"); + try { + mInstaller.fixupAppData(StorageManager.UUID_PRIVATE_INTERNAL, + StorageManager.FLAG_STORAGE_DE | StorageManager.FLAG_STORAGE_CE); + } catch (InstallerException e) { + Slog.w(TAG, "Trouble fixing GIDs", e); + } + Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); + if (deferPackages == null || deferPackages.isEmpty()) { return; } |