diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/Installer.java | 11 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 10 |
2 files changed, 21 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 5a5f9ef3b6aa..f16ee9275879 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. * <p> diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 94dd4beeab9b..fad18d235001 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -7554,6 +7554,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(); |