Android – How to find out who the ROM provider is

android

I have an automatic bug reporting facility in my app that includes useful information for debugging.

One thing that I would like to include is the ROM provider. In particular I would like to know if the user is running a custom ROM and which, preferably even with the version number.

Any idea how to retrieve this information programmatically?

— Taken from the Quintin (see below)

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

public static String getReadableModVersion() { 
  String modVer = getSystemProperty(Constants.SYS_PROP_MOD_VERSION); 
  return (modVer == null || modVer.length() == 0 ? "Unknown" : modVer); 
} 

Whereby the constant is this:

public static final String SYS_PROP_MOD_VERSION = "ro.modversion"; 

And here is the getSystemProperty();

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;
}

Could anybody with a CM ROM can run this for me?

Btw. Careful, this is GPL code. I for one can not use it.
Any easier or non-GPL way?

Best Solution

There is code in the Cyanogen-Updater project that has this functionality, although I think the rom information is provided by a prop file provided by the rom developer so i'm not sure if it will work universally. I haven't investigated this thoroughly, but you can take a look at the source and figure it out.

Related Question