Fix Rescue Party observability criteria
The previous behavior erroneously returned if the package
was not found by PackageManager#getModuleInfo, which means
the persistent process check would never be performed. This
caused packages like com.android.systemui to not be handled
by Rescue Party's mitigation logic. Instead, ensure that
both cases are checked.
Test: setprop persist.sys.enable_rescue true,
adb shell setprop debug.crash_sysui 1,
adb shell kill `pidof com.android.systemui`,
ensure recovery mode is reached
Bug: 169284310
Change-Id: Ifec19b8daba1dacc7f5efcfa47ed3c3a046612e3
This commit is contained in:
@@ -454,10 +454,14 @@ public class RescueParty {
|
||||
public boolean mayObservePackage(String packageName) {
|
||||
PackageManager pm = mContext.getPackageManager();
|
||||
try {
|
||||
// A package is a Mainline module if this is non-null
|
||||
// A package is a module if this is non-null
|
||||
if (pm.getModuleInfo(packageName, 0) != null) {
|
||||
return true;
|
||||
}
|
||||
} catch (PackageManager.NameNotFoundException ignore) {
|
||||
}
|
||||
|
||||
try {
|
||||
ApplicationInfo info = pm.getApplicationInfo(packageName, 0);
|
||||
return (info.flags & PERSISTENT_MASK) == PERSISTENT_MASK;
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
|
||||
Reference in New Issue
Block a user