4

我从http://developer.android.com/reference/android/os/Build.html检查了很多字段。

但是,我无法清楚地获得特定设备使用 CyanogenMod 的信息。

这就是我得到的:

NETWORK_TYPE="0"
SDK_INT="10"
CODENAME="REL"
INCREMENTAL="eng.android.20110308.014205"
RELEASE="2.3.3"
SDK="10"
Build.BOARD=bravo
BOOTLOADER=0.93.0001
BRAND=htc_wwe
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=bravo
DISPLAY=GRI40
FINGERPRINT=htc_wwe/htc_bravo/bravo/bravo:2.2/FRF91/226611:user/release-keys
HARDWARE=bravo
HOST=giulio-desktop
ID=FRF91
MANUFACTURER=HTC
MODEL=HTC Desire
PRODUCT=htc_bravo
RADIO=unknown
TAGS=release-keys
TIME=0
TYPE=userdebug
USER=android

NETWORK_TYPE="0"
SDK_INT="10"
CODENAME="REL"
INCREMENTAL="eng.shade.20110307.195429"
RELEASE="2.3.3"
SDK="10"
Build.BOARD=mahimahi
BOOTLOADER=0.35.0017
BRAND=google
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
DEVICE=passion
DISPLAY=GRI40
FINGERPRINT=google/passion/passion:2.3.3/GRI40/102588:user/release-keys
HARDWARE=mahimahi
HOST=toxygene
ID=GRI40
MANUFACTURER=HTC
MODEL=Nexus One
PRODUCT=passion
RADIO=unknown
TAGS=test-keys
TIME=0
TYPE=user
USER=shade
4

5 回答 5

6

PackageManager.hasSystemFeature("com.cyanogenmod.android")会更加一致。

于 2012-12-05T11:31:54.217 回答
3

从系统属性中读取它要容易得多:

String version = System.getProperty("os.version");
if (version.contains("cyanogenmod")) {
    isCyanogenMode = true;
}

在我的设备上,os.version2.6.37.6-cyanogenmod-01509-g8913be8

或者,您也可以依赖Build.USER常量,它带有组装构建的人的姓名。对于 CyanogenMod,这通常是“阴影”(Steve Kondik 又名 Cyanogen 的另一个昵称)。

还有一个特殊的属性ro.modversion,但据我所知,您需要访问SystemProperties内部类才能以编程方式读取它。

于 2012-03-21T08:45:32.793 回答
1

在我的设备System.getProperty("os.version")上是这样的3.0.64-CM-g9d16c8a。检查cyanogenmod版本号不再起作用。我在这篇文章中添加了更多细节。

于 2014-07-31T04:06:43.490 回答
0

我发现最简单的方法是读取文件 /proc/version,其中包含有关内核版本的信息。

带有 cyanogenmod 的手机会提供如下信息:

Linux version 2.6.37.2-cyanogenmod-01149-g8cdf03e

读取此文件不需要 root 权限(runnung 需要uname -r)。

于 2011-04-04T09:53:39.320 回答
0

内核一直被最终用户换出,因此使用 System.getProperty("os.version") 或从 /proc/version 读取并不是设备是否正在运行 cyanogenmod 的良好指标。让我换个说法,仅将它们用作指标并不是一个好主意。您需要使用多种方法的组合。正如@kakopappa 在他阅读 os.version 和 /proc/version 的另一篇文章中指出的那样,您还应该检查

android.os.Build.HOST

根据我的经验,其中 10 次中有 9 次包含 cyanogenmod。为了安全起见,您也需要使用其他方法,因为可以通过 build.prop -> ro.build.host 更改 HOST 变量

于 2014-12-22T21:03:08.147 回答