Detect /proc/version ending with "mainline"
Sometimes a mainline kernel's /proc/version may be
5.14.0-mainline
... without any suffixes. Accept that as a mainline
kernel.
Fixes: 201712746
Test: libvintf_test
Change-Id: Ie8a8b79d673afdb9433a74f03a15d43740f87bc9
diff --git a/RuntimeInfo-target.cpp b/RuntimeInfo-target.cpp
index 4e94ebb..3ef5aaa 100644
--- a/RuntimeInfo-target.cpp
+++ b/RuntimeInfo-target.cpp
@@ -42,6 +42,7 @@
#define BUFFER_SIZE sysconf(_SC_PAGESIZE)
static constexpr char kMainline[] = "-mainline-";
+static constexpr char kMainlineSuffix[] = "-mainline";
namespace android {
namespace vintf {
@@ -125,7 +126,8 @@
mRuntimeInfo->mOsVersion = buf.version;
mRuntimeInfo->mHardwareId = buf.machine;
- mRuntimeInfo->mIsMainline = mRuntimeInfo->mOsRelease.find(kMainline) != std::string::npos;
+ mRuntimeInfo->mIsMainline = mRuntimeInfo->mOsRelease.find(kMainline) != std::string::npos ||
+ android::base::EndsWith(mRuntimeInfo->mOsRelease, kMainlineSuffix);
status_t err = RuntimeInfo::parseGkiKernelRelease(flags, mRuntimeInfo->mOsRelease,
&mRuntimeInfo->mKernel.mVersion,