Compare commits
160 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2e151c7137 | ||
|
|
84d6b14e36 | ||
|
|
97d25c8e9c | ||
|
|
82cf72c677 | ||
|
|
3777b9237b | ||
|
|
2ed7034284 | ||
|
|
98dc7f4738 | ||
|
|
12efbac58a | ||
|
|
00cfc35102 | ||
|
|
31d352a79e | ||
|
|
753e1620ed | ||
|
|
597caad073 | ||
|
|
5b04c0feeb | ||
|
|
0d0ce30e65 | ||
|
|
5117435c8a | ||
|
|
383e721f4b | ||
|
|
1aaa19a969 | ||
|
|
770df54403 | ||
|
|
3e67b331ef | ||
|
|
26442e9516 | ||
|
|
3cd715afd9 | ||
|
|
0ecdaab240 | ||
|
|
801ec1a874 | ||
|
|
ebf0f9372b | ||
|
|
06c534dc50 | ||
|
|
04289885c2 | ||
|
|
8e7b9490de | ||
|
|
cec1ff48fd | ||
|
|
85fad7d3ad | ||
|
|
028c44ba64 | ||
|
|
7923adb4fb | ||
|
|
4b9d00a042 | ||
|
|
0df0384f96 | ||
|
|
418a5ebc33 | ||
|
|
43e2343676 | ||
|
|
5402dadbd9 | ||
|
|
8e3faf4682 | ||
|
|
26db46e844 | ||
|
|
88bbbb2ced | ||
|
|
d02505b172 | ||
|
|
cbd54f7319 | ||
|
|
258c251567 | ||
|
|
1f851470e0 | ||
|
|
0070e44917 | ||
|
|
596e126d2b | ||
|
|
5a6ccf423a | ||
|
|
efadb70d72 | ||
|
|
b1595931c4 | ||
|
|
1e3a9a5a84 | ||
|
|
e0e9a68cb9 | ||
|
|
19c90f0ad4 | ||
|
|
bcc7499807 | ||
|
|
0716ca27c4 | ||
|
|
652d7cb290 | ||
|
|
919286f85c | ||
|
|
3be98530b6 | ||
|
|
b4e21a9d5b | ||
|
|
6d3885dc48 | ||
|
|
8aff424ccc | ||
|
|
f50ebdd28c | ||
|
|
5608565275 | ||
|
|
9f783b3b1a | ||
|
|
02156985aa | ||
|
|
a81cb1e496 | ||
|
|
688bf0a274 | ||
|
|
5d84133c3e | ||
|
|
8e9e5cfb88 | ||
|
|
3d19cab51c | ||
|
|
e8a3f5e34e | ||
|
|
e1ed9af1d7 | ||
|
|
d154d67c57 | ||
|
|
fb9d4ab0d3 | ||
|
|
2f34ac8848 | ||
|
|
9e352c3144 | ||
|
|
b07e6bc12c | ||
|
|
f8ee9b493a | ||
|
|
d66e6f55d3 | ||
|
|
25358d3a6d | ||
|
|
8088c2cf11 | ||
|
|
3b684142e9 | ||
|
|
e0945a71ac | ||
|
|
a63b8b2a5c | ||
|
|
69dfd9ca00 | ||
|
|
ebacfc0e42 | ||
|
|
9a3e9617b5 | ||
|
|
20607bf3b4 | ||
|
|
063b0d05d5 | ||
|
|
306e2eb19b | ||
|
|
119a95406e | ||
|
|
2bd4bda513 | ||
|
|
4126c82f4d | ||
|
|
d35fed0217 | ||
|
|
111d3a7176 | ||
|
|
5e235c5125 | ||
|
|
9ccf7811e5 | ||
|
|
93d606bcac | ||
|
|
8d0eb4a84d | ||
|
|
6f20154599 | ||
|
|
bbe84000b7 | ||
|
|
30ead79ed1 | ||
|
|
97b6da3abe | ||
|
|
6c2a7413b4 | ||
|
|
744ce530dc | ||
|
|
8a299748aa | ||
|
|
e76f619311 | ||
|
|
b3ea6cacae | ||
|
|
93a4629739 | ||
|
|
93263a4afe | ||
|
|
23990935d1 | ||
|
|
bf41013add | ||
|
|
0acc36feed | ||
|
|
3301227163 | ||
|
|
45d1981451 | ||
|
|
f22636d81f | ||
|
|
bd8e94c210 | ||
|
|
cac88cae92 | ||
|
|
4370e922ef | ||
|
|
caa4f78943 | ||
|
|
d3b988546f | ||
|
|
cbdde48344 | ||
|
|
3b830d9f67 | ||
|
|
7572ddb84e | ||
|
|
7c6f05361e | ||
|
|
5b54f195f1 | ||
|
|
bd71e07b19 | ||
|
|
5b5ce78471 | ||
|
|
c96a98b38a | ||
|
|
b0bb41732d | ||
|
|
c6ef62c6ca | ||
|
|
0b04783962 | ||
|
|
5fab216798 | ||
|
|
a37c843a99 | ||
|
|
222edcd6a8 | ||
|
|
130140727b | ||
|
|
5ec2f260fc | ||
|
|
a7ad7c0a83 | ||
|
|
bd511d28a8 | ||
|
|
75a75bd627 | ||
|
|
0bc0f6668a | ||
|
|
f72c6b8d95 | ||
|
|
3952931831 | ||
|
|
9346b75916 | ||
|
|
b9e98894e9 | ||
|
|
c2b4fb499c | ||
|
|
e040e36564 | ||
|
|
459a496bbb | ||
|
|
e8fcae997b | ||
|
|
9912af4acc | ||
|
|
f243853fca | ||
|
|
fc98d61304 | ||
|
|
d38af14ed4 | ||
|
|
17165c35a9 | ||
|
|
5e30e3a22c | ||
|
|
bba48c5dc5 | ||
|
|
5d75edaf63 | ||
|
|
62d9187cfa | ||
|
|
cf1dda5e5b | ||
|
|
a5f6590019 | ||
|
|
b7cd6c1cb4 | ||
|
|
452e733b3a |
@@ -2,5 +2,6 @@
|
||||
"ExpandedNodes": [
|
||||
""
|
||||
],
|
||||
"SelectedNode": "\\Sideloader.cs",
|
||||
"PreviewInSolutionExplorer": false
|
||||
}
|
||||
BIN
.vs/slnx.sqlite
364
ADB.cs
@@ -2,7 +2,9 @@
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace AndroidSideloader
|
||||
@@ -12,16 +14,28 @@ namespace AndroidSideloader
|
||||
class ADB
|
||||
{
|
||||
static Process adb = new Process();
|
||||
public static string adbFolderPath = Environment.CurrentDirectory + "\\adb";
|
||||
public static string adbFolderPath = "C:\\RSL\\2.8.2\\ADB";
|
||||
public static string adbFilePath = adbFolderPath + "\\adb.exe";
|
||||
public static string DeviceID = "";
|
||||
|
||||
public static string package = "";
|
||||
public static ProcessOutput RunAdbCommandToString(string command)
|
||||
{
|
||||
Properties.Settings.Default.ADBFolder = adbFolderPath;
|
||||
Properties.Settings.Default.ADBPath = adbFilePath;
|
||||
Properties.Settings.Default.Save();
|
||||
if (DeviceID.Length > 1)
|
||||
{
|
||||
command = $" -s {DeviceID} {command}";
|
||||
}
|
||||
if (!command.Contains("dumpsys") && !command.Contains("shell pm list packages") && !command.Contains("KEYCODE_WAKEUP"))
|
||||
{
|
||||
|
||||
Logger.Log($"Running command {command}");
|
||||
string logcmd = command;
|
||||
|
||||
if (logcmd.Contains(Environment.CurrentDirectory))
|
||||
logcmd = logcmd.Replace($"{Environment.CurrentDirectory}", $"CurrentDirectory");
|
||||
Logger.Log($"Running command: {logcmd}");
|
||||
}
|
||||
adb.StartInfo.FileName = adbFilePath;
|
||||
adb.StartInfo.Arguments = command;
|
||||
adb.StartInfo.RedirectStandardError = true;
|
||||
@@ -30,7 +44,6 @@ namespace AndroidSideloader
|
||||
adb.StartInfo.CreateNoWindow = true;
|
||||
adb.StartInfo.UseShellExecute = false;
|
||||
adb.StartInfo.WorkingDirectory = adbFolderPath;
|
||||
|
||||
adb.Start();
|
||||
adb.StandardInput.WriteLine(command);
|
||||
adb.StandardInput.Flush();
|
||||
@@ -40,22 +53,53 @@ namespace AndroidSideloader
|
||||
string error = "";
|
||||
|
||||
try
|
||||
{
|
||||
{
|
||||
output = adb.StandardOutput.ReadToEnd();
|
||||
error = adb.StandardError.ReadToEnd();
|
||||
}
|
||||
catch { }
|
||||
|
||||
adb.WaitForExit();
|
||||
Logger.Log(output);
|
||||
if (command.Contains("connect"))
|
||||
{
|
||||
bool graceful = adb.WaitForExit(3000); //Wait 3 secs.
|
||||
if (!graceful)
|
||||
{
|
||||
adb.Kill();
|
||||
}
|
||||
}
|
||||
else
|
||||
adb.WaitForExit();
|
||||
if (error.Contains("ADB_VENDOR_KEYS") && !Properties.Settings.Default.adbdebugwarned)
|
||||
{
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.\nPlease note that even if you have done this\nbefore it will reset itself from time to time.\n\nPress CANCEL if you want to disable this prompt (FOR DEBUGGING ONLY, NOT RECOMMENDED).", "ADB Debugging not enabled.", MessageBoxButtons.OKCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
Properties.Settings.Default.adbdebugwarned = true;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
else
|
||||
ADB.WakeDevice();
|
||||
}
|
||||
if (error.Contains("not enough storage space"))
|
||||
{
|
||||
FlexibleMessageBox.Show("There is not enough room on your device to install this package. Please clear AT LEAST 2x the amount of the app you are trying to install.");
|
||||
}
|
||||
if (!output.Contains("version") && !output.Contains("KEYCODE_WAKEUP") && !output.Contains("Filesystem") && !output.Contains("package:") && !output.Equals(null))
|
||||
Logger.Log(output);
|
||||
Logger.Log(error);
|
||||
return new ProcessOutput(output, error);
|
||||
}
|
||||
public static ProcessOutput RunAdbCommandToStringWOADB(string result, string path)
|
||||
{
|
||||
|
||||
string command = result;
|
||||
Logger.Log($"Running command {command}");
|
||||
Properties.Settings.Default.ADBFolder = adbFolderPath;
|
||||
Properties.Settings.Default.ADBPath = adbFilePath;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
string logcmd = command;
|
||||
if (logcmd.Contains(Environment.CurrentDirectory))
|
||||
logcmd = logcmd.Replace($"{Environment.CurrentDirectory}", $"CurrentDirectory");
|
||||
Logger.Log($"Running command: {logcmd}");
|
||||
|
||||
adb.StartInfo.FileName = "cmd.exe";
|
||||
adb.StartInfo.RedirectStandardError = true;
|
||||
adb.StartInfo.RedirectStandardInput = true;
|
||||
@@ -74,23 +118,112 @@ namespace AndroidSideloader
|
||||
|
||||
try
|
||||
{
|
||||
output += adb.StandardOutput.ReadToEnd();
|
||||
error += adb.StandardError.ReadToEnd();
|
||||
output += adb.StandardOutput.ReadToEnd();
|
||||
error += adb.StandardError.ReadToEnd();
|
||||
}
|
||||
catch { }
|
||||
if (command.Contains("connect"))
|
||||
{
|
||||
bool graceful = adb.WaitForExit(3000);
|
||||
if (!graceful)
|
||||
{
|
||||
adb.Kill();
|
||||
}
|
||||
else
|
||||
adb.WaitForExit();
|
||||
}
|
||||
else if (command.Contains("install"))
|
||||
{
|
||||
bool graceful = adb.WaitForExit(120000);
|
||||
if (!graceful)
|
||||
{
|
||||
adb.Kill();
|
||||
}
|
||||
else
|
||||
adb.WaitForExit();
|
||||
}
|
||||
|
||||
if (error.Contains("ADB_VENDOR_KEYS") && Properties.Settings.Default.adbdebugwarned)
|
||||
{
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.\nPlease note that even if you have done this\nbefore it will reset itself from time to time.\n\nPress CANCEL if you want to disable this prompt (FOR DEBUGGING ONLY, NOT RECOMMENDED).", "ADB Debugging not enabled.", MessageBoxButtons.OKCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
Properties.Settings.Default.adbdebugwarned = true;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
else
|
||||
ADB.WakeDevice();
|
||||
}
|
||||
Logger.Log(output);
|
||||
Logger.Log(error);
|
||||
return new ProcessOutput(output, error);
|
||||
}
|
||||
public static ProcessOutput RunCommandToString(string result, string path = "")
|
||||
{
|
||||
string command = result;
|
||||
Properties.Settings.Default.ADBFolder = adbFolderPath;
|
||||
Properties.Settings.Default.ADBPath = adbFilePath;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
adb.WaitForExit();
|
||||
string logcmd = command;
|
||||
if (logcmd.Contains(Environment.CurrentDirectory))
|
||||
logcmd = logcmd.Replace($"{Environment.CurrentDirectory}", $"CurrentDirectory");
|
||||
Logger.Log($"Running command: {logcmd}");
|
||||
adb.StartInfo.FileName = @"C:\Windows\System32\cmd.exe";
|
||||
adb.StartInfo.Arguments = command;
|
||||
adb.StartInfo.RedirectStandardError = true;
|
||||
adb.StartInfo.RedirectStandardInput = true;
|
||||
adb.StartInfo.RedirectStandardOutput = true;
|
||||
adb.StartInfo.CreateNoWindow = true;
|
||||
adb.StartInfo.UseShellExecute = false;
|
||||
adb.StartInfo.WorkingDirectory = Path.GetDirectoryName(path);
|
||||
adb.Start();
|
||||
adb.StandardInput.WriteLine(command);
|
||||
adb.StandardInput.Flush();
|
||||
adb.StandardInput.Close();
|
||||
|
||||
|
||||
string output = "";
|
||||
string error = "";
|
||||
|
||||
try
|
||||
{
|
||||
output += adb.StandardOutput.ReadToEnd();
|
||||
error += adb.StandardError.ReadToEnd();
|
||||
}
|
||||
catch { }
|
||||
if (command.Contains("connect"))
|
||||
{
|
||||
bool graceful = adb.WaitForExit(3000);
|
||||
if (!graceful)
|
||||
{
|
||||
adb.Kill();
|
||||
}
|
||||
}
|
||||
else
|
||||
adb.WaitForExit();
|
||||
|
||||
if (error.Contains("ADB_VENDOR_KEYS") && Properties.Settings.Default.adbdebugwarned)
|
||||
{
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.\nPlease note that even if you have done this\nbefore it will reset itself from time to time.\n\nPress CANCEL if you want to disable this prompt (FOR DEBUGGING ONLY, NOT RECOMMENDED).", "ADB Debugging not enabled.", MessageBoxButtons.OKCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
Properties.Settings.Default.adbdebugwarned = true;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
else
|
||||
ADB.WakeDevice();
|
||||
}
|
||||
Logger.Log(output);
|
||||
Logger.Log(error);
|
||||
return new ProcessOutput(output, error);
|
||||
}
|
||||
|
||||
|
||||
public static ProcessOutput UninstallPackage(string package)
|
||||
public static ProcessOutput UninstallPackage(string package)
|
||||
{
|
||||
WakeDevice();
|
||||
ProcessOutput output = new ProcessOutput("", "");
|
||||
output += RunAdbCommandToString($"shell pm uninstall -k --user 0 {package}");
|
||||
output += RunAdbCommandToString($"shell pm uninstall {package}");
|
||||
return output;
|
||||
}
|
||||
@@ -140,131 +273,161 @@ namespace AndroidSideloader
|
||||
return $"Total space: {String.Format("{0:0.00}", (double)totalSize / 1000)}GB\nUsed space: {String.Format("{0:0.00}", (double)usedSize / 1000)}GB\nFree space: {String.Format("{0:0.00}", (double)freeSize / 1000)}GB";
|
||||
}
|
||||
|
||||
public static bool wirelessadbON;
|
||||
|
||||
public static void WakeDevice()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.IPAddress))
|
||||
string devicesout = RunAdbCommandToString("shell input keyevent KEYCODE_WAKEUP").Output;
|
||||
if (!devicesout.Contains("found") && !Properties.Settings.Default.nodevicemode)
|
||||
{
|
||||
ADB.RunAdbCommandToString(Properties.Settings.Default.IPAddress);
|
||||
string response = ADB.RunAdbCommandToString(Properties.Settings.Default.IPAddress).Output;
|
||||
if (response.Contains("refused"))
|
||||
if (wirelessadbON || !String.IsNullOrEmpty(Properties.Settings.Default.IPAddress))
|
||||
{
|
||||
DialogResult dialogResult = MessageBox.Show("It seems you have rebooted your Quest, Rookie's wireless ADB will persist past PC reboot, but not for Quest reboot.\n\nHave you assigned your Quest a static IP in your router configuration? If you no longer want to use Wireless ADB just hit cancel!", "DEVICE WAS REBOOTED", MessageBoxButtons.YesNoCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
return;
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
MessageBox.Show("Connect your Quest to USB so we can reconnect to your saved IP address!");
|
||||
ADB.RunAdbCommandToString("devices");
|
||||
Thread.Sleep(250);
|
||||
ADB.RunAdbCommandToString("disconnect");
|
||||
Thread.Sleep(50);
|
||||
ADB.RunAdbCommandToString("connect");
|
||||
Thread.Sleep(50);
|
||||
ADB.RunAdbCommandToString("tcpip 5555");
|
||||
Thread.Sleep(500);
|
||||
ADB.RunAdbCommandToString(Properties.Settings.Default.IPAddress);
|
||||
}
|
||||
if (dialogResult == DialogResult.No)
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
MessageBox.Show("You must repeat the entire connection process, press OK to begin.", "Reconfigure Wireless ADB", MessageBoxButtons.OK);
|
||||
ADB.RunAdbCommandToString("devices");
|
||||
ADB.RunAdbCommandToString("tcpip 5555");
|
||||
MessageBox.Show("Press OK to get your Quest's local IP address.", "Obtain local IP address", MessageBoxButtons.OK);
|
||||
Thread.Sleep(1000);
|
||||
string input = ADB.RunAdbCommandToString("shell ip route").Output;
|
||||
RunAdbCommandToString(Properties.Settings.Default.IPAddress);
|
||||
string response = RunAdbCommandToString(Properties.Settings.Default.IPAddress).Output;
|
||||
|
||||
|
||||
string[] strArrayOne = new string[] { "" };
|
||||
strArrayOne = input.Split(' ');
|
||||
if (strArrayOne[0].Length > 7)
|
||||
if (response.Contains("cannot") || String.IsNullOrEmpty(response))
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
string IPaddr = strArrayOne[8];
|
||||
string IPcmnd = "connect " + IPaddr + ":5555";
|
||||
MessageBox.Show($"Your Quest's local IP address is: {IPaddr}\n\nPlease disconnect your Quest then wait 2 seconds.\nOnce it is disconnected hit OK", "", MessageBoxButtons.OK);
|
||||
Thread.Sleep(2000);
|
||||
ADB.RunAdbCommandToString(IPcmnd);
|
||||
Properties.Settings.Default.IPAddress = IPcmnd;
|
||||
Properties.Settings.Default.Save();
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show("RSL can't connect to your Quest IP, this is usually because you have rebooted your Quest or the Quest IP has changed. Set a static IP to prevent this in the future(recommended)!\n\n\nYES = Static IP is set, do not detect my IP again.\nNO = I have not set a static IP, detect my IP again.\nCANCEL = I want to disable Wireless ADB.", "DEVICE REBOOTED/IP HAS CHANGED!", MessageBoxButtons.YesNoCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
wirelessadbON = false;
|
||||
Properties.Settings.Default.IPAddress = "";
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
MessageBox.Show($"Connected!!", "", MessageBoxButtons.OK);
|
||||
Program.form.ChangeTitlebarToDevice();
|
||||
|
||||
}
|
||||
else if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
FlexibleMessageBox.Show("Connect your Quest to USB so we can reconnect to your saved IP address!");
|
||||
RunAdbCommandToString("devices");
|
||||
Thread.Sleep(250);
|
||||
RunAdbCommandToString("disconnect");
|
||||
Thread.Sleep(50);
|
||||
RunAdbCommandToString("connect");
|
||||
Thread.Sleep(50);
|
||||
RunAdbCommandToString("tcpip 5555");
|
||||
Thread.Sleep(500);
|
||||
RunAdbCommandToString(Properties.Settings.Default.IPAddress);
|
||||
MessageBox.Show($"Connected! We can now automatically enable wake on wifi.\n(This makes it so Rookie can work wirelessly even if the device has entered \"sleep mode\" at extremely little battery cost (~1% per full charge))", "Enable Wake on Wifi?", MessageBoxButtons.YesNo);
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
|
||||
RunAdbCommandToString("shell settings put global wifi_wakeup_available 1");
|
||||
RunAdbCommandToString("shell settings put global wifi_wakeup_enabled 1");
|
||||
Program.form.ChangeTitlebarToDevice();
|
||||
return;
|
||||
}
|
||||
if (dialogResult == DialogResult.No)
|
||||
{
|
||||
|
||||
Program.form.ChangeTitlebarToDevice();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (dialogResult == DialogResult.No)
|
||||
{
|
||||
FlexibleMessageBox.Show("You must repeat the entire connection process, press OK to begin.", "Reconfigure Wireless ADB", MessageBoxButtons.OK);
|
||||
RunAdbCommandToString("devices");
|
||||
RunAdbCommandToString("tcpip 5555");
|
||||
FlexibleMessageBox.Show("Press OK to get your Quest's local IP address.", "Obtain local IP address", MessageBoxButtons.OK);
|
||||
Thread.Sleep(1000);
|
||||
string input = RunAdbCommandToString("shell ip route").Output;
|
||||
|
||||
Properties.Settings.Default.WirelessADB = true;
|
||||
Properties.Settings.Default.Save();
|
||||
string[] strArrayOne = new string[] { "" };
|
||||
strArrayOne = input.Split(' ');
|
||||
if (strArrayOne[0].Length > 7)
|
||||
{
|
||||
string IPaddr = strArrayOne[8];
|
||||
string IPcmnd = "connect " + IPaddr + ":5555";
|
||||
FlexibleMessageBox.Show($"Your Quest's local IP address is: {IPaddr}\n\nPlease disconnect your Quest then wait 2 seconds.\nOnce it is disconnected hit OK", "", MessageBoxButtons.OK);
|
||||
Thread.Sleep(2000);
|
||||
ADB.RunAdbCommandToString(IPcmnd);
|
||||
Properties.Settings.Default.IPAddress = IPcmnd;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
MessageBox.Show($"Connected! We can now automatically enable wake on wifi.\n(This makes it so Rookie can work wirelessly even if the device has entered \"sleep mode\" at extremely little battery cost (~1% per full charge))", "Enable Wake on Wifi?", MessageBoxButtons.YesNo);
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
|
||||
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_available 1");
|
||||
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_enabled 1");
|
||||
Program.form.ChangeTitlebarToDevice();
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("No device connected!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
RunAdbCommandToString("shell input keyevent KEYCODE_WAKEUP");
|
||||
|
||||
}
|
||||
public static ProcessOutput Sideload(string path, string packagename = "")
|
||||
|
||||
|
||||
public static ProcessOutput Sideload(string path = "", string packagename = "")
|
||||
{
|
||||
|
||||
WakeDevice();
|
||||
|
||||
ProcessOutput ret = new ProcessOutput();
|
||||
|
||||
Program.form.ChangeTitle($"Sideloading {path}");
|
||||
ret += RunAdbCommandToString($"install -g -r \"{path}\"");
|
||||
string out2 = ret.Output + ret.Error;
|
||||
if (out2.Contains("failed"))
|
||||
{
|
||||
string BackupFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), $"Rookie Backups");
|
||||
if (out2.Contains("offline"))
|
||||
Logger.Log(out2);
|
||||
if (out2.Contains("offline") && !Properties.Settings.Default.nodevicemode)
|
||||
{
|
||||
DialogResult dialogResult2 = MessageBox.Show("Device is offline. Press Yes to reconnect, or if you don't wish to connect and just want to download the game (we suggest unchecking delete games after install from settings menu) then press No.", "Device offline.", MessageBoxButtons.YesNoCancel);
|
||||
DialogResult dialogResult2 = FlexibleMessageBox.Show("Device is offline. Press Yes to reconnect, or if you don't wish to connect and just want to download the game (requires unchecking \"Delete games after install\" from settings menu) then press No.", "Device offline.", MessageBoxButtons.YesNoCancel);
|
||||
if (dialogResult2 == DialogResult.Yes)
|
||||
ADB.WakeDevice();
|
||||
}
|
||||
if (out2.Contains($"INSTALL_FAILED_UPDATE_INCOMPATIBLE") || out2.Contains("INSTALL_FAILED_VERSION_DOWNGRADE"))
|
||||
if (out2.Contains($"INSTALL_FAILED_UPDATE_INCOMPATIBLE") || out2.Contains("INSTALL_FAILED_VERSION_DOWNGRADE") || out2.Contains("signatures do not match") || out2.Contains("failed to install"))
|
||||
{
|
||||
ret.Error = string.Empty;
|
||||
ret.Output = string.Empty;
|
||||
|
||||
|
||||
MessageBox.Show($"In-place upgrade for {packagename} failed. We will need to upgrade by uninstalling, and keeping savedata isn't guaranteed. Continue?", "UPGRADE FAILED!", MessageBoxButtons.OKCancel);
|
||||
FlexibleMessageBox.Show($"In place upgrade for {packagename} failed. We will need to upgrade by uninstalling, and keeping savedata isn't guaranteed. Continue?", "UPGRADE FAILED!", MessageBoxButtons.OKCancel);
|
||||
|
||||
string date_str = DateTime.Today.ToString("yyyy.MM.dd");
|
||||
string CurrBackups = Path.Combine(BackupFolder, date_str);
|
||||
|
||||
|
||||
MessageBox.Show($"Searching for save files...", "Searching!", MessageBoxButtons.OK);
|
||||
FlexibleMessageBox.Show($"Searching for save files...", "Searching!", MessageBoxButtons.OK);
|
||||
if (Directory.Exists($"/sdcard/Android/data/{packagename}"))
|
||||
{
|
||||
MessageBox.Show($"Trying to backup save to Documents\\Rookie Backups\\{date_str}(year.month.date)\\{packagename}\\data", "Save files found", MessageBoxButtons.OK);
|
||||
FlexibleMessageBox.Show($"Trying to backup save to Documents\\Rookie Backups\\{date_str}(YYYY.MM.DD)\\{packagename}", "Save files found", MessageBoxButtons.OK);
|
||||
Directory.CreateDirectory(CurrBackups);
|
||||
String CurrbackupPaths = CurrBackups + "\\" + packagename + "\\data";
|
||||
Directory.CreateDirectory(CurrbackupPaths);
|
||||
ADB.RunAdbCommandToString($"pull \"/sdcard/Android/data/{packagename} \" \"{CurrbackupPaths}\"");
|
||||
ADB.RunAdbCommandToString($"pull \"/sdcard/Android/data/{packagename}\" \"{CurrBackups}\"");
|
||||
}
|
||||
else
|
||||
{
|
||||
DialogResult dialogResult = MessageBox.Show($"No savedata found! Continue with the uninstall!", "None Found", MessageBoxButtons.OK);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show($"No savedata found! Continue with the uninstall!", "None Found", MessageBoxButtons.OK);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
ADB.WakeDevice();
|
||||
ret += ADB.RunAdbCommandToString("shell pm uninstall " + packagename);
|
||||
ret += ADB.RunAdbCommandToString("shell pm uninstall " + package);
|
||||
ret += RunAdbCommandToString($"install -g -r \"{path}\"");
|
||||
return ret;
|
||||
}
|
||||
ret += RunAdbCommandToString($"install -g -r \"{path}\"");
|
||||
}
|
||||
if (File.Exists($"{Properties.Settings.Default.MainDir}\\Config.Json"))
|
||||
string gamenameforQU = Sideloader.PackageNametoGameName(packagename);
|
||||
if (Properties.Settings.Default.QUturnedon)
|
||||
{
|
||||
if (packagename.Contains("com.*") || Properties.Settings.Default.CurrPckg.Contains("com"))
|
||||
if (gamenameforQU.Contains("-QU") || path.Contains("-QU"))
|
||||
{
|
||||
if (Properties.Settings.Default.CurrPckg.Contains("com"))
|
||||
packagename = Properties.Settings.Default.CurrPckg;
|
||||
Program.form.ChangeTitle("Pushing Custom QU s3 Patch JSON.");
|
||||
string gameName = packagename;
|
||||
packagename = Sideloader.gameNameToPackageName(gameName);
|
||||
|
||||
Program.form.ChangeTitle("Pushing Custom QU S3 Config.JSON.");
|
||||
if (!Directory.Exists($"/sdcard/android/data/{packagename}"))
|
||||
RunAdbCommandToString($"shell mkdir /sdcard/android/data/{packagename}");
|
||||
if (!Directory.Exists($"/sdcard/android/data/{packagename}/private"))
|
||||
@@ -284,29 +447,28 @@ namespace AndroidSideloader
|
||||
Properties.Settings.Default.QUStringF = $"{{\"user_id\":{sum},\"app_id\":\"{sum2}\",";
|
||||
Properties.Settings.Default.Save();
|
||||
string boff = Properties.Settings.Default.QUStringF + Properties.Settings.Default.QUString;
|
||||
File.WriteAllText("config.json", boff);
|
||||
File.WriteAllText($"{Properties.Settings.Default.MainDir}\\config.json", boff);
|
||||
string blank = "";
|
||||
File.WriteAllText("delete_settings", blank);
|
||||
ret += ADB.RunAdbCommandToString($"push \"{Environment.CurrentDirectory}\\delete_settings\" /sdcard/android/data/{packagename}/private/delete_settings");
|
||||
ret += ADB.RunAdbCommandToString($"push \"{Environment.CurrentDirectory}\\config.json\" /sdcard/android/data/{packagename}/private/config.json");
|
||||
|
||||
|
||||
File.WriteAllText($"{Properties.Settings.Default.MainDir}\\delete_settings", blank);
|
||||
ret += ADB.RunAdbCommandToString($"push \"{Properties.Settings.Default.MainDir}\\delete_settings\" /sdcard/android/data/{packagename}/private/delete_settings");
|
||||
ret += ADB.RunAdbCommandToString($"push \"{Properties.Settings.Default.MainDir}\\config.json\" /sdcard/android/data/{packagename}/private/config.json");
|
||||
}
|
||||
else
|
||||
ret.Output += "QU Settings could not be automatically applied.\nPlease restart Rookie to refresh installed apps.\nThen select the app from the installed apps (Dropdown list above Device ID).\nThen click Install QU Setting";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Program.form.ChangeTitle("Sideload done");
|
||||
Program.form.ChangeTitle("");
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static ProcessOutput CopyOBB(string path)
|
||||
{
|
||||
WakeDevice();
|
||||
if (SideloaderUtilities.CheckFolderIsObb(path))
|
||||
return RunAdbCommandToString($"push \"{path}\" /sdcard/Android/obb");
|
||||
|
||||
string folder = Path.GetFileName(path);
|
||||
if (!folder.Contains("+") && !folder.Contains("_") && folder.Contains("."))
|
||||
{
|
||||
return RunAdbCommandToString($"push \"{path}\" \"/sdcard/Android/obb\"");
|
||||
}
|
||||
return new ProcessOutput();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
@@ -27,7 +28,6 @@
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
@@ -146,6 +146,7 @@
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
@@ -210,6 +211,8 @@
|
||||
<Compile Include="SelectFolder.cs" />
|
||||
<Compile Include="Utilities\StringUtilities.cs" />
|
||||
<Compile Include="Utilities\GeneralUtilities.cs" />
|
||||
<Compile Include="Utilities\UpdateGameData.cs" />
|
||||
<Compile Include="Utilities\UploadGame.cs" />
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -252,6 +255,7 @@
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<None Include="version" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
@@ -259,6 +263,16 @@
|
||||
<ItemGroup>
|
||||
<Content Include="changelog.txt" />
|
||||
<Content Include="icon.ico" />
|
||||
<Content Include="ChangelogHistory.txt" />
|
||||
<None Include="Resources\battery11.png" />
|
||||
<None Include="Resources\battery.png" />
|
||||
<None Include="Resources\battery1.png" />
|
||||
<None Include="Resources\ajax-loader.gif" />
|
||||
<Content Include="Resources\bluekey.png" />
|
||||
<Content Include="Resources\redkey.png" />
|
||||
<None Include="Resources\greenkey.png" />
|
||||
<None Include="Resources\orangekey.png" />
|
||||
<None Include="Resources\SearchGlass.PNG" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
|
||||
|
||||
58
App.config
@@ -27,7 +27,7 @@
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="userJsonOnGameInstall" serializeAs="String">
|
||||
<value>True</value>
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="CallUpgrade" serializeAs="String">
|
||||
<value>True</value>
|
||||
@@ -51,7 +51,7 @@
|
||||
<value>White</value>
|
||||
</setting>
|
||||
<setting name="FontStyle" serializeAs="String">
|
||||
<value>Microsoft Sans Serif, 9.5pt</value>
|
||||
<value>Microsoft Sans Serif, 11pt</value>
|
||||
</setting>
|
||||
<setting name="BackPicturePath" serializeAs="String">
|
||||
<value />
|
||||
@@ -113,6 +113,60 @@
|
||||
<setting name="CurrPckg" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="ADBFolder" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="WirelessADB" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="CurrentGamename" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="PackageNameToCB" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="EnterKeyInstall" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="DownUpHeld" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="CurrentLogPath" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="CurrentLogName" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="CurrentCrashPath" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="CurrentCrashName" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="QUturnedon" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="QblindOn" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="adbdebugwarned" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="nodevicemode" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="BMBFchecked" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="GamesList" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="UploadedGameList" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="GlobalUsername" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
</AndroidSideloader.Properties.Settings>
|
||||
<AndroidADB.Sideloader.Properties.Settings>
|
||||
<setting name="checkForUpdates" serializeAs="String">
|
||||
|
||||
1729
ChangelogHistory.txt
Normal file
@@ -30,7 +30,7 @@ public class ListViewColumnSorter : IComparer
|
||||
ColumnToSort = 0;
|
||||
|
||||
// Initialize the sort order to 'none'
|
||||
OrderOfSort = SortOrder.None;
|
||||
OrderOfSort = SortOrder.Ascending;
|
||||
|
||||
// Initialize the CaseInsensitiveComparer object
|
||||
ObjectCompare = new CaseInsensitiveComparer();
|
||||
|
||||
@@ -380,6 +380,7 @@ namespace JR.Utils.GUI.Forms
|
||||
//
|
||||
// FlexibleMessageBoxForm
|
||||
//
|
||||
this.TopMost = true;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(260, 102);
|
||||
|
||||
672
MainForm.Designer.cs
generated
4245
MainForm.cs
@@ -28,7 +28,8 @@ namespace AndroidSideloader
|
||||
static void MyHandler(object sender, UnhandledExceptionEventArgs args)
|
||||
{
|
||||
Exception e = (Exception)args.ExceptionObject;
|
||||
File.WriteAllText(Sideloader.CrashLogPath, $"Message: {e.Message}\nData: {e.Data}\nSource: {e.Source}\nTargetSite: {e.TargetSite}");
|
||||
string date_time = DateTime.Now.ToString("dddd, MMMM dd @ hh:mmtt (UTC)");
|
||||
File.WriteAllText(Sideloader.CrashLogPath, $"Date/Time of crash: {date_time}\nMessage: {e.Message}\nData: {e.Data}\nSource: {e.Source}\nTargetSite: {e.TargetSite}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
90
Properties/Resources.Designer.cs
generated
@@ -59,5 +59,95 @@ namespace AndroidSideloader.Properties {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap ajax_loader {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ajax-loader", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap battery {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("battery", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap battery1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("battery1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap battery11 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("battery11", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap bluekey {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("bluekey", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap greenkey {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("greenkey", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap orangekey {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("orangekey", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap redkey {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("redkey", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap SearchGlass {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("SearchGlass", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,4 +117,32 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="orangekey" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\orangekey.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="greenkey" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\greenkey.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="battery1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\battery11.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="battery" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\battery.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="battery11" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\battery1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="SearchGlass" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SearchGlass.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="bluekey" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\bluekey.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="redkey" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\redkey.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ajax-loader" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ajax-loader.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
222
Properties/Settings.Designer.cs
generated
@@ -12,7 +12,7 @@ namespace AndroidSideloader.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
@@ -85,7 +85,7 @@ namespace AndroidSideloader.Properties {
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool userJsonOnGameInstall {
|
||||
get {
|
||||
return ((bool)(this["userJsonOnGameInstall"]));
|
||||
@@ -181,7 +181,7 @@ namespace AndroidSideloader.Properties {
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Microsoft Sans Serif, 9.5pt")]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Microsoft Sans Serif, 11pt")]
|
||||
public global::System.Drawing.Font FontStyle {
|
||||
get {
|
||||
return ((global::System.Drawing.Font)(this["FontStyle"]));
|
||||
@@ -430,5 +430,221 @@ namespace AndroidSideloader.Properties {
|
||||
this["CurrPckg"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string ADBFolder {
|
||||
get {
|
||||
return ((string)(this["ADBFolder"]));
|
||||
}
|
||||
set {
|
||||
this["ADBFolder"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool WirelessADB {
|
||||
get {
|
||||
return ((bool)(this["WirelessADB"]));
|
||||
}
|
||||
set {
|
||||
this["WirelessADB"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string CurrentGamename {
|
||||
get {
|
||||
return ((string)(this["CurrentGamename"]));
|
||||
}
|
||||
set {
|
||||
this["CurrentGamename"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool PackageNameToCB {
|
||||
get {
|
||||
return ((bool)(this["PackageNameToCB"]));
|
||||
}
|
||||
set {
|
||||
this["PackageNameToCB"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool EnterKeyInstall {
|
||||
get {
|
||||
return ((bool)(this["EnterKeyInstall"]));
|
||||
}
|
||||
set {
|
||||
this["EnterKeyInstall"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool DownUpHeld {
|
||||
get {
|
||||
return ((bool)(this["DownUpHeld"]));
|
||||
}
|
||||
set {
|
||||
this["DownUpHeld"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string CurrentLogPath {
|
||||
get {
|
||||
return ((string)(this["CurrentLogPath"]));
|
||||
}
|
||||
set {
|
||||
this["CurrentLogPath"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string CurrentLogName {
|
||||
get {
|
||||
return ((string)(this["CurrentLogName"]));
|
||||
}
|
||||
set {
|
||||
this["CurrentLogName"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string CurrentCrashPath {
|
||||
get {
|
||||
return ((string)(this["CurrentCrashPath"]));
|
||||
}
|
||||
set {
|
||||
this["CurrentCrashPath"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string CurrentCrashName {
|
||||
get {
|
||||
return ((string)(this["CurrentCrashName"]));
|
||||
}
|
||||
set {
|
||||
this["CurrentCrashName"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool QUturnedon {
|
||||
get {
|
||||
return ((bool)(this["QUturnedon"]));
|
||||
}
|
||||
set {
|
||||
this["QUturnedon"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool QblindOn {
|
||||
get {
|
||||
return ((bool)(this["QblindOn"]));
|
||||
}
|
||||
set {
|
||||
this["QblindOn"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool adbdebugwarned {
|
||||
get {
|
||||
return ((bool)(this["adbdebugwarned"]));
|
||||
}
|
||||
set {
|
||||
this["adbdebugwarned"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool nodevicemode {
|
||||
get {
|
||||
return ((bool)(this["nodevicemode"]));
|
||||
}
|
||||
set {
|
||||
this["nodevicemode"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool BMBFchecked {
|
||||
get {
|
||||
return ((bool)(this["BMBFchecked"]));
|
||||
}
|
||||
set {
|
||||
this["BMBFchecked"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string GamesList {
|
||||
get {
|
||||
return ((string)(this["GamesList"]));
|
||||
}
|
||||
set {
|
||||
this["GamesList"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool UploadedGameList {
|
||||
get {
|
||||
return ((bool)(this["UploadedGameList"]));
|
||||
}
|
||||
set {
|
||||
this["UploadedGameList"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string GlobalUsername {
|
||||
get {
|
||||
return ((string)(this["GlobalUsername"]));
|
||||
}
|
||||
set {
|
||||
this["GlobalUsername"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="userJsonOnGameInstall" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="CallUpgrade" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
@@ -42,7 +42,7 @@
|
||||
<Value Profile="(Default)">White</Value>
|
||||
</Setting>
|
||||
<Setting Name="FontStyle" Type="System.Drawing.Font" Scope="User">
|
||||
<Value Profile="(Default)">Microsoft Sans Serif, 9.5pt</Value>
|
||||
<Value Profile="(Default)">Microsoft Sans Serif, 11pt</Value>
|
||||
</Setting>
|
||||
<Setting Name="BackPicturePath" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
@@ -104,5 +104,59 @@
|
||||
<Setting Name="CurrPckg" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="ADBFolder" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="WirelessADB" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="CurrentGamename" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="PackageNameToCB" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="EnterKeyInstall" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="DownUpHeld" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="CurrentLogPath" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="CurrentLogName" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="CurrentCrashPath" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="CurrentCrashName" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="QUturnedon" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="QblindOn" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="adbdebugwarned" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="nodevicemode" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="BMBFchecked" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="GamesList" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="UploadedGameList" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="GlobalUsername" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
139
QuestForm.Designer.cs
generated
@@ -59,12 +59,14 @@ namespace AndroidSideloader
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.ResolutionLabel = new System.Windows.Forms.Label();
|
||||
this.GlobalUsername = new System.Windows.Forms.TextBox();
|
||||
this.FOVy = new System.Windows.Forms.TextBox();
|
||||
this.FOVx = new System.Windows.Forms.TextBox();
|
||||
this.UsrBox = new System.Windows.Forms.TextBox();
|
||||
this.ResBox = new System.Windows.Forms.TextBox();
|
||||
this.TextureResTextBox = new System.Windows.Forms.TextBox();
|
||||
this.QUEnable = new System.Windows.Forms.Button();
|
||||
this.WifiWake = new System.Windows.Forms.Button();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.QURfrRt = new System.Windows.Forms.ComboBox();
|
||||
this.RefreshRateComboBox = new System.Windows.Forms.ComboBox();
|
||||
@@ -127,9 +129,9 @@ namespace AndroidSideloader
|
||||
this.ResetQU.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.ResetQU.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.5F);
|
||||
this.ResetQU.ForeColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.ResetQU.Location = new System.Drawing.Point(191, 555);
|
||||
this.ResetQU.Location = new System.Drawing.Point(189, 555);
|
||||
this.ResetQU.Name = "ResetQU";
|
||||
this.ResetQU.Size = new System.Drawing.Size(167, 23);
|
||||
this.ResetQU.Size = new System.Drawing.Size(168, 28);
|
||||
this.ResetQU.TabIndex = 14;
|
||||
this.ResetQU.Text = "RESET ALL FIELDS";
|
||||
this.ResetQU.UseVisualStyleBackColor = false;
|
||||
@@ -144,7 +146,7 @@ namespace AndroidSideloader
|
||||
this.deleteButton.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
this.deleteButton.Location = new System.Drawing.Point(13, 606);
|
||||
this.deleteButton.Name = "deleteButton";
|
||||
this.deleteButton.Size = new System.Drawing.Size(169, 25);
|
||||
this.deleteButton.Size = new System.Drawing.Size(167, 25);
|
||||
this.deleteButton.TabIndex = 15;
|
||||
this.deleteButton.Text = "DELETE SAVED SETTINGS";
|
||||
this.deleteButton.UseVisualStyleBackColor = false;
|
||||
@@ -157,7 +159,7 @@ namespace AndroidSideloader
|
||||
this.questPics.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.questPics.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.5F);
|
||||
this.questPics.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
this.questPics.Location = new System.Drawing.Point(17, 265);
|
||||
this.questPics.Location = new System.Drawing.Point(15, 265);
|
||||
this.questPics.Name = "questPics";
|
||||
this.questPics.Size = new System.Drawing.Size(165, 25);
|
||||
this.questPics.TabIndex = 5;
|
||||
@@ -171,7 +173,7 @@ namespace AndroidSideloader
|
||||
this.questVids.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.questVids.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.5F);
|
||||
this.questVids.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
this.questVids.Location = new System.Drawing.Point(191, 265);
|
||||
this.questVids.Location = new System.Drawing.Point(189, 265);
|
||||
this.questVids.Name = "questVids";
|
||||
this.questVids.Size = new System.Drawing.Size(167, 25);
|
||||
this.questVids.TabIndex = 6;
|
||||
@@ -212,14 +214,15 @@ namespace AndroidSideloader
|
||||
// button3
|
||||
//
|
||||
this.button3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.button3.Enabled = false;
|
||||
this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.button3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.5F);
|
||||
this.button3.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
this.button3.Location = new System.Drawing.Point(101, 702);
|
||||
this.button3.Location = new System.Drawing.Point(278, 700);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(169, 25);
|
||||
this.button3.Size = new System.Drawing.Size(81, 25);
|
||||
this.button3.TabIndex = 17;
|
||||
this.button3.Text = "CUSTOM USER.JSON";
|
||||
this.button3.Text = "APPLY";
|
||||
this.button3.UseVisualStyleBackColor = false;
|
||||
this.button3.Click += new System.EventHandler(this.button3_Click);
|
||||
//
|
||||
@@ -229,11 +232,11 @@ namespace AndroidSideloader
|
||||
this.label12.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label12.ForeColor = System.Drawing.Color.LightCyan;
|
||||
this.label12.Location = new System.Drawing.Point(93, 656);
|
||||
this.label12.Location = new System.Drawing.Point(121, 656);
|
||||
this.label12.Name = "label12";
|
||||
this.label12.Size = new System.Drawing.Size(185, 20);
|
||||
this.label12.Size = new System.Drawing.Size(128, 20);
|
||||
this.label12.TabIndex = 6;
|
||||
this.label12.Text = "Set custom user.json*";
|
||||
this.label12.Text = "Set username*";
|
||||
this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// label13
|
||||
@@ -242,11 +245,11 @@ namespace AndroidSideloader
|
||||
this.label13.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label13.ForeColor = System.Drawing.Color.LightSteelBlue;
|
||||
this.label13.Location = new System.Drawing.Point(54, 678);
|
||||
this.label13.Location = new System.Drawing.Point(83, 678);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(262, 16);
|
||||
this.label13.Size = new System.Drawing.Size(204, 16);
|
||||
this.label13.TabIndex = 6;
|
||||
this.label13.Text = "*For games that dont work with QU settings.";
|
||||
this.label13.Text = "*For games not released by -QU.";
|
||||
this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// DeleteShots
|
||||
@@ -287,7 +290,7 @@ namespace AndroidSideloader
|
||||
//
|
||||
this.label14.BackColor = System.Drawing.Color.White;
|
||||
this.label14.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.label14.Location = new System.Drawing.Point(-15, 208);
|
||||
this.label14.Location = new System.Drawing.Point(-15, 211);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(394, 3);
|
||||
this.label14.TabIndex = 17;
|
||||
@@ -330,9 +333,9 @@ namespace AndroidSideloader
|
||||
"2",
|
||||
"3",
|
||||
"4"});
|
||||
this.CPUComboBox.Location = new System.Drawing.Point(13, 126);
|
||||
this.CPUComboBox.Location = new System.Drawing.Point(13, 123);
|
||||
this.CPUComboBox.Name = "CPUComboBox";
|
||||
this.CPUComboBox.Size = new System.Drawing.Size(345, 21);
|
||||
this.CPUComboBox.Size = new System.Drawing.Size(346, 26);
|
||||
this.CPUComboBox.TabIndex = 2;
|
||||
this.CPUComboBox.Text = "Select CPU level (0 for default)";
|
||||
//
|
||||
@@ -352,9 +355,9 @@ namespace AndroidSideloader
|
||||
"2",
|
||||
"3",
|
||||
"4"});
|
||||
this.GPUComboBox.Location = new System.Drawing.Point(13, 97);
|
||||
this.GPUComboBox.Location = new System.Drawing.Point(13, 94);
|
||||
this.GPUComboBox.Name = "GPUComboBox";
|
||||
this.GPUComboBox.Size = new System.Drawing.Size(345, 21);
|
||||
this.GPUComboBox.Size = new System.Drawing.Size(346, 26);
|
||||
this.GPUComboBox.TabIndex = 1;
|
||||
this.GPUComboBox.Text = "Select GPU level (0 for default)";
|
||||
//
|
||||
@@ -368,11 +371,10 @@ namespace AndroidSideloader
|
||||
this.label7.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label7.Location = new System.Drawing.Point(13, 532);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(44, 15);
|
||||
this.label7.Size = new System.Drawing.Size(56, 18);
|
||||
this.label7.TabIndex = 3;
|
||||
this.label7.Text = "Fov - X";
|
||||
this.label7.Visible = false;
|
||||
this.label7.Click += new System.EventHandler(this.label7_Click);
|
||||
//
|
||||
// label8
|
||||
//
|
||||
@@ -384,11 +386,10 @@ namespace AndroidSideloader
|
||||
this.label8.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label8.Location = new System.Drawing.Point(191, 532);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(43, 15);
|
||||
this.label8.Size = new System.Drawing.Size(55, 18);
|
||||
this.label8.TabIndex = 3;
|
||||
this.label8.Text = "Fov - Y";
|
||||
this.label8.Visible = false;
|
||||
this.label8.Click += new System.EventHandler(this.label8_Click);
|
||||
//
|
||||
// label9
|
||||
//
|
||||
@@ -398,9 +399,9 @@ namespace AndroidSideloader
|
||||
this.label9.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.label9.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.label9.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label9.Location = new System.Drawing.Point(11, 583);
|
||||
this.label9.Location = new System.Drawing.Point(12, 583);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(79, 15);
|
||||
this.label9.Size = new System.Drawing.Size(95, 18);
|
||||
this.label9.TabIndex = 3;
|
||||
this.label9.Text = "Refresh Rate";
|
||||
this.label9.Visible = false;
|
||||
@@ -413,13 +414,12 @@ namespace AndroidSideloader
|
||||
this.label6.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.label6.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.label6.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label6.Location = new System.Drawing.Point(13, 484);
|
||||
this.label6.Location = new System.Drawing.Point(93, 484);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(142, 15);
|
||||
this.label6.Size = new System.Drawing.Size(173, 18);
|
||||
this.label6.TabIndex = 3;
|
||||
this.label6.Text = "Enter Custom Username";
|
||||
this.label6.Visible = false;
|
||||
this.label6.Click += new System.EventHandler(this.label6_Click);
|
||||
//
|
||||
// label5
|
||||
//
|
||||
@@ -429,13 +429,12 @@ namespace AndroidSideloader
|
||||
this.label5.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.label5.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.label5.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label5.Location = new System.Drawing.Point(12, 434);
|
||||
this.label5.Location = new System.Drawing.Point(16, 434);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(278, 15);
|
||||
this.label5.Size = new System.Drawing.Size(337, 18);
|
||||
this.label5.TabIndex = 3;
|
||||
this.label5.Text = "Custom Resolution Width (Height auto calculated)";
|
||||
this.label5.Visible = false;
|
||||
this.label5.Click += new System.EventHandler(this.label5_Click);
|
||||
//
|
||||
// ResolutionLabel
|
||||
//
|
||||
@@ -445,11 +444,25 @@ namespace AndroidSideloader
|
||||
this.ResolutionLabel.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.ResolutionLabel.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.ResolutionLabel.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.ResolutionLabel.Location = new System.Drawing.Point(11, 183);
|
||||
this.ResolutionLabel.Location = new System.Drawing.Point(9, 180);
|
||||
this.ResolutionLabel.Name = "ResolutionLabel";
|
||||
this.ResolutionLabel.Size = new System.Drawing.Size(163, 15);
|
||||
this.ResolutionLabel.Size = new System.Drawing.Size(153, 18);
|
||||
this.ResolutionLabel.TabIndex = 3;
|
||||
this.ResolutionLabel.Text = "Resolution (p eye, 0=default)";
|
||||
this.ResolutionLabel.Text = "Resolution (0=default)";
|
||||
//
|
||||
// GlobalUsername
|
||||
//
|
||||
this.GlobalUsername.BackColor = global::AndroidSideloader.Properties.Settings.Default.TextBoxColor;
|
||||
this.GlobalUsername.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "TextBoxColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.GlobalUsername.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.GlobalUsername.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.GlobalUsername.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.GlobalUsername.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.GlobalUsername.Location = new System.Drawing.Point(12, 701);
|
||||
this.GlobalUsername.Name = "GlobalUsername";
|
||||
this.GlobalUsername.Size = new System.Drawing.Size(262, 24);
|
||||
this.GlobalUsername.TabIndex = 12;
|
||||
this.GlobalUsername.TextChanged += new System.EventHandler(this.GlobalUsername_TextChanged);
|
||||
//
|
||||
// FOVy
|
||||
//
|
||||
@@ -459,9 +472,9 @@ namespace AndroidSideloader
|
||||
this.FOVy.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.FOVy.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.FOVy.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.FOVy.Location = new System.Drawing.Point(191, 507);
|
||||
this.FOVy.Location = new System.Drawing.Point(189, 507);
|
||||
this.FOVy.Name = "FOVy";
|
||||
this.FOVy.Size = new System.Drawing.Size(167, 20);
|
||||
this.FOVy.Size = new System.Drawing.Size(169, 24);
|
||||
this.FOVy.TabIndex = 12;
|
||||
this.FOVy.Text = "0";
|
||||
this.FOVy.Visible = false;
|
||||
@@ -477,7 +490,7 @@ namespace AndroidSideloader
|
||||
this.FOVx.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.FOVx.Location = new System.Drawing.Point(13, 507);
|
||||
this.FOVx.Name = "FOVx";
|
||||
this.FOVx.Size = new System.Drawing.Size(169, 20);
|
||||
this.FOVx.Size = new System.Drawing.Size(169, 24);
|
||||
this.FOVx.TabIndex = 11;
|
||||
this.FOVx.Text = "0";
|
||||
this.FOVx.Visible = false;
|
||||
@@ -493,7 +506,7 @@ namespace AndroidSideloader
|
||||
this.UsrBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.UsrBox.Location = new System.Drawing.Point(13, 459);
|
||||
this.UsrBox.Name = "UsrBox";
|
||||
this.UsrBox.Size = new System.Drawing.Size(345, 20);
|
||||
this.UsrBox.Size = new System.Drawing.Size(345, 24);
|
||||
this.UsrBox.TabIndex = 10;
|
||||
this.UsrBox.Text = "0";
|
||||
this.UsrBox.Visible = false;
|
||||
@@ -509,7 +522,7 @@ namespace AndroidSideloader
|
||||
this.ResBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.ResBox.Location = new System.Drawing.Point(13, 409);
|
||||
this.ResBox.Name = "ResBox";
|
||||
this.ResBox.Size = new System.Drawing.Size(345, 20);
|
||||
this.ResBox.Size = new System.Drawing.Size(345, 24);
|
||||
this.ResBox.TabIndex = 9;
|
||||
this.ResBox.Text = "0";
|
||||
this.ResBox.Visible = false;
|
||||
@@ -523,9 +536,9 @@ namespace AndroidSideloader
|
||||
this.TextureResTextBox.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.TextureResTextBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.TextureResTextBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.TextureResTextBox.Location = new System.Drawing.Point(13, 155);
|
||||
this.TextureResTextBox.Location = new System.Drawing.Point(13, 152);
|
||||
this.TextureResTextBox.Name = "TextureResTextBox";
|
||||
this.TextureResTextBox.Size = new System.Drawing.Size(169, 20);
|
||||
this.TextureResTextBox.Size = new System.Drawing.Size(167, 24);
|
||||
this.TextureResTextBox.TabIndex = 3;
|
||||
this.TextureResTextBox.Text = "0";
|
||||
//
|
||||
@@ -538,15 +551,32 @@ namespace AndroidSideloader
|
||||
this.QUEnable.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.QUEnable.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.QUEnable.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.QUEnable.Location = new System.Drawing.Point(191, 606);
|
||||
this.QUEnable.Location = new System.Drawing.Point(189, 606);
|
||||
this.QUEnable.Name = "QUEnable";
|
||||
this.QUEnable.Size = new System.Drawing.Size(169, 25);
|
||||
this.QUEnable.Size = new System.Drawing.Size(170, 25);
|
||||
this.QUEnable.TabIndex = 16;
|
||||
this.QUEnable.Text = "APPLY";
|
||||
this.QUEnable.UseVisualStyleBackColor = false;
|
||||
this.QUEnable.Visible = false;
|
||||
this.QUEnable.Click += new System.EventHandler(this.QUEnable_Click);
|
||||
//
|
||||
// WifiWake
|
||||
//
|
||||
this.WifiWake.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.WifiWake.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.WifiWake.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.WifiWake.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.WifiWake.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.WifiWake.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.WifiWake.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.WifiWake.Location = new System.Drawing.Point(189, 180);
|
||||
this.WifiWake.Name = "WifiWake";
|
||||
this.WifiWake.Size = new System.Drawing.Size(170, 25);
|
||||
this.WifiWake.TabIndex = 4;
|
||||
this.WifiWake.Text = "ENABLE WIFI WAKE";
|
||||
this.WifiWake.UseVisualStyleBackColor = false;
|
||||
this.WifiWake.Click += new System.EventHandler(this.WifiWake_Click);
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
@@ -556,9 +586,9 @@ namespace AndroidSideloader
|
||||
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.button1.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.button1.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.button1.Location = new System.Drawing.Point(191, 155);
|
||||
this.button1.Location = new System.Drawing.Point(189, 152);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(167, 25);
|
||||
this.button1.Size = new System.Drawing.Size(169, 25);
|
||||
this.button1.TabIndex = 4;
|
||||
this.button1.Text = "APPLY";
|
||||
this.button1.UseVisualStyleBackColor = false;
|
||||
@@ -579,9 +609,9 @@ namespace AndroidSideloader
|
||||
"72",
|
||||
"90",
|
||||
"120"});
|
||||
this.QURfrRt.Location = new System.Drawing.Point(12, 555);
|
||||
this.QURfrRt.Location = new System.Drawing.Point(13, 555);
|
||||
this.QURfrRt.Name = "QURfrRt";
|
||||
this.QURfrRt.Size = new System.Drawing.Size(170, 21);
|
||||
this.QURfrRt.Size = new System.Drawing.Size(170, 26);
|
||||
this.QURfrRt.TabIndex = 13;
|
||||
this.QURfrRt.Text = "0";
|
||||
this.QURfrRt.Visible = false;
|
||||
@@ -601,9 +631,9 @@ namespace AndroidSideloader
|
||||
"72",
|
||||
"90",
|
||||
"120"});
|
||||
this.RefreshRateComboBox.Location = new System.Drawing.Point(13, 68);
|
||||
this.RefreshRateComboBox.Location = new System.Drawing.Point(13, 65);
|
||||
this.RefreshRateComboBox.Name = "RefreshRateComboBox";
|
||||
this.RefreshRateComboBox.Size = new System.Drawing.Size(345, 21);
|
||||
this.RefreshRateComboBox.Size = new System.Drawing.Size(346, 26);
|
||||
this.RefreshRateComboBox.TabIndex = 0;
|
||||
this.RefreshRateComboBox.Text = "Select refresh rate";
|
||||
//
|
||||
@@ -640,21 +670,26 @@ namespace AndroidSideloader
|
||||
this.Controls.Add(this.label6);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.ResolutionLabel);
|
||||
this.Controls.Add(this.GlobalUsername);
|
||||
this.Controls.Add(this.FOVy);
|
||||
this.Controls.Add(this.FOVx);
|
||||
this.Controls.Add(this.UsrBox);
|
||||
this.Controls.Add(this.ResBox);
|
||||
this.Controls.Add(this.TextureResTextBox);
|
||||
this.Controls.Add(this.QUEnable);
|
||||
this.Controls.Add(this.WifiWake);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.QURfrRt);
|
||||
this.Controls.Add(this.RefreshRateComboBox);
|
||||
this.MaximumSize = new System.Drawing.Size(386, 808);
|
||||
this.MinimumSize = new System.Drawing.Size(386, 608);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.MaximumSize = new System.Drawing.Size(386, 776);
|
||||
this.MinimumSize = new System.Drawing.Size(386, 776);
|
||||
this.Name = "QuestForm";
|
||||
this.ShowIcon = false;
|
||||
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Quest settings";
|
||||
this.TopMost = true;
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.QuestForm_FormClosed);
|
||||
this.Load += new System.EventHandler(this.QuestForm_Load);
|
||||
this.ResumeLayout(false);
|
||||
@@ -700,6 +735,8 @@ namespace AndroidSideloader
|
||||
private Label label14;
|
||||
private Label label15;
|
||||
private Label label16;
|
||||
private Button WifiWake;
|
||||
private TextBox GlobalUsername;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
75
QuestForm.cs
@@ -107,6 +107,7 @@ namespace AndroidSideloader
|
||||
FOVy.Text = Properties.Settings.Default.QUy;
|
||||
FOVx.Text = Properties.Settings.Default.QUx;
|
||||
QURfrRt.SelectedValue = Properties.Settings.Default.QUhz;
|
||||
Properties.Settings.Default.QUturnedon = true;
|
||||
}
|
||||
else if (!QUon.Checked)
|
||||
{
|
||||
@@ -124,9 +125,10 @@ namespace AndroidSideloader
|
||||
label9.Visible = false;
|
||||
label10.Visible = false;
|
||||
deleteButton.Visible = false;
|
||||
|
||||
Properties.Settings.Default.QUturnedon = false;
|
||||
MessageBox.Show("Ok, Deleted your custom settings file.\nIf you would like to re-enable return here and apply settings again");
|
||||
File.Delete($"{Properties.Settings.Default.MainDir}\\Config.Json");
|
||||
File.Delete($"{Environment.CurrentDirectory}\\Config.Json");
|
||||
File.Delete($"{Environment.CurrentDirectory}\\delete_settings");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -146,7 +148,7 @@ namespace AndroidSideloader
|
||||
MessageBox.Show("OK, any -QU packages installed will have these settings applied!\nTo delete settings: goto main app window, select a game with top menu, and click \"Remove QU Setting\"");
|
||||
if (QUon.Checked)
|
||||
{
|
||||
|
||||
Properties.Settings.Default.QUturnedon = true;
|
||||
Random r = new Random();
|
||||
|
||||
int x = r.Next(999999999);
|
||||
@@ -166,9 +168,13 @@ namespace AndroidSideloader
|
||||
Properties.Settings.Default.QUString = $"\"refresh_rate\":{selected},\"eye_texture_width\":{ResBox.Text},\"fov_x\":{FOVx.Text},\"fov_y\":{FOVy.Text},\"username\":\"{UsrBox.Text}\"}}";
|
||||
Properties.Settings.Default.QUStringF = $"{{\"user_id\":{sum},\"app_id\":\"{sum2}\",";
|
||||
Properties.Settings.Default.Save();
|
||||
File.WriteAllText("delete_settings", "");
|
||||
File.WriteAllText($"{Properties.Settings.Default.MainDir}\\delete_settings", "");
|
||||
string boff = Properties.Settings.Default.QUStringF + Properties.Settings.Default.QUString;
|
||||
File.WriteAllText("config.json", boff);
|
||||
File.WriteAllText($"{Properties.Settings.Default.MainDir}\\config.json", boff);
|
||||
}
|
||||
else
|
||||
{
|
||||
Properties.Settings.Default.QUturnedon = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -204,6 +210,8 @@ namespace AndroidSideloader
|
||||
{
|
||||
if (Properties.Settings.Default.delsh)
|
||||
DeleteShots.Checked = true;
|
||||
else
|
||||
DeleteShots.Checked = false;
|
||||
if (Properties.Settings.Default.QUsett)
|
||||
{
|
||||
ResBox.Text = Properties.Settings.Default.QUres;
|
||||
@@ -213,10 +221,9 @@ namespace AndroidSideloader
|
||||
QURfrRt.Text = Properties.Settings.Default.QUhz;
|
||||
QUon.Checked = true;
|
||||
if (settingsexist)
|
||||
QUSon = true;
|
||||
|
||||
|
||||
QUSon = true;
|
||||
}
|
||||
GlobalUsername.Text = Properties.Settings.Default.GlobalUsername;
|
||||
}
|
||||
|
||||
private void ResBox_TextChanged(object sender, EventArgs e)
|
||||
@@ -282,8 +289,8 @@ namespace AndroidSideloader
|
||||
private void questVids_Click(object sender, EventArgs e)
|
||||
{
|
||||
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
||||
if (!Directory.Exists($"{path}\\Quest ScreenShots"))
|
||||
Directory.CreateDirectory($"{path}\\Quest ScreenShots");
|
||||
if (!Directory.Exists($"{path}\\Quest VideoShots"))
|
||||
Directory.CreateDirectory($"{path}\\Quest VideoShots");
|
||||
MessageBox.Show("Please wait until you get the message that the transfer has finished.");
|
||||
ADB.WakeDevice();
|
||||
Program.form.ChangeTitle("Pulling files...");
|
||||
@@ -302,28 +309,50 @@ namespace AndroidSideloader
|
||||
}
|
||||
private void button3_Click(object sender, EventArgs e)
|
||||
{
|
||||
UsernameForm Form = new UsernameForm();
|
||||
Form.Show();
|
||||
if (GlobalUsername.Text.Contains(" "))
|
||||
{
|
||||
MessageBox.Show("Usernames with a space are not permitted.", "Detected a space in username!");
|
||||
}
|
||||
else
|
||||
{
|
||||
ADB.RunAdbCommandToString($"shell settings put global username {GlobalUsername.Text}");
|
||||
MessageBox.Show($"Username set as {GlobalUsername.Text}", "Success");
|
||||
}
|
||||
}
|
||||
|
||||
private void label5_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
private void Form_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Escape)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
protected override bool ProcessDialogKey(Keys keyData)
|
||||
{
|
||||
if (Form.ModifierKeys == Keys.None && keyData == Keys.Escape)
|
||||
{
|
||||
this.Close();
|
||||
return true;
|
||||
}
|
||||
return base.ProcessDialogKey(keyData);
|
||||
}
|
||||
|
||||
private void label6_Click(object sender, EventArgs e)
|
||||
private void WifiWake_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_available 1");
|
||||
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_enabled 1");
|
||||
MessageBox.Show("Wake on Wifi enabled!\n\nNOTE: This requires having wireless ADB enabled to work. (Obviously)");
|
||||
}
|
||||
|
||||
private void label8_Click(object sender, EventArgs e)
|
||||
private void GlobalUsername_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void label7_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
if (GlobalUsername.TextLength > 0)
|
||||
button3.Enabled = true;
|
||||
else
|
||||
button3.Enabled = false;
|
||||
Properties.Settings.Default.GlobalUsername = GlobalUsername.Text;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
21
RCLONE.cs
@@ -2,6 +2,8 @@
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using JR.Utils.GUI.Forms;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
@@ -36,9 +38,6 @@ namespace AndroidSideloader
|
||||
{
|
||||
if (!MainForm.HasInternet) return new ProcessOutput("", "No internet");
|
||||
|
||||
//Set the password for rclone configs
|
||||
Environment.SetEnvironmentVariable("RCLONE_CRYPT_REMOTE", rclonepw);
|
||||
Environment.SetEnvironmentVariable("RCLONE_CONFIG_PASS", rclonepw);
|
||||
ProcessOutput prcoutput = new ProcessOutput();
|
||||
//Rclone output is unicode, else it will show garbage instead of unicode characters
|
||||
rclone.StartInfo.StandardOutputEncoding = Encoding.UTF8;
|
||||
@@ -59,8 +58,12 @@ namespace AndroidSideloader
|
||||
//set rclonepw
|
||||
if (rclonepw.Length > 0)
|
||||
command += " --ask-password=false";
|
||||
|
||||
Logger.Log($"Running Rclone command: {command}");
|
||||
string logcmd = Utilities.StringUtilities.RemoveEverythingBeforeFirst(command, "rclone.exe");
|
||||
if (logcmd.Contains($"\"{Properties.Settings.Default.CurrentLogPath}\""))
|
||||
logcmd = logcmd.Replace($"\"{Properties.Settings.Default.CurrentLogPath}\"", $"\"{Properties.Settings.Default.CurrentLogName}\"");
|
||||
if (logcmd.Contains(Environment.CurrentDirectory))
|
||||
logcmd = logcmd.Replace($"{Environment.CurrentDirectory}", $"CurrentDirectory");
|
||||
Logger.Log($"Running Rclone command: {logcmd}");
|
||||
|
||||
rclone.StartInfo.FileName = Environment.CurrentDirectory + "\\rclone\\rclone.exe";
|
||||
rclone.StartInfo.Arguments = command;
|
||||
@@ -84,7 +87,7 @@ namespace AndroidSideloader
|
||||
rclone.WaitForExit();
|
||||
|
||||
//if there is one of these errors, we switch the mirrors
|
||||
if (error.Contains("cannot fetch token") || error.Contains("authError") || (error.Contains("quota") && error.Contains("exceeded")))
|
||||
if (error.Contains("400 Bad Request") || error.Contains("cannot fetch token") || error.Contains("authError") || error.Contains("quota") || error.Contains("exceeded") || error.Contains("directory not found") || error.Contains("couldn't list"))
|
||||
{
|
||||
string oldRemote = MainForm.currentRemote;
|
||||
try
|
||||
@@ -102,8 +105,14 @@ namespace AndroidSideloader
|
||||
prcoutput.Output = output;
|
||||
prcoutput.Error = error;
|
||||
}
|
||||
if (!output.Contains("Game Name;Release Name;") && !output.Contains("package:") && !output.Contains(".meta"))
|
||||
Logger.Log($"Rclone error: {error}\nRclone Output: {output}");
|
||||
if (output.Contains("There is not enough space"))
|
||||
{
|
||||
FlexibleMessageBox.Show("There isn't enough space on your PC to properly install this game. Please have at least 2x the size of the game you are trying to download/install available on the drive where Rookie is installed.", "NOT ENOUGH SPACE");
|
||||
}
|
||||
return prcoutput;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# androidsideloader
|
||||
|
||||
!IMPORTANT!
|
||||
This app may be buggy and have problems, I will recode it from scratch when MAUI will be released (This september) and a linux port will be available, making RSL cross-platform.
|
||||
|
||||
This app might get detected as malware, however both the sideloader and the sideloader launcher are open source
|
||||
|
||||
https://www.virustotal.com/gui/file/977105693610cf360fc29339b918e224180ba393ba05a64b6255af3845cbf376/relations
|
||||
@@ -15,4 +18,4 @@ Special thanks to
|
||||
- [rclone](https://rclone.org/) team for [rclone](https://rclone.org/) :D
|
||||
- [erike](https://stackoverflow.com/users/57611/erike) for the folder browser dialog code
|
||||
- Serge Weinstock for developing SergeUtils, which is used to search the combo box
|
||||
- https://www.c-sharpcorner.com/members/mike-gold2 for the scrollable message box
|
||||
- https://www.c-sharpcorner.com/members/mike-gold2 for the scrollable message box
|
||||
|
||||
BIN
Resources/SearchGlass.PNG
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
Resources/ajax-loader.gif
Normal file
|
After Width: | Height: | Size: 723 B |
BIN
Resources/battery.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
Resources/battery1.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
Resources/battery11.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
Resources/bluekey.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
Resources/greenkey.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
6801
Resources/nouns.txt
Normal file
BIN
Resources/orangekey.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
Resources/redkey.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
216
SettingsForm.Designer.cs
generated
@@ -38,6 +38,16 @@
|
||||
this.BandwithTextbox = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.BandwithComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.DebugLogCopy = new System.Windows.Forms.Button();
|
||||
this.crashlogID = new System.Windows.Forms.Label();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.debuglogID = new System.Windows.Forms.Label();
|
||||
this.DebugID = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.CblindBox = new System.Windows.Forms.CheckBox();
|
||||
this.nodevicemodeBox = new System.Windows.Forms.CheckBox();
|
||||
this.bmbfBox = new System.Windows.Forms.CheckBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// checkForUpdatesCheckBox
|
||||
@@ -45,9 +55,9 @@
|
||||
this.checkForUpdatesCheckBox.AutoSize = true;
|
||||
this.checkForUpdatesCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.checkForUpdatesCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.checkForUpdatesCheckBox.Location = new System.Drawing.Point(13, 13);
|
||||
this.checkForUpdatesCheckBox.Location = new System.Drawing.Point(12, 12);
|
||||
this.checkForUpdatesCheckBox.Name = "checkForUpdatesCheckBox";
|
||||
this.checkForUpdatesCheckBox.Size = new System.Drawing.Size(135, 20);
|
||||
this.checkForUpdatesCheckBox.Size = new System.Drawing.Size(148, 22);
|
||||
this.checkForUpdatesCheckBox.TabIndex = 0;
|
||||
this.checkForUpdatesCheckBox.Text = "Check for updates";
|
||||
this.checkForUpdatesCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -62,7 +72,7 @@
|
||||
this.applyButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.applyButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.applyButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.applyButton.Location = new System.Drawing.Point(12, 185);
|
||||
this.applyButton.Location = new System.Drawing.Point(67, 280);
|
||||
this.applyButton.Name = "applyButton";
|
||||
this.applyButton.Size = new System.Drawing.Size(101, 31);
|
||||
this.applyButton.TabIndex = 5;
|
||||
@@ -75,9 +85,9 @@
|
||||
this.enableMessageBoxesCheckBox.AutoSize = true;
|
||||
this.enableMessageBoxesCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.enableMessageBoxesCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.enableMessageBoxesCheckBox.Location = new System.Drawing.Point(13, 36);
|
||||
this.enableMessageBoxesCheckBox.Location = new System.Drawing.Point(12, 39);
|
||||
this.enableMessageBoxesCheckBox.Name = "enableMessageBoxesCheckBox";
|
||||
this.enableMessageBoxesCheckBox.Size = new System.Drawing.Size(284, 20);
|
||||
this.enableMessageBoxesCheckBox.Size = new System.Drawing.Size(309, 22);
|
||||
this.enableMessageBoxesCheckBox.TabIndex = 1;
|
||||
this.enableMessageBoxesCheckBox.Text = "Enable Message Boxes on task completed";
|
||||
this.enableMessageBoxesCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -92,7 +102,7 @@
|
||||
this.resetSettingsButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.resetSettingsButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.resetSettingsButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.resetSettingsButton.Location = new System.Drawing.Point(119, 185);
|
||||
this.resetSettingsButton.Location = new System.Drawing.Point(174, 280);
|
||||
this.resetSettingsButton.Name = "resetSettingsButton";
|
||||
this.resetSettingsButton.Size = new System.Drawing.Size(101, 31);
|
||||
this.resetSettingsButton.TabIndex = 4;
|
||||
@@ -105,9 +115,9 @@
|
||||
this.deleteAfterInstallCheckBox.AutoSize = true;
|
||||
this.deleteAfterInstallCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.deleteAfterInstallCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.deleteAfterInstallCheckBox.Location = new System.Drawing.Point(13, 59);
|
||||
this.deleteAfterInstallCheckBox.Location = new System.Drawing.Point(12, 65);
|
||||
this.deleteAfterInstallCheckBox.Name = "deleteAfterInstallCheckBox";
|
||||
this.deleteAfterInstallCheckBox.Size = new System.Drawing.Size(266, 20);
|
||||
this.deleteAfterInstallCheckBox.Size = new System.Drawing.Size(288, 22);
|
||||
this.deleteAfterInstallCheckBox.TabIndex = 3;
|
||||
this.deleteAfterInstallCheckBox.Text = "Delete games after download and install";
|
||||
this.deleteAfterInstallCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -118,9 +128,9 @@
|
||||
this.updateConfigCheckBox.AutoSize = true;
|
||||
this.updateConfigCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.updateConfigCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.updateConfigCheckBox.Location = new System.Drawing.Point(13, 83);
|
||||
this.updateConfigCheckBox.Location = new System.Drawing.Point(12, 92);
|
||||
this.updateConfigCheckBox.Name = "updateConfigCheckBox";
|
||||
this.updateConfigCheckBox.Size = new System.Drawing.Size(193, 20);
|
||||
this.updateConfigCheckBox.Size = new System.Drawing.Size(208, 22);
|
||||
this.updateConfigCheckBox.TabIndex = 6;
|
||||
this.updateConfigCheckBox.Text = "Update config automatically";
|
||||
this.updateConfigCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -131,9 +141,9 @@
|
||||
this.userJsonOnGameInstall.AutoSize = true;
|
||||
this.userJsonOnGameInstall.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.userJsonOnGameInstall.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.userJsonOnGameInstall.Location = new System.Drawing.Point(13, 106);
|
||||
this.userJsonOnGameInstall.Location = new System.Drawing.Point(12, 119);
|
||||
this.userJsonOnGameInstall.Name = "userJsonOnGameInstall";
|
||||
this.userJsonOnGameInstall.Size = new System.Drawing.Size(218, 20);
|
||||
this.userJsonOnGameInstall.Size = new System.Drawing.Size(243, 22);
|
||||
this.userJsonOnGameInstall.TabIndex = 9;
|
||||
this.userJsonOnGameInstall.Text = "Push random user.json on install";
|
||||
this.userJsonOnGameInstall.UseVisualStyleBackColor = true;
|
||||
@@ -147,9 +157,9 @@
|
||||
this.BandwithTextbox.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "TextBoxColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.BandwithTextbox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.BandwithTextbox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.BandwithTextbox.Location = new System.Drawing.Point(12, 155);
|
||||
this.BandwithTextbox.Location = new System.Drawing.Point(52, 248);
|
||||
this.BandwithTextbox.Name = "BandwithTextbox";
|
||||
this.BandwithTextbox.Size = new System.Drawing.Size(177, 21);
|
||||
this.BandwithTextbox.Size = new System.Drawing.Size(177, 24);
|
||||
this.BandwithTextbox.TabIndex = 11;
|
||||
//
|
||||
// label1
|
||||
@@ -157,9 +167,9 @@
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.label1.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.label1.Location = new System.Drawing.Point(10, 134);
|
||||
this.label1.Location = new System.Drawing.Point(40, 225);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(224, 16);
|
||||
this.label1.Size = new System.Drawing.Size(245, 18);
|
||||
this.label1.TabIndex = 12;
|
||||
this.label1.Text = "Download speed limiter, 0 to disable";
|
||||
//
|
||||
@@ -178,35 +188,189 @@
|
||||
"K",
|
||||
"M",
|
||||
"G"});
|
||||
this.BandwithComboBox.Location = new System.Drawing.Point(195, 153);
|
||||
this.BandwithComboBox.Location = new System.Drawing.Point(235, 248);
|
||||
this.BandwithComboBox.Name = "BandwithComboBox";
|
||||
this.BandwithComboBox.Size = new System.Drawing.Size(55, 23);
|
||||
this.BandwithComboBox.Size = new System.Drawing.Size(55, 26);
|
||||
this.BandwithComboBox.TabIndex = 13;
|
||||
//
|
||||
// DebugLogCopy
|
||||
//
|
||||
this.DebugLogCopy.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.DebugLogCopy.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.DebugLogCopy.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.DebugLogCopy.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.DebugLogCopy.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.DebugLogCopy.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.DebugLogCopy.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.DebugLogCopy.Location = new System.Drawing.Point(29, 325);
|
||||
this.DebugLogCopy.Name = "DebugLogCopy";
|
||||
this.DebugLogCopy.Size = new System.Drawing.Size(285, 31);
|
||||
this.DebugLogCopy.TabIndex = 5;
|
||||
this.DebugLogCopy.Text = "Send DebugLog to server.";
|
||||
this.DebugLogCopy.UseVisualStyleBackColor = false;
|
||||
this.DebugLogCopy.Click += new System.EventHandler(this.DebugLogCopy_click);
|
||||
//
|
||||
// crashlogID
|
||||
//
|
||||
this.crashlogID.AutoSize = true;
|
||||
this.crashlogID.Location = new System.Drawing.Point(13, 441);
|
||||
this.crashlogID.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.crashlogID.Name = "crashlogID";
|
||||
this.crashlogID.Size = new System.Drawing.Size(0, 13);
|
||||
this.crashlogID.TabIndex = 15;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.button1.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.button1.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.button1.Location = new System.Drawing.Point(29, 360);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(285, 31);
|
||||
this.button1.TabIndex = 5;
|
||||
this.button1.Text = "Reset Debug Log";
|
||||
this.button1.UseVisualStyleBackColor = false;
|
||||
this.button1.Click += new System.EventHandler(this.button1_click);
|
||||
//
|
||||
// debuglogID
|
||||
//
|
||||
this.debuglogID.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F);
|
||||
this.debuglogID.Location = new System.Drawing.Point(29, 436);
|
||||
this.debuglogID.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.debuglogID.Name = "debuglogID";
|
||||
this.debuglogID.Size = new System.Drawing.Size(285, 48);
|
||||
this.debuglogID.TabIndex = 14;
|
||||
this.debuglogID.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// DebugID
|
||||
//
|
||||
this.DebugID.AccessibleRole = System.Windows.Forms.AccessibleRole.Row;
|
||||
this.DebugID.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(45)))));
|
||||
this.DebugID.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.DebugID.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.DebugID.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Bold);
|
||||
this.DebugID.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.DebugID.Location = new System.Drawing.Point(29, 407);
|
||||
this.DebugID.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.DebugID.Name = "DebugID";
|
||||
this.DebugID.ReadOnly = true;
|
||||
this.DebugID.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal;
|
||||
this.DebugID.Size = new System.Drawing.Size(285, 21);
|
||||
this.DebugID.TabIndex = 16;
|
||||
this.DebugID.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.DebugID.Click += new System.EventHandler(this.DebugID_Click);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F);
|
||||
this.label2.Location = new System.Drawing.Point(29, 507);
|
||||
this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(284, 86);
|
||||
this.label2.TabIndex = 14;
|
||||
this.label2.Text = "This is your most recent CrashLogID. Click on the CrashLogID to copy it to your c" +
|
||||
"lipboard.";
|
||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.AccessibleRole = System.Windows.Forms.AccessibleRole.Row;
|
||||
this.textBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(45)))));
|
||||
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.textBox1.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Bold);
|
||||
this.textBox1.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.textBox1.Location = new System.Drawing.Point(29, 490);
|
||||
this.textBox1.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.ReadOnly = true;
|
||||
this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal;
|
||||
this.textBox1.Size = new System.Drawing.Size(285, 21);
|
||||
this.textBox1.TabIndex = 16;
|
||||
this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.textBox1.Click += new System.EventHandler(this.textBox1_Click);
|
||||
//
|
||||
// CblindBox
|
||||
//
|
||||
this.CblindBox.AutoSize = true;
|
||||
this.CblindBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.CblindBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.CblindBox.Location = new System.Drawing.Point(12, 145);
|
||||
this.CblindBox.Name = "CblindBox";
|
||||
this.CblindBox.Size = new System.Drawing.Size(182, 22);
|
||||
this.CblindBox.TabIndex = 9;
|
||||
this.CblindBox.Text = "Enable colorblind mode";
|
||||
this.CblindBox.UseVisualStyleBackColor = true;
|
||||
this.CblindBox.CheckedChanged += new System.EventHandler(this.CblindBox_CheckedChanged);
|
||||
this.CblindBox.Click += new System.EventHandler(this.CblindBox_Click);
|
||||
//
|
||||
// nodevicemodeBox
|
||||
//
|
||||
this.nodevicemodeBox.AutoSize = true;
|
||||
this.nodevicemodeBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.nodevicemodeBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.nodevicemodeBox.Location = new System.Drawing.Point(12, 196);
|
||||
this.nodevicemodeBox.Name = "nodevicemodeBox";
|
||||
this.nodevicemodeBox.Size = new System.Drawing.Size(181, 22);
|
||||
this.nodevicemodeBox.TabIndex = 9;
|
||||
this.nodevicemodeBox.Text = "Enable no device mode";
|
||||
this.nodevicemodeBox.UseVisualStyleBackColor = true;
|
||||
this.nodevicemodeBox.CheckedChanged += new System.EventHandler(this.nodevicemodeBox_CheckedChanged);
|
||||
//
|
||||
// bmbfBox
|
||||
//
|
||||
this.bmbfBox.AutoSize = true;
|
||||
this.bmbfBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.bmbfBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.bmbfBox.Location = new System.Drawing.Point(12, 170);
|
||||
this.bmbfBox.Name = "bmbfBox";
|
||||
this.bmbfBox.Size = new System.Drawing.Size(281, 22);
|
||||
this.bmbfBox.TabIndex = 9;
|
||||
this.bmbfBox.Text = "Enable BMBF song zips drag and drop";
|
||||
this.bmbfBox.UseVisualStyleBackColor = true;
|
||||
this.bmbfBox.CheckedChanged += new System.EventHandler(this.bmbfBox_CheckedChanged);
|
||||
//
|
||||
// SettingsForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
this.ClientSize = new System.Drawing.Size(315, 237);
|
||||
this.ClientSize = new System.Drawing.Size(342, 606);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.DebugID);
|
||||
this.Controls.Add(this.crashlogID);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.debuglogID);
|
||||
this.Controls.Add(this.BandwithComboBox);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.BandwithTextbox);
|
||||
this.Controls.Add(this.bmbfBox);
|
||||
this.Controls.Add(this.nodevicemodeBox);
|
||||
this.Controls.Add(this.CblindBox);
|
||||
this.Controls.Add(this.userJsonOnGameInstall);
|
||||
this.Controls.Add(this.updateConfigCheckBox);
|
||||
this.Controls.Add(this.deleteAfterInstallCheckBox);
|
||||
this.Controls.Add(this.enableMessageBoxesCheckBox);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.DebugLogCopy);
|
||||
this.Controls.Add(this.applyButton);
|
||||
this.Controls.Add(this.checkForUpdatesCheckBox);
|
||||
this.Controls.Add(this.resetSettingsButton);
|
||||
this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "BackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.ForeColor = System.Drawing.Color.White;
|
||||
this.MaximumSize = new System.Drawing.Size(331, 276);
|
||||
this.MinimumSize = new System.Drawing.Size(331, 276);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "SettingsForm";
|
||||
this.ShowIcon = false;
|
||||
this.Text = "Settings";
|
||||
this.TopMost = true;
|
||||
this.Load += new System.EventHandler(this.SettingsForm_Load);
|
||||
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.SettingsForm_KeyPress);
|
||||
this.Leave += new System.EventHandler(this.SettingsForm_Leave);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -224,5 +388,15 @@
|
||||
private System.Windows.Forms.TextBox BandwithTextbox;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.ComboBox BandwithComboBox;
|
||||
private System.Windows.Forms.Button DebugLogCopy;
|
||||
private System.Windows.Forms.Label crashlogID;
|
||||
private System.Windows.Forms.Button button1;
|
||||
public System.Windows.Forms.Label debuglogID;
|
||||
private System.Windows.Forms.TextBox DebugID;
|
||||
public System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private System.Windows.Forms.CheckBox CblindBox;
|
||||
private System.Windows.Forms.CheckBox nodevicemodeBox;
|
||||
private System.Windows.Forms.CheckBox bmbfBox;
|
||||
}
|
||||
}
|
||||
138
SettingsForm.cs
@@ -1,5 +1,6 @@
|
||||
using JR.Utils.GUI.Forms;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AndroidSideloader
|
||||
@@ -14,26 +15,33 @@ namespace AndroidSideloader
|
||||
private void SettingsForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.CenterToParent();
|
||||
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.CurrentLogName))
|
||||
textBox1.Text = Properties.Settings.Default.CurrentCrashName;
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.CurrentLogPath))
|
||||
DebugID.Text = Properties.Settings.Default.CurrentLogName;
|
||||
debuglogID.Text = "This is your DebugLogID. Click on your DebugLogID to copy it to your clipboard.";
|
||||
intSettings();
|
||||
|
||||
intToolTips();
|
||||
}
|
||||
|
||||
//Init form objects with values from settings
|
||||
private void intSettings()
|
||||
{
|
||||
CblindBox.Checked = Properties.Settings.Default.QblindOn;
|
||||
checkForUpdatesCheckBox.Checked = Properties.Settings.Default.checkForUpdates;
|
||||
enableMessageBoxesCheckBox.Checked = Properties.Settings.Default.enableMessageBoxes;
|
||||
deleteAfterInstallCheckBox.Checked = Properties.Settings.Default.deleteAllAfterInstall;
|
||||
updateConfigCheckBox.Checked = Properties.Settings.Default.autoUpdateConfig;
|
||||
userJsonOnGameInstall.Checked = Properties.Settings.Default.userJsonOnGameInstall;
|
||||
if (Properties.Settings.Default.BandwithLimit.Length>1)
|
||||
nodevicemodeBox.Checked = Properties.Settings.Default.nodevicemode;
|
||||
bmbfBox.Checked = Properties.Settings.Default.BMBFchecked;
|
||||
|
||||
if (Properties.Settings.Default.BandwithLimit.Length > 1)
|
||||
{
|
||||
BandwithTextbox.Text = Properties.Settings.Default.BandwithLimit.Remove(Properties.Settings.Default.BandwithLimit.Length - 1);
|
||||
BandwithComboBox.Text = Properties.Settings.Default.BandwithLimit[Properties.Settings.Default.BandwithLimit.Length-1].ToString();
|
||||
BandwithComboBox.Text = Properties.Settings.Default.BandwithLimit[Properties.Settings.Default.BandwithLimit.Length - 1].ToString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void intToolTips()
|
||||
@@ -46,6 +54,52 @@ namespace AndroidSideloader
|
||||
deleteAfterInstallToolTip.SetToolTip(this.deleteAfterInstallCheckBox, "If this is checked, the software will delete all game files after downloading and installing a game from a remote server");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public void DebugLogCopy_click(object sender, EventArgs e)
|
||||
{
|
||||
if (File.Exists($"{Properties.Settings.Default.CurrentLogPath}"))
|
||||
{
|
||||
RCLONE.runRcloneCommand($"copy \"{Properties.Settings.Default.CurrentLogPath}\" RSL-debuglogs:DebugLogs/");
|
||||
|
||||
MessageBox.Show($"Your debug log has been copied to the server. Please mention your DebugLog ID ({Properties.Settings.Default.CurrentLogName}) to the Mods (it has been automatically copied to your clipboard).");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void button1_click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
if (File.Exists($"{Properties.Settings.Default.CurrentLogPath}"))
|
||||
File.Delete($"{Properties.Settings.Default.CurrentLogPath}");
|
||||
if (File.Exists($"{Environment.CurrentDirectory}\\debuglog.txt"))
|
||||
File.Delete($"{Environment.CurrentDirectory}\\debuglog.txt");
|
||||
|
||||
|
||||
if (File.Exists($"{Environment.CurrentDirectory}\\nouns\\nouns.txt"))
|
||||
{
|
||||
string[] lines = File.ReadAllLines($"{Environment.CurrentDirectory}\\nouns\\nouns.txt");
|
||||
Random r = new Random();
|
||||
int x = r.Next(6806);
|
||||
int y = r.Next(6806);
|
||||
string randomnoun = lines[new Random(x).Next(lines.Length)];
|
||||
string randomnoun2 = lines[new Random(y).Next(lines.Length)];
|
||||
string combined = randomnoun + "-" + randomnoun2;
|
||||
Properties.Settings.Default.CurrentLogPath = Environment.CurrentDirectory + "\\" + combined + ".txt";
|
||||
Properties.Settings.Default.CurrentLogName = combined;
|
||||
Properties.Settings.Default.Save();
|
||||
DebugID.Text = combined;
|
||||
this.Close();
|
||||
SettingsForm Form = new SettingsForm();
|
||||
Form.Show();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Apply settings
|
||||
private void applyButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -96,5 +150,79 @@ namespace AndroidSideloader
|
||||
{
|
||||
Properties.Settings.Default.userJsonOnGameInstall = userJsonOnGameInstall.Checked;
|
||||
}
|
||||
|
||||
private void SettingsForm_KeyPress(object sender, KeyPressEventArgs e)
|
||||
{
|
||||
if (e.KeyChar == (char)Keys.Escape)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void SettingsForm_Leave(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
|
||||
|
||||
private void Form_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Escape)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
protected override bool ProcessDialogKey(Keys keyData)
|
||||
{
|
||||
if (Form.ModifierKeys == Keys.None && keyData == Keys.Escape)
|
||||
{
|
||||
this.Close();
|
||||
return true;
|
||||
}
|
||||
return base.ProcessDialogKey(keyData);
|
||||
}
|
||||
|
||||
private void DebugID_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\" + Properties.Settings.Default.CurrentLogName + ".txt"))
|
||||
Clipboard.SetText(DebugID.Text);
|
||||
MessageBox.Show("DebugLogID copied to clipboard! Paste it to a moderator/helper for assistance!");
|
||||
}
|
||||
|
||||
private void textBox1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(Properties.Settings.Default.CurrentCrashName))
|
||||
{
|
||||
Clipboard.SetText(textBox1.Text);
|
||||
MessageBox.Show("CrashLogID copied to clipboard! Paste it to a moderator/helper for assistance!");
|
||||
}
|
||||
}
|
||||
|
||||
private void CblindBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
Properties.Settings.Default.QblindOn = CblindBox.Checked;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
}
|
||||
|
||||
private void CblindBox_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (CblindBox.Checked)
|
||||
MessageBox.Show("You must restart Rookie's Sideloader OR click Refresh Updates List for changes to take effect.\n\nNOTE: Colors in the legend at the top right of the main window of Rookie won't update until you restart the program.");
|
||||
}
|
||||
|
||||
private void nodevicemodeBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.nodevicemode = nodevicemodeBox.Checked;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
|
||||
private void bmbfBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.BMBFchecked = bmbfBox.Checked;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,10 +35,7 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
}
|
||||
|
||||
//List of all installed package names from connected device
|
||||
public static Dictionary<string, string> InstalledPackages = new Dictionary<string, string>(); //Packagename and Version
|
||||
//public static List<string> InstalledPackageNames = new List<string>();
|
||||
|
||||
//Remove folder from device
|
||||
//public static List<string> InstalledPackageNames = new List<string>(); //Remove folder from device
|
||||
public static ProcessOutput RemoveFolder(string path)
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
@@ -58,16 +55,20 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
var commands = File.ReadAllLines(path);
|
||||
foreach (string cmd in commands)
|
||||
{
|
||||
if (cmd.StartsWith("\"7z.exe\""))
|
||||
if (cmd.Contains("7z.exe"))
|
||||
{
|
||||
Program.form.ChangeTitle($"Running {cmd}");
|
||||
Logger.Log($"Logging command: {cmd} from file: {path}");
|
||||
output += ADB.RunAdbCommandToStringWOADB(cmd, path);
|
||||
ADB.RunCommandToString(cmd, path);
|
||||
}
|
||||
if (cmd.StartsWith("adb"))
|
||||
{
|
||||
string replacement = "";
|
||||
string pattern = "adb";
|
||||
string replacement = $"{Properties.Settings.Default.ADBPath} -s {ADB.DeviceID}";
|
||||
if (ADB.DeviceID.Length > 1)
|
||||
replacement = $"{Properties.Settings.Default.ADBPath} -s {ADB.DeviceID}";
|
||||
else
|
||||
replacement = $"{Properties.Settings.Default.ADBPath}";
|
||||
Regex rgx = new Regex(pattern);
|
||||
string result = rgx.Replace(cmd, replacement);
|
||||
Program.form.ChangeTitle($"Running {result}");
|
||||
@@ -82,7 +83,7 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
output.Output += "Custom install successful!";
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -95,7 +96,7 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
{
|
||||
foreach (string f in Directory.GetFiles(FolderPath))
|
||||
{
|
||||
if (Path.GetExtension(f)==".apk")
|
||||
if (Path.GetExtension(f) == ".apk")
|
||||
|
||||
RecursiveOutput += ADB.Sideload(f);
|
||||
}
|
||||
@@ -131,19 +132,11 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
ProcessOutput output = new ProcessOutput("", "");
|
||||
|
||||
string packageName = Sideloader.gameNameToPackageName(GameName);
|
||||
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show($"Are you sure you want to uninstall {packageName}? this CANNOT be undone!", "WARNING!", MessageBoxButtons.YesNo);
|
||||
if (dialogResult != DialogResult.Yes)
|
||||
return output;
|
||||
|
||||
output = ADB.UninstallPackage(packageName);
|
||||
|
||||
//remove both data and obb if there is any
|
||||
Sideloader.RemoveFolder("/sdcard/Android/obb/" + packageName);
|
||||
Sideloader.RemoveFolder("/sdcard/Android/data/" + packageName);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
@@ -166,6 +159,7 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
//Extracts apk from device, saves it by package name to sideloader folder
|
||||
public static ProcessOutput getApk(string GameName)
|
||||
{
|
||||
|
||||
ADB.WakeDevice();
|
||||
ProcessOutput output = new ProcessOutput("", "");
|
||||
|
||||
@@ -178,18 +172,18 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
apkPath = apkPath.Remove(apkPath.Length - 1);
|
||||
apkPath = apkPath.Remove(0, 8); //remove package:
|
||||
apkPath = apkPath.Remove(apkPath.Length - 1);
|
||||
|
||||
if (File.Exists($"{Properties.Settings.Default.ADBFolder}\\base.apk"))
|
||||
File.Delete($"{Properties.Settings.Default.ADBFolder}\\base.apk");
|
||||
if (File.Exists($"{Properties.Settings.Default.MainDir}\\{packageName}\\{packageName}.apk"))
|
||||
File.Delete($"{Properties.Settings.Default.MainDir}\\{packageName}\\{packageName}.apk");
|
||||
output += ADB.RunAdbCommandToString("pull " + apkPath); //pull apk
|
||||
|
||||
if (Directory.Exists($"{Properties.Settings.Default.MainDir}\\{packageName}"))
|
||||
Directory.Delete($"{Properties.Settings.Default.MainDir}\\{packageName}", true);
|
||||
|
||||
string currApkPath = apkPath;
|
||||
while (currApkPath.Contains("/"))
|
||||
currApkPath = currApkPath.Substring(currApkPath.IndexOf("/") + 1);
|
||||
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\" + packageName + ".apk"))
|
||||
File.Delete(Environment.CurrentDirectory + "\\" + packageName + ".apk");
|
||||
|
||||
File.Move(Environment.CurrentDirectory + "\\adb\\" + currApkPath, Environment.CurrentDirectory + "\\" + packageName + ".apk");
|
||||
Directory.CreateDirectory($"{Properties.Settings.Default.MainDir}\\{packageName}");
|
||||
|
||||
File.Move($"{Properties.Settings.Default.ADBFolder}\\base.apk", $"{Properties.Settings.Default.MainDir}\\{packageName}\\{packageName}.apk");
|
||||
return output;
|
||||
}
|
||||
|
||||
@@ -197,12 +191,47 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
{
|
||||
foreach (string[] game in SideloaderRCLONE.games)
|
||||
{
|
||||
if (gameName.Equals(game[SideloaderRCLONE.GameNameIndex]))
|
||||
if (gameName.Contains(game[SideloaderRCLONE.GameNameIndex]))
|
||||
return game[SideloaderRCLONE.PackageNameIndex];
|
||||
if (gameName.Contains(game[SideloaderRCLONE.ReleaseNameIndex]))
|
||||
return game[SideloaderRCLONE.PackageNameIndex];
|
||||
}
|
||||
return gameName;
|
||||
}
|
||||
|
||||
public static string PackageNametoGameName(string gameName)
|
||||
{
|
||||
foreach (string[] game in SideloaderRCLONE.games)
|
||||
{
|
||||
if (gameName.Contains(game[SideloaderRCLONE.PackageNameIndex]))
|
||||
return game[SideloaderRCLONE.ReleaseNameIndex];
|
||||
}
|
||||
return gameName;
|
||||
}
|
||||
|
||||
public static string gameNameToSimpleName(string gameName)
|
||||
{
|
||||
foreach (string[] game in SideloaderRCLONE.games)
|
||||
{
|
||||
if (gameName.Contains(game[SideloaderRCLONE.GameNameIndex]))
|
||||
return game[SideloaderRCLONE.GameNameIndex];
|
||||
if (gameName.Contains(game[SideloaderRCLONE.ReleaseNameIndex]))
|
||||
return game[SideloaderRCLONE.GameNameIndex];
|
||||
}
|
||||
return gameName;
|
||||
}
|
||||
|
||||
public static string PackageNameToSimpleName(string gameName)
|
||||
{
|
||||
foreach (string[] game in SideloaderRCLONE.games)
|
||||
{
|
||||
if (gameName.Contains(game[SideloaderRCLONE.PackageNameIndex]))
|
||||
return game[SideloaderRCLONE.GameNameIndex];
|
||||
}
|
||||
return gameName;
|
||||
}
|
||||
|
||||
|
||||
//Downloads the required files
|
||||
public static void downloadFiles()
|
||||
{
|
||||
@@ -255,5 +284,5 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -7,6 +7,15 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
class rcloneFolder
|
||||
{
|
||||
public string Path { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string Size { get; set; }
|
||||
public string ModTime { get; set; }
|
||||
|
||||
}
|
||||
|
||||
class SideloaderRCLONE
|
||||
{
|
||||
public static List<string> RemotesList = new List<string>();
|
||||
@@ -32,12 +41,18 @@ namespace AndroidSideloader
|
||||
*/
|
||||
public static List<string[]> games = new List<string[]>();
|
||||
|
||||
public static string Nouns = Environment.CurrentDirectory + "\\nouns";
|
||||
public static string ThumbnailsFolder = Environment.CurrentDirectory + "\\thumbnails";
|
||||
public static string NotesFolder = Environment.CurrentDirectory + "\\notes";
|
||||
|
||||
public static void UpdateNouns(string remote)
|
||||
{
|
||||
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/nouns\" \"{Nouns}\"");
|
||||
}
|
||||
|
||||
public static void UpdateGamePhotos(string remote)
|
||||
{
|
||||
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/thumbnails\" \"{ThumbnailsFolder}\"");
|
||||
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/thumbnails\" \"{ThumbnailsFolder}\"");
|
||||
}
|
||||
|
||||
public static void UpdateGameNotes(string remote)
|
||||
@@ -72,20 +87,48 @@ namespace AndroidSideloader
|
||||
games.Clear();
|
||||
string tempGameList = RCLONE.runRcloneCommand($"cat \"{remote}:{RcloneGamesFolder}/GameList.txt\"").Output;
|
||||
if (MainForm.debugMode)
|
||||
{
|
||||
File.WriteAllText("GamesList.txt", tempGameList);
|
||||
}
|
||||
string gamePropertiesLine = Utilities.StringUtilities.RemoveEverythingAfterFirst(tempGameList, "\n");
|
||||
|
||||
foreach (string gameProperty in gamePropertiesLine.Split(';'))
|
||||
{
|
||||
gameProperties.Add(gameProperty);
|
||||
}
|
||||
gameProperties.Add("Last Updated");
|
||||
|
||||
|
||||
tempGameList = Utilities.StringUtilities.RemoveEverythingBeforeFirst(tempGameList, "\n");
|
||||
|
||||
List<rcloneFolder> gameFolders = JsonConvert.DeserializeObject<List<rcloneFolder>>(RCLONE.runRcloneCommand($"lsjson \"{remote}:{RcloneGamesFolder}\"").Output);
|
||||
if (gameFolders == null || gameFolders.Count < 1)
|
||||
{
|
||||
Program.form.SwitchMirrors();
|
||||
gameFolders = JsonConvert.DeserializeObject<List<rcloneFolder>>(RCLONE.runRcloneCommand($"lsjson \"{remote}:{RcloneGamesFolder}\"").Output);
|
||||
}
|
||||
|
||||
|
||||
foreach (string game in tempGameList.Split('\n'))
|
||||
{
|
||||
if (game.Length > 1)
|
||||
games.Add(game.Split(';'));
|
||||
{
|
||||
string[] splitGame = game.Split(';');
|
||||
|
||||
//gameFolder.find();
|
||||
Array.Resize(ref splitGame, splitGame.Length + 1);
|
||||
|
||||
var gameSynced = gameFolders.Exists((predicate) => predicate.Path == splitGame[1]);
|
||||
if (gameSynced)
|
||||
{
|
||||
var gameFolder = gameFolders.Find((predicate) => predicate.Path == splitGame[1]);
|
||||
//splitGame[6] = gameFolder.ModTime;
|
||||
string gametime = Utilities.StringUtilities.RemoveEverythingAfterLast(gameFolder.ModTime, ":");
|
||||
gametime = gametime.Replace("T", " ");
|
||||
splitGame[splitGame.Length - 1] = gametime;
|
||||
games.Add(splitGame);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Output
|
||||
@@ -94,12 +137,20 @@ namespace AndroidSideloader
|
||||
//{
|
||||
// Console.WriteLine($"gameProperty: {s}");
|
||||
//}
|
||||
|
||||
|
||||
|
||||
foreach (string[] s in games)
|
||||
{
|
||||
string output = "";
|
||||
for (int i = 0; i < gameProperties.Count; i++)
|
||||
output += s[i] + " ";
|
||||
//string output = "";
|
||||
//for (int i = 0; i < gameProperties.Count; i++)
|
||||
// output += s[i] + " ";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
|
||||
@@ -115,7 +166,7 @@ namespace AndroidSideloader
|
||||
catch { return 0; }
|
||||
}
|
||||
|
||||
public static async Task updateConfig(string remote)
|
||||
public static void updateConfig(string remote)
|
||||
{
|
||||
string localHash = "";
|
||||
try { localHash = File.ReadAllText(Environment.CurrentDirectory + "\\rclone\\hash.txt"); } catch { } //file may not exist
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
using System.IO;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Management;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
@@ -9,9 +13,51 @@ namespace AndroidSideloader
|
||||
string[] files = Directory.GetFiles(path);
|
||||
|
||||
foreach (string file in files)
|
||||
if (file.EndsWith(".obb"))
|
||||
if (file.EndsWith(".obb") || Path.GetDirectoryName(file).Contains(".") && !Path.GetDirectoryName(file).Contains("_data"))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
public static string UUID()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2",
|
||||
"SELECT * FROM Win32_Processor");
|
||||
|
||||
foreach (ManagementObject queryObj in searcher.Get())
|
||||
{
|
||||
sb.Append(queryObj["NumberOfCores"]);
|
||||
sb.Append(queryObj["ProcessorId"]);
|
||||
sb.Append(queryObj["Name"]);
|
||||
sb.Append(queryObj["SocketDesignation"]);
|
||||
}
|
||||
|
||||
searcher = new ManagementObjectSearcher("root\\CIMV2",
|
||||
"SELECT * FROM Win32_BIOS");
|
||||
|
||||
foreach (ManagementObject queryObj in searcher.Get())
|
||||
{
|
||||
sb.Append(queryObj["Manufacturer"]);
|
||||
sb.Append(queryObj["Name"]);
|
||||
sb.Append(queryObj["Version"]);
|
||||
|
||||
}
|
||||
|
||||
searcher = new ManagementObjectSearcher("root\\CIMV2",
|
||||
"SELECT * FROM Win32_BaseBoard");
|
||||
|
||||
foreach (ManagementObject queryObj in searcher.Get())
|
||||
{
|
||||
sb.Append(queryObj["Product"]);
|
||||
}
|
||||
|
||||
var bytes = Encoding.ASCII.GetBytes(sb.ToString());
|
||||
SHA256Managed sha = new SHA256Managed();
|
||||
|
||||
byte[] hash = sha.ComputeHash(bytes);
|
||||
|
||||
return BitConverter.ToString(hash).Replace("-", "");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace AndroidSideloader
|
||||
private static string RawGitHubUrl;
|
||||
private static string GitHubUrl;
|
||||
|
||||
static readonly public string LocalVersion = "2.1HF2";
|
||||
static readonly public string LocalVersion = "2.8.6";
|
||||
public static string currentVersion = string.Empty;
|
||||
public static string changelog = string.Empty;
|
||||
|
||||
@@ -28,8 +28,6 @@ namespace AndroidSideloader
|
||||
try
|
||||
{
|
||||
currentVersion = client.GetStringAsync($"{RawGitHubUrl}/master/version").Result;
|
||||
if (currentVersion.Length > LocalVersion.Length)
|
||||
currentVersion = currentVersion.Remove(currentVersion.Length - 1);
|
||||
changelog = client.GetStringAsync($"{RawGitHubUrl}/master/changelog.txt").Result;
|
||||
client.Dispose();
|
||||
}
|
||||
@@ -40,8 +38,8 @@ namespace AndroidSideloader
|
||||
//Call this to ask the user if they want to update
|
||||
public static void Update()
|
||||
{
|
||||
RawGitHubUrl = $"https://raw.githubusercontent.com/{Repostory}";
|
||||
GitHubUrl = $"https://github.com/{Repostory}";
|
||||
RawGitHubUrl = $"https://raw.githubusercontent.com/nerdunit/androidsideloader";
|
||||
GitHubUrl = $"https://github.com/nerdunit/androidsideloader";
|
||||
if (IsUpdateAvailable())
|
||||
doUpdate();
|
||||
}
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
using System.IO;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
class Logger
|
||||
{
|
||||
public static string logfile = "debuglog.txt";
|
||||
|
||||
public string logfile = Properties.Settings.Default.CurrentLogPath;
|
||||
public static bool Log(string text, bool ret = true)
|
||||
{
|
||||
string newline = "\n";
|
||||
if (text.Length > 40 && text.Contains("\n"))
|
||||
newline += "\n\n";
|
||||
try { File.AppendAllText(logfile, text + newline); } catch { }
|
||||
|
||||
string time = DateTime.Now.ToString("hh:mmtt(UTC): ");
|
||||
if (text.Length > 5)
|
||||
{
|
||||
|
||||
string newline = "\n";
|
||||
if (text.Length > 40 && text.Contains("\n"))
|
||||
newline += "\n\n";
|
||||
try {File.AppendAllText(Properties.Settings.Default.CurrentLogPath, time + text + newline); } catch { }
|
||||
return ret;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
22
Utilities/UpdateGameData.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AndroidSideloader.Utilities
|
||||
{
|
||||
class UpdateGameData
|
||||
{
|
||||
public UpdateGameData(String gameName, String packageName, ulong installedVersionInt)
|
||||
{
|
||||
this.GameName = gameName;
|
||||
this.Packagename = packageName;
|
||||
this.InstalledVersionInt = installedVersionInt;
|
||||
}
|
||||
public string GameName { get; set; }
|
||||
public string Packagename { get; set; }
|
||||
|
||||
public ulong InstalledVersionInt { get; set; }
|
||||
}
|
||||
}
|
||||
31
Utilities/UploadGame.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AndroidSideloader.Utilities
|
||||
{
|
||||
class UploadGame
|
||||
{
|
||||
public UploadGame(string Uploadcommand, string Pckgcommand, string Uploadgamename, ulong Uploadversion)
|
||||
{
|
||||
this.Uploadcommand = Uploadcommand;
|
||||
this.Pckgcommand = Pckgcommand;
|
||||
this.Uploadgamename = Uploadgamename;
|
||||
this.Uploadversion = Uploadversion;
|
||||
}
|
||||
public UploadGame()
|
||||
{
|
||||
|
||||
}
|
||||
public string Uploadcommand { get; set; }
|
||||
|
||||
public string Pckgcommand { get; set; }
|
||||
|
||||
public string Uploadgamename { get; set; }
|
||||
|
||||
public ulong Uploadversion { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
682
changelog.txt
@@ -1,680 +1,6 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
RSL 2.8.6
|
||||
|
||||
!!!IMPORTANT!!!
|
||||
THIS VERSION IS A WORK IN PROGRESS DUE TO LACK OF TESTERS!!!
|
||||
+ Added Set username option to Quest
|
||||
Options. This will work for all apps.
|
||||
|
||||
v2.1
|
||||
|
||||
-Changes-
|
||||
|
||||
+ Backups are now stored in Documents\Rookie Backups\(BackupDate) folder.
|
||||
+ 404 error fixed.
|
||||
+ If installing an app that has a different patching method or signature than the previous version did user will now recieve a prompt for the option to upgrade which will backup savedata then uninstall and reinstall the app. NOTE: Not all apps allow backup of savedata.
|
||||
+ Refresh updates list now loads much faster and refreshes the main update list.
|
||||
+ Added Wireless ADB functionality.
|
||||
+ Added Enable Wireless ADB and Remove Wireless ADB buttons to main menu.
|
||||
+ Added ">" symbols on collapsible and expandable menu items to let user know they can be expanded/collapsed.
|
||||
+ "Hand/Finger pointer" symbol added above clickable main menu buttons to let user know they're clickable.
|
||||
+ Added logic to allow entire list to load and compare installed versions with Rclone versions before populating and added informative text of this step to the bottom/title bar.
|
||||
+ Added QU Settings for their newest patch method. Can be found under Quest Options, this will allow you to change settings for any games that include "-QU" in the version/filename. Click Enable QU Settings box to reveal the options.
|
||||
DETAILS: Clicking enable again will remove the settings file, if you re-enable you MUST click apply again for it to work. QU Settings are applied automatically when any games are Downloaded/Installed via Rookie as long as the custom settings been enabled and applied in the Quest Options menu.Once applied they can also be added to any already installed titles by selecting the game you wish to add them to in the menu at the top of RSL in the main window then(the same list used to uninstall games) then clicking on Install QU Setting. To remove a setting for a game select it from the same menu and click Remove QU Setting. If you click Delete Custom Settings in Quest Options it will not delete settings for any games installed while it was enabled, you must do this with the previously mentioned Remove QU Setting option. Clear Settings just clears the values entered in the fields. Settings entered into those fields will persist between instances of RSL.
|
||||
+ Public key for HarryEffingPotter(Rookie contributor/VRPE dev) added to Rookie directory.
|
||||
= Fixed Install.txt automation to make Manual installs automatic.
|
||||
|
||||
- -HarryEffingPotter-
|
||||
|
||||
Released: May 29th 2021
|
||||
|
||||
|
||||
Public key for Rookie and HarryEffingPotter included in Rookie directory along with Checksum(can be run with QuickSFV.exe)
|
||||
|
||||
THIS SOFTWARE IS FREE TO USE, IF YOU PAID FOR IT YOU WERE RIPPED OFF. We can be found on Telegram @ t.me/VRPirates.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmCyMHUACgkQx/Rql1Vo
|
||||
czeJ+Q//ZBEopVVZVc/IcmYFS05hUy+xHFd8QWajSCAFsQVyCctEPEzsluOSmwM1
|
||||
OQlO0awzMM4s9IWwPIk0/caML7ZgkwDlIxR7KgasgI+BirrFCz1VImILoF1CiSHV
|
||||
q5Xj6GQ3NPE0xK1QDe4fCVdXX+VScqQOAnP/ohkfHfuP0ce6KKxZpH/UeafDjh+V
|
||||
Birzv6a+1dMnewJHnAwn6xg5Q8jvPT4Iz++t4XBS3k/dg5bMpLg4T6dwPnuJ3zjh
|
||||
muThmNzBSw1ICegO/SaF8jhgGrhwVsF7aM9pVv2fvYaFpDbuxITQOcV+jcvO6Orf
|
||||
R/LTf26pdguQnuc/KLWMCthMtNr1O7q3tnVF8DGVio5yzL0lKfVkDqjb3Qp+GTYB
|
||||
f/lZyrzKZyt1OaVInmxtLsj5wavQtcYRUeJGU9ABd6yb9ecmgJlP6rwPR1RMiZWS
|
||||
B/nEC8td1JeTK7qhop/FA1qoQ9Z+2cSVCuILKcKj8B1ushxQzDdIDeqrwPxz98Ta
|
||||
5voJKtq8wWtV8gkldVCvZRvlIi3qaIFBLutnY5AqTxmDHgaTdF1l3adauK32alyL
|
||||
xUsQits39mBui6bMBw1fCfw1zu3uqh7gylZ/j0t+XLVDJtIC+UcRTjjIpRLeHjM8
|
||||
O8gLNx7jFtRtm/vO1jAlS7Zu3LHIxq6I9kwOZsbwNQe7yqfUwPw=
|
||||
=iJ4Y
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
!!!IMPORTANT!!!
|
||||
THIS VERSION IS WORK IN PROGRESS DUE TO LACK OF TESTERS!
|
||||
Due to how the rclone config works now, if you used Rookie's Sideloader with a custom config
|
||||
Make sure to redownload the entire rclone folder from the config provider!
|
||||
|
||||
I forgot, adb usb isn't called at start so the last changelog was wrong
|
||||
Also this was the first release to use GIT and sideloader had broken updates so thats why the huge ammount of commits in such a short time sorry
|
||||
|
||||
v2.0-WIP-SU1
|
||||
|
||||
Changes
|
||||
= Enabled mount button
|
||||
= Pushed UI Changes made by harry
|
||||
|
||||
|
||||
Date 15/04/2021
|
||||
|
||||
VT: https://bit.ly/3uPda5K
|
||||
|
||||
MD5 Checksum: 4259AD179E8C56478828FFFC38586BE0
|
||||
SHA-1 Checksum: 44C1754D0CD0B1677A73BE5A10B05E02BC85E6B7
|
||||
SHA-256 Checksum: 8D6CCFB6DDA656BB3FEB1EBAB4F3BA9D9A0D431398A80F23F8C1E097DEB8B827
|
||||
SHA-512 Checksum: B6DF140C00E3761698C604BCD1A8835C6B2EB5BE18477C3BB69900E2353EE42C196A475E81A95D495C346C35CD2100148FA5E5A0C03D3FEBCB4F469E7E8C6EBF
|
||||
|
||||
You can always get my public key from miligra.me/pgp
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAmB3+4UACgkQvrtJUNxE
|
||||
TxP75BAAknKjeZmhvXGn8ScYyRIdl/hOk0fjJ8tk4UJBFByrMqDJPyGsQW5z+bRl
|
||||
RinNEmV0LWfT1I4wFoX755NXBoQfxd2ZgRo9EQ5w6AxeVoml1vL7p38NbmQZ2dEb
|
||||
nXJFz0Ds+8jW+LDcCBC05rQjOoz3yiFm+lXQpQfuX0/KppJn7aFmijSZ11dFytWI
|
||||
Ih8aOQVmrt7PUwIFT0ZZbHuQsFjN5cNWUK3S+s7qnjo6RLRiwmbSGO6Bt9vnAgtR
|
||||
IlaRa9im4wjWnCGrXw7cLv44SkaHuolJ7fGWN5kgO3ulOsqz5/scsRG57RQjCxlQ
|
||||
9wbveyROLCAbuJ4GVcgKPTimVIuZJg4rE1exV1ey3oYopjrfXOkqbeUILQFOGqIf
|
||||
oQ7qEIMx8hOcT5Yz81eddSKZXOOBUgYuI91XX+ROwb4DXkAWZbqSWEZcUuKUz95P
|
||||
U6mEqdtCEE3OVEzA1w/eW+o3l3m6nPc60SFV2jpNQPV/QOZYme4njOOmpvqrCqQN
|
||||
4HQse91FJdkIllIL6DgfcavvpKqpstuBH3iY8DWUu4rb6HX+OimscFKmJCXNKYO3
|
||||
peCKU/Rq4zAZXCxtxJRlitgPaBx/RUdQ2ZtWR+86aUlNSvE+9X0FCPY0iiqQ7/iy
|
||||
2V28poXEr5Nn5zn3EfiTjBooJ9LM9Kmc3tV0uxUlbAT2MdxhNak=
|
||||
=+19T
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
!!!IMPORTANT!!!
|
||||
THIS VERSION IS WORK IN PROGRESS DUE TO LACK OF TESTERS!
|
||||
Due to how the rclone config works now, if you used Rookie's Sideloader with a custom config
|
||||
Make sure to redownload the entire rclone folder from the config provider!
|
||||
|
||||
v2.0-WIP
|
||||
|
||||
Changes
|
||||
+ Added update checker for games
|
||||
+ Added dependency check for spoofer
|
||||
+ Games now can have images
|
||||
+ Replaced the gamescombo box with a listview
|
||||
+ Listview marks already installed games with green and outdated ones with yellow
|
||||
+ Sideloader should be faster now
|
||||
+ Reduced sideloader size
|
||||
+ Installing games and copying obbs tries to wake the device first
|
||||
+ Sideloader calls adb usb on start now
|
||||
+ ADB Output now is a proper object containing strings for stdout and stderr, handling will be easier now
|
||||
+ Changed spoof on rclone install to resign, allowing users to easily update games from now on!
|
||||
//You can still use the spoof button manually
|
||||
= Fixed UI not starting for some people
|
||||
= Refreshing mirrors now deosn't change the selected mirror
|
||||
= Cleaned & reworked code in sideloader and spoofer
|
||||
= Fixed Spoofer.Init() on Non-English Windows
|
||||
= Fixed crash detection
|
||||
= Reworked rclone config handling
|
||||
= Fixed game release not existing resulted in a crash
|
||||
= Sideloader false positive detections reduced
|
||||
= Small ui changes, hopefully for the better
|
||||
|
||||
Date 13/04/2021
|
||||
|
||||
VT: https://bit.ly/3a3LvGg
|
||||
|
||||
MD5 Checksum: 597D4AC957F69D5B1860D14D15DD3904
|
||||
SHA-1 Checksum: EC78E4416D5222E507F46499B62A1D16880F84DF
|
||||
SHA-256 Checksum: B68EE3B95CA531CA4678FEAAFD13F75A69D4495879536A9D04094ECFFEEC86EA
|
||||
SHA-512 Checksum: D98F319986179B362D0F4C4E092FE6AF4ED8D1FD5445667F68280B43BF49C9DB7AC3B0F49690644CB46A7A391EDF36E82A8BCF7C52770498E6CACEA52D44EA4D
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAmB1rNsACgkQvrtJUNxE
|
||||
TxND0BAAgq4HKuNG/wxcYfari00+Vz56BdjWawZ5OvgcB/KuZLEWFXN5IpDktZrl
|
||||
S7M8xGsAffDJYa0qamnpB0aE6uBgp3RCa4oyZUUlYf5sRiVwz9lF2Ip7XWZlkkpT
|
||||
3zDYC4FSnPtlMP/97/OfMfdUSO97TpI+mEM2qtknl4dQZ8DdTugRWKWq0Kb+0ZI7
|
||||
mD4FpxZSyko1lzBKCvInr/5LQWPrNknRIOwzxH3T+BPr9CjhAoPduvJUT7QzZZAc
|
||||
+wYMUQYIb7M6zMy7iiiVtNlyIfwW8EnJdyE4p4NejIAQTOcFyvB7XTK/z2Ut7T1c
|
||||
/DIINF+Sat8wZ1mZ+c2I9+99StlwTSiYdWVZh2jW5F5wb8pWrgDrCmoG50X4gvWJ
|
||||
PGcWXG14x6TTAU0b55oPUEydWXMyxg9x/8IQA4IeDZGo9HdJDFfkW4hynTO675+o
|
||||
1AKr9dfdnAhgqqfw59eWtxh2epU67JAOIek7wikfOjNnVRykim4wZmHB/FC+hIuQ
|
||||
ppzs2QBxV2LknV3UeOklUMvR6n8Q/N0JZNxUde6o9HCOm2EbY27Iiho9wZI0+7Bk
|
||||
IL+cF4SdRdsBQHX6PLPk+1wX667A+QnwHOfkC9SXyUK+MI4CMvqZlzIitqT4QiFz
|
||||
r3JeCjJjYW4jwO7gKD8OM9CUMy+6+4C2ImS5CZ3cBB3KLXR59n4=
|
||||
=17aK
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.17SU1
|
||||
|
||||
Changes
|
||||
+ Added some instructions & checks for the spoofer
|
||||
+ Added crash detection
|
||||
= Fixed the game queue broken since 1.17
|
||||
|
||||
Date 11/19/2020
|
||||
|
||||
VT: https://bit.ly/3nDUMcx
|
||||
|
||||
MD5 Checksum: 6DA8ADBE4447A809C598379E73DC7F77
|
||||
SHA-1 Checksum: 924220FE8877174CCB9732F1F99B759DD6749102
|
||||
SHA-256 Checksum: 0405C389A7D84CAC0D9081BDE10D010300822B10EBC2FF94C501EC740C8CFA40
|
||||
SHA-512 Checksum: E8C3A15257C30278CEBC46507B1F6049FFB5AC0D6E4FBB73E1776537F80CBEA95C8C81A3F3259F8AEEDE276EBF6D50F6945622403E9D80B5E9E0F47B050BBEA9
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+2aycACgkQvrtJUNxE
|
||||
TxOlEw/6ArmiRFAjUNC2YaElJ7fFsXVzCaeJ680rs0CK4oX9P7YjZ46y2/VGDtX/
|
||||
IAGvWCqHOIw2t0sk01/JwoyKZFERLDn2MRCj9FTPsrPA8yqveiIx/fof90QaN2Q9
|
||||
4aV6ht+SSirQFWTXENboEbQSWxFHW/z5/Dud8gDBuCTuFuueBk+EAph5yI3dcjCK
|
||||
naDE1gX+CE21ef84F3nGMspu2q/uCaIM2mvEWR2hBvWLsQpH7m5uQegXGYywe6YC
|
||||
/8wEY2mEe0nayp/3NglDDarsPN8wx1U5i/kqS8wrzZZT49pRqKZ0wykWGfAPQsaO
|
||||
txmfiwH+5cu3J/6PpAMVuNjhtL0dnR5MapsXT3CoRvSiRDl2urdYJUQj1CsYOEWP
|
||||
Q4St6ISoUoANhVFRcM9mbq7clxdJnfBqdr1J0YrK804qWp3krDYv5hrpE3Puu/nA
|
||||
TORsqWiHPgQQHANsNYsY4WkvLiYHWyB62Cm2NATdtaoVWzsrBgFk9xlp1oIQcMXo
|
||||
RlRQZQ7tQ0VFFxaP7ARRaf9ay78geC3W/cr63JTn8Hz7Ul1h+ZRa7tb1KYvpCTnp
|
||||
xC7vh3IyBwc4M7mt4CxsjdFnkO3iaDybFvlufua/5vMlt70HLdutHa7vMYSZ+GFr
|
||||
HL+SrazP9o8ut2L85uBqCjWHPfgVaBaaQgk9FgZe0WQoS06fdeU=
|
||||
=DIzT
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.17
|
||||
Please manually update to this version, as it fixes automatic updates that were broken since 1.15
|
||||
|
||||
Changes
|
||||
+ Better game installation => no need for manual installation of games anymore
|
||||
+ Added theme changer back and updated it
|
||||
= Fixed updates
|
||||
= Updated quest options
|
||||
|
||||
Date 11/14/2020
|
||||
|
||||
VT: https://bit.ly/3lwztcn
|
||||
|
||||
MD5 Checksum: CC7BF16A3D687C21208E9E986D720CAE
|
||||
SHA-1 Checksum: CE0C71B4097068E84FA6FC65F4AFE69CBC79AA29
|
||||
SHA-256 Checksum: D9393C28376DDE1D0582BCF939D1414879EDE6772CE82F83F54C0EA0F239B2F0
|
||||
SHA-512 Checksum: 326C7A0177E9B8BCFA10CB3B8FAEA025F9C45C599DE5D46CA06DFEE427351F3AE88371C5A0827DEADF7D3F459052C421A145AA5581FE3C4BD2EFAD33BCFFC37B
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+wFCUACgkQvrtJUNxE
|
||||
TxO0ThAAw6po24zaYQFa+aGrgQNuWYWRxirCkLekEgmy8XVL6Q0rgMeLeq2MrCBP
|
||||
wi2eBMFlLNOXy1TXOhled89NRBiBeST2Hl4TVv0Qdavd9cSeuGD/rh/PsyxnxY2Y
|
||||
RWCPeXiYOf0mN1zVylLas+2vk9o/lrNieJir1nMEvyVbUJs8lTDcBdo2vVFwHK9N
|
||||
nStFPxjqRb8R6smTIsltIh4+juQQMX0GyCcEMUkb5aO6BP34Mpsoaf+9bxV/elJm
|
||||
UXnFSh5pjzHhkYGKVePtoHev8aFOzLeqIrfyWRJl+7gBMgYIautaxAIE+Zsy3Sai
|
||||
wxUk9HJeAYwEPhYcIJKGAy+fmeX/TePQjUqLu1Pp+sJ8orstSiMjwXr84UtvyUWZ
|
||||
+gSTgsQJ1QNUlhp+eJ0D6CchkAwliUXgnpIzwyn1Jj54X3ecHNjMbc5SettlXcBG
|
||||
qgy5bUx8+v4H4gHmqTyZQNv1bsvIiQlcwPPUtpSzSXrzJPfZjrqPZzUWB8/Vltqc
|
||||
JIR8FxEqi7+mW6AqrhUjE74N/fFibJTEuv6RALwZIAfMYEuSeFlZlDJYZ9v3H4/X
|
||||
2jd+wEksbq6uYUl2l3X/7TpMWX29paj18cLD8oTSLK/RvzLXe0hhUcvuHrMxi+14
|
||||
Q+V7uZYGge4Z5PANGPhd2tSkvw4CyA25OQ868QXjqciSLTfK2SU=
|
||||
=Yu78
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.16
|
||||
|
||||
Changes
|
||||
+ Speed Limiter for rclone
|
||||
= Random packagenames more random now
|
||||
= Bugfixes
|
||||
|
||||
Date 11/12/2020
|
||||
|
||||
VT: https://bit.ly/2K4Y5Lv
|
||||
|
||||
MD5 Checksum: 29978E435BF02865CE61EF6279FB42ED
|
||||
SHA-1 Checksum: 2E47CFDE7549D088A102F021657E9CD6859EAC47
|
||||
SHA-256 Checksum: 50057AC0DA315C492C9C45B5801AE99E65B812F5BC18E23622CCAF5FBC48760A
|
||||
SHA-512 Checksum: E485ADB6088C1F7DC34B65B57A9077E876D3D576D48CCED1FCA691A113CA5F6D0F8A0D31C6C848B6719FF18B7D4C5F829B9DAA8789EA6087F8B1D41005F87A48
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+tHY0ACgkQvrtJUNxE
|
||||
TxOpjRAAmjaIfvIP+HvfTMGKOEGoVRDIBqEyi8tzq8hn5Z3OadBVLkWT23WblQBw
|
||||
Ur6BN1fuhH5B8ToGoqX/C1lrgXsvHNDB8frGUWnO1G1KJAQEGwKPRdKyK7YPlrYm
|
||||
kK74CYuM8w7qjkhX3f50ECZ4Kj1WsE92mIHjfB1xLSGzN0o7Tr1EvFFDnuXrJ0I0
|
||||
vEbeto0Qo19ORcoP7KFPgGuYmMYJQ2MuwYmWDWAdm4iL1Y9vEKZ4TsHG+KmYPdo8
|
||||
19YoZj8PsgYxCBy9B+UZfkJnfF7gYKmiAsgnQviDc4BvZccfAVjmWcKkzJueDkvr
|
||||
GgFmbaFE48svC2NU8Qd2gq6gIX0JrnKACZqopqgorl1817Z7Rsdh2iVwTMOvxbe7
|
||||
a4kAtDN90KwuRlnwoxeCBdESDSrANbiNi1yaDZc5hr/xOxUsa1JKhk7/8mcdHj78
|
||||
QoCRoji60Cq8XYeRNDXI32TkZd7ql9c64AjGH1uSySIPXfehOa+m5S53Jo2dRh5p
|
||||
iI1LGHjTk7EDekIVRh/cPC+hohfUAKYbUcXp15cx0HndW5+galYIH/RAjF0L+Q1U
|
||||
THz36HpKvLSsgkVkeVjPNJn9Ow6xgyByLTkHrS9D7Kj78FrKiAKr08+aI3+WCpdq
|
||||
1G9HcH5VzDeZ7/jfVQPhsAn3dPxlTt6ReYzbeFkrO1UHFcTdl58=
|
||||
=KyH4
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.15HF1
|
||||
|
||||
Changes
|
||||
= Bugfixes
|
||||
|
||||
Date 11/06/2020
|
||||
|
||||
VT: https://bit.ly/2GDYWRU
|
||||
|
||||
MD5 Checksum: F0D51FEC94F8D266390E61E89E6A2EE0
|
||||
SHA-1 Checksum: 4FB43CFA6021B8360A23858169FAF15468B68EDF
|
||||
SHA-256 Checksum: CBE414D9A283871099057EE5D8E56AF408996AE9C996C31F92C4DAE16D48B024
|
||||
SHA-512 Checksum: F16A6B29ECABBB16D25B7F7FC52CB15AE4930B2B17ABAC791BF1F331270F40B047094FDEAF1EF834E72E26AA3A6762AF8BE13EBCB735EB1C1009F884E338D9DE
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+lfEkACgkQvrtJUNxE
|
||||
TxMDDxAAg+90vrCn0PllPEezzX3AJpy7NFWhFjUlDOLzNFMPa/QdAfF6H5vhEGay
|
||||
bhX2BDHKSIV86bLkyGPkGHuf3etpXvZsNAmPuDoZpZ4owd1O09DOvAHIJx8F1Eia
|
||||
Jc9Zovz6lKLAeIbK9ZdChKwTG3hYLIkx3rMgtvnJkZfzUKbhdU9MP0rVEzDPkSfe
|
||||
ay2CGA9xLBUhPcItUTxhANzrDpRXMGHqbi+Wrscp+KmvnjHzN3Haq2A9rsasXM5Z
|
||||
RSG8ccLZiI496tJQquTvPXYcnWQQudzcf3yiicztein0xcISEat0FFIVao7TtnS4
|
||||
cgitvGNtfXXauAxyzjZ7PdgrVuoAE/v4m25pzaTRy7TOfW1uTz2/6lr6tZa38+p9
|
||||
Bs36KcoK64FcPWjfR7zvvmCUWT/aHlRC9FwMvBHB81WRRk6xGaKl8G2QxfKY/ATl
|
||||
DNlgYXfXLzipam74XfPHiyK4Sc55WLDQxZfZfD6tqTo4u8qoDESvcEz+pbGe4Wp8
|
||||
awY4FVeSP1jVQzHgWf+oMTiHm5Gb3qMLUhZ/AHidUWFLhzXmAA4YXxIHKidRjCYT
|
||||
42Kzs1sjT2A5ll2V7jz4pqoRlsvRAxNZ5KgAZ2R01zo7gS1nGqjyoGq3tLWHbfJk
|
||||
/kD4QlOwcv06Jvp8aHcPxpccB7KHZGoRT2PB6IQE9Gt72pmAU9c=
|
||||
=f7yh
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.15
|
||||
|
||||
Changes
|
||||
+ Added a spoofer
|
||||
+ Added option to auto spoof games with random package name
|
||||
+ Added new username support for quest 2
|
||||
= Updated drag and drop sideloading
|
||||
= Fixed storage label
|
||||
- Removed troubleshoot form and theme form
|
||||
|
||||
Date 11/04/2020
|
||||
|
||||
VT: https://bit.ly/3kYCQsb
|
||||
|
||||
MD5 Checksum: 39BAB4CEE3D0E387E770BA35F4488C2F
|
||||
SHA-1 Checksum: C6F311411408BCF5A55034E7A926EA385819F348
|
||||
SHA-256 Checksum: 64640374EF39DD9CFC4A613A49888E3194994AA934C5E952174A2FCF533E2D19
|
||||
SHA-512 Checksum: 22769280B732821539100BFA77C67141F271DB401DB3AFB28EF285E352659F9F45A90C8ABE1C0B829770C5AE580CA76A9208505888443C22EE82AAAE7035C6F7
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+jJScACgkQvrtJUNxE
|
||||
TxMTag//f570tZ4zxL1x1rdajdoYzPD6oaGIabRVPrqVogsFPuVF1Q3AOzr+nzQN
|
||||
Tiq7yRPmByu/dtBGby2mqL1acQ/9TLYDtmnOAxQJqj4h0KhYlnzdCfqJJbTghtZX
|
||||
cy44ZqgPW47P608+zC/NfePNt7Fq1rFKN3Bpo/ISoyi5/IVGqGq1Ix/D0SlhiM5X
|
||||
5VkiY+w5S0rXuAyQ4g6/03AiI9fdNVkREhUh/tYvb7IkxaN9IDlltHByeuvekMjZ
|
||||
KU+mwZ9habfthB31hp+bAXz82tbIzB4LJ1P8MNadIT8ZXG19zHEY/KlaDp2NjniV
|
||||
h+V9AnxPHlcZk63yVPOywxpZcv81LflMgs9XItX+zKH7ibniBEu8jxc/2uAjrDF/
|
||||
JuvnOUKTuH7S2iIzHhKLYZYHiOu8sIuwGC96Ep172PGCAkVVR6CtfNPMmVZRllsY
|
||||
JG3Pxdrw526SAy3Vqixbbm79Fs1o77resqGM2zl6L7Sr6sH3VnDxabVXxALgo1pH
|
||||
+LSu5rCLIIsCP1a4MAyy6UgO/+ZLrC1QazR4yY7SRQHAIM48XG4d6CznFCOjczhW
|
||||
VvYL6gZD7X4xlNBqNMtih8JDHIQ1y7n1f075oCxfWwt02kXhDL/cn8+UZ17IS6EZ
|
||||
zr/SLm1464/htCZgsUZgQrov6CpHX/xNqAubowkAVOdDREbwh2w=
|
||||
=QKlt
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.14SU1
|
||||
|
||||
Changes
|
||||
+ Quota errors now will try to redownload the game from another mirror
|
||||
= Only showing mirror remotes for apps
|
||||
// Will fix device storage when I get my quest 2 and can debug adb
|
||||
|
||||
Date 10/18/2020
|
||||
|
||||
VT: https://bit.ly/3kcG62A
|
||||
|
||||
MD5 Checksum: 2A30E5F3DB785DC8104A2AA55A83CF53
|
||||
SHA-1 Checksum: 8376E5971FC4F60995A1125DD9344E52135DB4F7
|
||||
SHA-256 Checksum: FD5C74067BA00561A540DE5A4F49FA63B99C9520435A51487F997AEC569E9659
|
||||
SHA-512 Checksum: 6188D6306CA2A3F25DE08E19D1F20046774F7AA30BD745ED24FC7E53126DF3950211B599E3D774F540A6C1DEC177A895FAE70FB564B6AE96F5F10ABDCB9021C1
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+MCbMACgkQvrtJUNxE
|
||||
TxNMVxAAlIkoTuGTDwXRBFNanulPiYmus9UazHoVFxtG2BELk1/JLPm7dwT29FiZ
|
||||
oacUhhxLAEfDm169FoPNFCH/6q74xqjACkm8FjwCoas53DekguIvrhJKA3SiBUtZ
|
||||
m7+hrT3WWGxXoE3+avSFmdBWWvKVA9pNR/DHprHSoinDUvgSfwBHrWD8PtuSIlwU
|
||||
/jNpzyDnmBfdT4LROq93hcfFXM+POLWs5f3rXFdT+zTZexxlRiG5h7yMmsYdwdov
|
||||
4jMUSzrBpRXbmmHwDi4KLzsdOJ/5okJgRdPTZm/L1rAoJT0F7QVi2shvkoN7SIH/
|
||||
Fg+k0ZrNOnlpdAJwLmJD4PkQmxv5zpGSh8w7nbQJ41HgBtTQTh3OCpRRamPzAmfo
|
||||
A2n/NsYpR8J8u7kGzT1MUnUn2RL+igutSrnQl8R6yR8jFjaTt+F90pBXZ1nnY6mS
|
||||
8YE9mBBK3365cYVqQzOW1TUSCSzQqwTbfKDHkKrzHQWrpQ8VNMLcJBLZwU8di+4p
|
||||
u8lt1uT5MRZ+9I80YBXhwzBKkiNYOt5vHpGgt0Ib4WDS7rt/7UnzEAfl8P3VEEfX
|
||||
6w1HctI2zAVWYutBMv6HL3v23cO+UT8H6Wdgxq36mlMSNiqjLIntfIRrySUOy7JV
|
||||
D6LE34gzpDGsBIzrpW/Hlz4wGTi6nnY0Ke6DkA1H0UOoDN9ItI4=
|
||||
=ARa/
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.14
|
||||
|
||||
Changes
|
||||
+ Added the ability to change remotes (mirrors)
|
||||
+ Rclone errors are now reported properly
|
||||
= Fixed some bugs
|
||||
// Will fix device storage when I get my quest 2 and can debug adb
|
||||
|
||||
Date 10/17/2020
|
||||
|
||||
VT: https://bit.ly/3j8kCm8
|
||||
|
||||
MD5 Checksum: B862B807462CE35CC930C2B1118D5692
|
||||
SHA-1 Checksum: F52C8630C89CAEDB2E90A857E494DE00B137712D
|
||||
SHA-256 Checksum: 3DDFA2B4CCFC0E9F6F86E8A74E6D3511B9C643F4C4AF19D3878B8704FA360558
|
||||
SHA-512 Checksum: 16A022D8A4D235D7C537D9F01FE7C5F964A67A3A8CD68B3DC17AF08D94837DAC6CE0C20557D029DC169E5616B36C2A4C36B1647CE0DF930C7694F3FEC3430E70
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+KrhQACgkQvrtJUNxE
|
||||
TxP9MRAAjZbYWkbZPK+QMqzNqsgEARs6buzrwc24dth6QEod9Fgmdg5wdinZdG8X
|
||||
MK467pd9u0JqM3u8DeKSUD0GEzJZStNKsbHfjvNAF3m8toaXLncWy7MYNN9loAra
|
||||
17MvUBBwB1QgsXtQ3EXT1cBbS3YkQPg5E+ayvY9ZgyiOpDK6fs1tA24NZUWc53kY
|
||||
TIl5IL3mZNfJck8Xc/QkZJmkBOA89oDToLOjNmZRXXEHNT/eTS6pEkMZonWQjGqF
|
||||
D2dEfQTOuIAD93JzwcP5wVJFh7z6o65/7tfguDqBsTgoRWODaY+kQJDAxoWN9w/n
|
||||
nagXg/y30EmE1mWQFUYa1n0V65OzT5+J8VF53DCHkgaejYLfi0lhy8TlWQZpmzen
|
||||
WJOsP1Oj3ZZ9sErO8waajDBzDZ3kU9NvAOeOblE491w0713MYZYs5BVgoyHi24xO
|
||||
obcp1gpLi326fkPqajgIFpDHJ014OnaXmoY9ynW9rlZJ4rwJ7WytRDzcpfyk9LV1
|
||||
G1tlcCS4c/RmuVfZi4Jh0guvOOIpJSqdG4KUtvd548sslTMdHytt+YugbKqcBAto
|
||||
nWroKcsmg0swAm7YgYmQXqcpM17JC21eUgm3Bc4ZZSDtP4g3Pm7vRO1+hwUNYBE9
|
||||
QeEMXYDPRsTxdpuEFsbmS/EfnndvJvl9BL92Zt4+T4ruL+II50s=
|
||||
=r+0B
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
New version v1.13 Released
|
||||
|
||||
Changes
|
||||
+ Pgp messages will be available now for every update, so you can verify updates easily
|
||||
= Fixed some bugs like the rclone suicide
|
||||
- Removed china detection
|
||||
|
||||
Date 9/10/2020
|
||||
|
||||
MD5 Checksum: 3834485C5AF611523460E639969284F3
|
||||
SHA-1 Checksum: DAF556D34F80FDE6A6A3D8F338381030B2B19E44
|
||||
SHA-256 Checksum: 063FABA6A76A98AB862BBBF6F3348F176F66FD4932075E761A5FCAA85785EE4B
|
||||
SHA-512 Checksum: CC743BD95826664535239BB665934E88A25CC948B95E4A3E8B34379C1E8DEB8FED05EAD87428F4B85D5841ED9101F38E4E3DAFB0EAF3CD2F2E4314B62356104D
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl9aBpMACgkQvrtJUNxE
|
||||
TxOJcA/+LEzXQtyBhZ0oj22PEk0yMLQYOBLYDB96jf39IqLQAzrIUL339jRcRKMv
|
||||
yhFWXpvND1wrQl3/LNtFpBSkSnvqUXtxHWg6US+Ov3nnrEvYiwK8D9f1eC5Mt3Wy
|
||||
4HZIyTh9HcrLsfbnP2kDlLOaMQSIH4rChezF79xZMcx7kRmQ0/hyXlmGAPyWs8t8
|
||||
5aLxk5YUcfq1Pu+ncqeX+ihYVzQHi2eXaOAIR1rSCEXfHEg9tkRzWcma8tY29gQv
|
||||
IgGwxF/YnAPOdBtzuakaT88a1MsP+tAcWxmsyvTQHrv1m0h3QPU1DxMFUfAlBjLM
|
||||
5tHgTTjkXedRpR+Kga5CDuK7L5p1zVMRDINcUOf9MXV2fRurZ+OIHefAd+zbrd0n
|
||||
vHi1D1sFzb/lT5LCa/vrfO9crRnLdK1EI/5HNeSj9iIdD2jEMbjSjo9yv7LA2MHi
|
||||
4wnvguRpK5YUGqGc2yyCRxtyKAgXXxLBFNb5K453vdLtDukZIkhLuQVchsk4PutZ
|
||||
1uIg7/ZmAIPxlEHaLckaV7QEFbq9h2hFWOsSjWAATyvnkp4nxyvAavW4zNQCbd3V
|
||||
XJhimZkE+3SNAuZGw10nikVz7DFMlI0dyL+jmwIuODcFMZZwkEtBr3J/Ad9V1k+G
|
||||
DFKYJpBgATHdRTwt7/zZwJCBq0ONheA/6+6VYj8x8Q5rqbiDDdc=
|
||||
=xp7X
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
1.11HF1
|
||||
= Fixed some crashes that occured when a unauthorized device was used with the sideloader
|
||||
|
||||
1.11
|
||||
+ Added support for multiple devices
|
||||
|
||||
1.10SU1
|
||||
+ Settings should now persist through updates
|
||||
- Removed download button and hwid stuff
|
||||
|
||||
1.10
|
||||
+ Added back the game size messagebox
|
||||
+ Added support for unicode in adb
|
||||
= Fixed restore gamedata
|
||||
= Clicking the first game won't remove it since it causes problems
|
||||
= Changed the sideloader icon
|
||||
|
||||
1.9SU2
|
||||
+ Clicking a game on the listbox will now remove it from the list
|
||||
|
||||
1.9SU1
|
||||
- Removed some code I forgot to remove when debugging
|
||||
|
||||
1.9
|
||||
+ Added a queue for downloading games
|
||||
+ Added a setting for disabling user.json push
|
||||
|
||||
1.8SU2
|
||||
= Install game now won't throw an exception when a game isn't selected
|
||||
|
||||
1.8SU1
|
||||
+ Added debug logs for rclone
|
||||
|
||||
1.8
|
||||
+ Disk info updates every command that changes disk space
|
||||
= Rclone now logs commands and output
|
||||
= Changed backup button
|
||||
|
||||
1.7.5
|
||||
+ Made sideloader even faster when opening
|
||||
+ Added some chiptune music and the setting to stop it
|
||||
= Fixed donator button broken in 1.7
|
||||
|
||||
1.7
|
||||
+ Removed some freezes
|
||||
+ Sideloader kills rclone on start and on close if it's open so you dont waste bandwith
|
||||
+ Updating rclone config now does a hash check first
|
||||
+ Refresh storage after game install and on game uninstall
|
||||
|
||||
1.6
|
||||
+ Disk space label and check
|
||||
+ Checks game size before download
|
||||
= Download and install game button outputs adb log now
|
||||
- Launch package name button and textbox
|
||||
|
||||
1.5
|
||||
+ Added ETA, based on CURRENT DOWNLOAD SPEED NOT DELTA OF IT
|
||||
+ Added DLS label instead of showing it in the toolbar
|
||||
+ Added more indication of what the software is doing, in the toolbar
|
||||
+ Added some tooltips
|
||||
|
||||
1.4
|
||||
+ Donators can now change the speed of the donate button color change (even disable)
|
||||
+ Auto update for the rclone config
|
||||
+ Theme export and import buttons (by gotard)
|
||||
|
||||
1.3
|
||||
+ Added progress bar logic for game downloading with rclone
|
||||
+ Uninstalling apps now asks the user if it should also remove game data
|
||||
= Sorted installed apps combobox
|
||||
= Fixed uninstalling apps by package names lol nobody knew was broken
|
||||
|
||||
1.2
|
||||
+ Added unicode support for rclone
|
||||
+ Added some delay on game installation
|
||||
= Fixed stuff
|
||||
|
||||
1.1
|
||||
+ Added Themes
|
||||
+ Added dollarvr user.json
|
||||
+ Added user.json transfer on game download
|
||||
+ Added user.json transfer on first run
|
||||
= Fixed tab indexes
|
||||
= Now both drop downs can be visible at the same time
|
||||
|
||||
1.0HF1
|
||||
= Fixed a problem when deleting an app
|
||||
|
||||
1.0
|
||||
+ Added games auto download
|
||||
+ Added auto troubleshoot
|
||||
+ Every app installed will have all perms granted
|
||||
+ Displays apps for games instead of package names if you have rclone set up
|
||||
+ Uninstall app now will also delete its obb folder
|
||||
//For auto download you need an rclone config and rclone to be set up correctly
|
||||
|
||||
0.15HF1
|
||||
+ Added list apps button back
|
||||
= Fixed Uninstall apk and get apk
|
||||
|
||||
0.15
|
||||
= MASSIVE UI REDESIGN
|
||||
+ Added toggle for tor/clearnet
|
||||
+ Added download games through tor but still waiting for someone to help me host the files
|
||||
+ Added download with progress
|
||||
= Changed adb sideload command to allow downgrades too
|
||||
- Removed perms stuff, was too buggy
|
||||
|
||||
0.14HF1
|
||||
+ Added donate button
|
||||
= Fixed ui order
|
||||
- Removed warning from bulk obb sideload button
|
||||
|
||||
0.14
|
||||
+ Check file hash button
|
||||
+ Added first run check (will maybe be used to create user.json files)
|
||||
+ Added drag and drop for apk and obb files
|
||||
+ Progress bar now works for every adb command
|
||||
= Moved buttons
|
||||
- Instructions button
|
||||
- Removed run custom adb command button and form
|
||||
|
||||
0.13
|
||||
+ Added vrmoo.cn.json
|
||||
+ Added bulk obb copy
|
||||
= Message Box now top most
|
||||
|
||||
0.12
|
||||
+ Added settings form
|
||||
+ Added progress bar (again)
|
||||
+ Added a new user.json
|
||||
= Fixed crash on some systems (PerformanceCounter)
|
||||
= Fixed crash because of file name inconsistency
|
||||
- Removed performance counters because they made the software not work for some people
|
||||
|
||||
0.11
|
||||
+ Changed normal message boxes to flexible ones
|
||||
+ Added changelog to update message
|
||||
= Improved update message
|
||||
- Removed progressbar
|
||||
|
||||
0.10
|
||||
+ Added few tooltips
|
||||
+ Sideload folder now works for all apks (recursive search)
|
||||
= Obb copy and Sideload progress bar problems should be fixed
|
||||
= Fixed user.json not working if the any of folder had spaces
|
||||
= Switched back to Message Boxes
|
||||
|
||||
0.9
|
||||
+ Added the buggy progress bar back, uses different "logic"
|
||||
+ Added an icon (Increased the exe size by like 300% just with that)
|
||||
+ Added sideload folder button
|
||||
+ Added Create user.json button and form
|
||||
+ Changed Message Boxes to notifications
|
||||
|
||||
0.8.5
|
||||
+ Added auto update download
|
||||
= Fixed a bug where if you didn't have the adb folder it would crash
|
||||
|
||||
0.8
|
||||
+ Every command now shows progress on title bar
|
||||
+ Automatically run Adb Devices and List Apps on form startup
|
||||
+ You can now search the App List Combo Box
|
||||
= Cleaned some code
|
||||
|
||||
0.7
|
||||
= Fixed UI Freezes
|
||||
+ Added Uninstall APK Button
|
||||
+ Added Launch package Button
|
||||
- Removed loading bar
|
||||
|
||||
0.6
|
||||
+ Added List Apk Perms button
|
||||
+ Added Change Permissions button
|
||||
+ Added dinamically added checkbox for permisssions
|
||||
= The software now downloads adb from master instead of v0.3 release
|
||||
|
||||
0.5
|
||||
- Removed Flash Firmware
|
||||
= Redesigned UI
|
||||
= Reworked RunAdbCommand function (now it will be possible to do stuff I wasnt able to do before)
|
||||
= Replaced Ui Buttons, still needs work
|
||||
+ Added List apk button
|
||||
+ Added List apk combo box
|
||||
+ Added get apk function
|
||||
= Cleaned a bit of code
|
||||
|
||||
0.4
|
||||
+ Added auto download of adb archive
|
||||
+ Added auto extraction of adb archive
|
||||
|
||||
0.3
|
||||
+ Added new form, you can run custom adb commands now
|
||||
+ Added recover and backup app data
|
||||
- Removed Select APK and Select OBB Buttons
|
||||
- Removed tooltips from removed buttons
|
||||
+ Sideload APK and Copy Obb buttons now also make you select the file/folder
|
||||
+ Improved firmware button
|
||||
|
||||
0.2
|
||||
+ Added Flash Firmware button
|
||||
+ Added few tooltips
|
||||
+ Renamed buttons
|
||||
|
||||
0.1
|
||||
+ Initial Release
|
||||
|
||||
HF - Hot Fix
|
||||
SU - Small Update
|
||||
HFP
|
||||
697
debuglog.txt
@@ -34009,3 +34009,700 @@ tmpfs 2973372 0 2973372 0% /apex
|
||||
|
||||
|
||||
|
||||
Running command shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
Running command shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
Running command shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
Running command shell input keyevent KEYCODE_WAKEUP
|
||||
Running command shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
Running command shell df
|
||||
|
||||
|
||||
Running command shell input keyevent KEYCODE_WAKEUP
|
||||
Filesystem 1K-blocks Used Available Use% Mounted on
|
||||
tmpfs 2973372 736 2972636 1% /dev
|
||||
tmpfs 2973372 0 2973372 0% /mnt
|
||||
tmpfs 2973372 0 2973372 0% /apex
|
||||
/dev/block/dm-4 1691188 1685900 0 100% /
|
||||
/dev/block/dm-5 310760 309800 0 100% /vendor
|
||||
/dev/block/dm-6 242680204 191465652 51083480 79% /data
|
||||
/data/media 242680204 191465652 51083480 79% /storage/emulated
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Running command shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
Running command devices
|
||||
List of devices attached
|
||||
192.168.0.101:5555 device
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Running command shell input keyevent KEYCODE_WAKEUP
|
||||
Devices:
|
||||
192.168.0.101:5555
|
||||
|
||||
|
||||
|
||||
Running command shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
|
||||
|
||||
Running command shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
Running command shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
Running command -s 192.168.0.101:5555 shell input keyevent KEYCODE_WAKEUP
|
||||
Running command -s 192.168.0.101:5555 shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
Running command -s 192.168.0.101:5555 shell df
|
||||
|
||||
|
||||
Running Rclone command: listremotes
|
||||
Filesystem 1K-blocks Used Available Use% Mounted on
|
||||
tmpfs 2973372 736 2972636 1% /dev
|
||||
tmpfs 2973372 0 2973372 0% /mnt
|
||||
tmpfs 2973372 0 2973372 0% /apex
|
||||
/dev/block/dm-4 1691188 1685900 0 100% /
|
||||
/dev/block/dm-5 310760 309800 0 100% /vendor
|
||||
/dev/block/dm-6 242680204 191465656 51083476 79% /data
|
||||
/data/media 242680204 191465656 51083476 79% /storage/emulated
|
||||
|
||||
|
||||
|
||||
|
||||
Rclone error:
|
||||
Rclone Output: VRP-mirror02:
|
||||
VRP-mirror03:
|
||||
VRP-mirror06:
|
||||
VRP-mirror09:
|
||||
VRP-mirror10:
|
||||
VRP-mirror12:
|
||||
VRP-mirror13:
|
||||
VRP-mirror16:
|
||||
|
||||
|
||||
|
||||
Loaded following mirrors:
|
||||
VRP-mirror02
|
||||
VRP-mirror03
|
||||
VRP-mirror06
|
||||
VRP-mirror09
|
||||
VRP-mirror10
|
||||
VRP-mirror12
|
||||
VRP-mirror13
|
||||
VRP-mirror16
|
||||
Running Rclone command: cat "VRP-mirror13:Quest Games/GameList.txt"
|
||||
Rclone error:
|
||||
Rclone Output: Game Name;Release Name;Release APK Path;Package Name;Version Code;Version Name
|
||||
1976 Back To Midway;1976 Back To Midway v10+1.1 -QU;1976 Back To Midway v10+1.1 -QU/1976 Back To Midway [1.1.10] S3.0.2.apk;com.IvanovichGames.game1976;10;1.1
|
||||
2MD - VR Football Unleashed;2MD - VR Football Unleashed v65+1.21 -QU;2MD - VR Football Unleashed v65+1.21 -QU/2MD - VR Football Unleashed [1.21.65] S3.0.2.apk;com.truantpixel.twomdquest;65;1.21
|
||||
51 Aliens TV;51 Aliens TV v4+0.4 -QU;51 Aliens TV v4+0.4 -QU/fiftyonealienstvquest [0.4] S3.0.2.apk;com.fiftyonealiens.fiftyonealienstvquest;4;0.4
|
||||
A Fishermans Tale;A Fishermans Tale v16+1.064 -QU;A Fishermans Tale v16+1.064 -QU/A Fishermans Tale [1.064.16] S2.11.apk;com.innerspacevr.afishermanstale;16;1.064
|
||||
A Lullaby of Colors;A Lullaby of Colors v1+1.2.2 -unknown;A Lullaby of Colors v1+1.2.2 -unknown/A lullaby of colors v1.2.2_patched(2019.09.28).apk;com.idumpling.a_lullaby_of_colors;1;1.2.2
|
||||
A Moment in Cannes;A Moment in Cannes v1+0.3 -unknown;A Moment in Cannes v1+0.3 -unknown/A Moment in Cannes v0.3.22.apk;com.azadux.Cannes_Fort;1;0.3
|
||||
AFFECTED - The Manor;AFFECTED - The Manor v82+1.28 -QU;AFFECTED - The Manor v82+1.28 -QU/AFFECTED - The Manor [1.28.82] S3.0.2.apk;com.fallen.manorquest;82;1.28
|
||||
ALTDEUS - Beyond Chronos;ALTDEUS - Beyond Chronos v434+1.0.434 -QU;ALTDEUS - Beyond Chronos v434+1.0.434 -QU/ALTDEUS - Beyond Chronos [1.0.434] S3.0.2.apk;com.MyDearest.Altdeus;434;1.0.434
|
||||
AUDICA;AUDICA v128543601+1.0.3.2 -QU (with DLC);AUDICA v128543601+1.0.3.2 -QU (with DLC)/AUDICA [1.0.3.2.128543601] + DLC_unlocker S3.0.2.apk;com.harmonixmusic.kata;128543601;1.0.3.2
|
||||
Accounting+;Accounting+ v35+1.24.35 -QU;Accounting+ v35+1.24.35 -QU/Accounting+ [1.24.35].apk;com.crowscrowscrows.AccountingPlus;35;1.24.35
|
||||
Acron - Attack of the Squirrels!;Acron - Attack of the Squirrels! v114094392+1.14.94392 -QU;Acron - Attack of the Squirrels! v114094392+1.14.94392 -QU/Acron_ Attack of the Squirrels! [1.14.94392.114094392] patch+savefix+90Hz+CustomRes.apk;com.resolutiongames.codenamelazarus;114094392;1.14.94392
|
||||
Air Brigade 2;Air Brigade 2 v20+0.2 -unknown;Air Brigade 2 v20+0.2 -unknown/AirBrigade2.apk;com.OnlyHuman.AirBrigade2vr;20;0.2
|
||||
Alienation;Alienation v23+1.293 -QU;Alienation v23+1.293 -QU/Alienation v23+1.293 -QU.apk;com.fiftyonealiens.alienationgame;23;1.293
|
||||
All Hail the Cook-o-tron;All Hail the Cook-o-tron v7+1.2.3 -QU;All Hail the Cook-o-tron v7+1.2.3 -QU/Cookotron Quest [1.2.3.7] S3.0.2.apk;com.SlapJak.CookOtron;7;1.2.3
|
||||
All Hail the Cook-o-tron;All Hail the Cook-o-tron v7+1.2.3 -VRP;All Hail the Cook-o-tron v7+1.2.3 -VRP/All Hail the Cook-o-tron v1.2.3 -VRP.apk;com.SlapJak.CookOtron;7;1.2.3
|
||||
Angry Birds VR - Isle of Pigs;Angry Birds VR - Isle of Pigs v305100058+3.5.100058 -QU;Angry Birds VR - Isle of Pigs v305100058+3.5.100058 -QU/Angry Birds VR - Isle of Pigs [3.5.100058.305100058] S3.0.2.apk;com.resolutiongames.abvriop.santacruz;305100058;3.5.100058
|
||||
Apex Construct;Apex Construct v45+45.0 -VRP;Apex Construct v45+45.0 -VRP/Apex Construct [v45.0].apk;com.fasttravelgames.apexconstruct;45;45.0
|
||||
Apollo 11;Apollo 11 v22+2.3 -Q2Patched-90Hz-CustomRes -QU;Apollo 11 v22+2.3 -Q2Patched-90Hz-CustomRes -QU/Apollo_11 [2.3.22] patch+savefix+90Hz+CustomRes.apk;com.immersivevreducation.Apollo11QuestFinal;22;2.3
|
||||
Arcaxer;Arcaxer v120+1.36.12 -QU;Arcaxer v120+1.36.12 -QU/Arcaxer [1.36.12.120] S3.0.2.apk;com.Overrungames.Arcaxer;120;1.36.12
|
||||
Arcaxer;Arcaxer v120+1.36.12 -QU;Arcaxer v120+1.36.12 -QU/Arcaxer v120+1.36.12 -QU.apk;com.Overrungames.Arcaxer;120;1.36.12
|
||||
Arizona Sunshine;Arizona Sunshine v21686+1.6 -QU (with DLC, v.2);Arizona Sunshine v21686+1.6 -QU (with DLC, v.2)/Arizona Sunshine [1.6.21686]+ DLC_unlocker S3.0.2.apk;com.vertigogames.azsq;21686;1.6
|
||||
ArtPlunge;ArtPlunge v201801250+201801250 -unknown;ArtPlunge v201801250+201801250 -unknown/APlunge v201909211 patched.apk;com.spaceplunge.artplungeoc;201801250;201801250
|
||||
Artifact;Artifact v17+1.0.6 -unknown;Artifact v17+1.0.6 -unknown/Artifact v1.0.6 (com.Mixreality.Artifact) patched.apk;com.Mixreality.Artifact;17;1.0.6
|
||||
Ashtar UFO;Ashtar UFO v1+1.0 -unknown;Ashtar UFO v1+1.0 -unknown/Ashtar UFO v1.0.apk;com.test.mj12;1;1.0
|
||||
Audio Trip;Audio Trip v121+1.0.2710 -QU;Audio Trip v121+1.0.2710 -QU/Audio Trip [1.0.2710.121] S3.0.2.apk;com.KinemotikStudios.AudioTripQuest;121;1.0.2710
|
||||
Audioshield;Audioshield v118+118 -QU;Audioshield v118+118 -QU/Audioshield v118.apk;com.Audiosurf.Audioshield;118;118
|
||||
Axegend;Axegend v1+3.0.5 -unknown;Axegend v1+3.0.5 -unknown/Axegend [3.0.5].apk;com.SubversionSquads.Axegend;1;3.0.5
|
||||
B-Team;B-Team v68+20.03.19.356857 -QU;B-Team v68+20.03.19.356857 -QU/B-Team v20.03.19.356857.apk;com.twistedpixelgames.BTEAM_App;68;20.03.19.356857
|
||||
BATTLESCAR - Punk Was Invented By Girls;BATTLESCAR - Punk Was Invented By Girls v1045+_1045_3082 -QU;BATTLESCAR - Punk Was Invented By Girls v1045+_1045_3082 -QU/BATTLESCAR - Punk Was Invented By Girls [10453082] S3.0.2.apk;com.atlas.Battlescar.Quest;1045;_1045_3082
|
||||
BOW MAN;BOW MAN v224+1.4.0-224 -QU;BOW MAN v224+1.4.0-224 -QU/BOW MAN [1.4.0+224] S3.0.2.apk;com.dmm.bowman;224;1.4.0+224
|
||||
Baba Yaga;Baba Yaga v3500+1.0.3500 -QU;Baba Yaga v3500+1.0.3500 -QU/Baba Yaga [1.0.3500] S3.0.2.apk;com.baobab.babayaga;3500;1.0.3500
|
||||
Baby Hands;Baby Hands v8+0.02 -VRP;Baby Hands v8+0.02 -VRP/Baby Hands v8+0.02 -VRP.apk;com.ChickenWaffle.BabyHands;8;0.02
|
||||
Bacon Roll;Bacon Roll v3+1.15.30 -QU;Bacon Roll v3+1.15.30 -QU/Bacon Roll [1.15.30] S3.0.2.apk;com.fieldofvision.baconroll;3;1.15.30
|
||||
Bait!;Bait! v112063217+1.12.63217 -unknown;Bait! v112063217+1.12.63217 -unknown/Bait_v1.2_modded.apk;com.resolutiongames.baitsantacruz;112063217;1.12.63217
|
||||
Ballista;Ballista v42+20.42 -QU (b);Ballista v42+20.42 -QU (b)/Ballista [20.42] S3.0.2.apk;com.HighVoltage.Crossbow;42;20.42
|
||||
Ballooning Adventures;Ballooning Adventures v5+1.1.2 -QU;Ballooning Adventures v5+1.1.2 -QU/BallooningAdventures [1.1.2.5] S3.0.2.apk;com.vector3up.BallooningAdventures;5;1.1.2
|
||||
BanditSix;BanditSix v130+1.1.0 -unknown;BanditSix v130+1.1.0 -unknown/BanditSix v1.1.0.130_patched.apk;com.climaxstudios.BanditSix;130;1.1.0
|
||||
Bang Squash;Bang Squash v2+1.0 -unknown;Bang Squash v2+1.0 -unknown/Bang Squash_1.0_Patched.apk;com.lebersoftware.bangsquashpro;2;1.0
|
||||
Basket VR;Basket VR v2+0.2 -unknown;Basket VR v2+0.2 -unknown/Basket VR v0.2.apk;com.realdragon.basketlittle;2;0.2
|
||||
Beat Arena;Beat Arena v39+1.2.0 -QU;Beat Arena v39+1.2.0 -QU/Beat Arena [1.2.0.39] S3.0.2.apk;jp.konami.bvr;39;1.2.0
|
||||
Beat Blaster;Beat Blaster v9+1.0 -QU;Beat Blaster v9+1.0 -QU/Beat Blaster [1.0.9] S3.0.2.apk;com.IvanovichGames.BeatBlasterVR;9;1.0
|
||||
Beat Saber;Beat Saber v132+1.3.2 (w.BMBF RSL2.1 or manual install only);Beat Saber v132+1.3.2 (w.BMBF RSL2.1 or manual install only)/BS.apk;com.beatgames.beatsaber;157;1.13.2
|
||||
Beat Saber;Beat Saber v213+1.16.0 (With DLC, No BMBF) -QU;Beat Saber v213+1.16.0 (With DLC, No BMBF) -QU/Beat Saber v213+1.16.0 (With DLC, No BMBF)-QU.apk;com.beatgames.beatsaber;213;1.16.0
|
||||
Big Breezy Boat;Big Breezy Boat v189+1.0.189 -QU;Big Breezy Boat v189+1.0.189 -QU/Big Breezy Boat [1.0.189] S3.0.2.apk;com.marineverse.morequest;189;1.0.189
|
||||
Bionic Hunter;Bionic Hunter v4+2.3 -unknown;Bionic Hunter v4+2.3 -unknown/BionicHunter [2.3].apk;com.AnomosStudios.BionicHunter;4;2.3
|
||||
Blair Witch;Blair Witch v49+1.46 -QU;Blair Witch v49+1.46 -QU/Blair Witch [1.46.49] S3.0.2.apk;pl.bloober.blairwitch;49;1.46
|
||||
Blaston;Blaston v109109277+1.9.109277 -QU;Blaston v109109277+1.9.109277 -QU/Blaston [1.9.109277.109109277] S3.0.2.apk;com.resolutiongames.ignis;109109277;1.9.109277
|
||||
Blockami VR;Blockami VR v1+0.1 -unknown;Blockami VR v1+0.1 -unknown/Blockami VR v1.00.apk;com.aardVRk.blockami;1;0.1
|
||||
Blueplanet VR Explore;Blueplanet VR Explore v7+7 -QU;Blueplanet VR Explore v7+7 -QU/Blueplanet VR Explore [7] S3.0.2.apk;com.blueplanetvr.blueplanetvr_explore_alpha;7;7
|
||||
Bodyguard 2;Bodyguard 2 v1+1.5 -unknown;Bodyguard 2 v1+1.5 -unknown/BODYGUARD 2 [1.5].apk;com.studio3DD.bodyguard2;1;1.5
|
||||
Bonfire;Bonfire v542+1.0.542 -QU;Bonfire v542+1.0.542 -QU/Bonfire [1.0.542] S3.0.2.apk;com.baobab.bonfire;542;1.0.542
|
||||
Box VR;Box VR v188+1.18 -unknown;Box VR v188+1.18 -unknown/Box VR [1.18.188]_multiplayer_DLC_patch+savefix.apk;com.fitxr.boxvr;188;1.18
|
||||
Breakout VR;Breakout VR v3+1.0 -QU;Breakout VR v3+1.0 -QU/Breakout VR [1.0.3] S3.0.2.apk;com.nerdvisiongames.breakoutvr;3;1.0
|
||||
CYBER TENNIS;CYBER TENNIS v152+1.6.4 -unknown;CYBER TENNIS v152+1.6.4 -unknown/CYBERTENNIS_for_Quest_1.6.4.apk;jp.co.techarts.cybertennis;152;1.6.4
|
||||
Cake Mouse;Cake Mouse v5+0.23 -QU;Cake Mouse v5+0.23 -QU/CakeMouse [0.23.5] S3.0.2.apk;com.StudioHORANG.CakeMouseQuest;5;0.23
|
||||
Captain Hardcore;Captain Hardcore v1+0.4 -VRP;Captain Hardcore v1+0.4 -VRP/Captain Hardcore 0.4.apk;com.AntiZeroGames.CH;1;1.0
|
||||
Car Parking Simulator;Car Parking Simulator v9+1.6.3 -QU;Car Parking Simulator v9+1.6.3 -QU/Car Parking Simulator [1.6.3.9] S3.0.2.apk;com.sloppy.carparkingsimulator;9;1.6.3
|
||||
Carly and the Reaperman;Carly and the Reaperman v122113212+1.22.113212 -QU;Carly and the Reaperman v122113212+1.22.113212 -QU/Carly and the Reaperman [1.22.113212] S3.0.2.apk;com.resolutiongames.catr.ovr.quest;122113212;1.22.113212
|
||||
Carrolls Riddles;Carrolls Riddles v439+1.51 -QU;Carrolls Riddles v439+1.51 -QU/Carrolls Riddles - [1.51.439] S3.0.2.apk;com.sciencevr.carroll.quest;439;1.51
|
||||
Carve Snowboarding;Carve Snowboarding v501+1.04 -QU;Carve Snowboarding v501+1.04 -QU/Carve Snowboarding [1.04.501] S3.0.2.apk;com.ViteiBackroom.Powder;501;1.04
|
||||
Cat Dissection;Cat Dissection v1+1.0 -unknown;Cat Dissection v1+1.0 -unknown/CatDissection-Quest v1.0.apk;com.VictoryXR.CatDissection;1;1.0
|
||||
Catan VR;Catan VR v11837+1.1.837 -QU;Catan VR v11837+1.1.837 -QU/Catan VR [1.1.837.11837] S3.0.2.apk;com.Experiment7.Aurora;11837;1.1.837
|
||||
Cave Digger;Cave Digger v71+2.17 -QU;Cave Digger v71+2.17 -QU/Cave Digger [2.17.71] S3.0.2.apk;com.mekiwi.cavedigger;71;2.17
|
||||
Chupa Chupa VR;Chupa Chupa VR v1+2.0 -VRP;Chupa Chupa VR v1+2.0 -VRP/ChupaChupaVR.apk;com.kan.kikuchi.ChupaChupaVR;1;2.0
|
||||
Cirque du Soleil;Cirque du Soleil v1001017+1.01.17 -QU;Cirque du Soleil v1001017+1.01.17 -QU/Cirque du Soleil [1.01.17.1001017] S3.0.2.apk;com.felixandpaul.quest.cds_portal;1001017;1.01.17
|
||||
City Avenger;City Avenger v2+1.0.1 -unknown;City Avenger v2+1.0.1 -unknown/CityAvenger_Quest_v1.0.1.apk;com.Chesstar.CityAvenger.itch;2;1.0.1
|
||||
Cloudlands 2;Cloudlands 2 v35+1.31 -QU;Cloudlands 2 v35+1.31 -QU/Cloudlands 2 [1.31.35] S2.11.apk;com.Futuretown.Cloudlands2;35;1.31
|
||||
Coaster Combat;Coaster Combat v708443+1.0 -QU;Coaster Combat v708443+1.0 -QU/Coaster Combat [1.0.708443] S3.0.2.apk;com.forcefieldxr.coastercombatquest;708443;1.0
|
||||
Color Space;Color Space v316+1.5.3 -QU;Color Space v316+1.5.3 -QU/Color Space [1.5.3.316] S3.0.2.apk;us.lighthaus.colorspace;316;1.5.3
|
||||
Colorball;Colorball v5+0.3.3 -QU;Colorball v5+0.3.3 -QU/Colorball [0.3.3.5] S3.0.2.apk;at.AppScore.Colorball;5;0.3.3
|
||||
Contractors;Contractors v61+1.3 -QU;Contractors v61+1.3 -QU/Contractors ['1.3'.61] S3.0.2.apk;com.CaveManStudio.ContractorsVR;61;1.3
|
||||
Control Tower VR;Control Tower VR v18+0.61 -unknown;Control Tower VR v18+0.61 -unknown/ControlTowerVR v0.61.apk;com.DigitalEmergence.ControlTower_Alpha;18;0.61
|
||||
Cook-Out;Cook-Out v108112973+1.8.112973 -QU;Cook-Out v108112973+1.8.112973 -QU/Cook-Out [1.8.112973.108112973] S3.0.2.apk;com.resolutiongames.cookinggame;108112973;1.8.112973
|
||||
Cosmic Sugar;Cosmic Sugar v5+3 -QU;Cosmic Sugar v5+3 -QU/Cosmic Sugar [3.5] S3.0.2.apk;com.LightClinic.CosmicSugar;5;3
|
||||
Cosmodread;Cosmodread v10014+1.0.0.14 -QU;Cosmodread v10014+1.0.0.14 -QU/Cosmodread [1.0.0.14.10014] S3.0.2.apk;com.WhiteDoorGames.Cosmodread;10014;1.0.0.14
|
||||
Counter Fight ICHIRAN;Counter Fight ICHIRAN v96+1.1.0_96;Counter Fight ICHIRAN v96+1.1.0_96/Counter Fight ICHIRAN [1.1.0_96] S3.0.2.apk;jp.tricol.IchiranVR;96;1.1.0_96
|
||||
Counter Fight ICHIRAN;Counter Fight ICHIRAN v96+1.10 -QU;Counter Fight ICHIRAN v96+1.10 -QU/Counter Fight ICHIRAN v96+1.10 -QU.apk;jp.tricol.IchiranVR;96;1.1.0_96
|
||||
Counter Fight;Counter Fight v1+1.5.0 -unknown;Counter Fight v1+1.5.0 -unknown/counterfight_quest v1.5.0.apk;jp.tricol.counterfight_for_quest;1;1.5.0
|
||||
Cover Drive Cricket;Cover Drive Cricket v169+1.0.1 -QU;Cover Drive Cricket v169+1.0.1 -QU/Cover Drive Cricket [1.0.1.169] S3.0.2.apk;io.mphillips.CoverDriveCricket21;169;1.0.1
|
||||
Crashland;Crashland v66+1.01;Crashland v66+1.01/Crashland [1.01.66] S3.0.2.apk;com.LACGames.Crashland;66;1.01
|
||||
Crazy Croquet VR;Crazy Croquet VR v2+0.2 -QU;Crazy Croquet VR v2+0.2 -QU/Croquet VR [0.2] S3.0.2.apk;de.selfox.crazycroquet;2;0.2
|
||||
Crazy Kung Fu;Crazy Kung Fu v5+0.63.10 -QU;Crazy Kung Fu v5+0.63.10 -QU/Crazy Kung Fu [0.63.10.5] S3.0.2.apk;com.fieldofvision.crazykungfu;5;0.63.10
|
||||
Creed - Rise to Glory;Creed - Rise to Glory v247262+1 -QU;Creed - Rise to Glory v247262+1 -QU/Creed - Rise to Glory [1.247262] S3.0.2.apk;com.survios.Creed;247262;1
|
||||
Crisis VRigade 2;Crisis VRigade 2 v55+1.17 -QU;Crisis VRigade 2 v55+1.17 -QU/Crisis VRigade 2 [1.17.55] S3.0.2.apk;com.sumalab.CrisisVRigade2;55;1.17
|
||||
Crisis VRigade;Crisis VRigade v1+1.18 -VRP;Crisis VRigade v1+1.18 -VRP/Crisis VRigade v1+1.18 -VRP.apk;com.sumalab.CrisisVRigade;1;1.18
|
||||
Crop Craze - VR Farming Simulator;Crop Craze - VR Farming Simulator v130+1.3.0 -VRP;Crop Craze - VR Farming Simulator v130+1.3.0 -VRP/Crop Craze - VR Farming Simulator v1.3.1 -VRP.apk;com.PicoPlanetDeveloping.FarmGame;130;1.3.0
|
||||
Cubism;Cubism v91+1.2.7 -QU;Cubism v91+1.2.7 -QU/Cubism [1.2.7.91] S3.0.2.apk;com.tvb.cubism;91;1.2.7
|
||||
Custom Home Mapper;Custom Home Mapper v1+0.1 -unknown;Custom Home Mapper v1+0.1 -unknown/Custom Home Mapper v2.3.apk;com.curiousvr.homespace;1;0.1
|
||||
Cyber Cycle;Cyber Cycle v1+0.1 -unknown;Cyber Cycle v1+0.1 -unknown/Cyber_Cycle_Test_Bld v0.1.apk;com.syntheon.cc2;1;0.1
|
||||
Cyber Tennis;Cyber Tennis v161+1.6.6 -QU;Cyber Tennis v161+1.6.6 -QU/CYBER TENNIS [1.6.6.161] S3.0.2.apk;jp.co.techarts.cybertennis;161;1.6.6
|
||||
Dance Central;Dance Central v121011401+1.2.1 -QU (b);Dance Central v121011401+1.2.1 -QU (b)/Dance Central [1.2.1.121011401] S3.0.2.apk;com.HarmonixMusic.DCVRQuest;121011401;1.2.1
|
||||
Dance Dance Maker;Dance Dance Maker v9+0.9 -unknown;Dance Dance Maker v9+0.9 -unknown/Dance Dance Maker_0.9_Patched.apk;com.novia.vr.ddm;9;0.9
|
||||
David Slade Mysteries - Case Files;David Slade Mysteries - Case Files v11+2.5a -QU;David Slade Mysteries - Case Files v11+2.5a -QU/DSM - Case Files [2.5a.11] S3.0.2.apk;com.GearWorxProductions.DSMCaseFiles;11;2.5a
|
||||
Dead Shot Heroes;Dead Shot Heroes v1+2.1.3 -unknown;Dead Shot Heroes v1+2.1.3 -unknown/Dead Shot Heroes v2.1.3.apk;com.omm.dsh;1;2.1.3
|
||||
Dead and Buried II;Dead and Buried II v3008396+2.0.8396 -QU;Dead and Buried II v3008396+2.0.8396 -QU/Dead and Buried II [2.0.8396.3008396] S2.11.apk;com.oculus.dab2;3008396;2.0.8396
|
||||
Death Horizon Reloaded;Death Horizon Reloaded v101+0.9.25.8 -QU;Death Horizon Reloaded v101+0.9.25.8 -QU/Death Horizon - Reloaded [0.9.25.8.101] S3.0.2.apk;com.dreamdev.deathhorizon.quest;101;0.9.25.8
|
||||
Death Lap;Death Lap v936+9.36 -VRP;Death Lap v936+9.36 -VRP/Death Lap v936+9.36 -VRP.apk;com.ozwe.deathlap;936;9.36
|
||||
Deep Water Solo Climbing;Deep Water Solo Climbing v1+0.1 -unknown;Deep Water Solo Climbing v1+0.1 -unknown/Deep Water Solo Climbing v0.1.0.apk;com.kecoproductions.DeepWaterSolo;1;0.1
|
||||
Deisim;Deisim v48+1.33.2 -QU;Deisim v48+1.33.2 -QU/Deisim v48+1.33.2 -QU.apk;com.MyronSoftware.Deisim;48;1.33.2
|
||||
Demeo;Demeo v102113053+1.2.113053 -QU;Demeo v102113053+1.2.113053 -QU/Demeo [1.2.113053.102113053] S3.0.2.apk;com.resolutiongames.demeo;102113053;1.2.113053
|
||||
Descent Alps;Descent Alps v22+0.4.1 -QU;Descent Alps v22+0.4.1 -QU/DescentAlps [0.4.1.22] S3.0.2.apk;com.Sutur.DescentAlps;22;0.4.1
|
||||
Directive Nine;Directive Nine v5+0.2.3 -QU;Directive Nine v5+0.2.3 -QU/DirectiveNine [0.2.3.5] S3.0.2.apk;com.rooftoppanda.directivenine;5;0.2.3
|
||||
Disc Benders - Ace Run;Disc Benders - Ace Run v4+1.3.1 -QU;Disc Benders - Ace Run v4+1.3.1 -QU/Disc Benders - Ace Run [1.3.1.4] S3.0.2.apk;com.FreeFallStudios.DiscBenders;4;1.3.1
|
||||
DiscGolfVR;DiscGolfVR v1+0.1 -unknown;DiscGolfVR v1+0.1 -unknown/DiscGolfVR v4.5.apk;com.AlexV.DiscGolfVR;1;0.1
|
||||
Doctor Who The Edge of Time;Doctor Who The Edge of Time v368+368 -QU (b);Doctor Who The Edge of Time v368+368 -QU (b)/Doctor Who The Edge of Time [368] S3.0.2.apk;com.mazetheory.doctorwho;368;368
|
||||
Dogfish Dessection;Dogfish Dessection v1+1.0 -unknown;Dogfish Dessection v1+1.0 -unknown/Dogfish_Dissection-Quest v1.0.apk;com.VictoryXR.DogfishDissection;1;1.0
|
||||
Domino's Vice VR;Domino's Vice VR v1+1.0 -unknown;Domino's Vice VR v1+1.0 -unknown/Domino's Vice VR_1.0_Patched.apk;samsapps.games.dominovr;1;1.0
|
||||
Doom3Quest;Doom3Quest v16+0.2.0 -DrBeef;Doom3Quest v16+0.2.0 -DrBeef/Doom3Quest.apk;com.drbeef.doom3quest;16;0.2.0
|
||||
Down the Rabbit Hole;Down the Rabbit Hole v429+01.02 -QU;Down the Rabbit Hole v429+01.02 -QU/Down the Rabbit Hole [01.02.429] S3.0.2.apk;com.CortopiaStudios.DTRH;429;01.02
|
||||
Dr. Zaney's Insane Labs;Dr. Zaney's Insane Labs v2+1.1 -QU;Dr. Zaney's Insane Labs v2+1.1 -QU/Dr. Zaneys Insane Labs - [1.1.2] S3.0.2.apk;com.GearWorxProductions.Dr.ZaneysInsaneLabs;2;1.1
|
||||
DrakaVR;DrakaVR v1+1 -unknown;DrakaVR v1+1 -unknown/DrakaVR.apk;com.Questeroid.DrakaVR;1;1
|
||||
Dreadhalls;Dreadhalls v10619+1.6.19 -QU;Dreadhalls v10619+1.6.19 -QU/Dreadhalls.[1.6.19.10619]_patched.apk;com.WhiteDoorGames.DreadhallsQuest;10619;1.6.19
|
||||
DroneLight;DroneLight v1+0.1 -unknown;DroneLight v1+0.1 -unknown/DroneLight.apk;com.dronelight.map1;1;0.1
|
||||
Drop Dead - Dual Strike Edition;Drop Dead - Dual Strike Edition v1724091000+1.3.7 -QU;Drop Dead - Dual Strike Edition v1724091000+1.3.7 -QU/Drop Dead - Dual Strike Edition [1.3.7.1724091000] S3.0.2.apk;com.PixelToys.DropDead;1724091000;1.3.7
|
||||
Drunkn Bar Fight;Drunkn Bar Fight v121+10.21 -QU;Drunkn Bar Fight v121+10.21 -QU/Drunkn Bar Fight [10.21.121] S2.11.apk;com.themunky.drunknbarfightQuest;121;10.21
|
||||
Dungeon Chess;Dungeon Chess v58+0.0.60 -unknown;Dungeon Chess v58+0.0.60 -unknown/Dungeon Chess v0.060.apk;com.Experiment7.RealDungeonChess;58;0.0.60
|
||||
Dungeon Train;Dungeon Train v1+0.13.19 -unknown;Dungeon Train v1+0.13.19 -unknown/dungeonTrain v0.19.12.apk;com.brennanhatton.dungeontrain;1;0.13.19
|
||||
ENHANCE VR;ENHANCE VR v31+2.0.0 -unknown;ENHANCE VR v31+2.0.0 -unknown/ENHANCE VR 2.0.0 Patched.apk;com.Virtuleap.Enhance;31;2.0.0
|
||||
Electronauts;Electronauts v175667+175667 (b) -QU;Electronauts v175667+175667 (b) -QU/Electronauts [175667.175667] S3.0.2.apk;com.survios.Electronauts;175667;175667
|
||||
Eleven Table Tennis;Eleven Table Tennis v642+1.642 -QU;Eleven Table Tennis v642+1.642 -QU/Eleven Table Tennis v642+1.642 -QU.apk;quest.eleven.forfunlabs;642;1.642
|
||||
Elven Assassin;Elven Assassin v122+1.4.2c_OculusQuest -QU;Elven Assassin v122+1.4.2c_OculusQuest -QU/Elven Assassin [1.4.2c_OculusQuest.122] S3.0.2.apk;com.WenklyStudio.ElvenAssassin;122;1.4.2c_OculusQuest
|
||||
End Space;End Space v26+1.0.6.1 -QU;End Space v26+1.0.6.1 -QU/End Space [1.0.6.1.26] S3.0.2.apk;com.endspace.quest;26;1.0.6.1
|
||||
Energysaber Masta VR;Energysaber Masta VR v41+1.17 -QU;Energysaber Masta VR v41+1.17 -QU/Energysaber Masta VR [1.17.41] S3.0.2.apk;com.dreamteammobile.LightsaberMastaVR;41;1.17
|
||||
Epic Roller Coasters;Epic Roller Coasters v5093+7.1.0 -QU;Epic Roller Coasters v5093+7.1.0 -QU/Epic Roller Coasters [7.1.0.5093] S3.0.2.apk;games.b4t.epicrollercoasters.oculus;5093;7.1.0
|
||||
Escape Legacy;Escape Legacy v37+1.35 -QU;Escape Legacy v37+1.35 -QU/Escape Legacy [1.35.37] S3.0.2.apk;com.StormingTech.EscapeLegacySideQuest;37;1.35
|
||||
Escape!;Escape! v2+1.01 -unknown;Escape! v2+1.01 -unknown/Escape v1.01.apk;com.Robbin12392.Escape;2;1.01
|
||||
Espire 1 - VR Operative;Espire 1 - VR Operative v1600+1.8.47 -QU;Espire 1 - VR Operative v1600+1.8.47 -QU/Espire 1 - VR Operative [1.8.47.1600] S3.0.2.apk;com.DigitalLode.Espire1;1600;1.8.47
|
||||
Evryway Visualiser;Evryway Visualiser v136+0.136 -QU;Evryway Visualiser v136+0.136 -QU/Evryway Visualiser [0.136]_clean.apk;com.evryway.visualiser.oal;136;0.136
|
||||
Exorcist Legion VR;Exorcist Legion VR v27+1.0.9 -QU;Exorcist Legion VR v27+1.0.9 -QU/Exrcist_Legion v1.0.9.apk;com.wolfandwood.exorcistlegionvr;27;1.0.9
|
||||
FREEDIVER - Triton Down;FREEDIVER - Triton Down v20+1.0 (b) -QU;FREEDIVER - Triton Down v20+1.0 (b) -QU/FREEDIVER - Triton Down [1.0.20] S3.0.2.apk;com.Archiact.Freediver;20;1.0
|
||||
FREEDIVER - Triton Down;FREEDIVER - Triton Down v20+1.0 -QU;FREEDIVER - Triton Down v20+1.0 -QU/freediver lightly patched v1.0.apk;com.Archiact.Freediver;20;1.0
|
||||
Face Your Fears 2;Face Your Fears 2 v487009+1.0.487009 (b) -QU;Face Your Fears 2 v487009+1.0.487009 (b) -QU/Face Your Fears 2 [1.0.487009.487009] S3.0.2.apk;gg.trs.fyf2;487009;1.0.487009
|
||||
Face Your Fears 2;Face Your Fears 2 v487009+1.0.487009 -QU;Face Your Fears 2 v487009+1.0.487009 -QU/Face Your Fears 2 v1.0.487009.apk;gg.trs.fyf2;487009;1.0.487009
|
||||
Fail Factory;Fail Factory v54+1.0 -QU;Fail Factory v54+1.0 -QU/Fail Factory [1.0.54] patch+savefix.apk;com.Armature.FailFactory;54;1.0
|
||||
Falcon Age;Falcon Age v31+1.01 -QU;Falcon Age v31+1.01 -QU/Falcon Age [1.01.31] S3.0.2.apk;com.OuterloopGames.FalconAge;31;1.01
|
||||
Faraday's Magnets;Faraday's Magnets v5+0.23 -unknown;Faraday's Magnets v5+0.23 -unknown/ScienceVR - Faraday's Magnets [0.23].apk;com.sciencevr.faraday.quest;5;0.23
|
||||
Fast Formula;Fast Formula v1+1.0 -unknown;Fast Formula v1+1.0 -unknown/Fast Formula_1.0_Patched.apk;com.FastFormula.FastFormula;1;1.0
|
||||
Fear Dead House;Fear Dead House v11+1.00 -QU;Fear Dead House v11+1.00 -QU/Fear Dead House [1.00.11] S3.0.2.apk;com.quest.tgs.vrghost;11;1.00
|
||||
Fear Within;Fear Within v1+1.0 -unknown;Fear Within v1+1.0 -unknown/FearWithin1.0.0.2.apk;com.SAAPDigital.FearWithin;1;1.0
|
||||
FigureOut VR;FigureOut VR v1+1.0 -QU;FigureOut VR v1+1.0 -QU/FigureOutVR [1.0] S3.0.2.apk;com.figureout.questvr;1;1.0
|
||||
Fingers - Mini Games;Fingers - Mini Games v1+1.02 -unknown;Fingers - Mini Games v1+1.02 -unknown/Fingers - Mini Games v1.02.apk;com.dedm0zaj.FingersMiniGames;1;1.02
|
||||
Five Nights at Freddys - Help Wanted;Five Nights at Freddys - Help Wanted v219+1.0.6 -QU;Five Nights at Freddys - Help Wanted v219+1.0.6 -QU/Five Nights at Freddys - Help Wanted [1.0.6.219] + DLCunlocker S3.0.2.apk;com.SteelWoolGames.fnafhw;219;1.0.6
|
||||
Flappy Flappy VR;Flappy Flappy VR v3+1.0 -unknown;Flappy Flappy VR v3+1.0 -unknown/Flappy Flappy VR v1.0.apk;com.FlappyFlappyVR.www.VRmoo.cn;3;1.0
|
||||
Floor Plan 2;Floor Plan 2 v125+1.0.2.7 -QU;Floor Plan 2 v125+1.0.2.7 -QU/Floor Plan 2 [1.0.2.7.125] S3.0.2.apk;com.turbobutton.fp2;125;1.0.2.7
|
||||
Flow Weaver;Flow Weaver v46+1.1.0 -QU;Flow Weaver v46+1.1.0 -QU/Flow Weaver [1.1.0.46] S3.0.2.apk;ca.StitchMedia.FlowWeaver;46;1.1.0
|
||||
Flowborne - Breathing Meditation;Flowborne - Breathing Meditation v38+1.00 -QU;Flowborne - Breathing Meditation v38+1.00 -QU/Flowborne VR [1.00.38] S3.0.2.apk;com.vunderwelten.flowbornevr;38;1.00
|
||||
Fly XR;Fly XR v1+0.01b -unknown;Fly XR v1+0.01b -unknown/Fly XRv14 [0.01b].apk;com.PlayHop.FlyXR;1;0.01b
|
||||
Food Flinger;Food Flinger v1+1.0 -unknown;Food Flinger v1+1.0 -unknown/FoodFlinger.apk;com.DashingCape.FoodFlinger;1;1.0
|
||||
ForeVR Bowl;ForeVR Bowl v215+1.0 -QU;ForeVR Bowl v215+1.0 -QU/ForeVR Bowl v215+1.0 -QU.apk;com.forevr.bowling;215;1.0.215
|
||||
Forklift Simulator;Forklift Simulator v6+1.0.6 -VRP;Forklift Simulator v6+1.0.6 -VRP/forklift-simulator-beta [1.0.6].apk;com.Chalkbites.ForkliftSimulatorQuest;6;1.0.6
|
||||
Frog Dissection;Frog Dissection v1+1.0 -unknown;Frog Dissection v1+1.0 -unknown/FrogDissection-Quest.apk;com.VictoryXR.FrogDissectionQuest;1;1.0
|
||||
Fruit Ninja;Fruit Ninja v547288+1.7.0.547288 -QU;Fruit Ninja v547288+1.7.0.547288 -QU/Fruit Ninja [1.7.0.547288] patch+savefix.apk;com.halfbrick.fruitninjavr;547288;1.7.0.547288
|
||||
Fujii;Fujii v825+1.0 -QU (b);Fujii v825+1.0 -QU (b)/Fujii [1.0.825] S3.0.2.apk;com.funktroniclabs.fuji;825;1.0
|
||||
Fun House;Fun House v2+1.1 -QU;Fun House v2+1.1 -QU/Fun House v2+1.1 -QU.apk;com.fairview.funhouse;2;1.1
|
||||
Futbolin Revolution;Futbolin Revolution v1+0.1 -unknown;Futbolin Revolution v1+0.1 -unknown/Futbolín Revolution 1.0 Patched.apk;com.Pixelfun.FutbolinRevolution;1;0.1
|
||||
GORN;GORN v1906+1.2.1906 -QU;GORN v1906+1.2.1906 -QU/GORN [1.2.1906] S3.0.2.apk;com.freelives.gorn;1906;1.2.1906
|
||||
Gadgeteer;Gadgeteer v79+1.0.17 -QU;Gadgeteer v79+1.0.17 -QU/Gadgeteer [1.0.17.79] S3.0.2.apk;com.metanaut.Gadgeteer;79;1.0.17
|
||||
Ghost Giant;Ghost Giant v32+1.0.32 -QU;Ghost Giant v32+1.0.32 -QU/Ghost Giant [1.0.32] patch+savefix.apk;com.zoink.ghostgiant;32;1.0.32
|
||||
Gladiatus;Gladiatus v2+1.0 -QU;Gladiatus v2+1.0 -QU/Gladiatus v2+1.0 -QU.apk;com.varonia.gladiatus;2;1.0
|
||||
Gladius;Gladius v7+1.0 -VRP;Gladius v7+1.0 -VRP/Gladius v7 VRP.apk;com.VirtualAge.GladiusQuest;7;1.0
|
||||
Glitch Assassin;Glitch Assassin v1+1.0 -unknown;Glitch Assassin v1+1.0 -unknown/Glitch Assassin v1.0.apk;com.LoneWolfInteractive.GlitchAssassin;1;1.0
|
||||
Gloomy Eyes;Gloomy Eyes v33+33 -QU;Gloomy Eyes v33+33 -QU/Gloomy Eyes 33 Patched.apk;com.arte.gloomy_eyes;33;33
|
||||
Gravity Lab;Gravity Lab v95+1.14.0 -QU;Gravity Lab v95+1.14.0 -QU/Gravity Lab [1.14.0.95] S3.0.2.apk;com.markschramm.gravitylab;95;1.14.0
|
||||
Guided Tai Chi;Guided Tai Chi v1235+1.2.35 -unknown;Guided Tai Chi v1235+1.2.35 -unknown/Guided Tai Chi [1.2.35] patch+savefix+90Hz.apk;com.CubicleNinjas.GuidedTaiChi;1235;1.2.35
|
||||
Gun Club VR;Gun Club VR v228+1.1.82 -QU;Gun Club VR v228+1.1.82 -QU/Gun Club VR [1.1.82.228] S2.11.apk;com.nextgenreality.GunClubVR;228;1.1.82
|
||||
GunSpinning VR;GunSpinning VR v1+2.0 -unknown;GunSpinning VR v1+2.0 -unknown/GunSpinning VR1.0_Patched.apk;net.demonixis.gunspinningvr;1;2.0
|
||||
Guns'n'Stories - Bulletproof VR;Guns'n'Stories - Bulletproof VR v155+1.0 (b) -QU;Guns'n'Stories - Bulletproof VR v155+1.0 (b) -QU/GunsnStories - Bulletproof VR [1.0.155] S3.0.2.apk;com.MiroWin.OMT;155;1.0
|
||||
Half-Life 1 VR;Half-Life 1 VR v23+1.4.5 -DrBeef (with assets, manual install);Half-Life 1 VR v23+1.4.5 -DrBeef (with assets, manual install)/HalfLifeVR.apk;com.drbeef.lambda1vr;23;1.4.5
|
||||
Hand Physics Lab;Hand Physics Lab v248+1.1.0.0102 -QU;Hand Physics Lab v248+1.1.0.0102 -QU/Hand Physics Lab v248+1.1.0.0102 -QU.apk;com.holonautic.HandPhysicsLab;248;1.1.0.0102
|
||||
Hand Spell;Hand Spell v1+1.00 -QU;Hand Spell v1+1.00 -QU/Hand Spell [1.00] S3.0.2.apk;com.kosmiq.handspell;1;1.00
|
||||
Hatsune Miku VR;Hatsune Miku VR v10+3.01 -QU (with DLC);Hatsune Miku VR v10+3.01 -QU (with DLC)/Hatsune Miku VR [3.01.10] S2.11 + DLC Unlocked.apk;jp.co.crypton.mikuvrq;10;3.01
|
||||
Hermetika VR;Hermetika VR v6+0.6 -unknown;Hermetika VR v6+0.6 -unknown/HermetikaVR.apk;am.benth.hermetikavr;6;0.6
|
||||
HeroBound 2;HeroBound 2 v8+1.5.1 -unknown;HeroBound 2 v8+1.5.1 -unknown/HeroBound 2.apk;com.oculus.herobound2;8;1.5.1
|
||||
Holopoint;Holopoint v123+R1.0.14 -QU;Holopoint v123+R1.0.14 -QU/Holopoint [R1.0.14.123] S2.10.apk;com.AlzanStudios.HPPortable;123;R1.0.14
|
||||
Home Plate Baseball;Home Plate Baseball v42+4.2 -QU;Home Plate Baseball v42+4.2 -QU/Home Plate Baseball [4.2.42] S3.0.2.apk;com.Beep2Bleep.HomePlateBaseball;42;4.2
|
||||
Homestar VR - Special Edition;Homestar VR - Special Edition v41+1.03 -QU;Homestar VR - Special Edition v41+1.03 -QU/Homestar VR - Special Edition [1.03.41] S3.0.2.apk;com.pocket.homestarvrsp;41;1.03
|
||||
Homestar VR;Homestar VR v64+1.32 -QU;Homestar VR v64+1.32 -QU/Homestar VR 1.32 Patched.apk;com.pocket.homestarvr;64;1.32
|
||||
Hoops Madness;Hoops Madness v5+1.0.0 -QU;Hoops Madness v5+1.0.0 -QU/Hoops Madness [1.0.0.5] S3.0.2.apk;com.VRstudios.HoopsMadness;5;1.0.0
|
||||
House Of Languages;House Of Languages v14+3.3.3 -unknown;House Of Languages v14+3.3.3 -unknown/House Of Languages_3.3.3_v14.apk;com.Fox3DGames.HouseOfLanguages;14;3.3.3
|
||||
HouseFlipper VR;HouseFlipper VR v86+8.6 -QU;HouseFlipper VR v86+8.6 -QU/HouseFlipper VR [8.6.86] S3.0.2.apk;com.oculus.HouseFlipperVR;86;8.6
|
||||
Hyper Dash;Hyper Dash v273+1.16.5 -QU;Hyper Dash v273+1.16.5 -QU/Hyper Dash [1.16.5.273] S3.0.2.apk;com.TriangleFactory.HyperDash;273;1.16.5
|
||||
Hyper Dash;Hyper Dash v274+1.16.5 -QU;Hyper Dash v274+1.16.5 -QU/Hyper Dash [1.16.5.274] S3.0.2.apk;com.TriangleFactory.HyperDash;274;1.16.5
|
||||
Hyperstacks;Hyperstacks v7+Alpha 0.6.13 -QU;Hyperstacks v7+Alpha 0.6.13 -QU/Hyperstacks [Alpha 0.6.13.7]_clean.apk;com.SquirrelBytes.Hyperstacks;7;Alpha 0.6.13
|
||||
I Expect You to Die;I Expect You to Die v41516+1.0.141516 -QU;I Expect You to Die v41516+1.0.141516 -QU/I Expect You To Die [1.0.141516] patch+savefix.apk;com.schellgames.ieytdquest;41516;1.0.141516
|
||||
Imercyve - Living with Intellectual Disability;Imercyve - Living with Intellectual Disability v19+1.0 -QU;Imercyve - Living with Intellectual Disability v19+1.0 -QU/Imercyve - Living with Intellectual Disability [1.0.19] S3.0.2.apk;com.VGH.ID;19;1.0
|
||||
In Death - Unchained;In Death - Unchained v41945299+1.3.15 -QU;In Death - Unchained v41945299+1.3.15 -QU/In Death - Unchained [1.3.15.41945299] S3.0.2.apk;com.Solfar.InDeath;41945299;1.3.15
|
||||
Ironlights;Ironlights v142+142 -QU;Ironlights v142+142 -QU/Ironlights [142] S3.0.2.apk;com.emcneill.Ironlights;142;142
|
||||
Jigsaw 360;Jigsaw 360 v63+3.1.6 -QU;Jigsaw 360 v63+3.1.6 -QU/Jigsaw 360 [3.1.6.63] S3.0.2.apk;com.JumbliVR.Jigsaw360;63;3.1.6
|
||||
Jigsaw Puzzle VR;Jigsaw Puzzle VR v20+1.04 -QU;Jigsaw Puzzle VR v20+1.04 -QU/JigsawPuzzleVR [1.04.20] S3.0.2.apk;com.Marrsbiz.JigsawPuzzleVR;20;1.04
|
||||
Job Simulator;Job Simulator v36+1.4.0.4665 -QU;Job Simulator v36+1.4.0.4665 -QU/Job Simulator [1.4.0.4665.36] S2.10.apk;com.owlchemylabs.jobsimulator;36;1.4.0.4665
|
||||
Journey Of The Gods;Journey Of The Gods v479431+1.0.479431 -QU;Journey Of The Gods v479431+1.0.479431 -QU/Journey Of The Gods [1.0.479431] patch+savefix+90Hz.apk;gg.trs.grappa;479431;1.0.479431
|
||||
Jurassic World Aftermath;Jurassic World Aftermath v23258+v1.3 -QU;Jurassic World Aftermath v23258+v1.3 -QU/Jurassic World Aftermath [v1.3.23258] S3.0.2.apk;com.coatsink.alone;23258;v1.3
|
||||
Just Drive;Just Drive v1+1.0 -unknown;Just Drive v1+1.0 -unknown/Just Drive [1.0].apk;com.JustDrive.JustDrive;1;1.0
|
||||
KOTC VR Basketball;KOTC VR Basketball v1+0.1 -unknown;KOTC VR Basketball v1+0.1 -unknown/《KOTC VR Basketball》1.0_Patched_.apk;com.millennialdave.kotcvrbball;1;0.1
|
||||
Keep Talking and Nobody Explodes;Keep Talking and Nobody Explodes v59+1.9.22 -QU;Keep Talking and Nobody Explodes v59+1.9.22 -QU/Keep Talking and Nobody Explodes [1.9.22.59] S2.10.apk;com.steelcrategames.keeptalkingandnobodyexplodes;59;1.9.22
|
||||
Kid Setas;Kid Setas v1+0.1 -unknown;Kid Setas v1+0.1 -unknown/Kid Setas 0.1 Patched.apk;com.realdragonvr.setas;1;0.1
|
||||
Kingdom of Blades;Kingdom of Blades v1+1.0.0 -unknown;Kingdom of Blades v1+1.0.0 -unknown/Kingdom of Blades 0330_Patched.apk;com.chesstar.KingdomOfBlades.itch;1;1.0.0
|
||||
Kingspray Graffiti;Kingspray Graffiti v725+71.5 (b) -QU;Kingspray Graffiti v725+71.5 (b) -QU/Kingspray Graffiti [71.5.725] S3.0.2.apk;com.infectiousape.kingspray;725;71.5
|
||||
Kingspray Graffiti;Kingspray Graffiti v725+71.5 -VRP (save issue);Kingspray Graffiti v725+71.5 -VRP (save issue)/Kingspray Graffiti [v71.5-725] -VRP.apk;com.infectiousape.kingspray;725;71.5
|
||||
KitchenIslandVR;KitchenIslandVR v2+0 -QU;KitchenIslandVR v2+0 -QU/KitchenIslandVR v2+0 -QU.apk;com.VRBuddyGames.KitchenIslandVR;2;0.2
|
||||
Knockout League;Knockout League v34+1.0 -QU;Knockout League v34+1.0 -QU/Knockout League [1.0.34] S3.0.2.apk;com.grab.knockout;34;1.0
|
||||
Laid-Back Camp - Virtual - Lake Motosu;Laid-Back Camp - Virtual - Lake Motosu v3+1.0.0 -VRP;Laid-Back Camp - Virtual - Lake Motosu v3+1.0.0 -VRP/Laid-Back Camp - Virtual - Lake Motosu v3+1.0.0 -VRP.apk;jp.co.gemdrops.lbca_q;3;1.0.0
|
||||
Laser Blaze;Laser Blaze v1+1.0.0 -unknown;Laser Blaze v1+1.0.0 -unknown/Laser Blaze 1.0 Patched.apk;cz.bkral.LaserBlaze;1;1.0.0
|
||||
Last Labyrinth;Last Labyrinth v34+1.02 -QU;Last Labyrinth v34+1.02 -QU/Last Labyrinth [1.02.34] patch+savefix+90Hz+CustomRes.apk;jp.co.amata.lastlabyrinth;34;1.02
|
||||
Layers of Fear VR;Layers of Fear VR v36+2.0 -QU;Layers of Fear VR v36+2.0 -QU/Layers of Fear VR [2.0.36] S3.0.2.apk;com.bloober.layersoffearvr;36;2.0
|
||||
Legendary Hunter VR;Legendary Hunter VR v2+1.21 -QU;Legendary Hunter VR v2+1.21 -QU/Legendary Hunter VR [1.21] S3.0.2.apk;com.FrozenDreams.legendaryhuntervr;2;1.21
|
||||
Let's Go Chopping;Let's Go Chopping v2+.2 -unknown;Let's Go Chopping v2+.2 -unknown/LetsGoChoppingEAv2PAID.apk;com.SoaringRocStudio.LetsGoChopping;2;.2
|
||||
Let's Play with Anna!;Let's Play with Anna! v1+1.0 -unknown;Let's Play with Anna! v1+1.0 -unknown/anna_quest_uncensored.apk;com.vrjcc.AnnaU;1;1.0
|
||||
Lets Create! Pottery VR;Lets Create! Pottery VR v670+1.12 -QU;Lets Create! Pottery VR v670+1.12 -QU/Lets Create! Pottery VR [1.12.670] S3.0.2.apk;com.idreams.potteryvrq;670;1.12
|
||||
Lies Beneath;Lies Beneath v55578+1.0-55578 -QU;Lies Beneath v55578+1.0-55578 -QU/Lies Beneath [1.0-55578.55578] S3.0.2.apk;com.Drifter.Kodiak;55578;1.0-55578
|
||||
Little Witch Academia - VR Broom Racing;Little Witch Academia - VR Broom Racing v707+1.2.0 -QU;Little Witch Academia - VR Broom Racing v707+1.2.0 -QU/Little Witch Academia - VR Broom Racing [1.2.0.707] S2.11.apk;com.UNIVRS.LWAVR;707;1.2.0
|
||||
LoopSpace;LoopSpace v11+0.9.3 -QU;LoopSpace v11+0.9.3 -QU/LoopSpace v11+0.9.3 -QU.apk;com.Chesstar.LoopSpace.Quest;11;0.9.3
|
||||
Luna;Luna v8+8 -QU;Luna v8+8 -QU/Luna [8] S3.0.2.apk;com.funomena.luna;8;8
|
||||
Mare;Mare v31+31 -QU;Mare v31+31 -QU/Mare [31] S3.0.2.apk;com.VisionTrick.Mare;31;31
|
||||
MarineVerse Cup;MarineVerse Cup v289+0.289 -unknown;MarineVerse Cup v289+0.289 -unknown/MarineVerse Cup [0.289].apk;com.marineverse.cup;289;0.289
|
||||
Mini Motor Racing X;Mini Motor Racing X v124+1.3.5 -QU;Mini Motor Racing X v124+1.3.5 -QU/Mini Motor Racing X [1.3.5.124] S3.0.2.apk;com.nextgenreality.mmrx;124;1.3.5
|
||||
Monolith;Monolith v1+0.1 -unknown;Monolith v1+0.1 -unknown/Monolith v0.1.apk;com.n.monolith;1;0.1
|
||||
Moss;Moss v22600+1.0.0.22600 -Q2Patched-90Hz-CustomRes -QU;Moss v22600+1.0.0.22600 -Q2Patched-90Hz-CustomRes -QU/Moss [1.0.0.22600] patch+savefix+90Hz+CustomRes.apk;com.polyarc.MossGame;22600;1.0.0.22600
|
||||
Mr. Scribbles;Mr. Scribbles v1+0.1 -unknown;Mr. Scribbles v1+0.1 -unknown/Mr. Scribbles v0.0.10.apk;com.oculus.mrscribbles;1;0.1
|
||||
Mutated Virus;Mutated Virus v2+2.1 -VRP;Mutated Virus v2+2.1 -VRP/MutatedVirus[2.1].apk;com.AnomosStudios.MutatedVirus;2;2.1
|
||||
Myst;Myst v264+1.0.2 -QU;Myst v264+1.0.2 -QU/Myst [1.0.2.264] S3.0.2.apk;com.CyanWorlds.Myst;264;1.0.2
|
||||
Myth - A Frozen Tale;Myth - A Frozen Tale v31+1.0 -QU;Myth - A Frozen Tale v31+1.0 -QU/Myth - A Frozen Tale ['1.0'.31] S3.0.2.apk;com.WaltDisney.MythAFrozenTale;31;1.0
|
||||
NES Space Quest;NES Space Quest v3+1.0.2 -unknown;NES Space Quest v3+1.0.2 -unknown/NesVR_OculusQuest_Itch_V1.0.2_EndlessCoins.Patched.apk;com.Chesstar.NesVR.QuestItch;3;1.0.2
|
||||
National Geographic Explore VR;National Geographic Explore VR v674692+1.2.1 -VRP;National Geographic Explore VR v674692+1.2.1 -VRP/National Geographic Explore VR v1.2.1-674692 -VRP.apk;com.forcefieldxr.explorevr;674692;1.2.1
|
||||
Nature Treks VR;Nature Treks VR v20+1.21 -QU;Nature Treks VR v20+1.21 -QU/Nature Treks VR [1.21.20] S2.11.apk;com.GreenerGames.QuestTreks;20;1.21
|
||||
Neon Sprint;Neon Sprint v17+1.0.4 -QU;Neon Sprint v17+1.0.4 -QU/Neon Sprint v17+1.0.4 -QU.apk;com.chesstar.NeonSprint.Quest;17;1.0.4
|
||||
Ninja Legends;Ninja Legends v1084+1.0.1084 -QU;Ninja Legends v1084+1.0.1084 -QU/Ninja Legends [1.0.1084] S3.0.2.apk;com.coinflip.ninja;1084;1.0.1084
|
||||
Ocean Rift;Ocean Rift v55+1.68 -Q2Patched-90Hz -QU;Ocean Rift v55+1.68 -Q2Patched-90Hz -QU/Ocean Rift [1.68] patch+savefix+90Hz.apk;com.picselica.OceanRiftFullQuest;55;1.68
|
||||
OceanCraft;OceanCraft v29+v0.3.10 -QU;OceanCraft v29+v0.3.10 -QU/OceanCraft [v0.3.10.29] S3.0.2.apk;com.FlodLab.OceanCraft;29;v0.3.10
|
||||
OhShape;OhShape v185+1.8.5;OhShape v185+1.8.5/OhShape [1.8.5.185] S3.0.2.apk;com.odders.ohshape;185;1.8.5
|
||||
Omega Blade;Omega Blade v1203+1.2.0 -QU;Omega Blade v1203+1.2.0 -QU/Omega Blade [1.2.0.1203] S3.0.2.apk;com.paramogames.omegablade;1203;1.2.0
|
||||
OnStage Simulator;OnStage Simulator v1+0.72 -unknown;OnStage Simulator v1+0.72 -unknown/OnStage Simulator v0.7.2.apk;com.COMPOS3D.OnStage;1;0.72
|
||||
Onward;Onward v9666+1.0 -QU;Onward v9666+1.0 -QU/Onward [1.0.9666] S3.0.2.apk;com.downpourinteractive.onward;9666;1.0
|
||||
Operation Serpens;Operation Serpens v210312+1.2103.12 -QU;Operation Serpens v210312+1.2103.12 -QU/Operation Serpens [1.2103.12.210312] S3.0.2.apk;com.GINRATECH.OPERATIONSERPENS;210312;1.2103.12
|
||||
Oxygen Dreams;Oxygen Dreams v7+1.06 -QU;Oxygen Dreams v7+1.06 -QU/OxygenDreamsQuest [1.06.7] S3.0.2.apk;com.Fguillotine.OxygenDreamsQuest;7;1.06
|
||||
Painting VR;Painting VR v8+0.2 -QU;Painting VR v8+0.2 -QU/PaintingVr [0.2.8] S3.0.2.apk;com.Oisoi.PaintingVr;8;0.2
|
||||
Pandemic by Prisms;Pandemic by Prisms v180+0.5.61 -QU;Pandemic by Prisms v180+0.5.61 -QU/PrismsPandemic [0.5.61.180] S3.0.2.apk;com.prismsvr.pandemicbyprisms;180;0.5.61
|
||||
Pangman;Pangman v11+1.1 -unknown;Pangman v11+1.1 -unknown/Pangman_1.1_Patched.apk;com.ivanovichgames.pangman;11;1.1
|
||||
Paper Birds;Paper Birds v47+1 -QU;Paper Birds v47+1 -QU/Paper Birds [1.47] S2.11.apk;com.ThreeDAR.PaperBirdsQuest;47;1
|
||||
Path Of The Warrior;Path Of The Warrior v495+20.01.14.356019 -QU;Path Of The Warrior v495+20.01.14.356019 -QU/Path of the Warrior [20.01.14.356019]_patched.apk;com.twistedpixelgames.POTW_App;495;20.01.14.356019
|
||||
PePiBo - Peregrino Pinata Bowling;PePiBo - Peregrino Pinata Bowling v2+2 -QU;PePiBo - Peregrino Pinata Bowling v2+2 -QU/PePiBo [2] S3.0.2.apk;com.toritogames.pepibo;2;2
|
||||
PecoPeco;PecoPeco v6011+0.6.11 -QU;PecoPeco v6011+0.6.11 -QU/PecoPeco [0.6.11.6011] S3.0.2.apk;am.benth.pecopeco;6011;0.6.11
|
||||
Penn & Teller VR - F U, U, U, & U;Penn & Teller VR - F U, U, U, & U v1960571+1.0 -QU (b);Penn & Teller VR - F U, U, U, & U v1960571+1.0 -QU (b)/Penn & Teller VR - F U, U, U, & U [1.0.1960571] S3.0.2.apk;com.GearboxSoftware.Hawthorn;1960571;1.0
|
||||
Percussive VR;Percussive VR v2+1.4 -QU;Percussive VR v2+1.4 -QU/Percussive VR [1.4.2] S3.0.2.apk;games.jamhack.PercussiveVR.Oculus;2;1.4
|
||||
Perpetuum Mobile;Perpetuum Mobile v83+1.5.6 -QU;Perpetuum Mobile v83+1.5.6 -QU/PerpetuumMobile VR [1.5.6.83] S3.0.2.apk;be.PetrusGames.PerpetuumMobile;83;1.5.6
|
||||
Phantom - Covert Ops;Phantom - Covert Ops v49563+1.1 -QU;Phantom - Covert Ops v49563+1.1 -QU/Phantom - Covert Ops [1.1.49563] S3.0.2.apk;com.nDreams.PhantomQuest;49563;1.1
|
||||
PhysHand;PhysHand v2+0.1.1 -unknown;PhysHand v2+0.1.1 -unknown/PhysHand v0.1.apk;com.JorgeJGnz.PhysHand;2;0.1.1
|
||||
Pig Dissection;Pig Dissection v1+1.0 -unknown;Pig Dissection v1+1.0 -unknown/PigDissection-Quest.apk;com.VictoryXR.PigDissection;1;1.0
|
||||
Pigasus VR Media Player;Pigasus VR Media Player v78+3.4 -QU;Pigasus VR Media Player v78+3.4 -QU/Pigasus VR Media Player [3.4.78].apk;com.hanginghatstudios.pigasus;78;3.4
|
||||
Pinball FX2 VR;Pinball FX2 VR v15+1.0.0 -QU;Pinball FX2 VR v15+1.0.0 -QU/Pinball-FX2-VR- 1.0.0.15 -patched.apk;com.zenstudios.PinballFX2VRQuest;15;1.0.0
|
||||
Pipe Dream Co.;Pipe Dream Co. v5+1.11.50 -QU;Pipe Dream Co. v5+1.11.50 -QU/Pipe Dream Co. [1.11.50] S3.0.2.apk;com.FieldOfVision.PipeDreamCo;5;1.11.50
|
||||
Pistol Whip;Pistol Whip v418+0.6.26.94 -QU;Pistol Whip v418+0.6.26.94 -QU/Pistol Whip [0.6.26.94.418] S2.11.apk;com.cloudheadgames.pistolwhip;418;0.6.26.94
|
||||
Pixel Ripped 1995;Pixel Ripped 1995 v108+108 -QU;Pixel Ripped 1995 v108+108 -QU/Pixel Ripped 1995 [108] S3.0.2.apk;io.arvore.pixelripped1995;108;108
|
||||
Please, Don't Touch Anything;Please, Don't Touch Anything v1312+2.1 -unknown;Please, Don't Touch Anything v1312+2.1 -unknown/Dont Touch Anything [2.1.1312].apk;com.ForwardXP.nuke;1312;2.1
|
||||
Pop Shot;Pop Shot v1+1.0 -unknown;Pop Shot v1+1.0 -unknown/Pop Shot 1.0 Patched.apk;com.PixelBoogie.PopShotQuest;1;1.0
|
||||
Prison Boss VR;Prison Boss VR v37+1.6.0.16 -QU;Prison Boss VR v37+1.6.0.16 -QU/Prison Boss VR [1.6.0.16.37] S2.11.apk;com.Trebuchet.PrisonBossVR;37;1.6.0.16
|
||||
Private Agent;Private Agent v5+1.3 -QU;Private Agent v5+1.3 -QU/Private Agent [_1.3_.5] S3.0.2.apk;com.Nottie.PrivateAgent;5;1.3
|
||||
ProjectZ;ProjectZ v45+1.1.0 -QU;ProjectZ v45+1.1.0 -QU/ProjectZ [1.1.0.45] L3.0.2.apk;com.slindev.projectz;45;1.1.0
|
||||
Pteranodon's Flight;Pteranodon's Flight v1+1.0 -unknown;Pteranodon's Flight v1+1.0 -unknown/PF Quest.apk;com.VictoryXR.PteranodonsFlight;1;1.0
|
||||
Pub Darts;Pub Darts v200002+1.0 -QU;Pub Darts v200002+1.0 -QU/Pub Darts [1.0.200002] S3.0.2.apk;com.Ardooly.PubDarts;200002;1.0
|
||||
Puzzle Bobble VR - Vacation Odyssey;Puzzle Bobble VR - Vacation Odyssey v247407+1.0 -QU;Puzzle Bobble VR - Vacation Odyssey v247407+1.0 -QU/Puzzle Bobble VR - Vacation Odyssey [1.0.247407] S3.0.2.apk;com.survios.bam;247407;1.0
|
||||
Puzzling Places;Puzzling Places v2+1.0 -unknown;Puzzling Places v2+1.0 -unknown/Puzzling Places v1.0.1.apk;com.RealitiesIO.puzzlingPlacesPrototype;2;1.0
|
||||
Quest for Runia;Quest for Runia v13+1.0 -QU;Quest for Runia v13+1.0 -QU/QuestForRunia [1.0.13] S3.0.2.apk;com.Cykyria.QuestForRunia;13;1.0
|
||||
QuestZDoom Pack launcher;QuestZDoom Pack launcher v1+1.0.3 -VRP (install this too);QuestZDoom Pack launcher v1+1.0.3 -VRP (install this too)/questzdoom_launcher_1.03.apk;com.Baggyg.QuestZDoom_Launcher;1;1.0.3
|
||||
QuestZDoom Pack;QuestZDoom Pack v25+1.1.7 -VRP;QuestZDoom Pack v25+1.1.7 -VRP/questzdoom-1.1.7.apk;com.drbeef.questzdoom;25;1.1.7
|
||||
RESONARK X LITE;RESONARK X LITE v10100002+1.0.1b -QU;RESONARK X LITE v10100002+1.0.1b -QU/ResonarkXLite [1.0.1b.10100002] S3.0.2.apk;com.sepnekoya.ResonarkXLite;10100002;1.0.1b
|
||||
RUSH;RUSH v282+1.2.1 -VRP;RUSH v282+1.2.1 -VRP/Rush v23+1.2.1 -VRP.apk;com.nextgenreality.rush;282;1.2.1
|
||||
Raccoon Lagoon;Raccoon Lagoon v235238+1.0 -QU (b);Raccoon Lagoon v235238+1.0 -QU (b)/Raccoon Lagoon [1.0.235238] S3.0.2.apk;com.hiddenpath.phoenix;235238;1.0
|
||||
Racket - NX;Racket - NX v122+2.2.14 -QU;Racket - NX v122+2.2.14 -QU/Racket - Nx [2.2.14.122] S3.0.2.apk;com.onehamsa.RNXQ;122;2.2.14
|
||||
Racket Fury - Table Tennis VR;Racket Fury - Table Tennis VR v712+7.1.2 -QU;Racket Fury - Table Tennis VR v712+7.1.2 -QU/Racket Fury - Table Tennis VR [7.1.2.712] S3.0.2.apk;com.RacketFury.RF_GearVR;712;7.1.2
|
||||
Radial-G - Proteus;Radial-G - Proteus v29+0.1 -QU;Radial-G - Proteus v29+0.1 -QU/Radial-G - Proteus [0.1.29] S3.0.2.apk;com.Things3D.RadialGProteus;29;0.1
|
||||
Range Day VR;Range Day VR v14+1.18 -QU;Range Day VR v14+1.18 -QU/RangeDay VR [1.18.14] S3.0.2.apk;com.InvidiousStudios.RangedayVRQ;14;1.18
|
||||
Real Fit VR;Real Fit VR v23+2021.3.1615462334 -QU;Real Fit VR v23+2021.3.1615462334 -QU/Real Fit VR [2021.3.1615462334] S3.0.2.apk;co.realfit.RealFit;23;2021.3.1615462334
|
||||
Real VR Fishing;Real VR Fishing v109+1.518 -QU;Real VR Fishing v109+1.518 -QU/Real VR Fishing [1.518.109] S3.0.2.apk;com.Miragesoft.RealVrFishingQ;109;1.518
|
||||
RealFit;RealFit v1+0.1 -VRP;RealFit v1+0.1 -VRP/realfit-quest-halloween-2020-10-29 v1+0.1 -VRP.apk;co.realfit.RealFit;1;0.1
|
||||
Realms of Eternity;Realms of Eternity v1+0.5.7 -unknown;Realms of Eternity v1+0.5.7 -unknown/Realms Of Eternity v0.5.7.apk;com.VRKemono.RealmsofEternity;1;0.5.7
|
||||
Red Matter;Red Matter v32+1.0.009 -Q2Patched-90Hz -QU;Red Matter v32+1.0.009 -Q2Patched-90Hz -QU/Red Matter [1.0.009] patch+savefix+90Hz.apk;com.VerticalRobot.RedMatter;32;1.0.009
|
||||
Reflex Unit 2;Reflex Unit 2 v405+4.3 -QU;Reflex Unit 2 v405+4.3 -QU/Reflex Unit 2 [4.3.405] S3.0.2.apk;com.robosarugames.reflexunit2Lab;405;4.3
|
||||
Refuge VR;Refuge VR v1+0.1 -unknown;Refuge VR v1+0.1 -unknown/Refuge.VR.apk;com.Meditation.RefugeVRv1;1;0.1
|
||||
Resilience;Resilience v20+1.0.8042 -QU;Resilience v20+1.0.8042 -QU/Resilience 1.0.v8042.20+1.0 -QU.apk;com.scale1.resilience;20;1.0.8042
|
||||
Rest In Pieces;Rest In Pieces v37+1.35 -QU;Rest In Pieces v37+1.35 -QU/RIP [1.35.37] S3.0.2.apk;com.StormingTech.RestInPiecesSQ;37;1.35
|
||||
Return to Castle Wolfenstein;Return to Castle Wolfenstein v45+1.1.7 -DrBeef;Return to Castle Wolfenstein v45+1.1.7 -DrBeef/rtcwquest-v1.1.7.apk;com.drbeef.rtcwquest;45;1.1.7
|
||||
Revolver Widow;Revolver Widow v3+1.2 -QU;Revolver Widow v3+1.2 -QU/Revolver Widow [1.2.3] S3.0.2.apk;com.StudioPoncho.Pinkertons;3;1.2
|
||||
Rez Infinite;Rez Infinite v41+41.0 -unknown;Rez Infinite v41+41.0 -unknown/Rez Infinite [41.0] patched.apk;com.enhanceexperience.rezquest;41;41.0
|
||||
Rhythm 'n Bullets;Rhythm 'n Bullets v18+1.10 -QU;Rhythm 'n Bullets v18+1.10 -QU/Rhythm n Bullets - [1.10.18] S3.0.2.apk;com.db.groovebullet;18;1.10
|
||||
Richies Plank Experience;Richies Plank Experience v65+1.8.47 -QU;Richies Plank Experience v65+1.8.47 -QU/Richies Plank Experience [1.8.47.65] S2.11.apk;com.ToastVR.RichiesPlankExperience;65;1.8.47
|
||||
Robo Recall;Robo Recall v47091+1.0 -Q2Patched-90Hz -QU;Robo Recall v47091+1.0 -Q2Patched-90Hz -QU/Robo Recall [1.0] patch+savefix+90Hz.apk;com.YourCompany.RoboRecall;47091;1.0
|
||||
Rodent People - Origins;Rodent People - Origins v13+0.58 -QU;Rodent People - Origins v13+0.58 -QU/Rodent People - Origins [v0.58.13] S3.0.2.apk;com.ZenRepublic.RodentPeopleOrigins;13;v0.58
|
||||
République VR;République VR v127622+1.2 -QU (b);République VR v127622+1.2 -QU (b)/Republique VR ['1.2'.127622] S3.0.2.apk;com.camouflaj.republiquevr;127622;1.2
|
||||
SETVR;SETVR v37+1.61 -QU;SETVR v37+1.61 -QU/SETVR [_1.61_.37] S3.0.2.apk;com.DVNCTech.SETVR;37;1.61
|
||||
SKYBOX VR Video Player;SKYBOX VR Video Player v342+1.0.3 -QU;SKYBOX VR Video Player v342+1.0.3 -QU/SKYBOX VR Video Player [1.0.3.342] S3.0.2.apk;xyz.skybox.player.ovr;342;1.0.3
|
||||
SPHERES;SPHERES v38+1.37 -QU;SPHERES v38+1.37 -QU/SPHERES [1.37.38] S3.0.2.apk;com.Novelab.Spheres;38;1.37
|
||||
SUPERHOT VR;SUPERHOT VR v140+1.14 -QU;SUPERHOT VR v140+1.14 -QU/SUPERHOT VR [1.14.140] S3.0.2.apk;unity.SUPERHOT_Team.SUPERHOT_VR_QA;140;1.14
|
||||
Sairento VR - Untethered;Sairento VR - Untethered v203+1.9.4 -QU;Sairento VR - Untethered v203+1.9.4 -QU/Sairento VR _ Untethered [1.9.4] patch+savefix+90Hz.apk;com.mixedrealms.sairentovruntethered;203;1.9.4
|
||||
SculptrVR;SculptrVR v181+2.88 -QU;SculptrVR v181+2.88 -QU/SculptrVR [2.88.181] S3.0.2.apk;com.sculptrvrinc.sculptrvrapp;181;2.88
|
||||
Secret of Harrow Manor 2;Secret of Harrow Manor 2 v24+0.24 -unknown;Secret of Harrow Manor 2 v24+0.24 -unknown/Secret_of_Harrow_Manor_2.v0.24.apk;com.OnlyHuman.SoHM2vr;24;0.24
|
||||
Sep's Diner;Sep's Diner v7+7555 -QU;Sep's Diner v7+7555 -QU/Seps Diner - [7555] S3.0.2.apk;com.scale1.sepsdinerSolo;7;7555
|
||||
SetVR;SetVR v1+0.1 -unknown;SetVR v1+0.1 -unknown/setvr.apk;com.DVNCTech.SETVRearlyaccess;1;0.1
|
||||
Shadow Point;Shadow Point v43+1.1 (b) -QU;Shadow Point v43+1.1 (b) -QU/Shadow Point [1.1.43] S3.0.2.apk;com.coatsink.nexus;43;1.1
|
||||
Shelley's Creation;Shelley's Creation v4+0.75 -QU;Shelley's Creation v4+0.75 -QU/Shelleys Creation - [0.75.4] S3.0.2.apk;com.sciencevr.shelley.quest;4;0.75
|
||||
Shinobi Breaker;Shinobi Breaker v35+1.1 -QU;Shinobi Breaker v35+1.1 -QU/Shinobi Breaker [1.1.35] S3.0.2.apk;com.Donuts.InfinityBreaker;35;1.1
|
||||
Shooting Therapy;Shooting Therapy v2+0 -QU;Shooting Therapy v2+0 -QU/Shooting Therapy v2+0 -QU.apk;com.NoFlinch.ShootingTherapy;2;0.2
|
||||
Shoottris;Shoottris v3+1.011 -QU;Shoottris v3+1.011 -QU/Shoottris [1.011.3] S3.0.2.apk;com.palvesoft.ShoottrisQuest;3;1.011
|
||||
Shooty Fruity;Shooty Fruity v18+1.0 -QU;Shooty Fruity v18+1.0 -QU/Shooty Fruity [1.0.18] S2.11.apk;com.ndreams.shootyfruity;18;1.0
|
||||
Shooty Skies Overdrive;Shooty Skies Overdrive v78450+1.03.78450 -QU;Shooty Skies Overdrive v78450+1.03.78450 -QU/Shooty Skies Overdrive [1.03.78450] S2.10.apk;com.mightygamesgroup.shootyvr;78450;1.03.78450
|
||||
Shuttle Commander;Shuttle Commander v64+0.64 -QU (b);Shuttle Commander v64+0.64 -QU (b)/Shuttle Commander [0.64.64] S3.0.2.apk;com.ivre.ssc;64;0.64
|
||||
Skyworld - Kingdom Brawl;Skyworld - Kingdom Brawl v32+1.22 -QU;Skyworld - Kingdom Brawl v32+1.22 -QU/Skyworld - Kingdom Brawl [1.22.32] S3.0.2.apk;com.vertigogames.skyworldbrawl;32;1.22
|
||||
SlashMates;SlashMates v1+0.04 -unknown;SlashMates v1+0.04 -unknown/New SlashMates-0.04.apk;com.VRight.Slashmates;1;0.04
|
||||
Smashmania;Smashmania v1+0.4 -unknown;Smashmania v1+0.4 -unknown/Smashmania 0.4 Patched.apk;ltd.getschwifty.smashmania.demo;1;0.4
|
||||
Snake In a Box;Snake In a Box v56+5.6 -unknown;Snake In a Box v56+5.6 -unknown/SnakeInABox.apk;com.dofdev.SnakeInABox;56;5.6
|
||||
Snow Fortress;Snow Fortress v2+1.33 -unknown;Snow Fortress v2+1.33 -unknown/Snow Fortress Quest Edition.apk;com.mythicalcitygames.snowfortress;2;1.33
|
||||
Snowman VR;Snowman VR v1+0.6.0 -VRP;Snowman VR v1+0.6.0 -VRP/Snowman VR.apk;co.xocus.snowman;1;0.6.0
|
||||
Solicitude Wake-up;Solicitude Wake-up v13+1.3 -QU;Solicitude Wake-up v13+1.3 -QU/Solicitude Wake-up [1.3.13] S3.0.2.apk;com.JRProduction.SolicitudeWakeupQuest;13;1.3
|
||||
Song Beater;Song Beater v422+4.2 -QU;Song Beater v422+4.2 -QU/Song Beater [4.2.422] S3.0.2.apk;com.Playito.SongBeater;422;4.2
|
||||
Space Channel 5 VR;Space Channel 5 VR v68514+1.0.3 -QU;Space Channel 5 VR v68514+1.0.3 -QU/Space Channel 5 VR Kinda Funky News Flash! [1.0.3.68514] S3.0.2.apk;com.grounding.ch5vrquest;68514;1.0.3
|
||||
Space Junk;Space Junk v13+1.2 -QU;Space Junk v13+1.2 -QU/Space Junk [1.2.13] S3.0.2.apk;com.cestrian.spacejunk;13;1.2
|
||||
Space Pilot Alliance;Space Pilot Alliance v1+2.0 -unknown;Space Pilot Alliance v1+2.0 -unknown/Space Pilot Alliance 2.6 Patched.apk;com.curiousvr.spacepilotalliance;1;2.0
|
||||
Space Pirate Trainer;Space Pirate Trainer v164+1.64 -QU;Space Pirate Trainer v164+1.64 -QU/Space Pirate Trainer Quest [1.64.164] patch+savefix+90Hz+CustomRes.apk;com.iillusions.spacepiratetrainerquest;164;1.64
|
||||
Space Shooter;Space Shooter v14+1.01 -QU;Space Shooter v14+1.01 -QU/Space Shooter [1.01.14] S3.0.2.apk;vr.tgs.spaceshooter;14;1.01
|
||||
Space Slurpies;Space Slurpies v7+1.0 -QU;Space Slurpies v7+1.0 -QU/Space Slurpies [1.0.7] S3.0.2.apk;com.StarcadeArcadeLLC.SpaceSlurpies;7;1.0
|
||||
Space Walk VR Experience;Space Walk VR Experience v700107+7.0.107.02 -QU;Space Walk VR Experience v700107+7.0.107.02 -QU/SpaceWalk Experience [7.0.107.02.700107] S3.0.2.apk;com.FTM.SpaceWalkQuest2OC;700107;7.0.107.02
|
||||
Spaceteam VR;Spaceteam VR v2346+1.0 -unknown;Spaceteam VR v2346+1.0 -unknown/Spaceteam_VR v1.02346 _ScriptPatched.apk;com.CooperativeInnovations.Spaceteam;2346;1.0
|
||||
Special Delivery;Special Delivery v30+1.1 -QU;Special Delivery v30+1.1 -QU/Special Delivery [1.1.30] S3.0.2.apk;com.MeerkatGaming.SD_Quest;30;1.1
|
||||
Speed Cube;Speed Cube v9+0.7.1 -QU;Speed Cube v9+0.7.1 -QU/Speed Cube [0.7.1.9] S3.0.2.apk;com.Aligator.SpeedCube;9;0.7.1
|
||||
Spice & Wolf VR;Spice & Wolf VR v9+1.04 -QU;Spice & Wolf VR v9+1.04 -QU/Spice Wolf VR [1.04.9] S3.0.2.apk;com.SpicyTails.SaW;9;1.04
|
||||
Sport Mode;Sport Mode v24+0.2.1 -QU;Sport Mode v24+0.2.1 -QU/Sport Mode [0.2.1.24] S3.0.2.apk;com.Exo.Playground2;24;0.2.1
|
||||
Sports Scramble;Sports Scramble v88+1.0 -unknown;Sports Scramble v88+1.0 -unknown/Sports Scramble v1.0.88 Patched 2020-07-05.apk;com.Armature.SportsScramble;88;1.0
|
||||
Squid Seastar;Squid Seastar v1+0.1 -unknown;Squid Seastar v1+0.1 -unknown/Squid-Seastar-Quest.apk;com.VictoryXR.SquidDissection;1;0.1
|
||||
Star Chart;Star Chart v18529+1.7.7 -VRP;Star Chart v18529+1.7.7 -VRP/Star Chart.apk;com.escapistgames.starchartvr.quest;18529;1.7.7
|
||||
Star Wars - Tales from the Galaxy's Edge;Star Wars - Tales from the Galaxy's Edge v291854+1.0.4-185011.cl.291854 -QU (v.2);Star Wars - Tales from the Galaxy's Edge v291854+1.0.4-185011.cl.291854 -QU (v.2)/Star Wars - Tales from the Galaxys Edge [1.0.4+185011.cl.291854] S3.0.2.apk;com.ilmxlab.tales;291854;1.0.4+185011.cl.291854
|
||||
Star Wars Pinball VR;Star Wars Pinball VR v10699+1.1 -QU;Star Wars Pinball VR v10699+1.1 -QU/Star Wars Pinball VR [1.1.10699] S3.0.2.apk;com.YourCompany.SWP_VR;10699;1.1
|
||||
StardustVR;StardustVR v2+1.0 -QU;StardustVR v2+1.0 -QU/StardustVR v2+1.0.apk;com.FrozenDreams.stardustvr;2;1.0
|
||||
Steamliner;Steamliner v1+1.2.5 -VRP;Steamliner v1+1.2.5 -VRP/Steamliner_Quest.apk;com.Diamond.Steamliner;1;1.2.5
|
||||
Stride;Stride v22+1.0 -VRP (beta);Stride v22+1.0 -VRP (beta)/com.JoyWay.Stride.apk;com.JoyWay.Stride;22;1.0
|
||||
Supermedium;Supermedium v1+1.0 -unknown;Supermedium v1+1.0 -unknown/Supermedium 1.0 Patched.apk;com.Supermedium.Supermedium;1;1.0
|
||||
Supermedium;Supermedium v1+3 -unknown;Supermedium v1+3 -unknown/Supermedium [3].apk;com.Supermedium.Supermedium;1;3
|
||||
Swarm;Swarm v730+730 -QU;Swarm v730+730 -QU/Swarm [730] S3.0.2.apk;com.sketchbox.Grapple;730;730
|
||||
Sweet Escape VR;Sweet Escape VR v2+0.03 -unknown;Sweet Escape VR v2+0.03 -unknown/Sweet Escape VR 0.03 Patched.apk;com.realitysmash.sweetescape;2;0.03
|
||||
Symphony of Stars;Symphony of Stars v173+1.73 -unknown;Symphony of Stars v173+1.73 -unknown/Symphony of Stars_1.73_Patched.apk;com.OnlyHuman.Ensign2vr;173;1.73
|
||||
Synth Riders;Synth Riders v270+2.3.9.a8 -QU;Synth Riders v270+2.3.9.a8 -QU/Synth Riders [2.3.9.a8.270] S3.0.2.apk;com.kluge.SynthRiders;270;2.3.9.a8
|
||||
TOKYO CHRONOS;TOKYO CHRONOS v31+1.0.4 -QU;TOKYO CHRONOS v31+1.0.4 -QU/TOKYO CHRONOS [1.0.4.31] S3.0.2.apk;com.MyDearest.ChronosQuest;31;1.0.4
|
||||
Tetris Effect;Tetris Effect v38+1.0 -QU;Tetris Effect v38+1.0 -QU/Tetris Effect [1.0.38] S3.0.2.apk;com.enhanceexperience.tetriseffect;38;1.0
|
||||
The Brookhaven Experiment;The Brookhaven Experiment v109+1.0259 -unknown;The Brookhaven Experiment v109+1.0259 -unknown/The.Brookhaven.Experiment Quest v1.0259.apk;com.Phosphor.Brookhaven;109;1.0259
|
||||
The Climb 2;The Climb 2 v554+1.1 -QU;The Climb 2 v554+1.1 -QU/The Climb 2 [1.1.554] S3.0.2.apk;com.crytek.climb2;554;1.1
|
||||
The Climb;The Climb v663+663.0 -QU;The Climb v663+663.0 -QU/The Climb [663.0] S3.0.2.apk;com.crytek.climb;663;663.0
|
||||
The Curious Tale of the Stolen Pets;The Curious Tale of the Stolen Pets v25+1.06 -QU;The Curious Tale of the Stolen Pets v25+1.06 -QU/The Curious Tale of the Stolen Pets [1.06.25] S3.0.2.apk;com.fasttravelgames.diorama;25;1.06
|
||||
The Exorcist - Legion VR;The Exorcist - Legion VR v37+1.2.0 -QU;The Exorcist - Legion VR v37+1.2.0 -QU/The Exorcist - Legion VR [1.2.0.37] S3.0.2.apk;com.wolfandwood.exorcistlegionvr;37;1.2.0
|
||||
The Fight;The Fight v2+1.08 -QU;The Fight v2+1.08 -QU/The Fight [1.08.2] S3.0.2.apk;com.adamstanulewicz.TheFight;2;1.08
|
||||
The Final Overs;The Final Overs v9+1.44 -QU;The Final Overs v9+1.44 -QU/TheFinalOvers [1.44.9] S3.0.2.apk;com.Mixeal.TheFinalOvers;9;1.44
|
||||
The Island Odyssey! Hi Spec;The Island Odyssey! Hi Spec v1207+1.2.0.7 -unknown;The Island Odyssey! Hi Spec v1207+1.2.0.7 -unknown/TheIsland.apk;com.VRGameStudio.TheIsland;1207;1.2.0.7
|
||||
The Knight of Queen;The Knight of Queen v10260+1.2.6 -QU;The Knight of Queen v10260+1.2.6 -QU/THE KNIGHT OF QUEEN [1.2.6.10260] S3.0.2.apk;com.VR_RPG_INC.THE_KNIGHT_OF_QUEEN_QUEST;10260;1.2.6
|
||||
The Last place;The Last place v2+0.2 -unknown;The Last place v2+0.2 -unknown/The last place 0.2 Patched.apk;br.com.mashimobi.thelastplace;2;0.2
|
||||
The Line;The Line v47+47 -QU;The Line v47+47 -QU/The Line [47] S3.0.2.apk;io.arvore.theline;47;47
|
||||
The Purge Day;The Purge Day v90+1.0 -unknown;The Purge Day v90+1.0 -unknown/The Purge Day (com.RedLimbStudio.ThePurageDay) v1.0.apk;com.RedLimbStudio.ThePurageDay;90;1.0
|
||||
The Room VR - A Dark Matter;The Room VR - A Dark Matter v5011+1.02 -QuestUndeground;The Room VR - A Dark Matter v5011+1.02 -QuestUndeground/The Room VR [1.02] patch+savefix.apk;com.FireproofStudios.TheRoomVR;5011;1.02
|
||||
The Thrill Of The Fight;The Thrill Of The Fight v200131001+200131.1q -VRP;The Thrill Of The Fight v200131001+200131.1q -VRP/The Thrill Of The Fight v200131001 -VRP.apk;com.fyian.TheThrillOfTheFight;200131001;200131.1q
|
||||
The Under Presents;The Under Presents v181+1.260 -QU;The Under Presents v181+1.260 -QU/The Under Presents v1.260.apk;com.TenderClaws.TheUnderPresents.Quest;181;1.260
|
||||
The VR Titty Bar;The VR Titty Bar v1+0.1 -unknown;The VR Titty Bar v1+0.1 -unknown/VR tittybar V1.apk;com.ApexVR.ttBAR;1;0.1
|
||||
The Walking Dead - Saints & Sinners;The Walking Dead - Saints & Sinners v19283909+192839 -QU;The Walking Dead - Saints & Sinners v19283909+192839 -QU/The Walking Dead - Saints & Sinners [2021.02.10 - build 192839.19283909] S3.0.2.apk;com.SDI.TWD;19283909;Shipping Stage / 2021.02.10 / build 192839
|
||||
The Wizards - Dark Times;The Wizards - Dark Times v8+1.08 -QU;The Wizards - Dark Times v8+1.08 -QU/The Wizards - Dark Times [1.08] S3.0.2.apk;com.CarbonStudio.DarkTimes;8;1.08
|
||||
The Wizards;The Wizards v14+1.11 -QU;The Wizards v14+1.11 -QU/The Wizards [1.11.14] patch+savefix+90Hz+CustomRes.apk;com.CarbonStudio.TheWizards;14;1.11
|
||||
Thumper;Thumper v25+1.00 -QU;Thumper v25+1.00 -QU/Thumper [1.00.25] S3.0.2.apk;com.Drool.Thumper.quest;25;1.00
|
||||
Tilt Brush;Tilt Brush v141+23.2-28f36f08b -QU;Tilt Brush v141+23.2-28f36f08b -QU/Tilt Brush [23.2-28f36f08b] patch+savefix+90Hz.apk;com.google.tiltbrush;141;23.2-28f36f08b
|
||||
Time Stall;Time Stall v631960+1.0 -QU (b);Time Stall v631960+1.0 -QU (b)/Time Stall ['1.0'.631960] S3.0.2.apk;com.forcefieldxr.timestall;631960;1.0
|
||||
Titans of Space PLUS;Titans of Space PLUS v62+1.0 -QU;Titans of Space PLUS v62+1.0 -QU/Titans of Space PLUS v1.0.62.apk;com.drashvr.titansofspacevr6dof;62;1.0
|
||||
To The Top;To The Top v20+0.20 -QU;To The Top v20+0.20 -QU/TO THE TOP [0.20] S3.0.2.apk;com.electrichatgames.tothetop_al;20;0.20
|
||||
Together VR;Together VR v2+1.5 -unknown;Together VR v2+1.5 -unknown/TogetherVRMv1.1.apk;com.AuroraGames.TogetherVRM;2;1.5
|
||||
Topgolf with Pro Putt;Topgolf with Pro Putt v463+463 -QU;Topgolf with Pro Putt v463+463 -QU/Topgolf with Pro Putt [463] S3.0.2.apk;com.golfscope.proputt;463;463
|
||||
Touring Karts PRO;Touring Karts PRO v7+1.0 -QU;Touring Karts PRO v7+1.0 -QU/Touring Karts PRO [_1.0_.7] S3.0.2.apk;com.ivanovichgames.touringkartsPRO;7;1.0
|
||||
Toy Clash;Toy Clash v42+1.4.0r6 -unknown;Toy Clash v42+1.4.0r6 -unknown/Toy Clash v1.4.0r6.apk;com.fiveminlab.toyclash;42;1.4.0r6
|
||||
Traffic Jams;Traffic Jams v21050311+1.0.21050311 -QU;Traffic Jams v21050311+1.0.21050311 -QU/Traffic Jams [1.0.21050311] S3.0.2.apk;nl.littlechicken.trafficjams.quest;21050311;1.0.21050311
|
||||
Trash Gun;Trash Gun v11+0.11 -QU;Trash Gun v11+0.11 -QU/TrashGun [0.11] S3.0.2.apk;com.JohnRayGames.TrashGun;11;0.11
|
||||
Travel The Words!;Travel The Words! v3+1.0 -QU;Travel The Words! v3+1.0 -QU/TravelTheWords - Full [1.0.3].apk;com.Studio8ight.TTW.Full;3;1.0
|
||||
Tribe XR - DJ in VR;Tribe XR - DJ in VR v101+0.09.6 -QU;Tribe XR - DJ in VR v101+0.09.6 -QU/Tribe XR - DJ in VR [0.09.6.101] S3.0.2.apk;com.TribeXR.TribeXR;101;0.09.6
|
||||
TripeaksDreamland VR;TripeaksDreamland VR v6+1.0 -QU;TripeaksDreamland VR v6+1.0 -QU/TriPeaksDreamland VR [01.00.6] S3.0.2.apk;de.DanielAli.TripeaksDLVRQuest;6;1.0
|
||||
Triton;Triton v1+1.0 -unknown;Triton v1+1.0 -unknown/Triton VR SQ1.1.apk;com.TetraStudios.TritonVR;1;1.0
|
||||
Trover Saves the Universe;Trover Saves the Universe v21+1.0 -QU;Trover Saves the Universe v21+1.0 -QU/Trover [1.0.21] patch+savefix+90Hz+CustomRes.apk;com.SquanchGames.Trover;21;1.0
|
||||
Tsuro - The Game of The Path;Tsuro - The Game of The Path v53+1.14.0 -QU;Tsuro - The Game of The Path v53+1.14.0 -QU/Tsuro - The Game of The Path [1.14.0.53] S3.0.2.apk;com.Thunderbox.TsuroVR;53;1.14.0
|
||||
Ultra Height - Mist City Climb;Ultra Height - Mist City Climb v2+1.7 -VRP;Ultra Height - Mist City Climb v2+1.7 -VRP/vr ultra height 1.7 new.apk;com.UltraFunGames.UltraHeightMistCityClimb;2;1.7
|
||||
Ultrawings;Ultrawings v422+2.02 -QU;Ultrawings v422+2.02 -QU/Ultrawings v2.02.422.apk;com.BitPlanet.Ultrawings.Quest;422;2.02
|
||||
Unstung;Unstung v351+1.2.0 -QU;Unstung v351+1.2.0 -QU/Unstung [1.2.0.351] S3.0.2.apk;com.Neomajika.Unstung;351;1.2.0
|
||||
Until You Fall;Until You Fall v163081+1.0.6.163081 -QU;Until You Fall v163081+1.0.6.163081 -QU/Until You Fall [1.0.6.163081 (Release_1.0.6)] S3.0.2.apk;com.schellgames.untilyoufall;163081;1.0.6.163081 (Release_1.0.6)
|
||||
VR Aim Trainer;VR Aim Trainer v1+1.0 -unknown;VR Aim Trainer v1+1.0 -unknown/VR Aim Trainer 1.0 Patched.apk;com.aim.vraimtrainer;1;1.0
|
||||
VR Workout;VR Workout v4+0.9.8j -unknown;VR Workout v4+0.9.8j -unknown/VRWorkout v0.9.8a_Patched.apk;org.godotengine.vrworkout;4;0.9.8j
|
||||
VRIT;VRIT v9+0.2 -QU;VRIT v9+0.2 -QU/VRIT v9+0.2 -QU.apk;com.Wasplay.VRIT;9;0.2
|
||||
VRIT;VRIT v9+0.2 -QU;VRIT v9+0.2 -QU/VRIT [_0.2_.9] S3.0.2.apk;com.Wasplay.VRIT;9;0.2
|
||||
VRKarts Sprint;VRKarts Sprint v28+1.18 -QU;VRKarts Sprint v28+1.18 -QU/VRKarts_Sprint [1.18.28] patch+savefix+90Hz+CustomRes.apk;com.viewpointgames.vrkarts_sprint_quest;28;1.18
|
||||
VRtuos Pro;VRtuos Pro v1+2.0.3 -unknown;VRtuos Pro v1+2.0.3 -unknown/VRtuos Pro 2.0 Patched.apk;com.PavelMarceluch.VRtuosPro;1;2.0.3
|
||||
Vacation Simulator;Vacation Simulator v84+1.3.0-38033 -QU;Vacation Simulator v84+1.3.0-38033 -QU/Vacation Simulator [1.3.0-38033.84] S3.0.2.apk;com.owlchemylabs.vacationsimulator;84;1.3.0-38033
|
||||
Vader Immortal - Episode I;Vader Immortal - Episode I v236952+1.1.0 -QU;Vader Immortal - Episode I v236952+1.1.0 -QU/Vader Ep1 [1.1.0] patch+savefix.apk;com.ILMxLAB.VaderImmortal.ep1;236952;1.1.0
|
||||
Vader Immortal - Episode II;Vader Immortal - Episode II v236948+2.0.2 -QU;Vader Immortal - Episode II v236948+2.0.2 -QU/Vader Episode 2 [2.0.2] patch+savefix.apk;com.ILMxLAB.VaderImmortal.ep2;236948;2.0.2
|
||||
Vader Immortal - Episode III;Vader Immortal - Episode III v236944+3.0.2 -QU;Vader Immortal - Episode III v236944+3.0.2 -QU/Vader Episode 3 [3.0.2] patch+savefix.apk;com.ILMxLAB.VaderImmortal.ep3;236944;3.0.2
|
||||
Vanishing Grace;Vanishing Grace v33+1.0.2 -QU;Vanishing Grace v33+1.0.2 -QU/Vanishing Grace [1.0.2.33] S3.0.2.apk;com.MontePerdido.VanishingGrace;33;1.0.2
|
||||
Verto Studio VR;Verto Studio VR v251+2.5.1 -QU;Verto Studio VR v251+2.5.1 -QU/Verto Studio VR [2.5.1.251].apk;com.vertostudio.vertostudiovr;251;2.5.1
|
||||
ViFit;ViFit v1+1.0.0 -unknown;ViFit v1+1.0.0 -unknown/ViFit v1.0.0.apk;com.VifitTraining.Vifit;1;1.0.0
|
||||
Viking Days;Viking Days v21+1.0 -unknown;Viking Days v21+1.0 -unknown/Viking Days (com.vrmonkey.VikingDays) v1.0 patched.apk;com.vrmonkey.VikingDays;21;1.0
|
||||
Virtual Virtual Reality;Virtual Virtual Reality v11+1.8.13 -QU;Virtual Virtual Reality v11+1.8.13 -QU/Virtual Virtual Reality [1.8.13.11].apk;com.TenderClaws.VVR.Quest;11;1.8.13
|
||||
Void Racer - Extreme;Void Racer - Extreme v121+1.21 -QU;Void Racer - Extreme v121+1.21 -QU/Void Racer - Extreme [1.21.121] S3.0.2.apk;com.coplanar.vre;121;1.21
|
||||
Volleyball Fever;Volleyball Fever v1+1.5.1 -QU;Volleyball Fever v1+1.5.1 -QU/Volleyball Fever [1.5.1] S3.0.2.apk;io.neuston.volleyballfever;1;1.5.1
|
||||
Voxel Works;Voxel Works v9+0.3.8 -unknown;Voxel Works v9+0.3.8 -unknown/New Voxel Works Quest v0.3.8.apk;org.dammertz.vr.VoxelWorksQuest;9;0.3.8
|
||||
Waifu's Spooky Space Station;Waifu's Spooky Space Station v11+1.0b -QU;Waifu's Spooky Space Station v11+1.0b -QU/Waifu's Spooky Space Station v11+1.0b -QU.apk;com.MiraiMadaGames.WSS;11;1.0b
|
||||
Walkabout Mini Golf;Walkabout Mini Golf v1660+1.66 -QU;Walkabout Mini Golf v1660+1.66 -QU/Walkabout Mini Golf [1.66.1660] S3.0.2.apk;com.MightyCoconut.WalkaboutMiniGolf;1660;1.66
|
||||
Waltz of the Wizard - Extended Edition;Waltz of the Wizard - Extended Edition v414+1.6.1.414 -QU;Waltz of the Wizard - Extended Edition v414+1.6.1.414 -QU/Waltz of the Wizard - Extended Edition [1.6.1.414] S2.11.apk;com.Aldin.WotW;414;1.6.1.414
|
||||
Wander;Wander v3409+0.3409 -QU;Wander v3409+0.3409 -QU/Wander [0.3409] S3.0.2.apk;com.parkline.wander;3409;0.3409
|
||||
Wands;Wands v788+1.6.2 -VRP;Wands v788+1.6.2 -VRP/Wands v1.6.2 -VRP.apk;com.CortopiaStudios.Wands;788;1.6.2
|
||||
Wands;Wands v858+1.8.0 -QU (Q2only);Wands v858+1.8.0 -QU (Q2only)/Wands [1.8.0.858] S3.0.2.apk;com.CortopiaStudios.Wands;858;1.8.0
|
||||
Warhammer 40000 - Battle Sister;Warhammer 40000 - Battle Sister v12351239+1.1.0 -QU;Warhammer 40000 - Battle Sister v12351239+1.1.0 -QU/Warhammer 40000 - Battle Sister [1.1.0.12351239] S3.0.2.apk;com.PixelToys.BattleSisters;12351239;1.1.0
|
||||
Warlike Space;Warlike Space v4+1.4 -QU;Warlike Space v4+1.4 -QU/WarlikeSpace [1.4] S3.0.2.apk;com.EVR.WarlikeSpace;4;1.4
|
||||
Warplanes - WW1 Fighters;Warplanes - WW1 Fighters v232+2.3.2 -QU;Warplanes - WW1 Fighters v232+2.3.2 -QU/Warplanes - WW1 Fighters [2.3.2.232] S3.0.2.apk;com.HomeNetGames.WW1oculus;232;2.3.2
|
||||
Where Thoughts Go;Where Thoughts Go v38+1.26 -QU;Where Thoughts Go v38+1.26 -QU/Where Thoughts Go [1.26.38] S3.0.2.apk;com.feels.WhereThoughtsGo.Quest;38;1.26
|
||||
Whirligig VR Media Player;Whirligig VR Media Player v25+4.84 -unknown;Whirligig VR Media Player v25+4.84 -unknown/Whirligig VR Media Player v4.84.apk;com.Whirligig.Whirligig;25;4.84
|
||||
White Hole;White Hole v11+1.12 -QU;White Hole v11+1.12 -QU/WhiteHole [1.12.11] S3.0.2.apk;Fenrir.WhiteHole;11;1.12
|
||||
Witchblood;Witchblood v183732+1.0 -unknown;Witchblood v183732+1.0 -unknown/Witchblood v1.0 Patched.apk;com.hiddenpath.Witchblood;183732;1.0
|
||||
Wolves in the Walls;Wolves in the Walls v1375+1.1375 -VRP;Wolves in the Walls v1375+1.1375 -VRP/Wolves in the Walls v1.1375 -VRP.apk;com.fable.wolvesquest;1375;1.1375
|
||||
Wonderglade;Wonderglade v109088216+1.9.88216 -QU;Wonderglade v109088216+1.9.88216 -QU/Wonderglade [1.9.88216.109088216] S3.0.2.apk;com.resolutiongames.wondergladesantacruz;109088216;1.9.88216
|
||||
Wraith - The Oblivion - Afterlife;Wraith - The Oblivion - Afterlife v104+1.0 -QU;Wraith - The Oblivion - Afterlife v104+1.0 -QU/Wraith - The Oblivion - Afterlife [1.0.104] S3.0.2.apk;com.fasttravelgames.jukebox;104;1.0
|
||||
X-BOOSTER;X-BOOSTER v100013+1.51 -QU;X-BOOSTER v100013+1.51 -QU/X-BOOSTER [1.51.100013] S3.0.2.apk;com.NiVision.XBOOSTER;100013;1.51
|
||||
Yupitergrad;Yupitergrad v33+2.0.0 -QU;Yupitergrad v33+2.0.0 -QU/Yupitergrad [2.0.0.33] S3.0.2.apk;com.Gamedust.Yupitergrad;33;2.0.0
|
||||
Zero Caliber - Reloaded;Zero Caliber - Reloaded v264+1.0 -QU;Zero Caliber - Reloaded v264+1.0 -QU/Zero Caliber - Reloaded v264+1.0 -QU.apk;com.XrealGames.ZcReloaded;264;1.0.264
|
||||
Zombie World VR;Zombie World VR v4+1.0 -unknown;Zombie World VR v4+1.0 -unknown/Zombie World VR_1.0_Patched.apk;com.Appalga.ZombieWorldVR;4;1.0
|
||||
Zombieland - Headshot Fever;Zombieland - Headshot Fever v1172+1.2.5 -QU;Zombieland - Headshot Fever v1172+1.2.5 -QU/Zombieland - Headshot Fever [1.2.5.1172] S3.0.2.apk;com.XRGames.ZombielandVR;1172;1.2.5
|
||||
Zooma - Deluxe Edition;Zooma - Deluxe Edition v712+1.1.3 -unknown;Zooma - Deluxe Edition v712+1.1.3 -unknown/Zooma - Deluxe Edition v1.1.3.apk;com.GizmoVRLTD.Zooma;712;1.1.3
|
||||
Zooma VR;Zooma VR v433+1.1.3 -QU;Zooma VR v433+1.1.3 -QU/Zooma [1.1.3.433] S3.0.2.apk;com.GizmoVRLTD.Zooma;433;1.1.3
|
||||
exVRience Golf Club;exVRience Golf Club v68+1 -QU;exVRience Golf Club v68+1 -QU/exVRience Golf Club [1.68] S3.0.2.apk;com.exvrience.exvriencegolfclubq;68;1
|
||||
|
||||
|
||||
|
||||
Running Rclone command: sync "VRP-mirror13:Quest Games/.meta/thumbnails" "C:\Users\Oscar\Desktop\Rookie\androidsideloader\thumbnails"
|
||||
Rclone error:
|
||||
Rclone Output:
|
||||
Running Rclone command: sync "VRP-mirror13:Quest Games/.meta/notes" "C:\Users\Oscar\Desktop\Rookie\androidsideloader\notes"
|
||||
Rclone error:
|
||||
Rclone Output:
|
||||
Running command -s 192.168.0.101:5555 shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
Running command -s 192.168.0.101:5555 shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
Running command -s 192.168.0.101:5555 shell input keyevent KEYCODE_WAKEUP
|
||||
|
||||
|
||||
Running command -s 192.168.0.101:5555 shell pm list packages -3
|
||||
package:com.aim.vraimtrainer
|
||||
package:com.CooperativeInnovations.Spaceteam
|
||||
package:com.Gamedust.Yupitergrad
|
||||
package:com.FireproofStudios.TheRoomVR
|
||||
package:aaa.QuestAppLauncher.App
|
||||
package:com.freelives.gorn
|
||||
package:io.arvore.theline
|
||||
package:com.crytek.climb
|
||||
package:com.schellgames.untilyoufall
|
||||
package:com.VerticalRobot.RedMatter
|
||||
package:com.infectiousape.kingspray
|
||||
package:com.Trebuchet.PrisonBossVR
|
||||
package:com.TenderClaws.VVR.Quest
|
||||
package:com.zoink.ghostgiant
|
||||
package:com.Overrungames.Arcaxer
|
||||
package:com.facebook.horizon
|
||||
package:com.DigitalLode.Espire1
|
||||
package:com.Drool.Thumper.quest
|
||||
package:com.resolutiongames.demeo
|
||||
package:com.resolutiongames.ignis
|
||||
package:com.owlchemylabs.vacationsimulator
|
||||
package:com.Pixelfun.FutbolinRevolution
|
||||
package:com.cvr.highseas2
|
||||
package:com.WenklyStudio.ElvenAssassin
|
||||
package:com.holomia.missionxlite
|
||||
package:com.ILMxLAB.VaderImmortal.ep1
|
||||
package:com.ILMxLAB.VaderImmortal.ep2
|
||||
package:com.figureout.questvr
|
||||
package:com.VRKemono.RealmsofEternity
|
||||
package:com.PicoPlanetDeveloping.FarmGame
|
||||
package:VirtualDesktop.Android
|
||||
package:de.erthu.advr
|
||||
package:io.arvore.pixelripped1995
|
||||
package:com.survios.Electronauts
|
||||
package:com.themunky.drunknbarfightQuest
|
||||
package:com.cloudheadgames.pistolwhip
|
||||
package:com.odders.ohshape
|
||||
package:com.beatgames.beatsaber
|
||||
package:com.ViteiBackroom.Powder
|
||||
package:com.enhanceexperience.tetriseffect
|
||||
package:com.Sutur.DescentAlpsPreRelease
|
||||
package:com.oculus.environment.prod.adobe
|
||||
package:com.oculus.environment.prod.japan
|
||||
package:com.tvb.cubism
|
||||
package:com.halfbrick.fruitninjavr
|
||||
package:com.MyronSoftware.Deisim
|
||||
package:ca.StitchMedia.FlowWeaver
|
||||
package:com.resolutiongames.wondergladesantacruz
|
||||
package:com.oculus.environment.prod.spacestation
|
||||
package:com.CortopiaStudios.Wands
|
||||
package:com.emcneill.Ironlights
|
||||
package:com.YourCompany.SWP_VR
|
||||
package:com.ForwardXP.nuke
|
||||
package:com.GreenerGames.QuestTreks
|
||||
package:com.schellgames.ieytdquest
|
||||
package:com.owlchemylabs.jobsimulator
|
||||
package:com.polyarc.MossGame
|
||||
package:com.SDI.TWD
|
||||
package:com.markschramm.gravitylab
|
||||
package:com.Armature.SportsScramble
|
||||
package:com.melscience.melchemistryvr
|
||||
package:com.coplanar.vre
|
||||
package:com.coatsink.alone
|
||||
package:com.coatsink.nexus
|
||||
package:com.TenderClaws.TheUnderPresents.Quest
|
||||
package:com.ivanovichgames.pangman
|
||||
package:com.holonautic.HandPhysicsLab
|
||||
package:com.whalerockindustries.testedvr
|
||||
package:com.HighVoltage.Crossbow
|
||||
package:com.parkline.wander
|
||||
package:com.Miragesoft.RealVrFishingQ
|
||||
package:com.fasttravelgames.diorama
|
||||
package:com.drbeef.lambda1vr
|
||||
package:com.metanaut.Gadgeteer
|
||||
package:com.brennanhatton.dungeontrain
|
||||
package:com.CortopiaStudios.DTRH
|
||||
package:com.Thunderbox.TsuroVR
|
||||
package:com.VRstudios.HoopsMadness
|
||||
package:com.coinflip.ninja
|
||||
package:com.hiddenpath.phoenix
|
||||
package:com.scale1.sepsdinerSolo
|
||||
package:com.voidroom.TeaForGod
|
||||
package:com.forevr.bowling
|
||||
package:com.weloveoculus.BMBF
|
||||
package:com.kluge.SynthRiders
|
||||
package:com.oculus.environment.prod.cyberhome
|
||||
package:Settings.OculusQuest2
|
||||
package:com.BigBoxVR.PopulationONE
|
||||
package:com.oculus.dab2
|
||||
package:com.iillusions.spacepiratetrainerquest
|
||||
package:com.mixedrealms.sairentovruntethered
|
||||
package:com.Armature.FailFactory
|
||||
package:com.RacketFury.RF_GearVR
|
||||
package:com.fyian.TheThrillOfTheFight
|
||||
package:com.funktroniclabs.fuji
|
||||
package:com.AlzanStudios.HPPortable
|
||||
package:com.gravitysketch.gravitysketch
|
||||
package:quest.eleven.forfunlabs
|
||||
package:com.oculus.tv
|
||||
package:com.ToastVR.RichiesPlankExperience
|
||||
package:com.nextgenreality.GunClubVR
|
||||
package:com.Mixeal.TheFinalOvers
|
||||
package:com.Supermedium.Supermedium
|
||||
package:com.enhanceexperience.rezquest
|
||||
package:com.drbeef.quake2quest
|
||||
package:com.chesstar.HiBow.Launcher
|
||||
package:com.mightygamesgroup.shootyvr
|
||||
package:com.drashvr.titansofspacevr6dof
|
||||
package:com.Ikimasho.StarShaman
|
||||
package:com.ilmxlab.tales
|
||||
package:com.fasttravelgames.jukebox
|
||||
package:com.PixelToys.DropDead
|
||||
package:com.DashingCape.FoodFlinger
|
||||
package:io.neuston.volleyballfever
|
||||
package:com.forcefieldxr.timestall
|
||||
package:com.Drifter.Kodiak
|
||||
package:unity.SUPERHOT_Team.SUPERHOT_VR_QA
|
||||
package:us.lighthaus.colorspace
|
||||
package:com.UNIVRS.LWAVR
|
||||
package:com.MiroWin.OMT
|
||||
package:com.harmonixmusic.kata
|
||||
package:com.fasttravelgames.apexconstruct
|
||||
package:com.ndreams.shootyfruity
|
||||
package:com.FlodLab.OceanCraft
|
||||
package:com.nextgenreality.rush
|
||||
package:com.onehamsa.RNXQ
|
||||
package:com.YourCompany.RoboRecall
|
||||
package:com.Chesstar.NesVR.QuestItch
|
||||
package:com.Aldin.WotW
|
||||
package:com.resolutiongames.codenamelazarus
|
||||
package:com.AoQ.AttackOnQuest
|
||||
package:com.forcefieldxr.explorevr
|
||||
package:com.CyanWorlds.Myst
|
||||
package:gg.trs.grappa
|
||||
package:com.facebook.arvr.quillplayer
|
||||
package:com.truantpixel.twomdquest
|
||||
package:nl.littlechicken.trafficjams.quest
|
||||
package:com.TriangleFactory.HyperDash
|
||||
package:io.github.sds100.keymapper
|
||||
package:com.SquirrelBytes.Hyperstacks
|
||||
package:org.dammertz.vr.VoxelWorksQuest
|
||||
package:com.SquanchGames.Trover
|
||||
package:com.MightyCoconut.WalkaboutMiniGolf
|
||||
package:jp.co.crypton.mikuvrq
|
||||
package:com.Solfar.InDeath
|
||||
package:com.picselica.OceanRiftFullQuest
|
||||
package:com.TribeXR.TribeXR
|
||||
package:com.CarbonStudio.TheWizards
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||