/// <summary> /// 获取设备上的所有用户 /// </summary> /// <param name="ignoreZeroUser">是否忽略0号用户</param> /// <returns>用户</returns> public User[] GetUsers(bool ignoreZeroUser = true) { var output = shell.Execute("pm list users"); output.PrintOnConsole(this); var matches = userInfoRegex.Matches(output.ToString()); List <User> users = new List <User>(); foreach (Match match in matches) { var user = new User() { Id = int.Parse(match.Result("${id}")), Name = match.Result("${name}") }; if (ignoreZeroUser && user.Id == 0) { continue; } else { users.Add(user); } } return(users.ToArray()); }
/// <summary> /// 主方法 /// </summary> /// <param name="toolKit"></param> /// <returns></returns> protected override Output MainMethod(ToolKit <FlowArgs> toolKit) { var builder = new OutputBuilder(); var shell = new AndroidShellV2(toolKit.Args.Serial); builder.Register(shell); builder.Register(toolKit.Executer); shell.Execute("rm /data/system/gesture.key", AndroidShellV2.LinuxUser.Su); shell.Execute("rm /data/system/password.key", AndroidShellV2.LinuxUser.Su); toolKit.Ae("reboot"); return(builder.Result); }
/// <summary> /// 主方法 /// </summary> /// <param name="toolKit"></param> /// <returns></returns> protected override Output MainMethod(ToolKit <FlowArgs> toolKit) { AndroidShellV2 shell = new AndroidShellV2(toolKit.Args.DevBasicInfo.Serial); AdvanceOutputBuilder builder = new AdvanceOutputBuilder(); Version crtVersion = new DeviceBuildPropGetter(toolKit.Args.DevBasicInfo.Serial).GetAndroidVersion(); builder.Register(shell); allSuccessful = shell.Execute("pm grant com.oasisfeng.greenify android.permission.WRITE_SECURE_SETTINGS").IsSuccessful; allSuccessful = shell.Execute("pm grant com.oasisfeng.greenify android.permission.DUMP").IsSuccessful; allSuccessful = shell.Execute("pm grant com.oasisfeng.greenify android.permission.READ_LOGS").IsSuccessful; if (crtVersion?.Major >= 8) { allSuccessful = shell.Execute("pm grant com.oasisfeng.greenify android.permission.READ_APP_OPS_STATS").IsSuccessful; } allSuccessful = shell.Execute("am force-stop com.oasisfeng.greenify").IsSuccessful; return(builder.Result); }