diff -r fb70ea8b7b2d Lib/platform.py --- a/Lib/platform.py Tue Apr 26 09:31:11 2016 +0300 +++ b/Lib/platform.py Tue Apr 26 09:30:40 2016 +0200 @@ -646,6 +646,36 @@ # If that also doesn't work return the default values return release, versioninfo, machine +_android_ver = None + +def android_ver(release='', sdk=''): + """ Get android version information and return it as a tuple. + + Entries which cannot be determined are set to the parameter values + which default to ''. All tuple entries are strings. + """ + + global _android_ver + if _android_ver is None: + properties = '/system/build.prop' + if os.path.isfile(properties): + import configparser + from itertools import chain + try: + with open(properties) as f: + cfg = configparser.ConfigParser(strict=False, + allow_no_value=True) + cfg.read_file(chain(['[prop]'], f), f.name) + if cfg.has_section('prop'): + release = \ + cfg['prop'].get('ro.build.version.release', '') + sdk = cfg['prop'].get('ro.build.version.sdk', '') + except (OSError, configparser.Error): + pass + _android_ver = (release, sdk) + + return _android_ver + def _java_getprop(name, default): from java.lang import System