From 728ac98e81cd59e0356c8f9c766448aa3b5c2fb7 Mon Sep 17 00:00:00 2001 From: Sumedh Sen Date: Wed, 19 Jul 2023 13:18:09 -0700 Subject: [PATCH] Silently exit if Pia cant post notification If appInfo for installed or installer package cant be found, catch the exception thrown instead of crashing Pia Bug: 289660748 Test: None Change-Id: I61f25eb14265d21729dd84e2e4ab34d182b68132 --- .../PackageInstalledReceiver.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstalledReceiver.java b/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstalledReceiver.java index 2278f7c36574a..d29765eecd779 100644 --- a/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstalledReceiver.java +++ b/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstalledReceiver.java @@ -19,6 +19,8 @@ package com.android.packageinstaller; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.content.pm.InstallSourceInfo; +import android.content.pm.PackageManager; import android.net.Uri; import android.util.Log; @@ -61,11 +63,19 @@ public class PackageInstalledReceiver extends BroadcastReceiver { return; } - // TODO: Make sure the installer information here is accurate - String installer = - context.getPackageManager().getInstallerPackageName(packageName); - new PackageInstalledNotificationUtils(context, installer, - packageName).postAppInstalledNotification(); + try { + InstallSourceInfo installerInfo = + context.getPackageManager().getInstallSourceInfo(packageName); + String installer = installerInfo.getInstallingPackageName(); + if (installer == null) { + Log.e(TAG, "No installer package name for: " + packageName); + return; + } + new PackageInstalledNotificationUtils(context, installer, + packageName).postAppInstalledNotification(); + } catch (PackageManager.NameNotFoundException e) { + Log.e(TAG, "Cannot get source info for: " + packageName); + } } } }