首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找出谁是ROM供应商?

如何找出谁是ROM供应商?
EN

Stack Overflow用户
提问于 2009-10-10 06:48:00
回答 3查看 5.2K关注 0票数 8

我的应用程序中有一个自动错误报告工具,其中包含用于调试的有用信息。

我想要包括的一件事是ROM提供商。特别是,我想知道用户是否正在运行自定义ROM,最好是使用版本号。

你知道如何以编程方式检索此信息吗?

-摘自Quintin (见下文)

http://code.google.com/p/cyanogen-updater/source/browse/trunk/src/cmupdaterapp/utils/SysUtils.java#19

代码语言:javascript
复制
public static String getReadableModVersion() { 
  String modVer = getSystemProperty(Constants.SYS_PROP_MOD_VERSION); 
  return (modVer == null || modVer.length() == 0 ? "Unknown" : modVer); 
} 

因此常数是这样的:

代码语言:javascript
复制
public static final String SYS_PROP_MOD_VERSION = "ro.modversion"; 

下面是getSystemProperty();

代码语言:javascript
复制
public static String getSystemProperty(String propName){
            String line;
            BufferedReader input = null;
    try
    {
            Process p = Runtime.getRuntime().exec("getprop " + propName);
        input = new BufferedReader(new InputStreamReader(p.getInputStream()), 1024);
        line = input.readLine();
        input.close();
    }
    catch (IOException ex)
    {
            Log.e(TAG, "Unable to read sysprop " + propName, ex);
            return null;
    }
    finally
    {
            if(input != null)
            {
                            try
                            {
                                    input.close();
                            }
                            catch (IOException e)
                            {
                                    Log.e(TAG, "Exception while closing InputStream", e);
                            }
            }
    }
    return line;
}

有CM的人能帮我运行这个吗?

顺便说一句。小心,这是GPL代码。就我而言,我不能使用它。有没有更简单的或者非GPL的方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-10 06:58:35

虽然我认为rom信息是由rom开发人员提供的prop文件提供的,但Cyanogen-Updater项目中的代码具有此功能,因此我不确定它是否能通用。我还没有彻底调查过这一点,但是你可以看看它的来源并弄清楚。

票数 4
EN

Stack Overflow用户

发布于 2009-10-10 08:41:22

我不知道提供商是否有明确的指示器,但您可以查看/proc/version的内容。以下是CyanogenMod 4.0.4的输出:

shade Linux版本2.6.29.6-cm4 (

@toxygen) (gcc版本4.4.0 (GCC) ) #8 PREEMPT Fri Aug 28 20:30:25美国东部夏令时2009

这里的提示是"cm4“后缀,它(我相信)代表CyanogenMod 4(加上与众不同的user@Host位,尽管不太清楚)。为了便于比较,下面是运行1.6版本的仿真器:

Linux版本2.6.27-00110-g132305e (mikechan@cheetara.corp.google.com) (gcc版本4.2.1) #6 Mon Feb 2 12:47:38 PST 2009PST

您还可以检查android.os.Build的值。关于Build.TYPE的信息不多,但我假设类型"eng“代表官方构建,类型"user”代表自制构建,所以这也可能是有用的。

票数 5
EN

Stack Overflow用户

发布于 2012-04-03 05:20:56

自定义V6倾向于覆盖Build.DISPLAY,我刚刚用CheckRom REVOHD V6检查过了,它起作用了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1547236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档