def restart_adbd()

in benchmarking/platforms/android/adb.py [0:0]


    def restart_adbd(self, root=False, silent=False):
        user = self.get_user()
        if user is not None:
            try:
                if root and user != "root":
                    if not silent:
                        getLogger().info("Restarting adbd with root privilege.")
                    self.run(["root"], retry=1, silent=True)
                elif not root and user == "root":
                    if not silent:
                        getLogger().info("Restarting adbd with nonroot privilege.")
                    self.run(["unroot"], retry=1, silent=True)
                else:
                    return True  # no-op

                # Check if change worked
                user = self.get_user()
                if not silent:
                    getLogger().info(f"adbd user is now: {user}.")
                return user == "root" if root else user != "root"
            except Exception:
                err_text = f"Error while restarting adbd with {'non' if not root else ''}root privilege."
                if silent:
                    # still log error but no alert if in silent mode
                    getLogger().error(err_text, exc_info=True)

                else:
                    getLogger().critical(err_text, exc_info=True)
        return False