diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-05-16 11:57:45 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2016-05-16 19:43:18 +0000 |
commit | 0d86a8dccf6557587eb3abae1bb3573e2c40c12c (patch) | |
tree | bd7dae4a11e16c4df87ba5abef464f83330b0458 | |
parent | d797327b79c5ded53f698201af5abb7d779ddfa9 (diff) | |
download | android_packages_apps_Trebuchet-0d86a8dccf6557587eb3abae1bb3573e2c40c12c.tar.gz android_packages_apps_Trebuchet-0d86a8dccf6557587eb3abae1bb3573e2c40c12c.tar.bz2 android_packages_apps_Trebuchet-0d86a8dccf6557587eb3abae1bb3573e2c40c12c.zip |
On some "non-standard" devices, load label can cause a security exception
due to modified platform code
Bug: 28243147
Change-Id: Iab899d0cb233e19ebf994f8a3eacba26f840148f
-rw-r--r-- | src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java | 8 | ||||
-rw-r--r-- | src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java | 10 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java b/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java index fee0376bd..15c5e69dd 100644 --- a/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java +++ b/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java @@ -26,6 +26,7 @@ import android.content.pm.PackageInfo; import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.graphics.drawable.Drawable; +import android.util.Log; public class LauncherActivityInfoCompatV16 extends LauncherActivityInfoCompat { @@ -51,7 +52,12 @@ public class LauncherActivityInfoCompatV16 extends LauncherActivityInfoCompat { } public CharSequence getLabel() { - return mResolveInfo.loadLabel(mPm); + try { + return mResolveInfo.loadLabel(mPm); + } catch (SecurityException e) { + Log.e("LAInfoCompat", "Failed to extract app display name from resolve info", e); + return ""; + } } public Drawable getIcon(int density) { diff --git a/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java b/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java index b99056023..2e4167e12 100644 --- a/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java +++ b/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java @@ -4,6 +4,8 @@ import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.util.Log; + import com.android.launcher3.LauncherAppWidgetProviderInfo; import com.android.launcher3.Utilities; import com.android.launcher3.compat.AppWidgetManagerCompat; @@ -91,7 +93,13 @@ public class WidgetsAndShortcutNameComparator implements Comparator<Object> { return Utilities.trim(mManager.loadLabel(widgetInfo)); } else { ResolveInfo shortcutInfo = (ResolveInfo) o; - return Utilities.trim(shortcutInfo.loadLabel(mPackageManager)); + try { + return Utilities.trim(shortcutInfo.loadLabel(mPackageManager)); + } catch (Exception e) { + Log.e("ShortcutNameComparator", + "Failed to extract app display name from resolve info", e); + return ""; + } } } }; |