def get_profiles(self, profile_base="/data/b2g/mozilla", timeout=None):
        """Return a list of paths to gecko profiles on the device,

        :param timeout: Timeout of each adb command run
        :param profile_base: Base directory containing the profiles.ini file
        """

        rv = {}

        if timeout is None:
            timeout = self._timeout

        profile_path = posixpath.join(profile_base, "profiles.ini")
        try:
            proc = self.shell("cat %s" % profile_path, timeout=timeout)
            config = ConfigParser.ConfigParser()
            config.readfp(proc.stdout_file)
            for section in config.sections():
                items = dict(config.items(section))
                if "name" in items and "path" in items:
                    path = items["path"]
                    if "isrelative" in items and int(items["isrelative"]):
                        path = posixpath.normpath("%s/%s" % (profile_base, path))
                    rv[items["name"]] = path
        finally:
            proc.stdout_file.close()
            proc.stderr_file.close()

        return rv
Return a list of paths to gecko profiles on the device,

        :param timeout: Timeout of each adb command run
        :param profile_base: Base directory containing the profiles.ini file