diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-12-23 08:29:24 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-12-23 08:29:24 +0000 |
commit | 07137ed68826e5d41d23e5cf083885bc919ce11d (patch) | |
tree | 893505a763a8280b4627ce8132d7039a911e6304 /init/init.cpp | |
parent | 2f61e4c39863cdad85e0fdfaacc40d10c35e6479 (diff) | |
parent | 0095bebba6a5574aa0abafbc63ac0ca2a6f85080 (diff) |
Snap for 8024443 from 0095bebba6a5574aa0abafbc63ac0ca2a6f85080 to s-keystone-qcom-release
Change-Id: Ic1e47b52616262f935b586524fc89a70cad048e3
Diffstat (limited to 'init/init.cpp')
-rw-r--r-- | init/init.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/init/init.cpp b/init/init.cpp index 28e100486..6dcf4a30b 100644 --- a/init/init.cpp +++ b/init/init.cpp @@ -27,6 +27,7 @@ #include <sys/mount.h> #include <sys/signalfd.h> #include <sys/types.h> +#include <sys/utsname.h> #include <unistd.h> #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_ @@ -569,6 +570,19 @@ static void SetUsbController() { } } +/// Set ro.kernel.version property to contain the major.minor pair as returned +/// by uname(2). +static void SetKernelVersion() { + struct utsname uts; + unsigned int major, minor; + + if ((uname(&uts) != 0) || (sscanf(uts.release, "%u.%u", &major, &minor) != 2)) { + LOG(ERROR) << "Could not parse the kernel version from uname"; + return; + } + SetProperty("ro.kernel.version", android::base::StringPrintf("%u.%u", major, minor)); +} + static void HandleSigtermSignal(const signalfd_siginfo& siginfo) { if (siginfo.ssi_pid != 0) { // Drop any userspace SIGTERM requests. @@ -854,6 +868,7 @@ int SecondStageMain(int argc, char** argv) { export_oem_lock_status(); MountHandler mount_handler(&epoll); SetUsbController(); + SetKernelVersion(); const BuiltinFunctionMap& function_map = GetBuiltinFunctionMap(); Action::set_function_map(&function_map); |