44 lines
945 B
Kotlin
44 lines
945 B
Kotlin
package com.sukisu.ultra
|
|
|
|
import android.system.Os
|
|
|
|
/**
|
|
* @author weishu
|
|
* @date 2022/12/10.
|
|
*/
|
|
|
|
data class KernelVersion(val major: Int, val patchLevel: Int, val subLevel: Int) {
|
|
override fun toString(): String {
|
|
return "$major.$patchLevel.$subLevel"
|
|
}
|
|
|
|
fun isGKI(): Boolean {
|
|
|
|
// kernel 6.x
|
|
if (major > 5) {
|
|
return true
|
|
}
|
|
|
|
// kernel 5.10.x
|
|
if (major == 5) {
|
|
return patchLevel >= 10
|
|
}
|
|
|
|
return false
|
|
}
|
|
}
|
|
|
|
fun parseKernelVersion(version: String): KernelVersion {
|
|
val find = "(\\d+)\\.(\\d+)\\.(\\d+)".toRegex().find(version)
|
|
return if (find != null) {
|
|
KernelVersion(find.groupValues[1].toInt(), find.groupValues[2].toInt(), find.groupValues[3].toInt())
|
|
} else {
|
|
KernelVersion(-1, -1, -1)
|
|
}
|
|
}
|
|
|
|
fun getKernelVersion(): KernelVersion {
|
|
Os.uname().release.let {
|
|
return parseKernelVersion(it)
|
|
}
|
|
} |