/// <summary>
        /// 以SU权限执行Shell命令
        /// </summary>
        /// <param name="device"></param>
        /// <param name="sh"></param>
        /// <param name="suCheck"></param>
        /// <exception cref="Exceptions.DeviceHasNoSuException"></exception>
        /// <returns></returns>
        public static Tuple <Output, int> Su(this IDevice device, string sh, bool suCheck = true)
        {
            if (suCheck)
            {
                device.ThrowIfHaveNoSu();
            }
            var cmd    = new SuCommand(device, sh);
            var result = cmd.Execute();

            return(new Tuple <Output, int>(result.Output, result.ExitCode));
        }
        /// <summary>
        /// 检查是否有SU权限
        /// </summary>
        /// <param name="device"></param>
        /// <returns></returns>
        public static bool HaveSU(this IDevice device)
        {
            var command = new SuCommand(device, "ls");

            return(command.Execute().ExitCode == 0);
        }