Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit a0024d78 authored by Pinyao Ting's avatar Pinyao Ting Committed by Kevin F. Haggerty
Browse files

[Do Not Merge] Ignore malformed shortcuts

After an app publishes a shortcut that contains malformed intent, the
system can be stuck in boot-loop due to uncaught exception caused by
parsing the malformed intent.

This CL ignores that particular malformed entry. Since shortcuts are
constantly writes back into the xml from system memory, the malformed
entry will be removed from the xml the next time system persists
shortcuts from memory to file system.

Bug: 246540168
Change-Id: Ibbfd0891eabdce72f76571798382fe949d8f453d
Test: manual
(cherry picked from commit 36338a31)
Merged-In: Ibbfd0891eabdce72f76571798382fe949d8f453d
parent ec5b5e1d
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -1967,10 +1967,15 @@ class ShortcutPackage extends ShortcutPackageItem {

                        continue;
                    case TAG_SHORTCUT:
                        try {
                            final ShortcutInfo si = parseShortcut(parser, packageName,
                                    shortcutUser.getUserId(), fromBackup);
                            // Don't use addShortcut(), we don't need to save the icon.
                            ret.mShortcuts.put(si.getId(), si);
                        } catch (Exception e) {
                            // b/246540168 malformed shortcuts should be ignored
                            Slog.e(TAG, "Failed parsing shortcut.", e);
                        }
                        continue;
                    case TAG_SHARE_TARGET:
                        ret.mShareTargets.add(ShareTargetInfo.loadFromXml(parser));