From 76f66b6a44ac1248c8900e44ff3b536b10abf513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Fri, 27 Sep 2024 02:46:00 +0000 Subject: [PATCH] NetBpfLoad: enforce kernel 5.4 for Android W MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: 370043209 Test: TreeHugger Signed-off-by: Maciej Żenczykowski Change-Id: I08fa542c4febb5de917cfb0b4de748d13915b304 --- bpf/loader/NetBpfLoad.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/bpf/loader/NetBpfLoad.cpp b/bpf/loader/NetBpfLoad.cpp index 4834b09ab5..fb66209b1b 100644 --- a/bpf/loader/NetBpfLoad.cpp +++ b/bpf/loader/NetBpfLoad.cpp @@ -1475,6 +1475,13 @@ static int doLoad(char** argv, char * const envp[]) { return 1; } + // W bumps the kernel requirement up to 5.4 + // see also: //system/netd/tests/kernel_test.cpp TestKernel54 + if (isAtLeastW && !isAtLeastKernelVersion(5, 4, 0)) { + ALOGE("Android W requires kernel 5.4."); + return 1; + } + // Technically already required by U, but only enforce on V+ // see also: //system/netd/tests/kernel_test.cpp TestKernel64Bit if (isAtLeastV && isKernel32Bit() && isAtLeastKernelVersion(5, 16, 0)) { @@ -1498,13 +1505,13 @@ static int doLoad(char** argv, char * const envp[]) { bool bad = false; if (!isLtsKernel()) { - ALOGW("Android V only supports LTS kernels."); + ALOGW("Android V+ only supports LTS kernels."); bad = true; } #define REQUIRE(maj, min, sub) \ if (isKernelVersion(maj, min) && !isAtLeastKernelVersion(maj, min, sub)) { \ - ALOGW("Android V requires %d.%d kernel to be %d.%d.%d+.", maj, min, maj, min, sub); \ + ALOGW("Android V+ requires %d.%d kernel to be %d.%d.%d+.", maj, min, maj, min, sub); \ bad = true; \ }