From 927b9bfbc584e373a77358025d21fae183025c87 Mon Sep 17 00:00:00 2001 From: Tad Date: Thu, 3 Mar 2022 16:45:19 -0500 Subject: [PATCH] Fix random reboots on broken kernels when an app has data restricted I don't like this Reading: - https://github.com/LineageOS/android_kernel_xiaomi_sdm660/commit/24b3bdcf71522f4d711958b01e8a8f234fe2450d - https://review.lineageos.org/c/LineageOS/android_kernel_essential_msm8998/+/320470 - https://review.lineageos.org/c/LineageOS/android_system_bpf/+/264702 - https://gitlab.com/LineageOS/issues/android/-/issues/2514 - https://gitlab.com/LineageOS/issues/android/-/issues/3144 - https://gitlab.com/LineageOS/issues/android/-/issues/3287 Test: - restrict mobile data for an app - toggle wifi on and off a few times - watch systemui crash and soft-reboot Tested working on cheeseburger Signed-off-by: Tad --- ...not-throw-in-setAppOnInterfaceLocked.patch | 29 +++++++++++++++++++ Scripts/LineageOS-17.1/Patch.sh | 1 + Scripts/LineageOS-18.1/Patch.sh | 1 + 3 files changed, 31 insertions(+) create mode 100644 Patches/Common/android_frameworks_base/0006-Do-not-throw-in-setAppOnInterfaceLocked.patch diff --git a/Patches/Common/android_frameworks_base/0006-Do-not-throw-in-setAppOnInterfaceLocked.patch b/Patches/Common/android_frameworks_base/0006-Do-not-throw-in-setAppOnInterfaceLocked.patch new file mode 100644 index 00000000..508c69d8 --- /dev/null +++ b/Patches/Common/android_frameworks_base/0006-Do-not-throw-in-setAppOnInterfaceLocked.patch @@ -0,0 +1,29 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tad +Date: Thu, 3 Mar 2022 16:40:42 -0500 +Subject: [PATCH] Do not throw in setAppOnInterfaceLocked + +Signed-off-by: Tad +Change-Id: Iae1e5f502ba9a467f63855e630408895636b971d +--- + .../java/com/android/server/NetworkManagementService.java | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java +index 5362e7a65129..3bfbd1d53c90 100644 +--- a/services/core/java/com/android/server/NetworkManagementService.java ++++ b/services/core/java/com/android/server/NetworkManagementService.java +@@ -1596,13 +1596,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub { + } catch (RemoteException e) { + throw new IllegalStateException(e); + } catch (ServiceSpecificException e) { +- // ENETDOWN is returned when the interface cannot be resolved to an index. +- // (and is only returned by bandwidthAdd... call) +- if (e.errorCode == ENETDOWN) { + ok = false; +- } else { +- throw new IllegalStateException(e); +- } + } + return ok; + } diff --git a/Scripts/LineageOS-17.1/Patch.sh b/Scripts/LineageOS-17.1/Patch.sh index 175e0e6a..e5817f3d 100644 --- a/Scripts/LineageOS-17.1/Patch.sh +++ b/Scripts/LineageOS-17.1/Patch.sh @@ -121,6 +121,7 @@ applyPatch "$DOS_PATCHES/android_frameworks_base/0014-Network_Permission-5.patch applyPatch "$DOS_PATCHES/android_frameworks_base/0014-Network_Permission-6.patch"; applyPatch "$DOS_PATCHES/android_frameworks_base/0014-Network_Permission-7.patch"; fi; +applyPatch "$DOS_PATCHES_COMMON/android_frameworks_base/0006-Do-not-throw-in-setAppOnInterfaceLocked.patch"; #Fix random reboots on broken kernels when an app has data restricted XXX: ugly if [ "$DOS_MICROG_INCLUDED" = "FULL" ]; then applyPatch "$DOS_PATCHES/android_frameworks_base/0002-Signature_Spoofing.patch"; fi; #Allow packages to spoof their signature (microG) if [ "$DOS_MICROG_INCLUDED" = "FULL" ]; then applyPatch "$DOS_PATCHES/android_frameworks_base/0003-Harden_Sig_Spoofing.patch"; fi; #Restrict signature spoofing to system apps signed with the platform key sed -i 's/DEFAULT_MAX_FILES = 1000;/DEFAULT_MAX_FILES = 0;/' services/core/java/com/android/server/DropBoxManagerService.java; #Disable DropBox internal logging service diff --git a/Scripts/LineageOS-18.1/Patch.sh b/Scripts/LineageOS-18.1/Patch.sh index 46bbc650..b9075fd6 100644 --- a/Scripts/LineageOS-18.1/Patch.sh +++ b/Scripts/LineageOS-18.1/Patch.sh @@ -103,6 +103,7 @@ applyPatch "$DOS_PATCHES/android_frameworks_base/0013-Network_Permission-5.patch applyPatch "$DOS_PATCHES/android_frameworks_base/0013-Network_Permission-6.patch"; applyPatch "$DOS_PATCHES/android_frameworks_base/0013-Network_Permission-7.patch"; fi; +applyPatch "$DOS_PATCHES_COMMON/android_frameworks_base/0006-Do-not-throw-in-setAppOnInterfaceLocked.patch"; #Fix random reboots on broken kernels when an app has data restricted XXX: ugly if [ "$DOS_MICROG_INCLUDED" = "FULL" ]; then applyPatch "$DOS_PATCHES/android_frameworks_base/0002-Signature_Spoofing.patch"; fi; #Allow packages to spoof their signature (microG) if [ "$DOS_MICROG_INCLUDED" = "FULL" ]; then applyPatch "$DOS_PATCHES/android_frameworks_base/0003-Harden_Sig_Spoofing.patch"; fi; #Restrict signature spoofing to system apps signed with the platform key hardenLocationConf services/core/java/com/android/server/location/gps_debug.conf; #Harden the default GPS config