Compare commits
97 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
@@ -2,5 +2,6 @@
|
||||
"ExpandedNodes": [
|
||||
""
|
||||
],
|
||||
"SelectedNode": "\\Sideloader.cs",
|
||||
"PreviewInSolutionExplorer": false
|
||||
}
|
||||
BIN
.vs/slnx.sqlite
BIN
.vs/slnx.sqlite
Binary file not shown.
298
ADB.cs
298
ADB.cs
@@ -12,16 +12,24 @@ namespace AndroidSideloader
|
||||
class ADB
|
||||
{
|
||||
static Process adb = new Process();
|
||||
public static string adbFolderPath = Environment.CurrentDirectory + "\\adb";
|
||||
public static string adbFolderPath = "C:\\RSL\\2.1.1\\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}";
|
||||
|
||||
Logger.Log($"Running command {command}");
|
||||
}
|
||||
if (!command.Contains("dumpsys") && !command.Contains("shell pm list packages") && !command.Contains("KEYCODE_WAKEUP"))
|
||||
{
|
||||
string loggedcommand = Utilities.StringUtilities.RemoveEverythingBeforeFirst(command, "adb.exe");
|
||||
Logger.Log($"Running command{loggedcommand}");
|
||||
}
|
||||
adb.StartInfo.FileName = adbFilePath;
|
||||
adb.StartInfo.Arguments = command;
|
||||
adb.StartInfo.RedirectStandardError = true;
|
||||
@@ -30,7 +38,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,21 +47,45 @@ namespace AndroidSideloader
|
||||
string error = "";
|
||||
|
||||
try
|
||||
{
|
||||
{
|
||||
output = adb.StandardOutput.ReadToEnd();
|
||||
error = adb.StandardError.ReadToEnd();
|
||||
}
|
||||
catch { }
|
||||
|
||||
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"))
|
||||
{
|
||||
MessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.");
|
||||
ADB.WakeDevice();
|
||||
}
|
||||
if (error.Contains("not enough storage space"))
|
||||
{
|
||||
MessageBox.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("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;
|
||||
Properties.Settings.Default.ADBFolder = adbFolderPath;
|
||||
Properties.Settings.Default.ADBPath = adbFilePath;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
|
||||
|
||||
|
||||
Logger.Log($"Running command {command}");
|
||||
adb.StartInfo.FileName = "cmd.exe";
|
||||
adb.StartInfo.RedirectStandardError = true;
|
||||
@@ -74,19 +105,82 @@ 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();
|
||||
if (error.Contains("ADB_VENDOR_KEYS"))
|
||||
{
|
||||
MessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.");
|
||||
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();
|
||||
Logger.Log($"Running command {command}");
|
||||
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"))
|
||||
{
|
||||
MessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.");
|
||||
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("", "");
|
||||
@@ -142,75 +236,104 @@ namespace AndroidSideloader
|
||||
|
||||
public static void WakeDevice()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.IPAddress))
|
||||
string devicesout = RunAdbCommandToString("shell input keyevent KEYCODE_WAKEUP").Output;
|
||||
if (!devicesout.Contains("found"))
|
||||
{
|
||||
ADB.RunAdbCommandToString(Properties.Settings.Default.IPAddress);
|
||||
string response = ADB.RunAdbCommandToString(Properties.Settings.Default.IPAddress).Output;
|
||||
if (response.Contains("refused"))
|
||||
if (Properties.Settings.Default.IPAddress.Contains("connect"))
|
||||
{
|
||||
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))
|
||||
{
|
||||
DialogResult dialogResult = MessageBox.Show("Either your Quest is idle or you have rebooted the device.\nRSL's wireless ADB will persist on PC reboot but not on Quest reboot.\n\nNOTE: If you haven't rebooted your Quest it may be idle.\n\nTo prevent this press the HOLD button 2x prior to launching RSL. Or\nkeep your Quest plugged into power to keep it permanently \"awake\".\n\nHave you assigned your Quest a static IP in your router configuration?\n\nIf you no longer want to use Wireless ADB or your device was idle please hit CANCEL.", "DEVICE REBOOTED\\IDLE?", MessageBoxButtons.YesNoCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
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;
|
||||
DialogResult dialogResult2 = MessageBox.Show("Press OK to remove your stored IP address.\nIf your Quest went idle press the HOLD button on the device twice then press CANCEL to reconnect.", "REMOVE STORED IP?", MessageBoxButtons.OKCancel);
|
||||
if (dialogResult2 == DialogResult.Cancel)
|
||||
WakeDevice();
|
||||
if (dialogResult2 == DialogResult.OK)
|
||||
{
|
||||
Properties.Settings.Default.IPAddress = "";
|
||||
Properties.Settings.Default.Save();
|
||||
WakeDevice();
|
||||
}
|
||||
|
||||
}
|
||||
else if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
MessageBox.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. This makes it so Rookie can work wirelessly even if the device has entered \"sleep mode\". This setting is NOT permanent and resets upon Quest reboot just like wireless ADB functionality.\n\n After testing with this setting off and on the difference in battery usage seems nonexistent. We recommend this setting for the majority of users for ease of use purposes. If you click NO you must keep your Quest connected to a charger OR wake your device and then put it back on hold before using Rookie wirelessly. Do you want to enable wake on wifi?", "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");
|
||||
}
|
||||
if (dialogResult == DialogResult.No)
|
||||
{
|
||||
|
||||
Program.form.ChangeTitlebarToDevice();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (dialogResult == DialogResult.No)
|
||||
{
|
||||
MessageBox.Show("You must repeat the entire connection process, press OK to begin.", "Reconfigure Wireless ADB", MessageBoxButtons.OK);
|
||||
RunAdbCommandToString("devices");
|
||||
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 = 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";
|
||||
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();
|
||||
|
||||
MessageBox.Show($"Connected!!", "", MessageBoxButtons.OK);
|
||||
Program.form.ChangeTitlebarToDevice();
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("No device connected!");
|
||||
}
|
||||
MessageBox.Show($"Connected! We can now automatically disable the Quest wifi chip from falling asleep. This makes it so Rookie can work wirelessly even if the device has entered \"sleep mode\". This setting is NOT permanent and resets upon Quest reboot, just like wireless ADB functionality.\n\nNOTE: This may cause the device battery to drain while it is in sleep mode at a very slightly increased rate. We recommend this setting for the majority of users for ease of use purposes. If you click NO you must keep your Quest connected to a charger or wake your device and then put it back on hold before using Rookie wirelessly. Do you want us to stop sleep mode from disabling wireless ADB?", "", 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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
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}");
|
||||
Program.form.ChangeTitle($"Sideloading {Path.GetFileName(path)}");
|
||||
ret += RunAdbCommandToString($"install -g -r \"{path}\"");
|
||||
string out2 = ret.Output + ret.Error;
|
||||
if (out2.Contains("failed"))
|
||||
@@ -218,7 +341,7 @@ namespace AndroidSideloader
|
||||
string BackupFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), $"Rookie Backups");
|
||||
if (out2.Contains("offline"))
|
||||
{
|
||||
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 = MessageBox.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();
|
||||
}
|
||||
@@ -228,7 +351,7 @@ namespace AndroidSideloader
|
||||
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);
|
||||
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);
|
||||
|
||||
string date_str = DateTime.Today.ToString("yyyy.MM.dd");
|
||||
string CurrBackups = Path.Combine(BackupFolder, date_str);
|
||||
@@ -237,11 +360,9 @@ namespace AndroidSideloader
|
||||
MessageBox.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);
|
||||
MessageBox.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
|
||||
{
|
||||
@@ -252,19 +373,19 @@ namespace AndroidSideloader
|
||||
}
|
||||
}
|
||||
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 (File.Exists($"{Properties.Settings.Default.MainDir}\\Config.Json") && gamenameforQU.Contains("-QU") || path.Contains("-QU"))
|
||||
{
|
||||
if (packagename.Contains("com.*") || Properties.Settings.Default.CurrPckg.Contains("com"))
|
||||
{
|
||||
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 +405,24 @@ 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");
|
||||
|
||||
|
||||
}
|
||||
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";
|
||||
|
||||
|
||||
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");
|
||||
|
||||
}
|
||||
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");
|
||||
if (Path.GetDirectoryName(path).Contains(".") && !Path.GetDirectoryName(path).Contains("_data") || path.Contains("."))
|
||||
{
|
||||
return RunAdbCommandToString($"push \"{path}\" \"/sdcard/Android/obb\"");
|
||||
}
|
||||
return new ProcessOutput();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -252,6 +252,7 @@
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<None Include="version" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
@@ -259,6 +260,9 @@
|
||||
<ItemGroup>
|
||||
<Content Include="changelog.txt" />
|
||||
<Content Include="icon.ico" />
|
||||
<None Include="Resources\greenkey.png" />
|
||||
<None Include="Resources\orangekey.png" />
|
||||
<None Include="Resources\SearchGlass.PNG" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
|
||||
|
||||
34
App.config
34
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, 12pt</value>
|
||||
</setting>
|
||||
<setting name="BackPicturePath" serializeAs="String">
|
||||
<value />
|
||||
@@ -113,6 +113,36 @@
|
||||
<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>
|
||||
</AndroidSideloader.Properties.Settings>
|
||||
<AndroidADB.Sideloader.Properties.Settings>
|
||||
<setting name="checkForUpdates" serializeAs="String">
|
||||
|
||||
@@ -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();
|
||||
|
||||
580
MainForm.Designer.cs
generated
580
MainForm.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
1537
MainForm.cs
1537
MainForm.cs
File diff suppressed because it is too large
Load Diff
@@ -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}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
30
Properties/Resources.Designer.cs
generated
30
Properties/Resources.Designer.cs
generated
@@ -59,5 +59,35 @@ namespace AndroidSideloader.Properties {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <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 SearchGlass {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("SearchGlass", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,4 +117,14 @@
|
||||
<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="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="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="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>
|
||||
</root>
|
||||
126
Properties/Settings.Designer.cs
generated
126
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, 12pt")]
|
||||
public global::System.Drawing.Font FontStyle {
|
||||
get {
|
||||
return ((global::System.Drawing.Font)(this["FontStyle"]));
|
||||
@@ -430,5 +430,125 @@ 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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, 12pt</Value>
|
||||
</Setting>
|
||||
<Setting Name="BackPicturePath" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
@@ -104,5 +104,35 @@
|
||||
<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>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
38
QuestForm.Designer.cs
generated
38
QuestForm.Designer.cs
generated
@@ -332,7 +332,7 @@ namespace AndroidSideloader
|
||||
"4"});
|
||||
this.CPUComboBox.Location = new System.Drawing.Point(13, 126);
|
||||
this.CPUComboBox.Name = "CPUComboBox";
|
||||
this.CPUComboBox.Size = new System.Drawing.Size(345, 21);
|
||||
this.CPUComboBox.Size = new System.Drawing.Size(345, 28);
|
||||
this.CPUComboBox.TabIndex = 2;
|
||||
this.CPUComboBox.Text = "Select CPU level (0 for default)";
|
||||
//
|
||||
@@ -354,7 +354,7 @@ namespace AndroidSideloader
|
||||
"4"});
|
||||
this.GPUComboBox.Location = new System.Drawing.Point(13, 97);
|
||||
this.GPUComboBox.Name = "GPUComboBox";
|
||||
this.GPUComboBox.Size = new System.Drawing.Size(345, 21);
|
||||
this.GPUComboBox.Size = new System.Drawing.Size(345, 28);
|
||||
this.GPUComboBox.TabIndex = 1;
|
||||
this.GPUComboBox.Text = "Select GPU level (0 for default)";
|
||||
//
|
||||
@@ -368,11 +368,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(66, 20);
|
||||
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 +383,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(66, 20);
|
||||
this.label8.TabIndex = 3;
|
||||
this.label8.Text = "Fov - Y";
|
||||
this.label8.Visible = false;
|
||||
this.label8.Click += new System.EventHandler(this.label8_Click);
|
||||
//
|
||||
// label9
|
||||
//
|
||||
@@ -400,7 +398,7 @@ namespace AndroidSideloader
|
||||
this.label9.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label9.Location = new System.Drawing.Point(11, 583);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(79, 15);
|
||||
this.label9.Size = new System.Drawing.Size(117, 20);
|
||||
this.label9.TabIndex = 3;
|
||||
this.label9.Text = "Refresh Rate";
|
||||
this.label9.Visible = false;
|
||||
@@ -415,11 +413,10 @@ namespace AndroidSideloader
|
||||
this.label6.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label6.Location = new System.Drawing.Point(13, 484);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(142, 15);
|
||||
this.label6.Size = new System.Drawing.Size(206, 20);
|
||||
this.label6.TabIndex = 3;
|
||||
this.label6.Text = "Enter Custom Username";
|
||||
this.label6.Visible = false;
|
||||
this.label6.Click += new System.EventHandler(this.label6_Click);
|
||||
//
|
||||
// label5
|
||||
//
|
||||
@@ -431,11 +428,10 @@ namespace AndroidSideloader
|
||||
this.label5.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label5.Location = new System.Drawing.Point(12, 434);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(278, 15);
|
||||
this.label5.Size = new System.Drawing.Size(410, 20);
|
||||
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
|
||||
//
|
||||
@@ -447,7 +443,7 @@ namespace AndroidSideloader
|
||||
this.ResolutionLabel.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.ResolutionLabel.Location = new System.Drawing.Point(11, 183);
|
||||
this.ResolutionLabel.Name = "ResolutionLabel";
|
||||
this.ResolutionLabel.Size = new System.Drawing.Size(163, 15);
|
||||
this.ResolutionLabel.Size = new System.Drawing.Size(241, 20);
|
||||
this.ResolutionLabel.TabIndex = 3;
|
||||
this.ResolutionLabel.Text = "Resolution (p eye, 0=default)";
|
||||
//
|
||||
@@ -461,7 +457,7 @@ namespace AndroidSideloader
|
||||
this.FOVy.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.FOVy.Location = new System.Drawing.Point(191, 507);
|
||||
this.FOVy.Name = "FOVy";
|
||||
this.FOVy.Size = new System.Drawing.Size(167, 20);
|
||||
this.FOVy.Size = new System.Drawing.Size(167, 26);
|
||||
this.FOVy.TabIndex = 12;
|
||||
this.FOVy.Text = "0";
|
||||
this.FOVy.Visible = false;
|
||||
@@ -477,7 +473,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, 26);
|
||||
this.FOVx.TabIndex = 11;
|
||||
this.FOVx.Text = "0";
|
||||
this.FOVx.Visible = false;
|
||||
@@ -493,7 +489,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, 26);
|
||||
this.UsrBox.TabIndex = 10;
|
||||
this.UsrBox.Text = "0";
|
||||
this.UsrBox.Visible = false;
|
||||
@@ -509,7 +505,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, 26);
|
||||
this.ResBox.TabIndex = 9;
|
||||
this.ResBox.Text = "0";
|
||||
this.ResBox.Visible = false;
|
||||
@@ -525,7 +521,7 @@ namespace AndroidSideloader
|
||||
this.TextureResTextBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.TextureResTextBox.Location = new System.Drawing.Point(13, 155);
|
||||
this.TextureResTextBox.Name = "TextureResTextBox";
|
||||
this.TextureResTextBox.Size = new System.Drawing.Size(169, 20);
|
||||
this.TextureResTextBox.Size = new System.Drawing.Size(169, 26);
|
||||
this.TextureResTextBox.TabIndex = 3;
|
||||
this.TextureResTextBox.Text = "0";
|
||||
//
|
||||
@@ -581,7 +577,7 @@ namespace AndroidSideloader
|
||||
"120"});
|
||||
this.QURfrRt.Location = new System.Drawing.Point(12, 555);
|
||||
this.QURfrRt.Name = "QURfrRt";
|
||||
this.QURfrRt.Size = new System.Drawing.Size(170, 21);
|
||||
this.QURfrRt.Size = new System.Drawing.Size(170, 28);
|
||||
this.QURfrRt.TabIndex = 13;
|
||||
this.QURfrRt.Text = "0";
|
||||
this.QURfrRt.Visible = false;
|
||||
@@ -603,7 +599,7 @@ namespace AndroidSideloader
|
||||
"120"});
|
||||
this.RefreshRateComboBox.Location = new System.Drawing.Point(13, 68);
|
||||
this.RefreshRateComboBox.Name = "RefreshRateComboBox";
|
||||
this.RefreshRateComboBox.Size = new System.Drawing.Size(345, 21);
|
||||
this.RefreshRateComboBox.Size = new System.Drawing.Size(345, 28);
|
||||
this.RefreshRateComboBox.TabIndex = 0;
|
||||
this.RefreshRateComboBox.Text = "Select refresh rate";
|
||||
//
|
||||
@@ -649,8 +645,8 @@ namespace AndroidSideloader
|
||||
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.MaximumSize = new System.Drawing.Size(386, 776);
|
||||
this.MinimumSize = new System.Drawing.Size(386, 776);
|
||||
this.Name = "QuestForm";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
|
||||
39
QuestForm.cs
39
QuestForm.cs
@@ -166,9 +166,9 @@ 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);
|
||||
}
|
||||
|
||||
|
||||
@@ -282,8 +282,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...");
|
||||
@@ -306,24 +306,23 @@ namespace AndroidSideloader
|
||||
Form.Show();
|
||||
}
|
||||
|
||||
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 label8_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void label7_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
@@ -84,7 +85,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("cannot fetch token") || error.Contains("authError") || (error.Contains("quota") || error.Contains("exceeded")))
|
||||
{
|
||||
string oldRemote = MainForm.currentRemote;
|
||||
try
|
||||
@@ -102,8 +103,12 @@ namespace AndroidSideloader
|
||||
prcoutput.Output = output;
|
||||
prcoutput.Error = error;
|
||||
}
|
||||
if (!output.Contains("Game Name;Release Name;") && !output.Contains("package:"))
|
||||
Logger.Log($"Rclone error: {error}\nRclone Output: {output}");
|
||||
return prcoutput;
|
||||
if (error.Contains("There is not enough space"))
|
||||
MessageBox.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;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
Resources/SearchGlass.PNG
Normal file
BIN
Resources/SearchGlass.PNG
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.0 KiB |
BIN
Resources/greenkey.png
Normal file
BIN
Resources/greenkey.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
BIN
Resources/orangekey.png
Normal file
BIN
Resources/orangekey.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
179
SettingsForm.Designer.cs
generated
179
SettingsForm.Designer.cs
generated
@@ -38,6 +38,13 @@
|
||||
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.SuspendLayout();
|
||||
//
|
||||
// checkForUpdatesCheckBox
|
||||
@@ -45,9 +52,10 @@
|
||||
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(17, 16);
|
||||
this.checkForUpdatesCheckBox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.checkForUpdatesCheckBox.Name = "checkForUpdatesCheckBox";
|
||||
this.checkForUpdatesCheckBox.Size = new System.Drawing.Size(135, 20);
|
||||
this.checkForUpdatesCheckBox.Size = new System.Drawing.Size(193, 29);
|
||||
this.checkForUpdatesCheckBox.TabIndex = 0;
|
||||
this.checkForUpdatesCheckBox.Text = "Check for updates";
|
||||
this.checkForUpdatesCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -62,9 +70,10 @@
|
||||
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(16, 219);
|
||||
this.applyButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.applyButton.Name = "applyButton";
|
||||
this.applyButton.Size = new System.Drawing.Size(101, 31);
|
||||
this.applyButton.Size = new System.Drawing.Size(135, 38);
|
||||
this.applyButton.TabIndex = 5;
|
||||
this.applyButton.Text = "Apply";
|
||||
this.applyButton.UseVisualStyleBackColor = false;
|
||||
@@ -75,9 +84,10 @@
|
||||
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(17, 44);
|
||||
this.enableMessageBoxesCheckBox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.enableMessageBoxesCheckBox.Name = "enableMessageBoxesCheckBox";
|
||||
this.enableMessageBoxesCheckBox.Size = new System.Drawing.Size(284, 20);
|
||||
this.enableMessageBoxesCheckBox.Size = new System.Drawing.Size(404, 29);
|
||||
this.enableMessageBoxesCheckBox.TabIndex = 1;
|
||||
this.enableMessageBoxesCheckBox.Text = "Enable Message Boxes on task completed";
|
||||
this.enableMessageBoxesCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -92,9 +102,10 @@
|
||||
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(159, 219);
|
||||
this.resetSettingsButton.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.resetSettingsButton.Name = "resetSettingsButton";
|
||||
this.resetSettingsButton.Size = new System.Drawing.Size(101, 31);
|
||||
this.resetSettingsButton.Size = new System.Drawing.Size(135, 38);
|
||||
this.resetSettingsButton.TabIndex = 4;
|
||||
this.resetSettingsButton.Text = "Reset Settings";
|
||||
this.resetSettingsButton.UseVisualStyleBackColor = false;
|
||||
@@ -105,9 +116,10 @@
|
||||
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(17, 73);
|
||||
this.deleteAfterInstallCheckBox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.deleteAfterInstallCheckBox.Name = "deleteAfterInstallCheckBox";
|
||||
this.deleteAfterInstallCheckBox.Size = new System.Drawing.Size(266, 20);
|
||||
this.deleteAfterInstallCheckBox.Size = new System.Drawing.Size(378, 29);
|
||||
this.deleteAfterInstallCheckBox.TabIndex = 3;
|
||||
this.deleteAfterInstallCheckBox.Text = "Delete games after download and install";
|
||||
this.deleteAfterInstallCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -118,9 +130,10 @@
|
||||
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(17, 102);
|
||||
this.updateConfigCheckBox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.updateConfigCheckBox.Name = "updateConfigCheckBox";
|
||||
this.updateConfigCheckBox.Size = new System.Drawing.Size(193, 20);
|
||||
this.updateConfigCheckBox.Size = new System.Drawing.Size(272, 29);
|
||||
this.updateConfigCheckBox.TabIndex = 6;
|
||||
this.updateConfigCheckBox.Text = "Update config automatically";
|
||||
this.updateConfigCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -131,9 +144,10 @@
|
||||
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(17, 130);
|
||||
this.userJsonOnGameInstall.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.userJsonOnGameInstall.Name = "userJsonOnGameInstall";
|
||||
this.userJsonOnGameInstall.Size = new System.Drawing.Size(218, 20);
|
||||
this.userJsonOnGameInstall.Size = new System.Drawing.Size(315, 29);
|
||||
this.userJsonOnGameInstall.TabIndex = 9;
|
||||
this.userJsonOnGameInstall.Text = "Push random user.json on install";
|
||||
this.userJsonOnGameInstall.UseVisualStyleBackColor = true;
|
||||
@@ -147,9 +161,10 @@
|
||||
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(16, 181);
|
||||
this.BandwithTextbox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.BandwithTextbox.Name = "BandwithTextbox";
|
||||
this.BandwithTextbox.Size = new System.Drawing.Size(177, 21);
|
||||
this.BandwithTextbox.Size = new System.Drawing.Size(235, 30);
|
||||
this.BandwithTextbox.TabIndex = 11;
|
||||
//
|
||||
// label1
|
||||
@@ -157,9 +172,10 @@
|
||||
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(13, 156);
|
||||
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(224, 16);
|
||||
this.label1.Size = new System.Drawing.Size(322, 25);
|
||||
this.label1.TabIndex = 12;
|
||||
this.label1.Text = "Download speed limiter, 0 to disable";
|
||||
//
|
||||
@@ -178,17 +194,121 @@
|
||||
"K",
|
||||
"M",
|
||||
"G"});
|
||||
this.BandwithComboBox.Location = new System.Drawing.Point(195, 153);
|
||||
this.BandwithComboBox.Location = new System.Drawing.Point(260, 180);
|
||||
this.BandwithComboBox.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.BandwithComboBox.Name = "BandwithComboBox";
|
||||
this.BandwithComboBox.Size = new System.Drawing.Size(55, 23);
|
||||
this.BandwithComboBox.Size = new System.Drawing.Size(72, 33);
|
||||
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(16, 274);
|
||||
this.DebugLogCopy.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.DebugLogCopy.Name = "DebugLogCopy";
|
||||
this.DebugLogCopy.Size = new System.Drawing.Size(380, 38);
|
||||
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(17, 410);
|
||||
this.crashlogID.Name = "crashlogID";
|
||||
this.crashlogID.Size = new System.Drawing.Size(0, 17);
|
||||
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(16, 317);
|
||||
this.button1.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(380, 38);
|
||||
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(16, 411);
|
||||
this.debuglogID.Name = "debuglogID";
|
||||
this.debuglogID.Size = new System.Drawing.Size(380, 59);
|
||||
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(16, 375);
|
||||
this.DebugID.Name = "DebugID";
|
||||
this.DebugID.ReadOnly = true;
|
||||
this.DebugID.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal;
|
||||
this.DebugID.Size = new System.Drawing.Size(380, 27);
|
||||
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(16, 498);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(379, 106);
|
||||
this.label2.TabIndex = 14;
|
||||
this.label2.Text = "This is your most recent CrashLogID. Click on the CrashLogID to copy it to your" +
|
||||
" clipboard.";
|
||||
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(16, 477);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.ReadOnly = true;
|
||||
this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal;
|
||||
this.textBox1.Size = new System.Drawing.Size(380, 27);
|
||||
this.textBox1.TabIndex = 16;
|
||||
this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.textBox1.Click += new System.EventHandler(this.textBox1_Click);
|
||||
//
|
||||
// SettingsForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
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(417, 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);
|
||||
@@ -196,17 +316,21 @@
|
||||
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.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.Name = "SettingsForm";
|
||||
this.ShowIcon = false;
|
||||
this.Text = "Settings";
|
||||
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 +348,12 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
108
SettingsForm.cs
108
SettingsForm.cs
@@ -1,5 +1,6 @@
|
||||
using JR.Utils.GUI.Forms;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AndroidSideloader
|
||||
@@ -14,9 +15,12 @@ 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();
|
||||
}
|
||||
|
||||
@@ -28,12 +32,12 @@ namespace AndroidSideloader
|
||||
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)
|
||||
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 +50,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}\\notes\\nouns.txt"))
|
||||
{
|
||||
string[] lines = File.ReadAllLines($"{Environment.CurrentDirectory}\\notes\\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 +146,53 @@ 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!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -58,16 +58,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);
|
||||
output += 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 +86,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 +99,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);
|
||||
}
|
||||
@@ -181,14 +185,12 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
|
||||
output += ADB.RunAdbCommandToString("pull " + apkPath); //pull apk
|
||||
|
||||
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");
|
||||
if (File.Exists(Properties.Settings.Default.MainDir + "\\" + packageName + ".apk"))
|
||||
File.Delete(Properties.Settings.Default.MainDir + "\\" + packageName + ".apk");
|
||||
|
||||
File.Move(Environment.CurrentDirectory + "\\adb\\" + currApkPath, Environment.CurrentDirectory + "\\" + packageName + ".apk");
|
||||
MessageBox.Show("APK is named" + packageName + ".apk. Opening containing folder now.");
|
||||
File.Move(Properties.Settings.Default.ADBFolder + "\\base.apk", Environment.CurrentDirectory + "\\" + packageName + ".apk");
|
||||
|
||||
return output;
|
||||
}
|
||||
@@ -197,8 +199,32 @@ 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;
|
||||
}
|
||||
@@ -255,5 +281,5 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -115,7 +115,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
|
||||
|
||||
@@ -9,7 +9,7 @@ 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;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace AndroidSideloader
|
||||
private static string RawGitHubUrl;
|
||||
private static string GitHubUrl;
|
||||
|
||||
static readonly public string LocalVersion = "2.1.1";
|
||||
static readonly public string LocalVersion = "2.4.2";
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
383
changelog.txt
383
changelog.txt
@@ -1,8 +1,384 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.4HF
|
||||
|
||||
= Fixed issues with debuglog and crashlog upload. Both can now be shared with moderation staff without issue.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmD2W+cACgkQx/Rql1Vo
|
||||
cze+rg/9GOtWFgd3CPRvsyvQCwdzWHDTdtFWSWEhmuSSwk80fXGu5vJYeadErZ/f
|
||||
HrHvZ6I/DDvaEkCNpFncuWI7kO7TNp2qu7WLE0X+4XOyNLNbLWPaxyz5nxyRLyNr
|
||||
tPFCrZbBVbTFs7I5qZKmquV2FTPDnkaZle7B0NN+yvyzQ3KC1DYEwtNNOJBKhZPt
|
||||
sgZYpEqSoj3Ju5VcoXJH5Va4ADDpOaRMUVNtmBmKwWxPdornZRpZExNW4Nocsm8B
|
||||
J/2Elw01FLNGkwlk5MwN9bZL0/pdtsdVDh9JlAiDFrnvTP+kRYNlT+AzVVxFa7c6
|
||||
JzwdBkZQYNiklCR5DioH0JzH2lOiIYbUnd09pMnC2UWLDwEXqaf5hE/1f1hDI2qN
|
||||
/Kllw5jHeL6GPxgurU+iAGGdfTNtpOxWu6buc7Qm+WQ7o1IqvGX4O9L8wUl09m/m
|
||||
8/BIOcJBfdqTgdVWb+JSXD9lJiJVshfcxoIHDW4uWOnn5y97a+c8Eev78cJA/MaR
|
||||
3dmdjErxHBe09ujAlTLZZZLVsTtYOm9wj2OcrzqmG+T4fWvsNOnTXFeA2fqchqz9
|
||||
ztaMHsXZhs1Ls7cVPXaxlAjwY2gAVHJMOn/5okc8qEFAzF4Qcfu6YXfYvWXzaeK0
|
||||
LhdoFfG5FLbk2cwKGVmMCPnjAAUJCGZCpmeMaSQscd73j3ezJ3c=
|
||||
=bnNu
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.3
|
||||
|
||||
+ Added UniqueID naming system and LOG uupload options for DebugLog and CrashLogs to help fix user problems much faster and systematically.
|
||||
NOTE: You must Download+Install at least one game game to update the remote config before tyrying to submit any Logs!
|
||||
|
||||
= Fixed MAJOR obb copy bug.
|
||||
IMPORTANT: Please Mount your Quest and check your /sdcard/android/obb folder for any folders that aren't formatted a website like this: com.blah.blah, if you have some there, delete them they are not supposed to be there.
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmD0uooACgkQx/Rql1Vo
|
||||
czcQig/6AkstnLYRNJBToM+cKF9bA/1Fu/HLPVahRYIgix10JKka1Lq+jbe/wQm+
|
||||
taa29k7e4YQWwWQJqO0exrK9oaXX8kavVcB/mRG9OR0Bn4xWAdC6GwKA4SKX9rog
|
||||
xdEh+zEuaOa2AsPQwjwxrFma9aYOtkIYpCcKTukZNrmmkIL71hKJJLD/dnhj7HLR
|
||||
VvMjdrASrMOO19apDMcSaceEbJ0leDbLTj6nrLxb9dNbrBUcC+lGJ8ZXrrwd1pai
|
||||
um0uHMXboYbZ7KXMzgXX9lRjt5Csl0XkOPLmmhoGSolazfmdFvswgQ4bouq2SwYw
|
||||
Fme0hQlyZjr6wmnOFI16ZKDRgTl6tnMch+oAeU9kf6NxMqKFiFDKPp7EEeNBfMKk
|
||||
olyWS4D16UYEE7e+R9xA2rD+WwyrZsv5J5OghgIXjcfuHY8nXzSITlgvt+igOt3Q
|
||||
OWC8AHI5L/PgYwv/Z6vIDjEcPbMvsVpEpvE2KL8KIA1+2JAkSNxGpdv1h2pxixSr
|
||||
sqXeMASTfKBVIZu5mNsWSG/MHYFk7/rgEpWnTjF8Dmw0ZHxPd9OMOu8jZ3EH0gBz
|
||||
lYLAcZcpSC8itMN1hxdluwYT9MvXqJ5+NBEYdCUy1rhHOuoad1cnkizqgiHuOVqw
|
||||
ZF9xcPCZdA+5HhEqASlt60+kFQ3Z53j68kOsCLNDU2cwWF+rxO4=
|
||||
=L7zi
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
2.2.1
|
||||
Turned bold font off.
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.2
|
||||
|
||||
+ Added custom naming scheme to Debug Log. Debug Log now uses 2 random nouns as its name when generated.
|
||||
+ Added shortcut commands. Press F1 to see list of shortcuts.
|
||||
|
||||
F1 = Shortcuts List
|
||||
F2 = Search
|
||||
F3 = Quest Options
|
||||
F4 = Rookie Settings
|
||||
F5 = Refresh Games List
|
||||
F11 = Copy Debug log to Desktop.
|
||||
F12 = Copy Crash Log to Desktop (if one exists).
|
||||
|
||||
CTRL + R = Run custom ADB command.
|
||||
CTRL + F = Search
|
||||
CTRL + P = Copy package name of selected game to Clipboard.
|
||||
CTRL + F4 = Restart program.
|
||||
|
||||
+ Added ability to upload debug logs to remote server (the server should be updated to reflect this sometime this week!)
|
||||
= If Install.txt exists apk install and Obb copy will only be run from install.txt - this is to prevent double copy of obb files or double install of APKS.
|
||||
= Fixed issue where if user started DL+install on one title then quickly selected a different title in the games list it would download the newly selected item instead of the originally intended item.
|
||||
= Fixed issue that caused download progress bar to not work if multiple items were queued.
|
||||
= Fixed other obb copying issues.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDzKesACgkQx/Rql1Vo
|
||||
czeiXQ/+OsH5CdnShheJR85/uIkVLGDf75Hkybj7k+5gV688imYwWbCRarudqa8k
|
||||
aVC5g69mdKD8rD8DzWjccpFwxvOSq5MRQMWB/Nl/M2142Rnr1M4WdP6xEmMq1qmQ
|
||||
X39T3tdpgxxKyDPIt4EX/iLT6qSHdB69qFtMeEoOsHmisqGDFDCHGs835VUUL9FU
|
||||
PaZ218Dd07r9/W9cJKX5EI/ihWZ5lv+0defBofQu2A8GCOXzuWIudLtcG5uYIJwO
|
||||
9frevYIKteuq+MmcXedgu3uWUb0CnQ+tEyShPYjTdrFdMJYgFrOzIIlogBWK5fm3
|
||||
cp8YSzeHJpBnD8qQar/W92WTTzvWd7I9vk7YB/Pdn6MIzzTJX540R2fu2rwsYBCG
|
||||
DciqA8+V5sDx5eRmrcUxrmxrsDMPlbpqos0R+yujCHyiLHzt1d/oEohZ/mNw24y4
|
||||
3MrjGyzlJqRZZFnaMLGNooLBrT9EeGcTXk/MgJjSO1XQjCVAWmrrsEHCXqcKwi8i
|
||||
IW5OMKld80wqWr79LRF6dPxjcuwRgVE8mNd6G6qedX5TXvqjHUEVymMLFFvhVQnQ
|
||||
QnOHX0HzWXF/64ghD6r3OR4pQ8C5xb7Z6tEwXX7soQVo610m7nJT1zaHm2m9HSJN
|
||||
AA1bdfK9SEKXl3KJT7SCEnQ/2ED6Qr/VBFXcJB/10Il/n8AdJ2o=
|
||||
=DFRR
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.2
|
||||
|
||||
+ Added custom naming scheme to Debug Log. Debug Log now uses 2 random nouns as its name when generated.
|
||||
+ Added shortcut commands. Press F1 to see list of shortcuts.
|
||||
|
||||
F1 = Shortcuts List
|
||||
F2 = Search
|
||||
F3 = Quest Options
|
||||
F4 = Rookie Settings
|
||||
F5 = Refresh Games List
|
||||
F11 = Copy Debug log to Desktop.
|
||||
F12 = Copy Crash Log to Desktop (if one exists).
|
||||
|
||||
CTRL + R = Run custom ADB command.
|
||||
CTRL + F = Search
|
||||
CTRL + P = Copy package name of selected game to Clipboard.
|
||||
CTRL + F4 = Restart program.
|
||||
|
||||
+ Added ability to upload debug logs to remote server (the server should be updated to reflect this sometime this week!)
|
||||
= If Install.txt exists apk install and Obb copy will only be run from install.txt - this is to prevent double copy of obb files or double install of APKS.
|
||||
= Fixed issue where if user started DL+install on one title then quickly selected a different title in the games list it would download the newly selected item instead of the originally intended item.
|
||||
= Fixed issue that caused download progress bar to not work if multiple items were queued.
|
||||
= Fixed other obb copying issues.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDzKesACgkQx/Rql1Vo
|
||||
czeiXQ/+OsH5CdnShheJR85/uIkVLGDf75Hkybj7k+5gV688imYwWbCRarudqa8k
|
||||
aVC5g69mdKD8rD8DzWjccpFwxvOSq5MRQMWB/Nl/M2142Rnr1M4WdP6xEmMq1qmQ
|
||||
X39T3tdpgxxKyDPIt4EX/iLT6qSHdB69qFtMeEoOsHmisqGDFDCHGs835VUUL9FU
|
||||
PaZ218Dd07r9/W9cJKX5EI/ihWZ5lv+0defBofQu2A8GCOXzuWIudLtcG5uYIJwO
|
||||
9frevYIKteuq+MmcXedgu3uWUb0CnQ+tEyShPYjTdrFdMJYgFrOzIIlogBWK5fm3
|
||||
cp8YSzeHJpBnD8qQar/W92WTTzvWd7I9vk7YB/Pdn6MIzzTJX540R2fu2rwsYBCG
|
||||
DciqA8+V5sDx5eRmrcUxrmxrsDMPlbpqos0R+yujCHyiLHzt1d/oEohZ/mNw24y4
|
||||
3MrjGyzlJqRZZFnaMLGNooLBrT9EeGcTXk/MgJjSO1XQjCVAWmrrsEHCXqcKwi8i
|
||||
IW5OMKld80wqWr79LRF6dPxjcuwRgVE8mNd6G6qedX5TXvqjHUEVymMLFFvhVQnQ
|
||||
QnOHX0HzWXF/64ghD6r3OR4pQ8C5xb7Z6tEwXX7soQVo610m7nJT1zaHm2m9HSJN
|
||||
AA1bdfK9SEKXl3KJT7SCEnQ/2ED6Qr/VBFXcJB/10Il/n8AdJ2o=
|
||||
=DFRR
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.1.6
|
||||
= Fixed bug that occurred if image isn't available for game.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDuxAsACgkQx/Rql1Vo
|
||||
czdf5w/+NsRI6Sq2EOJ5SQ4z+AsET0ydR4Dw5505z2uuM3R5OajPc1TvzmI1vehz
|
||||
E5I7gDtw1gMbDofKj88oC3E/pdRi1mRuc8swkJJLJUrDG2z9oVdiBu9ccESOImbV
|
||||
Yk8CtaTjNvIAEXHr4zQwS+JLy+0suLmQpw5zp2IXugWAbGVE8lQ9ZF3J3p+LEooQ
|
||||
Lf1eG1V+Y68LCdeStI5kEBfgUgsB5mHXbcKG7LPxtCDjdhiV8rZNjBD8qsreNjfi
|
||||
oWvncIwZRZv5q7/InEYUq7X2nLVE8Twpdj4jtYt7tOlwk6uodidTVhp49/HQ03ni
|
||||
ieDAwV72ZqNTqvW0Jzb5yOjBtSFxOMyaiNvyuVQExaYrOege7LbH4+fJm5Lu3w8t
|
||||
3Fowf/SPj9ep6CZ8snhfyEeyYPLyhLAPcojn0LH9wc3+fDe1tCWW6IajMFQaG07u
|
||||
wx1/eLR+TEI1/qVEc7/YK/bw+nArTysTKMI9Gi0aoJcU6jUsHwhJI9o5zDEtDh7i
|
||||
6S4y++dHuobMiMw9ZF98TlSnxu8W5YtlJO59N99W9DHFm1hFamITg6fLpwCoBrHT
|
||||
nqpLG6GyQ8zmUs34RcdAx1e8niADuU/UGk90zrqAHpKd66PE7N03Ay9fDS2emAgF
|
||||
EZk2pJEqLi9g63wBfGVMFDT9GlTtL7qmgzf1oOVp0gG3cNTbAuk=
|
||||
=4zcr
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.1.5
|
||||
|
||||
+ Added Releasename to installing messages and download size message.
|
||||
= Mulitple bugfixes.
|
||||
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDums0ACgkQx/Rql1Vo
|
||||
czc+PRAAmKSXHjNqO6JXpUKIQczrs3q15yZztgmOQMULNUImis3+/ykOxsMJit1A
|
||||
W6ORtj3i2VH0TDBx/hhRghMPo+dNilyKnCWm928mXc3taMOEOKu+Dz8WfhnuNp0A
|
||||
ENmV5fKfuChqrn/6jkUY8UG12NM0eu3A+7fH6LvRADxRxESVH81JUtcf4bSAlier
|
||||
JuL/q67nv8mThFS3tRtjjvmu0nQMCUcvagfwRNFOUW0aob7NBAp6wxTsbxZo0yEq
|
||||
oVOxyTAOR84IGHpWeDKDyMw+AySMnHQXl9Ty385zg4eHZr/l1uQcK61uNfiqVCK+
|
||||
Pag6I1+vLs/3Z3v6qD84iUnis/RV2lqiZcenNeTHQgBKzSsxegB5t0WaID7qlnec
|
||||
655QnEUbLbIxENS7HodMR1+CzWKgmmYpIH9jV+vH0+mTaKnAYmW56q/ae8OmjXqw
|
||||
6NXSfog3Dv7U8Imq21Q8glxt/CXh1fY0I8JLxpMjbwEDm56fvvzdRAeE3TeXJR0y
|
||||
CD9HbH/G8oH/OhLaj1UR5y9FR3PLIBhHmnl9VHtxcvv/nrHMQHbM9bAjPUpNdnSg
|
||||
30yZxPw/eqv8KLhGxxc+cBnXv3p5bNf2j27gY1Q8XbgcL8PAM6NlVBN/9oaDQ5cL
|
||||
r5Cc4d5r9F+Q+QrhpZlw3jshHdoVKqgc4ut6xBAWulztNWNvLok=
|
||||
=tySN
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.1.3.2
|
||||
|
||||
+ Added checkbox to enable Enter to Download+Install.
|
||||
= Fixed crash that occurred when user held down up arrow or down arrow on gamelist.
|
||||
= Fixed all issues with Install.txt path.
|
||||
= Clicking out of search box now closes it.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDsFZ8ACgkQx/Rql1Vo
|
||||
czcwJg/+PFiXfh6PPZNIRf2Zeht7WN8oxuUFV907KnD5+gKD0rzNd1NzgrcPOgAh
|
||||
/oJakvY6ryLyaopJFZ8bm7++tQ3w6mbnzPaGweNoOF7/oLDb9NKVlK5/VjA3JPPN
|
||||
QtOebRgBsigoRGGTq0s7ZRZV99vtSm2R1+1z9qlEu5Fm2hEiIggLvSBdGWDhbGnZ
|
||||
jnvAZixeYgR+R6x4MZTsDao+qIYMio7heiVdN03gQ4hAaPbZ/I6s3cS+K33k02Nz
|
||||
IEATqkwoLOevmN/D773A0cMzh/ZQWs557E3aKtwB+EHo/0ucCk0WaMSt4WdH8Qqe
|
||||
WWF6+UT8FEEN2M76SQrg80xBj3QxzfIi92c231rVvtHMiVn5qUhTrDYb2wqx7J99
|
||||
cJeMgANBmWSBZRBNW7jwhAxUVXE9vE8eqBza9MarXbJaLtq3Mf0ECLWvFPllA8dU
|
||||
lnBcdSuTESvZkBAokkCwEJOb7sootBpEz5BZtE268mZEfsHUGWo3/VZDrJ7lLXJW
|
||||
mEE2aCcHpNWysa9CsSee/QWNgLH2v+9PM3r/1SJyQ23C2hwyQI+F2lkch8Ar5Qfn
|
||||
YxMWnhAcYXTRtcxY0s7xuhpUr/TGc6m9QY6NeVYMvb3g1gbmGOyyN/MELNOkEF/l
|
||||
FXnrY4AfaNTs6EL6/id/viGcHc1MnnjgzlTNg5rgoxtFrHdVwP4=
|
||||
=o0TQ
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
2.1.3.1
|
||||
|
||||
= Fixed issue where if using Quick Search and game was near bottom of list it wouldn't be selected.
|
||||
+ Added hidden CTRL+P shortcut that copies the packagename of selected game to clipboard (for ease of finding OBB/Save folders or adding images for games).
|
||||
|
||||
2.1.3
|
||||
+ Added Quicksearch
|
||||
+ Added shortcut (CTRL+F) to open Quicksearch
|
||||
+ Crashlog window can now open folder directory with crashlog if user selects NO.
|
||||
+ Get APK from device will now open folder where APK is extracted automatically after extraction.
|
||||
+ Added timestamps to Dialogbox
|
||||
+ Added pictures for all current titles.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDp024ACgkQx/Rql1Vo
|
||||
czcYvA/9EqVDtGRprPp2q/K+NPTPmMPmtsoiRNU/LEDmkwiEOCcRoPNwnLbRFz7S
|
||||
uoM7Trh05aquLgadTVQmoPLZriJPYwUUT5KBJBso1UT5fVyJ5bkfh6+MBQqxOx2j
|
||||
YDyqFHdPVQL6QqMQig/XEoyJIWaqHPD60DR0I63E5GOK88cbxPBD94KEQDNhXvcO
|
||||
mcJXwr9TmyEqOT5IgsoIfOwMQotB+MnrMO7bSFitpl8sAcxSMpoURz/KOAdR8+f8
|
||||
K+OwUTNzuI01C+WRNa9xOhxSp7rRhYoPoNZgxR1/3NOMtNeSU4dEPOk7n/hpEnDS
|
||||
MM8DtXIZJ0o26Oo+uL60a61zxUZ1P1w8ks/IGEG3nzqc5b1Fh0LilgBzUtwh1eEs
|
||||
g9LcXKALwStJbfYFTzpjhKDQfUlGFRZUSE52BFCcZ4MlgIjbR5buVF4l+QfnR6BW
|
||||
PGW50NoTsA/U+Yqxg5xRXRkyKc9+wBFJj3r4dISNJj8psqzbtKgvodjJbMqKmJjL
|
||||
ZE0lWp2bx/DP19IZjn5FVRzBSqYfBmilyLRx53syNmpDQQ1l2v1YdgXLxcbeL4JO
|
||||
f2nfjyMTM2BrEztpevNb2s4oKm5zYjUCNxmJy1PUCt0RBMNCBKPVRa9KEE/se5UU
|
||||
ZDbqfFJx1oqL1vcLH9CNTIhiA2Ar2SJEtBzB0GutoYkIdGo8dJY=
|
||||
=dYs/
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.1.2
|
||||
|
||||
+ Added quick search (ctrl+f or click magnifying glass), Automatically selects whatever game it finds, user can press ENTER to start DL+Install
|
||||
= Fixed massive issues caused by accidental branch merge.
|
||||
= UI Improvements
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDpZykACgkQx/Rql1Vo
|
||||
czckmxAAl1my1ZUALewOuh1JQbDQhdSDrtRDo9Bx2z9u6FXfp4BKC3w7O8p6B+cT
|
||||
wcWruppIiC2MkN11Ls8i7OjE3f6xYnRo8E8FDH5UMcful/SFJ3XjD9CMf+2e1Mxu
|
||||
VYVGXWRltYdklGy4IOWfvRXbaYUYYlznVUz1lDxsp8w4h4Csz5IiLKWlivsFoPSl
|
||||
tQgcDC1FPKxH0HwSxxBLsygqNFi5GXawF85SyRMB3EpWySWrkYKjMfxub965f2by
|
||||
zP3mn5HigPgS26tOq1u9zVC7TktwJotoPxjgarsBm0IMXggMFZZ2xuCanMXoZ1xK
|
||||
gEw/Ni6tlM8N/CkpZJuQnPajIOHa7TYWOP8cQM38VPmS3cT0ifmqqGpTKMUYEJ8W
|
||||
Hx/QhABpUnhNeIUIAHj0q9BX0zOdebne831SWO8aMUE1+xw0n6ljuVwam/AyiOtJ
|
||||
1uCL+axDpWN8TncOqvoPIrFFSS4Ya8Ml5DQzs7/qI7EXM4lK3/m34Vhekh/ctnY7
|
||||
HAa+io1phPyBb89zgdjfODFVyoadS5pokBs0VUIV78NlZjMx8Dsfh95tVuAhZHYr
|
||||
1smOeqAVZhDsUR5R2hNRH7z1LfY7YKKF+XAFT+XeecG/qK0CuRnrYdrBh8zHmkhV
|
||||
U2ZH6JayNiZ9Eq2QgTYY8M9bo9J+CK2hCTFoXozk8a+eHD1aqk4=
|
||||
=Pdkb
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.1.1
|
||||
|
||||
+ Added optional Wake on Wifi setting so Wireless ADB will still connect as long as device is not powered off or dead.
|
||||
+ RSL will now automatically choose any Oculus device over devices made by other manufacturers if more than one ADB device is present.
|
||||
= Fixed Download+Install QUSettings application if QUSettings are set.
|
||||
= Fixed Pull APK from device.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDjcnQACgkQx/Rql1Vo
|
||||
czchqg//WStjc1ANHJK1P06ormJ4ArZFA70UkL0Xd7QUcwJhEiR2/uIIHpOCeCdZ
|
||||
ymf6fvsqcyMkAMMq2YA1sNd5fPTFgcaqWZhkir+TywPBfrpcMJYP2lcJGXuhcmjm
|
||||
GJo4uymOjci9SBrjb7o8Z5q3cxInRPLfgksgRVN+b3Y965yqETm0OcSXBrCuDyXV
|
||||
SqgAJzAFNqElE91LRtz3BqOJ8eNXmEbmC9iSFnllwC9fSYwDefNkIRAVfmD5inqs
|
||||
acSW/6URwF4xnF578mnHfdhKlhROqt7XJ/dqIrrh1o0/kV7VbOR4J7rq8vD1nHrZ
|
||||
uOAZ+zBKnk37Px61F4XWtUmX0MDHoTuJChAZqKzdZkIUy9Dq/l5asMFufGaGLrHa
|
||||
OGjuXNQOTGzSKzp6SNsrU+BkBAJDW4NBWrgacC9PqgE+uZSgedreDZb86UWtZ6ZA
|
||||
MR7MFiqaKBGx0GMfbO/JWu/REa9GkdCghwbSKrnPCIK2wsY7zECFflmIaf/BQWzw
|
||||
p6hicDZc5053Cu+ZHPy8AiKbv+3FB5AWiujYbl/QkBifoEL03tHepCREAHMD6MBn
|
||||
OqgnRU2gwtqke2FSnThyx1qgnnXLLi2M4we171DreBziF9DE23W/hcE+RU3WtucR
|
||||
QflQ1p4c5o1q8B2QDkDSjcsCfCXRnfQ52YRv0N7cdKZ9M56GAF0=
|
||||
=KqGL
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
Update RSL2.1HF5
|
||||
|
||||
Fixed ADB path for usernames containing spaces. ADB now located at c:\RSL\VersionNumber\ADB
|
||||
|
||||
- -HarryEffingPotter-
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDdNvsACgkQx/Rql1Vo
|
||||
czdIWQ/+OvvchZOuwMZJvd6d/N4WmBUPKm3TzyiF5JM/STLEbLIHB1p6LQg+6J3K
|
||||
3d9x3mQmu/gMHMumsfmuOuHHI7OOs9CLOVY2UFm7CqTnDf7iCxl8+6/iQw48yfj9
|
||||
63qwUKZdLueRX9IqtcV2MwZJP7eKdZmtv6ALyRbjWmo2fgbm/Fs1U+TfGnlY7qLg
|
||||
wIascv5DuKRyHvRzlgdn6OqmewWTxHDOTwCTjodROIK9guCELNYhEWv/TtgMldv9
|
||||
gz1Lr8KZOcxNltpvstJgdbeFy61LK67su0rKZHsGMu4x0hDe4YOyjyMDtXrVJ0VH
|
||||
SJBqDgSKD3HE/MNYkCWusqs7np2XKXC8hP6nm2QO9zM44d+UWDfrJbwvvw6QUoez
|
||||
Iqk/PskC3sF7kWAv4O+LRmLDlrHD2RG5TkkE4ohiIi4D4VaNEx4QyVf6INN+A9xd
|
||||
IxcvXC9QkFwffUD93cThEdLNRnrnzZSsUFMRh3XrvPbq2wfvWjqZX1EGfD7ug0Mf
|
||||
r9uPX4RdILvsXeybefiiwLiw3UNMJtUlaKDvqIit5S78BIP6DY+dGnMMRIQJa1vd
|
||||
XBPnIHyifzvl1nyYd6TWCFRuOzZLYirv4Ug6xS1/KzyURXIz2P0EEhDURJAR/q+M
|
||||
ZmqSO2eQo64B7Dfa9oRLKkZRfhWFgtYA9QKm9ei7tOPbnJ+2718=
|
||||
=o5Nr
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.1HF4
|
||||
|
||||
= Moved ADB files to AppData\Roaming\RSL to fix compatibility issues across the board.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDa9rQACgkQx/Rql1Vo
|
||||
czeiYQ//X6e3DD51Kgta/omu0fVtPM4lxt+P/H5ij1xbNPmoaL7w+QvNeFqVLPs0
|
||||
T8btbEkDT7pisOHQtHFKENs4G0Sck0RkI0jVNu1lYIT67tmTYyFGP4jOxopktmNE
|
||||
uydmI8g+8UkuTPYIKpkYJUOrWT1u4IV0SoBsdERYU7qRZmvCqWgwqdcs4R6wAdm0
|
||||
FNqWRbUo/LhFw1rQicny4vL7w6rf7PvAksWifqbl1KfBFAchf4cZ3+YKeyO4V2Ym
|
||||
7LcNgVGaSuPCr5dKmVr31B0kU0XrV8KPpKwgoIOym8eH8PNuaj3elwbndqYZ95fB
|
||||
xNFluF9z9qejiIkYM9UDSoeNEfeJaUwIfgb1WI4w+BdlTWaYZfsG+DF+VOBvSU/h
|
||||
YP1ucGrqCu2lLxcIS5ffNd7dTjS22D2x2rErqXGl+ETgqgVHK9NU9Bd02VVyP171
|
||||
Ryq/JRd9tvFknAG6YViVADJDzKdnuwFYeo/T5wgt8P7GtzVZWmZbur6crXK454IH
|
||||
TkyLn9XFbJneGPxjLNm4VwCR0XWFmhAsE+CfRz52hL18RAxyeohWq7RBTt+d49t9
|
||||
eOhTTzOHoWgroOVTV793r+FLdc4nYDhLXRm6I65qhvQhEPCqZDIA1xuvzPbSectb
|
||||
VNNRuPmhxDgtevFFsU/sX8xOv8pKi6naW8N6jobXPavwegABCEg=
|
||||
=61BS
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.1HF3
|
||||
|
||||
= Fixed QUSettings not working issue.(unused fields in QUSettings MUST have 0's in them or it will not work, reset/clear all fields button now reflect this.)
|
||||
= Fixed Uninstall auto-save-backup
|
||||
= Fixed Install.txt automation messages.
|
||||
@@ -547,7 +923,12 @@ DFKYJpBgATHdRTwt7/zZwJCBq0ONheA/6+6VYj8x8Q5rqbiDDdc=
|
||||
+ 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
|
||||
- Launch package name button and
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1.5
|
||||
+ Added ETA, based on CURRENT DOWNLOAD SPEED NOT DELTA OF IT
|
||||
|
||||
Reference in New Issue
Block a user