如何识别CyanogenMod在板上?

时间:2011-03-31 11:39:45

标签: android firmware cyanogenmod

我检查了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

5 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分: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内部类才能以编程方式读取它。

答案 2 :(得分:1)

在我的设备上System.getProperty("os.version")类似3.0.64-CM-g9d16c8a。检查版本号中的cyanogenmod不再起作用。我在此post中添加了更多详细信息。

答案 3 :(得分:0)

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

使用cyanogenmod的手机可以提供类似的内容:

Linux version 2.6.37.2-cyanogenmod-01149-g8cdf03e

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

答案 4 :(得分:0)

最终用户一直在交换内核,因此使用System.getProperty(“os.version”)或从/ proc / version读取并不是设备是否正在运行cyanogenmod的良好指标。让我重新说一下,仅使用那些作为指标并不是一个好主意。您需要使用多种方法。正如@kakopappa在他的另一篇文章中指出他在读os.version和/ proc / version时你也应该检查

android.os.Build.HOST

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