通过ADB查看build.prop
可以得到:
adb shell "getprop | grep mi.os"
[ro.mi.os.version.code]: [1]
[ro.mi.os.version.incremental]: [OS1.0.23.11.19.DEV]
[ro.mi.os.version.name]: [OS1.0]
所以与判断MIUI系统的方法类似,更换了几个build.prop
中的字段。
private const val KEY_MI_OS_VERSION_CODE = "ro.mi.os.version.code"
private const val KEY_MI_OS_VERSION_NAME = "ro.mi.os.version.name"
private const val KEY_MI_OS_VERSION_INCREMENTAL = "ro.mi.os.version.incremental"
@SuppressLint("PrivateApi")
fun isXiaomiHyperOS(): Boolean = runCatching {
val cls = Class.forName("android.os.SystemProperties")
val getProperty: (String) -> String? = {
cls.getMethod("get", String::class.java)(null, it) as? String
}
!(getProperty(KEY_MI_OS_VERSION_CODE).isNullOrBlank() ||
getProperty(KEY_MI_OS_VERSION_NAME).isNullOrBlank() ||
getProperty(KEY_MI_OS_VERSION_INCREMENTAL).isNullOrBlank())
}.getOrDefault(false)