From be8f83a5e5cdee8dfb0a095832a0d36a3c8f9c4b Mon Sep 17 00:00:00 2001 From: Shikha Malhotra Date: Wed, 12 Jan 2022 19:48:27 +0000 Subject: [PATCH] Sets the first boot in installd to create data directories with project id Bug: b/215154615 Test: Manually test the trace logs after flashing the changes Change-Id: I493eb5788901c6bec710d7cb72b223e61a9b5439 --- .../core/java/com/android/server/pm/Installer.java | 11 +++++++++++ .../com/android/server/pm/PackageManagerService.java | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/services/core/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java index 8fd545f271f39..6cc3abc4758df 100644 --- a/services/core/java/com/android/server/pm/Installer.java +++ b/services/core/java/com/android/server/pm/Installer.java @@ -256,6 +256,17 @@ public class Installer extends SystemService { } } + /** + * Sets in Installd that it is first boot after data wipe + */ + public void setFirstBoot() throws InstallerException { + try { + mInstalld.setFirstBoot(); + } catch (RemoteException e) { + throw InstallerException.from(e); + } + } + /** * Class that collects multiple {@code installd} operations together in an * attempt to more efficiently execute them in bulk. diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index bc28cffbcbfc2..c1b973b0b0262 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -7555,6 +7555,16 @@ public class PackageManagerService extends IPackageManager.Stub /* excludePreCreated= */ false)); t.traceEnd(); + if (mFirstBoot) { + t.traceBegin("setFirstBoot: "); + try { + mInstaller.setFirstBoot(); + } catch (InstallerException e) { + Slog.w(TAG, "Could not set First Boot: ", e); + } + t.traceEnd(); + } + mPermissionManager.readLegacyPermissionsTEMP(mSettings.mPermissions); mPermissionManager.readLegacyPermissionStateTEMP();