Compare commits
87 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ed7034284 | ||
|
|
98dc7f4738 | ||
|
|
12efbac58a | ||
|
|
00cfc35102 | ||
|
|
31d352a79e | ||
|
|
753e1620ed | ||
|
|
597caad073 | ||
|
|
5b04c0feeb | ||
|
|
0d0ce30e65 | ||
|
|
5117435c8a | ||
|
|
383e721f4b | ||
|
|
1aaa19a969 | ||
|
|
770df54403 | ||
|
|
3e67b331ef | ||
|
|
26442e9516 | ||
|
|
3cd715afd9 | ||
|
|
0ecdaab240 | ||
|
|
801ec1a874 | ||
|
|
ebf0f9372b | ||
|
|
06c534dc50 | ||
|
|
04289885c2 | ||
|
|
8e7b9490de | ||
|
|
cec1ff48fd | ||
|
|
85fad7d3ad | ||
|
|
028c44ba64 | ||
|
|
7923adb4fb | ||
|
|
4b9d00a042 | ||
|
|
0df0384f96 | ||
|
|
418a5ebc33 | ||
|
|
43e2343676 | ||
|
|
5402dadbd9 | ||
|
|
8e3faf4682 | ||
|
|
26db46e844 | ||
|
|
88bbbb2ced | ||
|
|
d02505b172 | ||
|
|
cbd54f7319 | ||
|
|
258c251567 | ||
|
|
1f851470e0 | ||
|
|
0070e44917 | ||
|
|
596e126d2b | ||
|
|
5a6ccf423a | ||
|
|
efadb70d72 | ||
|
|
b1595931c4 | ||
|
|
1e3a9a5a84 | ||
|
|
e0e9a68cb9 | ||
|
|
19c90f0ad4 | ||
|
|
bcc7499807 | ||
|
|
0716ca27c4 | ||
|
|
652d7cb290 | ||
|
|
919286f85c | ||
|
|
3be98530b6 | ||
|
|
b4e21a9d5b | ||
|
|
6d3885dc48 | ||
|
|
8aff424ccc | ||
|
|
f50ebdd28c | ||
|
|
5608565275 | ||
|
|
9f783b3b1a | ||
|
|
02156985aa | ||
|
|
a81cb1e496 | ||
|
|
688bf0a274 | ||
|
|
5d84133c3e | ||
|
|
8e9e5cfb88 | ||
|
|
3d19cab51c | ||
|
|
e8a3f5e34e | ||
|
|
e1ed9af1d7 | ||
|
|
d154d67c57 | ||
|
|
fb9d4ab0d3 | ||
|
|
2f34ac8848 | ||
|
|
9e352c3144 | ||
|
|
b07e6bc12c | ||
|
|
f8ee9b493a | ||
|
|
d66e6f55d3 | ||
|
|
25358d3a6d | ||
|
|
8088c2cf11 | ||
|
|
3b684142e9 | ||
|
|
e0945a71ac | ||
|
|
a63b8b2a5c | ||
|
|
69dfd9ca00 | ||
|
|
ebacfc0e42 | ||
|
|
9a3e9617b5 | ||
|
|
20607bf3b4 | ||
|
|
063b0d05d5 | ||
|
|
306e2eb19b | ||
|
|
119a95406e | ||
|
|
2bd4bda513 | ||
|
|
4126c82f4d | ||
|
|
d35fed0217 |
279
ADB.cs
279
ADB.cs
@@ -2,7 +2,9 @@
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace AndroidSideloader
|
||||
@@ -12,7 +14,7 @@ namespace AndroidSideloader
|
||||
class ADB
|
||||
{
|
||||
static Process adb = new Process();
|
||||
public static string adbFolderPath = "C:\\RSL\\2.1.1\\ADB";
|
||||
public static string adbFolderPath = "C:\\RSL\\2.8.2\\ADB";
|
||||
public static string adbFilePath = adbFolderPath + "\\adb.exe";
|
||||
public static string DeviceID = "";
|
||||
public static string package = "";
|
||||
@@ -21,13 +23,19 @@ namespace AndroidSideloader
|
||||
Properties.Settings.Default.ADBFolder = adbFolderPath;
|
||||
Properties.Settings.Default.ADBPath = adbFilePath;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
if (DeviceID.Length > 1)
|
||||
{
|
||||
command = $" -s {DeviceID} {command}";
|
||||
{
|
||||
command = $" -s {DeviceID} {command}";
|
||||
}
|
||||
if (!command.Contains("dumpsys") && !command.Contains("shell pm list packages") && !command.Contains("KEYCODE_WAKEUP"))
|
||||
{
|
||||
|
||||
string logcmd = command;
|
||||
|
||||
if (logcmd.Contains(Environment.CurrentDirectory))
|
||||
logcmd = logcmd.Replace($"{Environment.CurrentDirectory}", $"CurrentDirectory");
|
||||
Logger.Log($"Running command: {logcmd}");
|
||||
}
|
||||
if (!command.Contains("dumpsys") && !command.Contains("shell pm list packages"))
|
||||
Logger.Log($"Running command {command}");
|
||||
adb.StartInfo.FileName = adbFilePath;
|
||||
adb.StartInfo.Arguments = command;
|
||||
adb.StartInfo.RedirectStandardError = true;
|
||||
@@ -59,18 +67,24 @@ namespace AndroidSideloader
|
||||
}
|
||||
}
|
||||
else
|
||||
adb.WaitForExit();
|
||||
if (error.Contains("ADB_VENDOR_KEYS"))
|
||||
adb.WaitForExit();
|
||||
if (error.Contains("ADB_VENDOR_KEYS") && !Properties.Settings.Default.adbdebugwarned)
|
||||
{
|
||||
MessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.");
|
||||
ADB.WakeDevice();
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.\nPlease note that even if you have done this\nbefore it will reset itself from time to time.\n\nPress CANCEL if you want to disable this prompt (FOR DEBUGGING ONLY, NOT RECOMMENDED).", "ADB Debugging not enabled.", MessageBoxButtons.OKCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
Properties.Settings.Default.adbdebugwarned = true;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
else
|
||||
ADB.WakeDevice();
|
||||
}
|
||||
if (error.Contains("not enough storage space"))
|
||||
{
|
||||
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.");
|
||||
FlexibleMessageBox.Show("There is not enough room on your device to install this package. Please clear AT LEAST 2x the amount of the app you are trying to install.");
|
||||
}
|
||||
if (!output.Contains("version"))
|
||||
Logger.Log(output);
|
||||
if (!output.Contains("version") && !output.Contains("KEYCODE_WAKEUP") && !output.Contains("Filesystem") && !output.Contains("package:") && !output.Equals(null))
|
||||
Logger.Log(output);
|
||||
Logger.Log(error);
|
||||
return new ProcessOutput(output, error);
|
||||
}
|
||||
@@ -80,11 +94,12 @@ namespace AndroidSideloader
|
||||
Properties.Settings.Default.ADBFolder = adbFolderPath;
|
||||
Properties.Settings.Default.ADBPath = adbFilePath;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
|
||||
string logcmd = command;
|
||||
if (logcmd.Contains(Environment.CurrentDirectory))
|
||||
logcmd = logcmd.Replace($"{Environment.CurrentDirectory}", $"CurrentDirectory");
|
||||
Logger.Log($"Running command: {logcmd}");
|
||||
|
||||
|
||||
Logger.Log($"Running command {command}");
|
||||
adb.StartInfo.FileName = "cmd.exe";
|
||||
adb.StartInfo.RedirectStandardError = true;
|
||||
adb.StartInfo.RedirectStandardInput = true;
|
||||
@@ -109,32 +124,52 @@ namespace AndroidSideloader
|
||||
catch { }
|
||||
if (command.Contains("connect"))
|
||||
{
|
||||
bool graceful = adb.WaitForExit(3000);
|
||||
bool graceful = adb.WaitForExit(3000);
|
||||
if (!graceful)
|
||||
{
|
||||
adb.Kill();
|
||||
}
|
||||
else
|
||||
adb.WaitForExit();
|
||||
}
|
||||
else
|
||||
adb.WaitForExit();
|
||||
if (error.Contains("ADB_VENDOR_KEYS"))
|
||||
else if (command.Contains("install"))
|
||||
{
|
||||
MessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.");
|
||||
ADB.WakeDevice();
|
||||
bool graceful = adb.WaitForExit(120000);
|
||||
if (!graceful)
|
||||
{
|
||||
adb.Kill();
|
||||
}
|
||||
else
|
||||
adb.WaitForExit();
|
||||
}
|
||||
|
||||
if (error.Contains("ADB_VENDOR_KEYS") && Properties.Settings.Default.adbdebugwarned)
|
||||
{
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.\nPlease note that even if you have done this\nbefore it will reset itself from time to time.\n\nPress CANCEL if you want to disable this prompt (FOR DEBUGGING ONLY, NOT RECOMMENDED).", "ADB Debugging not enabled.", MessageBoxButtons.OKCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
Properties.Settings.Default.adbdebugwarned = true;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
else
|
||||
ADB.WakeDevice();
|
||||
}
|
||||
Logger.Log(output);
|
||||
Logger.Log(error);
|
||||
return new ProcessOutput(output, error);
|
||||
}
|
||||
public static ProcessOutput RunCommandToString(string result, string path)
|
||||
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();
|
||||
|
||||
Logger.Log($"Running command {command}");
|
||||
adb.StartInfo.FileName = @"C:\windows\system32\cmd.exe";
|
||||
string logcmd = command;
|
||||
if (logcmd.Contains(Environment.CurrentDirectory))
|
||||
logcmd = logcmd.Replace($"{Environment.CurrentDirectory}", $"CurrentDirectory");
|
||||
Logger.Log($"Running command: {logcmd}");
|
||||
adb.StartInfo.FileName = @"C:\Windows\System32\cmd.exe";
|
||||
adb.StartInfo.Arguments = command;
|
||||
adb.StartInfo.RedirectStandardError = true;
|
||||
adb.StartInfo.RedirectStandardInput = true;
|
||||
@@ -167,9 +202,16 @@ namespace AndroidSideloader
|
||||
}
|
||||
else
|
||||
adb.WaitForExit();
|
||||
if (error.Contains("ADB_VENDOR_KEYS"))
|
||||
|
||||
if (error.Contains("ADB_VENDOR_KEYS") && Properties.Settings.Default.adbdebugwarned)
|
||||
{
|
||||
MessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.");
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.\nPlease note that even if you have done this\nbefore it will reset itself from time to time.\n\nPress CANCEL if you want to disable this prompt (FOR DEBUGGING ONLY, NOT RECOMMENDED).", "ADB Debugging not enabled.", MessageBoxButtons.OKCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
Properties.Settings.Default.adbdebugwarned = true;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
else
|
||||
ADB.WakeDevice();
|
||||
}
|
||||
Logger.Log(output);
|
||||
@@ -182,7 +224,6 @@ namespace AndroidSideloader
|
||||
{
|
||||
WakeDevice();
|
||||
ProcessOutput output = new ProcessOutput("", "");
|
||||
output += RunAdbCommandToString($"shell pm uninstall -k --user 0 {package}");
|
||||
output += RunAdbCommandToString($"shell pm uninstall {package}");
|
||||
return output;
|
||||
}
|
||||
@@ -232,97 +273,98 @@ namespace AndroidSideloader
|
||||
return $"Total space: {String.Format("{0:0.00}", (double)totalSize / 1000)}GB\nUsed space: {String.Format("{0:0.00}", (double)usedSize / 1000)}GB\nFree space: {String.Format("{0:0.00}", (double)freeSize / 1000)}GB";
|
||||
}
|
||||
|
||||
public static bool wirelessadbON;
|
||||
|
||||
public static void WakeDevice()
|
||||
{
|
||||
string devicesout = RunAdbCommandToString("shell input keyevent KEYCODE_WAKEUP").Output;
|
||||
if (!devicesout.Contains("found"))
|
||||
if (!devicesout.Contains("found") && !Properties.Settings.Default.nodevicemode)
|
||||
{
|
||||
if (Properties.Settings.Default.IPAddress.Contains("connect"))
|
||||
if (wirelessadbON || !String.IsNullOrEmpty(Properties.Settings.Default.IPAddress))
|
||||
{
|
||||
|
||||
RunAdbCommandToString(Properties.Settings.Default.IPAddress);
|
||||
string response = RunAdbCommandToString(Properties.Settings.Default.IPAddress).Output;
|
||||
|
||||
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)
|
||||
if (response.Contains("cannot") || String.IsNullOrEmpty(response))
|
||||
{
|
||||
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)
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show("RSL can't connect to your Quest IP, this is usually because you have rebooted your Quest or the Quest IP has changed. Set a static IP to prevent this in the future(recommended)!\n\n\nYES = Static IP is set, do not detect my IP again.\nNO = I have not set a static IP, detect my IP again.\nCANCEL = I want to disable Wireless ADB.", "DEVICE REBOOTED/IP HAS CHANGED!", MessageBoxButtons.YesNoCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
wirelessadbON = false;
|
||||
Properties.Settings.Default.IPAddress = "";
|
||||
Properties.Settings.Default.Save();
|
||||
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)
|
||||
else 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! 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);
|
||||
FlexibleMessageBox.Show("Connect your Quest to USB so we can reconnect to your saved IP address!");
|
||||
RunAdbCommandToString("devices");
|
||||
Thread.Sleep(250);
|
||||
RunAdbCommandToString("disconnect");
|
||||
Thread.Sleep(50);
|
||||
RunAdbCommandToString("connect");
|
||||
Thread.Sleep(50);
|
||||
RunAdbCommandToString("tcpip 5555");
|
||||
Thread.Sleep(500);
|
||||
RunAdbCommandToString(Properties.Settings.Default.IPAddress);
|
||||
MessageBox.Show($"Connected! We can now automatically enable wake on wifi.\n(This makes it so Rookie can work wirelessly even if the device has entered \"sleep mode\" at extremely little battery cost (~1% per full charge))", "Enable Wake on Wifi?", MessageBoxButtons.YesNo);
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
|
||||
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_available 1");
|
||||
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_enabled 1");
|
||||
RunAdbCommandToString("shell settings put global wifi_wakeup_available 1");
|
||||
RunAdbCommandToString("shell settings put global wifi_wakeup_enabled 1");
|
||||
Program.form.ChangeTitlebarToDevice();
|
||||
return;
|
||||
}
|
||||
if (dialogResult == DialogResult.No)
|
||||
{
|
||||
|
||||
Program.form.ChangeTitlebarToDevice();
|
||||
return;
|
||||
}
|
||||
Program.form.ChangeTitlebarToDevice();
|
||||
}
|
||||
else if (dialogResult == DialogResult.No)
|
||||
{
|
||||
FlexibleMessageBox.Show("You must repeat the entire connection process, press OK to begin.", "Reconfigure Wireless ADB", MessageBoxButtons.OK);
|
||||
RunAdbCommandToString("devices");
|
||||
RunAdbCommandToString("tcpip 5555");
|
||||
FlexibleMessageBox.Show("Press OK to get your Quest's local IP address.", "Obtain local IP address", MessageBoxButtons.OK);
|
||||
Thread.Sleep(1000);
|
||||
string input = RunAdbCommandToString("shell ip route").Output;
|
||||
|
||||
Properties.Settings.Default.WirelessADB = true;
|
||||
Properties.Settings.Default.Save();
|
||||
string[] strArrayOne = new string[] { "" };
|
||||
strArrayOne = input.Split(' ');
|
||||
if (strArrayOne[0].Length > 7)
|
||||
{
|
||||
string IPaddr = strArrayOne[8];
|
||||
string IPcmnd = "connect " + IPaddr + ":5555";
|
||||
FlexibleMessageBox.Show($"Your Quest's local IP address is: {IPaddr}\n\nPlease disconnect your Quest then wait 2 seconds.\nOnce it is disconnected hit OK", "", MessageBoxButtons.OK);
|
||||
Thread.Sleep(2000);
|
||||
ADB.RunAdbCommandToString(IPcmnd);
|
||||
Properties.Settings.Default.IPAddress = IPcmnd;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
MessageBox.Show($"Connected! We can now automatically enable wake on wifi.\n(This makes it so Rookie can work wirelessly even if the device has entered \"sleep mode\" at extremely little battery cost (~1% per full charge))", "Enable Wake on Wifi?", MessageBoxButtons.YesNo);
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
|
||||
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_available 1");
|
||||
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_enabled 1");
|
||||
Program.form.ChangeTitlebarToDevice();
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -331,41 +373,41 @@ namespace AndroidSideloader
|
||||
|
||||
WakeDevice();
|
||||
ProcessOutput ret = new ProcessOutput();
|
||||
Program.form.ChangeTitle($"Sideloading {Path.GetFileName(path)}");
|
||||
ret += RunAdbCommandToString($"install -g -r \"{path}\"");
|
||||
string out2 = ret.Output + ret.Error;
|
||||
if (out2.Contains("failed"))
|
||||
{
|
||||
string BackupFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), $"Rookie Backups");
|
||||
if (out2.Contains("offline"))
|
||||
Logger.Log(out2);
|
||||
if (out2.Contains("offline") && !Properties.Settings.Default.nodevicemode)
|
||||
{
|
||||
DialogResult dialogResult2 = MessageBox.Show("Device is offline. Press Yes to reconnect, or if you don't wish to connect and just want to download the game (requires unchecking \"Delete games after install\" from settings menu) then press No.", "Device offline.", MessageBoxButtons.YesNoCancel);
|
||||
DialogResult dialogResult2 = FlexibleMessageBox.Show("Device is offline. Press Yes to reconnect, or if you don't wish to connect and just want to download the game (requires unchecking \"Delete games after install\" from settings menu) then press No.", "Device offline.", MessageBoxButtons.YesNoCancel);
|
||||
if (dialogResult2 == DialogResult.Yes)
|
||||
ADB.WakeDevice();
|
||||
}
|
||||
if (out2.Contains($"INSTALL_FAILED_UPDATE_INCOMPATIBLE") || out2.Contains("INSTALL_FAILED_VERSION_DOWNGRADE"))
|
||||
if (out2.Contains($"INSTALL_FAILED_UPDATE_INCOMPATIBLE") || out2.Contains("INSTALL_FAILED_VERSION_DOWNGRADE") || out2.Contains("signatures do not match") || out2.Contains("failed to install"))
|
||||
{
|
||||
ret.Error = string.Empty;
|
||||
ret.Output = string.Empty;
|
||||
|
||||
|
||||
MessageBox.Show($"In place upgrade for {packagename} failed. We will need to upgrade by uninstalling, and keeping savedata isn't guaranteed. Continue?", "UPGRADE FAILED!", MessageBoxButtons.OKCancel);
|
||||
FlexibleMessageBox.Show($"In place upgrade for {packagename} failed. We will need to upgrade by uninstalling, and keeping savedata isn't guaranteed. Continue?", "UPGRADE FAILED!", MessageBoxButtons.OKCancel);
|
||||
|
||||
string date_str = DateTime.Today.ToString("yyyy.MM.dd");
|
||||
string CurrBackups = Path.Combine(BackupFolder, date_str);
|
||||
|
||||
|
||||
MessageBox.Show($"Searching for save files...", "Searching!", MessageBoxButtons.OK);
|
||||
FlexibleMessageBox.Show($"Searching for save files...", "Searching!", MessageBoxButtons.OK);
|
||||
if (Directory.Exists($"/sdcard/Android/data/{packagename}"))
|
||||
{
|
||||
MessageBox.Show($"Trying to backup save to Documents\\Rookie Backups\\{date_str}(YYYY.MM.DD)\\{packagename}", "Save files found", MessageBoxButtons.OK);
|
||||
FlexibleMessageBox.Show($"Trying to backup save to Documents\\Rookie Backups\\{date_str}(YYYY.MM.DD)\\{packagename}", "Save files found", MessageBoxButtons.OK);
|
||||
Directory.CreateDirectory(CurrBackups);
|
||||
ADB.RunAdbCommandToString($"pull \"/sdcard/Android/data/{packagename}\" \"{CurrBackups}\"");
|
||||
}
|
||||
else
|
||||
{
|
||||
DialogResult dialogResult = MessageBox.Show($"No savedata found! Continue with the uninstall!", "None Found", MessageBoxButtons.OK);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show($"No savedata found! Continue with the uninstall!", "None Found", MessageBoxButtons.OK);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
@@ -377,12 +419,15 @@ namespace AndroidSideloader
|
||||
}
|
||||
ret += RunAdbCommandToString($"install -g -r \"{path}\"");
|
||||
}
|
||||
if (File.Exists($"{Properties.Settings.Default.MainDir}\\Config.Json"))
|
||||
string gamenameforQU = Sideloader.PackageNametoGameName(packagename);
|
||||
if (Properties.Settings.Default.QUturnedon)
|
||||
{
|
||||
string gameName = packagename;
|
||||
packagename = Sideloader.gameNameToPackageName(gameName);
|
||||
if (gamenameforQU.Contains("-QU") || path.Contains("-QU"))
|
||||
{
|
||||
string gameName = packagename;
|
||||
packagename = Sideloader.gameNameToPackageName(gameName);
|
||||
|
||||
Program.form.ChangeTitle("Pushing Custom QU S3 Config.JSON.");
|
||||
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"))
|
||||
@@ -407,17 +452,23 @@ namespace AndroidSideloader
|
||||
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 (path.Contains(".") && !path.Contains("_data"))
|
||||
return RunAdbCommandToString($"push \"{path}\" /sdcard/Android/obb");
|
||||
|
||||
string folder = Path.GetFileName(path);
|
||||
if (!folder.Contains("+") && !folder.Contains("_") && folder.Contains("."))
|
||||
{
|
||||
return RunAdbCommandToString($"push \"{path}\" \"/sdcard/Android/obb\"");
|
||||
}
|
||||
return new ProcessOutput();
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -15,6 +15,7 @@
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
@@ -27,7 +28,6 @@
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
@@ -146,6 +146,7 @@
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
@@ -210,6 +211,7 @@
|
||||
<Compile Include="SelectFolder.cs" />
|
||||
<Compile Include="Utilities\StringUtilities.cs" />
|
||||
<Compile Include="Utilities\GeneralUtilities.cs" />
|
||||
<Compile Include="Utilities\UploadGame.cs" />
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -260,6 +262,13 @@
|
||||
<ItemGroup>
|
||||
<Content Include="changelog.txt" />
|
||||
<Content Include="icon.ico" />
|
||||
<Content Include="ChangelogHistory.txt" />
|
||||
<None Include="Resources\battery11.png" />
|
||||
<None Include="Resources\battery.png" />
|
||||
<None Include="Resources\battery1.png" />
|
||||
<None Include="Resources\ajax-loader.gif" />
|
||||
<Content Include="Resources\bluekey.png" />
|
||||
<Content Include="Resources\redkey.png" />
|
||||
<None Include="Resources\greenkey.png" />
|
||||
<None Include="Resources\orangekey.png" />
|
||||
<None Include="Resources\SearchGlass.PNG" />
|
||||
|
||||
35
App.config
35
App.config
@@ -51,7 +51,7 @@
|
||||
<value>White</value>
|
||||
</setting>
|
||||
<setting name="FontStyle" serializeAs="String">
|
||||
<value>Microsoft Sans Serif, 10pt, style=Bold</value>
|
||||
<value>Microsoft Sans Serif, 11pt</value>
|
||||
</setting>
|
||||
<setting name="BackPicturePath" serializeAs="String">
|
||||
<value />
|
||||
@@ -131,6 +131,39 @@
|
||||
<setting name="DownUpHeld" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="CurrentLogPath" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="CurrentLogName" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="CurrentCrashPath" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="CurrentCrashName" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="QUturnedon" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="QblindOn" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="adbdebugwarned" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="nodevicemode" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="BMBFchecked" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="GamesList" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="UploadedGameList" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
</AndroidSideloader.Properties.Settings>
|
||||
<AndroidADB.Sideloader.Properties.Settings>
|
||||
<setting name="checkForUpdates" serializeAs="String">
|
||||
|
||||
1702
ChangelogHistory.txt
Normal file
1702
ChangelogHistory.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -380,6 +380,7 @@ namespace JR.Utils.GUI.Forms
|
||||
//
|
||||
// FlexibleMessageBoxForm
|
||||
//
|
||||
this.TopMost = true;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(260, 102);
|
||||
|
||||
324
MainForm.Designer.cs
generated
324
MainForm.Designer.cs
generated
@@ -41,6 +41,10 @@
|
||||
this.copyBulkObbButton = new System.Windows.Forms.Button();
|
||||
this.downloadInstallGameButton = new System.Windows.Forms.Button();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.ULLabel = new System.Windows.Forms.Label();
|
||||
this.ULGif = new System.Windows.Forms.PictureBox();
|
||||
this.BatteryLbl = new System.Windows.Forms.Label();
|
||||
this.pictureBox5 = new System.Windows.Forms.PictureBox();
|
||||
this.downloadingLabel = new System.Windows.Forms.Label();
|
||||
this.aboutBtn = new System.Windows.Forms.Button();
|
||||
this.settingsButton = new System.Windows.Forms.Button();
|
||||
@@ -78,28 +82,32 @@
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.pictureBox3 = new System.Windows.Forms.PictureBox();
|
||||
this.pictureBox2 = new System.Windows.Forms.PictureBox();
|
||||
this.gamesPictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.pictureBox4 = new System.Windows.Forms.PictureBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.EnterInstallBox = new System.Windows.Forms.CheckBox();
|
||||
this.ADBcommandbox = new System.Windows.Forms.TextBox();
|
||||
this.label11 = new System.Windows.Forms.Label();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
this.pictureBox4 = new System.Windows.Forms.PictureBox();
|
||||
this.pictureBox3 = new System.Windows.Forms.PictureBox();
|
||||
this.pictureBox2 = new System.Windows.Forms.PictureBox();
|
||||
this.gamesPictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.panel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ULGif)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit();
|
||||
this.otherContainer.SuspendLayout();
|
||||
this.backupContainer.SuspendLayout();
|
||||
this.sideloadContainer.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gamesPictureBox)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// m_combo
|
||||
//
|
||||
this.m_combo.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.m_combo.BackColor = global::AndroidSideloader.Properties.Settings.Default.ComboBoxColor;
|
||||
this.m_combo.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ComboBoxColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.m_combo.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
@@ -109,9 +117,9 @@
|
||||
this.m_combo.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.m_combo.Location = new System.Drawing.Point(227, 8);
|
||||
this.m_combo.Name = "m_combo";
|
||||
this.m_combo.Size = new System.Drawing.Size(353, 24);
|
||||
this.m_combo.Size = new System.Drawing.Size(353, 26);
|
||||
this.m_combo.TabIndex = 0;
|
||||
this.m_combo.Text = "Select an app to uninstall...";
|
||||
this.m_combo.Text = "Select an app to uninstall or extract...";
|
||||
//
|
||||
// startsideloadbutton
|
||||
//
|
||||
@@ -234,7 +242,7 @@
|
||||
this.getApkButton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.getApkButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.getApkButton.TabIndex = 2;
|
||||
this.getApkButton.Text = "Extract Apk from device";
|
||||
this.getApkButton.Text = "Upload Selected App";
|
||||
this.getApkButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.getApkButton.UseVisualStyleBackColor = false;
|
||||
this.getApkButton.Click += new System.EventHandler(this.getApkButton_Click);
|
||||
@@ -287,9 +295,9 @@
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.progressBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.progressBar.ForeColor = System.Drawing.Color.Purple;
|
||||
this.progressBar.Location = new System.Drawing.Point(228, 441);
|
||||
this.progressBar.Location = new System.Drawing.Point(224, 441);
|
||||
this.progressBar.Name = "progressBar";
|
||||
this.progressBar.Size = new System.Drawing.Size(367, 25);
|
||||
this.progressBar.Size = new System.Drawing.Size(371, 25);
|
||||
this.progressBar.TabIndex = 7;
|
||||
//
|
||||
// copyBulkObbButton
|
||||
@@ -326,17 +334,22 @@
|
||||
this.downloadInstallGameButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.downloadInstallGameButton.Location = new System.Drawing.Point(601, 439);
|
||||
this.downloadInstallGameButton.Name = "downloadInstallGameButton";
|
||||
this.downloadInstallGameButton.Size = new System.Drawing.Size(371, 30);
|
||||
this.downloadInstallGameButton.Size = new System.Drawing.Size(369, 30);
|
||||
this.downloadInstallGameButton.TabIndex = 8;
|
||||
this.downloadInstallGameButton.Text = "Download and Install Game/Add to Queue";
|
||||
this.downloadInstallGameButton.UseVisualStyleBackColor = false;
|
||||
this.downloadInstallGameButton.Click += new System.EventHandler(this.downloadInstallGameButton_Click);
|
||||
this.downloadInstallGameButton.Enter += new System.EventHandler(this.downloadInstallGameButton_Click);
|
||||
this.downloadInstallGameButton.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
|
||||
this.downloadInstallGameButton.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.AutoScroll = true;
|
||||
this.panel1.BackColor = global::AndroidSideloader.Properties.Settings.Default.ButtonColor;
|
||||
this.panel1.Controls.Add(this.ULLabel);
|
||||
this.panel1.Controls.Add(this.ULGif);
|
||||
this.panel1.Controls.Add(this.BatteryLbl);
|
||||
this.panel1.Controls.Add(this.pictureBox5);
|
||||
this.panel1.Controls.Add(this.downloadingLabel);
|
||||
this.panel1.Controls.Add(this.aboutBtn);
|
||||
this.panel1.Controls.Add(this.settingsButton);
|
||||
@@ -358,6 +371,53 @@
|
||||
this.panel1.Size = new System.Drawing.Size(218, 721);
|
||||
this.panel1.TabIndex = 73;
|
||||
//
|
||||
// ULLabel
|
||||
//
|
||||
this.ULLabel.AutoSize = true;
|
||||
this.ULLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ULLabel.ForeColor = System.Drawing.Color.Snow;
|
||||
this.ULLabel.Location = new System.Drawing.Point(154, 683);
|
||||
this.ULLabel.Name = "ULLabel";
|
||||
this.ULLabel.Size = new System.Drawing.Size(64, 13);
|
||||
this.ULLabel.TabIndex = 87;
|
||||
this.ULLabel.Text = "Uploading";
|
||||
this.ULLabel.Visible = false;
|
||||
//
|
||||
// ULGif
|
||||
//
|
||||
this.ULGif.Enabled = false;
|
||||
this.ULGif.Image = global::AndroidSideloader.Properties.Resources.ajax_loader;
|
||||
this.ULGif.Location = new System.Drawing.Point(178, 699);
|
||||
this.ULGif.Name = "ULGif";
|
||||
this.ULGif.Size = new System.Drawing.Size(34, 17);
|
||||
this.ULGif.TabIndex = 86;
|
||||
this.ULGif.TabStop = false;
|
||||
this.ULGif.Visible = false;
|
||||
//
|
||||
// BatteryLbl
|
||||
//
|
||||
this.BatteryLbl.AutoSize = true;
|
||||
this.BatteryLbl.BackColor = System.Drawing.Color.Transparent;
|
||||
this.BatteryLbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.BatteryLbl.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.BatteryLbl.Location = new System.Drawing.Point(156, 580);
|
||||
this.BatteryLbl.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.BatteryLbl.Name = "BatteryLbl";
|
||||
this.BatteryLbl.Size = new System.Drawing.Size(47, 17);
|
||||
this.BatteryLbl.TabIndex = 84;
|
||||
this.BatteryLbl.Text = "N/A%";
|
||||
//
|
||||
// pictureBox5
|
||||
//
|
||||
this.pictureBox5.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pictureBox5.Image = global::AndroidSideloader.Properties.Resources.battery11;
|
||||
this.pictureBox5.Location = new System.Drawing.Point(155, 576);
|
||||
this.pictureBox5.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.pictureBox5.Name = "pictureBox5";
|
||||
this.pictureBox5.Size = new System.Drawing.Size(55, 29);
|
||||
this.pictureBox5.TabIndex = 85;
|
||||
this.pictureBox5.TabStop = false;
|
||||
//
|
||||
// downloadingLabel
|
||||
//
|
||||
this.downloadingLabel.AutoSize = true;
|
||||
@@ -704,10 +764,10 @@
|
||||
this.diskLabel.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.diskLabel.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.diskLabel.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.diskLabel.Location = new System.Drawing.Point(2, 638);
|
||||
this.diskLabel.Location = new System.Drawing.Point(7, 622);
|
||||
this.diskLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.diskLabel.Name = "diskLabel";
|
||||
this.diskLabel.Size = new System.Drawing.Size(84, 17);
|
||||
this.diskLabel.Size = new System.Drawing.Size(77, 18);
|
||||
this.diskLabel.TabIndex = 7;
|
||||
this.diskLabel.Text = "Disk Label";
|
||||
//
|
||||
@@ -718,10 +778,10 @@
|
||||
this.speedLabel.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.speedLabel.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.speedLabel.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.speedLabel.Location = new System.Drawing.Point(-3, 681);
|
||||
this.speedLabel.Location = new System.Drawing.Point(7, 680);
|
||||
this.speedLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.speedLabel.Name = "speedLabel";
|
||||
this.speedLabel.Size = new System.Drawing.Size(159, 17);
|
||||
this.speedLabel.Size = new System.Drawing.Size(149, 18);
|
||||
this.speedLabel.TabIndex = 76;
|
||||
this.speedLabel.Text = "DLS: Speed in MBPS";
|
||||
//
|
||||
@@ -732,10 +792,10 @@
|
||||
this.etaLabel.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.etaLabel.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.etaLabel.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.etaLabel.Location = new System.Drawing.Point(-3, 698);
|
||||
this.etaLabel.Location = new System.Drawing.Point(7, 699);
|
||||
this.etaLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.etaLabel.Name = "etaLabel";
|
||||
this.etaLabel.Size = new System.Drawing.Size(157, 17);
|
||||
this.etaLabel.Size = new System.Drawing.Size(148, 18);
|
||||
this.etaLabel.TabIndex = 75;
|
||||
this.etaLabel.Text = "ETA: HH:MM:SS Left";
|
||||
//
|
||||
@@ -758,6 +818,7 @@
|
||||
//
|
||||
// gamesQueListBox
|
||||
//
|
||||
this.gamesQueListBox.AllowDrop = true;
|
||||
this.gamesQueListBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.gamesQueListBox.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
@@ -768,17 +829,18 @@
|
||||
this.gamesQueListBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.gamesQueListBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.gamesQueListBox.FormattingEnabled = true;
|
||||
this.gamesQueListBox.ItemHeight = 16;
|
||||
this.gamesQueListBox.ItemHeight = 18;
|
||||
this.gamesQueListBox.Location = new System.Drawing.Point(601, 475);
|
||||
this.gamesQueListBox.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.gamesQueListBox.Name = "gamesQueListBox";
|
||||
this.gamesQueListBox.Size = new System.Drawing.Size(372, 130);
|
||||
this.gamesQueListBox.Size = new System.Drawing.Size(369, 146);
|
||||
this.gamesQueListBox.TabIndex = 9;
|
||||
this.gamesQueListBox.MouseClick += new System.Windows.Forms.MouseEventHandler(this.gamesQueListBox_MouseClick);
|
||||
this.gamesQueListBox.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
|
||||
this.gamesQueListBox.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
|
||||
//
|
||||
// devicesComboBox
|
||||
//
|
||||
this.devicesComboBox.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.devicesComboBox.BackColor = global::AndroidSideloader.Properties.Settings.Default.ComboBoxColor;
|
||||
this.devicesComboBox.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ComboBoxColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.devicesComboBox.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
@@ -790,14 +852,13 @@
|
||||
this.devicesComboBox.Location = new System.Drawing.Point(227, 39);
|
||||
this.devicesComboBox.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.devicesComboBox.Name = "devicesComboBox";
|
||||
this.devicesComboBox.Size = new System.Drawing.Size(161, 24);
|
||||
this.devicesComboBox.Size = new System.Drawing.Size(161, 26);
|
||||
this.devicesComboBox.TabIndex = 1;
|
||||
this.devicesComboBox.Text = "Select your device";
|
||||
this.devicesComboBox.SelectedIndexChanged += new System.EventHandler(this.devicesComboBox_SelectedIndexChanged);
|
||||
//
|
||||
// remotesList
|
||||
//
|
||||
this.remotesList.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.remotesList.BackColor = global::AndroidSideloader.Properties.Settings.Default.ComboBoxColor;
|
||||
this.remotesList.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ComboBoxColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.remotesList.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
@@ -809,7 +870,7 @@
|
||||
this.remotesList.Location = new System.Drawing.Point(527, 39);
|
||||
this.remotesList.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.remotesList.Name = "remotesList";
|
||||
this.remotesList.Size = new System.Drawing.Size(53, 24);
|
||||
this.remotesList.Size = new System.Drawing.Size(53, 26);
|
||||
this.remotesList.TabIndex = 3;
|
||||
this.remotesList.SelectedIndexChanged += new System.EventHandler(this.remotesList_SelectedIndexChanged);
|
||||
//
|
||||
@@ -823,13 +884,15 @@
|
||||
this.gamesListView.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.gamesListView.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.gamesListView.HideSelection = false;
|
||||
this.gamesListView.Location = new System.Drawing.Point(227, 69);
|
||||
this.gamesListView.Location = new System.Drawing.Point(224, 71);
|
||||
this.gamesListView.Name = "gamesListView";
|
||||
this.gamesListView.Size = new System.Drawing.Size(745, 366);
|
||||
this.gamesListView.Size = new System.Drawing.Size(746, 360);
|
||||
this.gamesListView.TabIndex = 6;
|
||||
this.gamesListView.UseCompatibleStateImageBehavior = false;
|
||||
this.gamesListView.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listView1_ColumnClick);
|
||||
this.gamesListView.SelectedIndexChanged += new System.EventHandler(this.gamesListView_SelectedIndexChanged);
|
||||
this.gamesListView.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
|
||||
this.gamesListView.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
|
||||
this.gamesListView.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.gamesListView_KeyPress);
|
||||
this.gamesListView.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.gamesListView_MouseDoubleClick);
|
||||
//
|
||||
@@ -845,14 +908,15 @@
|
||||
this.searchTextBox.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.searchTextBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.searchTextBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.searchTextBox.Location = new System.Drawing.Point(473, 250);
|
||||
this.searchTextBox.Location = new System.Drawing.Point(484, 250);
|
||||
this.searchTextBox.MaximumSize = new System.Drawing.Size(231, 26);
|
||||
this.searchTextBox.MinimumSize = new System.Drawing.Size(231, 26);
|
||||
this.searchTextBox.Name = "searchTextBox";
|
||||
this.searchTextBox.Size = new System.Drawing.Size(231, 23);
|
||||
this.searchTextBox.Size = new System.Drawing.Size(231, 24);
|
||||
this.searchTextBox.TabIndex = 5;
|
||||
this.searchTextBox.Text = "Search";
|
||||
this.searchTextBox.Visible = false;
|
||||
this.searchTextBox.TextChanged += new System.EventHandler(this.searchTextBox_TextChanged);
|
||||
this.searchTextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.searchTextBox_KeyPress);
|
||||
this.searchTextBox.Leave += new System.EventHandler(this.searchTextBox_Leave);
|
||||
//
|
||||
// gamesQueueLabel
|
||||
@@ -863,15 +927,14 @@
|
||||
this.gamesQueueLabel.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.gamesQueueLabel.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.gamesQueueLabel.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.gamesQueueLabel.Location = new System.Drawing.Point(597, 590);
|
||||
this.gamesQueueLabel.Location = new System.Drawing.Point(597, 601);
|
||||
this.gamesQueueLabel.Name = "gamesQueueLabel";
|
||||
this.gamesQueueLabel.Size = new System.Drawing.Size(111, 17);
|
||||
this.gamesQueueLabel.Size = new System.Drawing.Size(52, 18);
|
||||
this.gamesQueueLabel.TabIndex = 86;
|
||||
this.gamesQueueLabel.Text = "Games Queue";
|
||||
this.gamesQueueLabel.Text = "Queue";
|
||||
//
|
||||
// MountButton
|
||||
//
|
||||
this.MountButton.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.MountButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.MountButton.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.MountButton.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
@@ -912,14 +975,14 @@
|
||||
this.notesRichTextBox.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.notesRichTextBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.notesRichTextBox.HideSelection = false;
|
||||
this.notesRichTextBox.Location = new System.Drawing.Point(601, 610);
|
||||
this.notesRichTextBox.Location = new System.Drawing.Point(601, 622);
|
||||
this.notesRichTextBox.Name = "notesRichTextBox";
|
||||
this.notesRichTextBox.ReadOnly = true;
|
||||
this.notesRichTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
|
||||
this.notesRichTextBox.ShowSelectionMargin = true;
|
||||
this.notesRichTextBox.Size = new System.Drawing.Size(371, 79);
|
||||
this.notesRichTextBox.Size = new System.Drawing.Size(369, 67);
|
||||
this.notesRichTextBox.TabIndex = 10;
|
||||
this.notesRichTextBox.Text = "";
|
||||
this.notesRichTextBox.Text = "\n\n\n TIP: PRESS F1 TO SEE A LIST OF SHORTCUTS";
|
||||
//
|
||||
// DragDropLbl
|
||||
//
|
||||
@@ -928,7 +991,7 @@
|
||||
this.DragDropLbl.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.DragDropLbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 36F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.DragDropLbl.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.DragDropLbl.Location = new System.Drawing.Point(240, 543);
|
||||
this.DragDropLbl.Location = new System.Drawing.Point(602, 509);
|
||||
this.DragDropLbl.Name = "DragDropLbl";
|
||||
this.DragDropLbl.Size = new System.Drawing.Size(320, 55);
|
||||
this.DragDropLbl.TabIndex = 25;
|
||||
@@ -943,11 +1006,11 @@
|
||||
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.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label1.Location = new System.Drawing.Point(598, 677);
|
||||
this.label1.Location = new System.Drawing.Point(597, 674);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(98, 17);
|
||||
this.label1.Size = new System.Drawing.Size(48, 18);
|
||||
this.label1.TabIndex = 86;
|
||||
this.label1.Text = "Install Notes";
|
||||
this.label1.Text = "Notes";
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
@@ -970,7 +1033,7 @@
|
||||
// label2
|
||||
//
|
||||
this.label2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(45)))));
|
||||
this.label2.Location = new System.Drawing.Point(460, 193);
|
||||
this.label2.Location = new System.Drawing.Point(464, 196);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(271, 120);
|
||||
this.label2.TabIndex = 89;
|
||||
@@ -984,7 +1047,7 @@
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.label3.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.label3.Location = new System.Drawing.Point(509, 207);
|
||||
this.label3.Location = new System.Drawing.Point(516, 209);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(170, 51);
|
||||
this.label3.TabIndex = 90;
|
||||
@@ -1000,71 +1063,29 @@
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.label4.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.label4.Location = new System.Drawing.Point(523, 280);
|
||||
this.label4.Location = new System.Drawing.Point(506, 283);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(132, 17);
|
||||
this.label4.Size = new System.Drawing.Size(183, 17);
|
||||
this.label4.TabIndex = 90;
|
||||
this.label4.Text = "Shorcut: CTRL+F";
|
||||
this.label4.Text = "Shorcuts: CTRL+F or F2";
|
||||
this.label4.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
||||
this.label4.Visible = false;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.label5.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.label5.Location = new System.Drawing.Point(692, 11);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(99, 17);
|
||||
this.label5.Size = new System.Drawing.Size(105, 17);
|
||||
this.label5.TabIndex = 90;
|
||||
this.label5.Text = "Search apps";
|
||||
this.label5.Text = "Quick Search";
|
||||
this.label5.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
||||
//
|
||||
// pictureBox3
|
||||
//
|
||||
this.pictureBox3.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.pictureBox3.Image = global::AndroidSideloader.Properties.Resources.orangekey;
|
||||
this.pictureBox3.Location = new System.Drawing.Point(803, 10);
|
||||
this.pictureBox3.Name = "pictureBox3";
|
||||
this.pictureBox3.Size = new System.Drawing.Size(21, 20);
|
||||
this.pictureBox3.TabIndex = 92;
|
||||
this.pictureBox3.TabStop = false;
|
||||
//
|
||||
// pictureBox2
|
||||
//
|
||||
this.pictureBox2.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.pictureBox2.Image = global::AndroidSideloader.Properties.Resources.SearchGlass;
|
||||
this.pictureBox2.Location = new System.Drawing.Point(731, 37);
|
||||
this.pictureBox2.Name = "pictureBox2";
|
||||
this.pictureBox2.Size = new System.Drawing.Size(28, 24);
|
||||
this.pictureBox2.TabIndex = 91;
|
||||
this.pictureBox2.TabStop = false;
|
||||
this.pictureBox2.Click += new System.EventHandler(this.pictureBox2_Click);
|
||||
//
|
||||
// gamesPictureBox
|
||||
//
|
||||
this.gamesPictureBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.gamesPictureBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||
this.gamesPictureBox.Location = new System.Drawing.Point(227, 472);
|
||||
this.gamesPictureBox.Name = "gamesPictureBox";
|
||||
this.gamesPictureBox.Size = new System.Drawing.Size(367, 214);
|
||||
this.gamesPictureBox.TabIndex = 84;
|
||||
this.gamesPictureBox.TabStop = false;
|
||||
//
|
||||
// pictureBox4
|
||||
//
|
||||
this.pictureBox4.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.pictureBox4.Image = global::AndroidSideloader.Properties.Resources.greenkey;
|
||||
this.pictureBox4.Location = new System.Drawing.Point(803, 39);
|
||||
this.pictureBox4.Name = "pictureBox4";
|
||||
this.pictureBox4.Size = new System.Drawing.Size(21, 20);
|
||||
this.pictureBox4.TabIndex = 92;
|
||||
this.pictureBox4.TabStop = false;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.label6.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
@@ -1077,7 +1098,7 @@
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label7.AutoSize = true;
|
||||
this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.label7.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
@@ -1090,7 +1111,6 @@
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.label8.AutoSize = true;
|
||||
this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.label8.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
@@ -1110,13 +1130,111 @@
|
||||
this.EnterInstallBox.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.EnterInstallBox.Location = new System.Drawing.Point(593, 7);
|
||||
this.EnterInstallBox.Name = "EnterInstallBox";
|
||||
this.EnterInstallBox.Size = new System.Drawing.Size(90, 52);
|
||||
this.EnterInstallBox.Size = new System.Drawing.Size(80, 54);
|
||||
this.EnterInstallBox.TabIndex = 93;
|
||||
this.EnterInstallBox.Text = " Install w/ \r\n Enter Key";
|
||||
this.EnterInstallBox.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
this.EnterInstallBox.UseVisualStyleBackColor = true;
|
||||
this.EnterInstallBox.CheckedChanged += new System.EventHandler(this.EnterInstallBox_CheckedChanged);
|
||||
//
|
||||
// ADBcommandbox
|
||||
//
|
||||
this.ADBcommandbox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.ADBcommandbox.BackColor = global::AndroidSideloader.Properties.Settings.Default.TextBoxColor;
|
||||
this.ADBcommandbox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.ADBcommandbox.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "TextBoxColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.ADBcommandbox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.ADBcommandbox.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.ADBcommandbox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.ADBcommandbox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.ADBcommandbox.Location = new System.Drawing.Point(485, 250);
|
||||
this.ADBcommandbox.MaximumSize = new System.Drawing.Size(231, 26);
|
||||
this.ADBcommandbox.MinimumSize = new System.Drawing.Size(231, 26);
|
||||
this.ADBcommandbox.Name = "ADBcommandbox";
|
||||
this.ADBcommandbox.Size = new System.Drawing.Size(231, 24);
|
||||
this.ADBcommandbox.TabIndex = 5;
|
||||
this.ADBcommandbox.Visible = false;
|
||||
this.ADBcommandbox.TextChanged += new System.EventHandler(this.searchTextBox_TextChanged);
|
||||
this.ADBcommandbox.Enter += new System.EventHandler(this.ADBcommandbox_Enter);
|
||||
this.ADBcommandbox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.ADBcommandbox_KeyPress);
|
||||
this.ADBcommandbox.Leave += new System.EventHandler(this.ADBcommandbox_Leave);
|
||||
//
|
||||
// label11
|
||||
//
|
||||
this.label11.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label11.AutoSize = true;
|
||||
this.label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.label11.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.label11.Location = new System.Drawing.Point(528, 285);
|
||||
this.label11.Name = "label11";
|
||||
this.label11.Size = new System.Drawing.Size(143, 17);
|
||||
this.label11.TabIndex = 90;
|
||||
this.label11.Text = "Shorcut = CTRL+R";
|
||||
this.label11.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
||||
this.label11.Visible = false;
|
||||
//
|
||||
// label9
|
||||
//
|
||||
this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label9.AutoSize = true;
|
||||
this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold);
|
||||
this.label9.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.label9.Location = new System.Drawing.Point(514, 206);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(173, 68);
|
||||
this.label9.TabIndex = 90;
|
||||
this.label9.Text = "Type command without\r\n\"adb\" prefix.\r\n\r\n\r\n";
|
||||
this.label9.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
||||
this.label9.Visible = false;
|
||||
//
|
||||
// pictureBox4
|
||||
//
|
||||
this.pictureBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.pictureBox4.Image = global::AndroidSideloader.Properties.Resources.greenkey;
|
||||
this.pictureBox4.Location = new System.Drawing.Point(803, 39);
|
||||
this.pictureBox4.Name = "pictureBox4";
|
||||
this.pictureBox4.Size = new System.Drawing.Size(21, 20);
|
||||
this.pictureBox4.TabIndex = 92;
|
||||
this.pictureBox4.TabStop = false;
|
||||
//
|
||||
// pictureBox3
|
||||
//
|
||||
this.pictureBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.pictureBox3.Image = global::AndroidSideloader.Properties.Resources.orangekey;
|
||||
this.pictureBox3.Location = new System.Drawing.Point(803, 10);
|
||||
this.pictureBox3.Name = "pictureBox3";
|
||||
this.pictureBox3.Size = new System.Drawing.Size(21, 20);
|
||||
this.pictureBox3.TabIndex = 92;
|
||||
this.pictureBox3.TabStop = false;
|
||||
//
|
||||
// pictureBox2
|
||||
//
|
||||
this.pictureBox2.Image = global::AndroidSideloader.Properties.Resources.SearchGlass;
|
||||
this.pictureBox2.Location = new System.Drawing.Point(731, 37);
|
||||
this.pictureBox2.Name = "pictureBox2";
|
||||
this.pictureBox2.Size = new System.Drawing.Size(28, 24);
|
||||
this.pictureBox2.TabIndex = 91;
|
||||
this.pictureBox2.TabStop = false;
|
||||
this.pictureBox2.Click += new System.EventHandler(this.pictureBox2_Click);
|
||||
//
|
||||
// gamesPictureBox
|
||||
//
|
||||
this.gamesPictureBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.gamesPictureBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
|
||||
this.gamesPictureBox.Location = new System.Drawing.Point(224, 474);
|
||||
this.gamesPictureBox.Name = "gamesPictureBox";
|
||||
this.gamesPictureBox.Size = new System.Drawing.Size(371, 214);
|
||||
this.gamesPictureBox.TabIndex = 84;
|
||||
this.gamesPictureBox.TabStop = false;
|
||||
this.gamesPictureBox.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
|
||||
this.gamesPictureBox.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AllowDrop = true;
|
||||
@@ -1124,6 +1242,7 @@
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
this.ClientSize = new System.Drawing.Size(980, 721);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.EnterInstallBox);
|
||||
this.Controls.Add(this.ProgressText);
|
||||
this.Controls.Add(this.pictureBox4);
|
||||
@@ -1133,8 +1252,10 @@
|
||||
this.Controls.Add(this.label6);
|
||||
this.Controls.Add(this.label8);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.label11);
|
||||
this.Controls.Add(this.ADBcommandbox);
|
||||
this.Controls.Add(this.searchTextBox);
|
||||
this.Controls.Add(this.label9);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.freeDisclaimer);
|
||||
this.Controls.Add(this.DragDropLbl);
|
||||
@@ -1167,14 +1288,16 @@
|
||||
this.DragLeave += new System.EventHandler(this.Form1_DragLeave);
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.ULGif)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit();
|
||||
this.otherContainer.ResumeLayout(false);
|
||||
this.backupContainer.ResumeLayout(false);
|
||||
this.sideloadContainer.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gamesPictureBox)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -1210,7 +1333,6 @@
|
||||
private System.Windows.Forms.Button ADBWirelessDisable;
|
||||
private System.Windows.Forms.Label freeDisclaimer;
|
||||
private System.Windows.Forms.ComboBox devicesComboBox;
|
||||
private System.Windows.Forms.ComboBox remotesList;
|
||||
private System.Windows.Forms.Button QuestOptionsButton;
|
||||
private System.Windows.Forms.Button ThemeChangerButton;
|
||||
private System.Windows.Forms.ListBox gamesQueListBox;
|
||||
@@ -1239,6 +1361,14 @@
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private System.Windows.Forms.CheckBox EnterInstallBox;
|
||||
private System.Windows.Forms.TextBox ADBcommandbox;
|
||||
private System.Windows.Forms.Label label11;
|
||||
private System.Windows.Forms.Label label9;
|
||||
private System.Windows.Forms.Label BatteryLbl;
|
||||
private System.Windows.Forms.PictureBox pictureBox5;
|
||||
public System.Windows.Forms.ComboBox remotesList;
|
||||
private System.Windows.Forms.PictureBox ULGif;
|
||||
private System.Windows.Forms.Label ULLabel;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
4419
MainForm.cs
4419
MainForm.cs
File diff suppressed because it is too large
Load Diff
60
Properties/Resources.Designer.cs
generated
60
Properties/Resources.Designer.cs
generated
@@ -60,6 +60,56 @@ namespace AndroidSideloader.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap ajax_loader {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ajax-loader", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap battery {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("battery", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap battery1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("battery1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap battery11 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("battery11", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap bluekey {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("bluekey", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@@ -80,6 +130,16 @@ namespace AndroidSideloader.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
public static System.Drawing.Bitmap redkey {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("redkey", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
|
||||
@@ -121,10 +121,28 @@
|
||||
<data name="orangekey" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\orangekey.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="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="greenkey" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\greenkey.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="battery1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\battery11.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="battery" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\battery.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="battery11" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\battery1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="SearchGlass" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\SearchGlass.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="bluekey" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\bluekey.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="redkey" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\redkey.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ajax-loader" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ajax-loader.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
134
Properties/Settings.Designer.cs
generated
134
Properties/Settings.Designer.cs
generated
@@ -181,7 +181,7 @@ namespace AndroidSideloader.Properties {
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Microsoft Sans Serif, 10pt, style=Bold")]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Microsoft Sans Serif, 11pt")]
|
||||
public global::System.Drawing.Font FontStyle {
|
||||
get {
|
||||
return ((global::System.Drawing.Font)(this["FontStyle"]));
|
||||
@@ -502,5 +502,137 @@ namespace AndroidSideloader.Properties {
|
||||
this["DownUpHeld"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string CurrentLogPath {
|
||||
get {
|
||||
return ((string)(this["CurrentLogPath"]));
|
||||
}
|
||||
set {
|
||||
this["CurrentLogPath"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string CurrentLogName {
|
||||
get {
|
||||
return ((string)(this["CurrentLogName"]));
|
||||
}
|
||||
set {
|
||||
this["CurrentLogName"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string CurrentCrashPath {
|
||||
get {
|
||||
return ((string)(this["CurrentCrashPath"]));
|
||||
}
|
||||
set {
|
||||
this["CurrentCrashPath"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string CurrentCrashName {
|
||||
get {
|
||||
return ((string)(this["CurrentCrashName"]));
|
||||
}
|
||||
set {
|
||||
this["CurrentCrashName"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool QUturnedon {
|
||||
get {
|
||||
return ((bool)(this["QUturnedon"]));
|
||||
}
|
||||
set {
|
||||
this["QUturnedon"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool QblindOn {
|
||||
get {
|
||||
return ((bool)(this["QblindOn"]));
|
||||
}
|
||||
set {
|
||||
this["QblindOn"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool adbdebugwarned {
|
||||
get {
|
||||
return ((bool)(this["adbdebugwarned"]));
|
||||
}
|
||||
set {
|
||||
this["adbdebugwarned"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool nodevicemode {
|
||||
get {
|
||||
return ((bool)(this["nodevicemode"]));
|
||||
}
|
||||
set {
|
||||
this["nodevicemode"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool BMBFchecked {
|
||||
get {
|
||||
return ((bool)(this["BMBFchecked"]));
|
||||
}
|
||||
set {
|
||||
this["BMBFchecked"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string GamesList {
|
||||
get {
|
||||
return ((string)(this["GamesList"]));
|
||||
}
|
||||
set {
|
||||
this["GamesList"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool UploadedGameList {
|
||||
get {
|
||||
return ((bool)(this["UploadedGameList"]));
|
||||
}
|
||||
set {
|
||||
this["UploadedGameList"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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, 10pt, style=Bold</Value>
|
||||
<Value Profile="(Default)">Microsoft Sans Serif, 11pt</Value>
|
||||
</Setting>
|
||||
<Setting Name="BackPicturePath" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
@@ -122,5 +122,38 @@
|
||||
<Setting Name="DownUpHeld" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="CurrentLogPath" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="CurrentLogName" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="CurrentCrashPath" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="CurrentCrashName" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="QUturnedon" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="QblindOn" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="adbdebugwarned" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="nodevicemode" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="BMBFchecked" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="GamesList" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="UploadedGameList" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
105
QuestForm.Designer.cs
generated
105
QuestForm.Designer.cs
generated
@@ -68,6 +68,7 @@ namespace AndroidSideloader
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.QURfrRt = new System.Windows.Forms.ComboBox();
|
||||
this.RefreshRateComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.WifiWake = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
@@ -127,9 +128,9 @@ namespace AndroidSideloader
|
||||
this.ResetQU.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.ResetQU.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.5F);
|
||||
this.ResetQU.ForeColor = System.Drawing.SystemColors.ControlLight;
|
||||
this.ResetQU.Location = new System.Drawing.Point(191, 555);
|
||||
this.ResetQU.Location = new System.Drawing.Point(189, 555);
|
||||
this.ResetQU.Name = "ResetQU";
|
||||
this.ResetQU.Size = new System.Drawing.Size(167, 23);
|
||||
this.ResetQU.Size = new System.Drawing.Size(168, 28);
|
||||
this.ResetQU.TabIndex = 14;
|
||||
this.ResetQU.Text = "RESET ALL FIELDS";
|
||||
this.ResetQU.UseVisualStyleBackColor = false;
|
||||
@@ -144,7 +145,7 @@ namespace AndroidSideloader
|
||||
this.deleteButton.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
this.deleteButton.Location = new System.Drawing.Point(13, 606);
|
||||
this.deleteButton.Name = "deleteButton";
|
||||
this.deleteButton.Size = new System.Drawing.Size(169, 25);
|
||||
this.deleteButton.Size = new System.Drawing.Size(167, 25);
|
||||
this.deleteButton.TabIndex = 15;
|
||||
this.deleteButton.Text = "DELETE SAVED SETTINGS";
|
||||
this.deleteButton.UseVisualStyleBackColor = false;
|
||||
@@ -157,7 +158,7 @@ namespace AndroidSideloader
|
||||
this.questPics.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.questPics.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.5F);
|
||||
this.questPics.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
this.questPics.Location = new System.Drawing.Point(17, 265);
|
||||
this.questPics.Location = new System.Drawing.Point(15, 265);
|
||||
this.questPics.Name = "questPics";
|
||||
this.questPics.Size = new System.Drawing.Size(165, 25);
|
||||
this.questPics.TabIndex = 5;
|
||||
@@ -171,7 +172,7 @@ namespace AndroidSideloader
|
||||
this.questVids.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.questVids.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.5F);
|
||||
this.questVids.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
this.questVids.Location = new System.Drawing.Point(191, 265);
|
||||
this.questVids.Location = new System.Drawing.Point(189, 265);
|
||||
this.questVids.Name = "questVids";
|
||||
this.questVids.Size = new System.Drawing.Size(167, 25);
|
||||
this.questVids.TabIndex = 6;
|
||||
@@ -242,11 +243,11 @@ namespace AndroidSideloader
|
||||
this.label13.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label13.ForeColor = System.Drawing.Color.LightSteelBlue;
|
||||
this.label13.Location = new System.Drawing.Point(54, 678);
|
||||
this.label13.Location = new System.Drawing.Point(53, 678);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(262, 16);
|
||||
this.label13.Size = new System.Drawing.Size(265, 16);
|
||||
this.label13.TabIndex = 6;
|
||||
this.label13.Text = "*For games that dont work with QU settings.";
|
||||
this.label13.Text = "*For games that don\'t work with QU settings.";
|
||||
this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// DeleteShots
|
||||
@@ -287,7 +288,7 @@ namespace AndroidSideloader
|
||||
//
|
||||
this.label14.BackColor = System.Drawing.Color.White;
|
||||
this.label14.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.label14.Location = new System.Drawing.Point(-15, 208);
|
||||
this.label14.Location = new System.Drawing.Point(-15, 211);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(394, 3);
|
||||
this.label14.TabIndex = 17;
|
||||
@@ -330,9 +331,9 @@ namespace AndroidSideloader
|
||||
"2",
|
||||
"3",
|
||||
"4"});
|
||||
this.CPUComboBox.Location = new System.Drawing.Point(13, 126);
|
||||
this.CPUComboBox.Location = new System.Drawing.Point(13, 123);
|
||||
this.CPUComboBox.Name = "CPUComboBox";
|
||||
this.CPUComboBox.Size = new System.Drawing.Size(345, 24);
|
||||
this.CPUComboBox.Size = new System.Drawing.Size(346, 28);
|
||||
this.CPUComboBox.TabIndex = 2;
|
||||
this.CPUComboBox.Text = "Select CPU level (0 for default)";
|
||||
//
|
||||
@@ -352,9 +353,9 @@ namespace AndroidSideloader
|
||||
"2",
|
||||
"3",
|
||||
"4"});
|
||||
this.GPUComboBox.Location = new System.Drawing.Point(13, 97);
|
||||
this.GPUComboBox.Location = new System.Drawing.Point(13, 94);
|
||||
this.GPUComboBox.Name = "GPUComboBox";
|
||||
this.GPUComboBox.Size = new System.Drawing.Size(345, 24);
|
||||
this.GPUComboBox.Size = new System.Drawing.Size(346, 28);
|
||||
this.GPUComboBox.TabIndex = 1;
|
||||
this.GPUComboBox.Text = "Select GPU level (0 for default)";
|
||||
//
|
||||
@@ -368,11 +369,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(49, 16);
|
||||
this.label7.Size = new System.Drawing.Size(59, 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 +384,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(50, 16);
|
||||
this.label8.Size = new System.Drawing.Size(59, 20);
|
||||
this.label8.TabIndex = 3;
|
||||
this.label8.Text = "Fov - Y";
|
||||
this.label8.Visible = false;
|
||||
this.label8.Click += new System.EventHandler(this.label8_Click);
|
||||
//
|
||||
// label9
|
||||
//
|
||||
@@ -398,9 +397,9 @@ namespace AndroidSideloader
|
||||
this.label9.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.label9.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.label9.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label9.Location = new System.Drawing.Point(11, 583);
|
||||
this.label9.Location = new System.Drawing.Point(12, 583);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(87, 16);
|
||||
this.label9.Size = new System.Drawing.Size(105, 20);
|
||||
this.label9.TabIndex = 3;
|
||||
this.label9.Text = "Refresh Rate";
|
||||
this.label9.Visible = false;
|
||||
@@ -413,13 +412,12 @@ namespace AndroidSideloader
|
||||
this.label6.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.label6.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.label6.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label6.Location = new System.Drawing.Point(13, 484);
|
||||
this.label6.Location = new System.Drawing.Point(93, 484);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(153, 16);
|
||||
this.label6.Size = new System.Drawing.Size(185, 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
|
||||
//
|
||||
@@ -429,13 +427,12 @@ namespace AndroidSideloader
|
||||
this.label5.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.label5.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.label5.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label5.Location = new System.Drawing.Point(12, 434);
|
||||
this.label5.Location = new System.Drawing.Point(16, 434);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(301, 16);
|
||||
this.label5.Size = new System.Drawing.Size(362, 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
|
||||
//
|
||||
@@ -445,11 +442,11 @@ namespace AndroidSideloader
|
||||
this.ResolutionLabel.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.ResolutionLabel.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.ResolutionLabel.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.ResolutionLabel.Location = new System.Drawing.Point(11, 183);
|
||||
this.ResolutionLabel.Location = new System.Drawing.Point(9, 180);
|
||||
this.ResolutionLabel.Name = "ResolutionLabel";
|
||||
this.ResolutionLabel.Size = new System.Drawing.Size(177, 16);
|
||||
this.ResolutionLabel.Size = new System.Drawing.Size(166, 20);
|
||||
this.ResolutionLabel.TabIndex = 3;
|
||||
this.ResolutionLabel.Text = "Resolution (p eye, 0=default)";
|
||||
this.ResolutionLabel.Text = "Resolution (0=default)";
|
||||
//
|
||||
// FOVy
|
||||
//
|
||||
@@ -459,9 +456,9 @@ namespace AndroidSideloader
|
||||
this.FOVy.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.FOVy.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.FOVy.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.FOVy.Location = new System.Drawing.Point(191, 507);
|
||||
this.FOVy.Location = new System.Drawing.Point(189, 507);
|
||||
this.FOVy.Name = "FOVy";
|
||||
this.FOVy.Size = new System.Drawing.Size(167, 22);
|
||||
this.FOVy.Size = new System.Drawing.Size(169, 26);
|
||||
this.FOVy.TabIndex = 12;
|
||||
this.FOVy.Text = "0";
|
||||
this.FOVy.Visible = false;
|
||||
@@ -477,7 +474,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, 22);
|
||||
this.FOVx.Size = new System.Drawing.Size(169, 26);
|
||||
this.FOVx.TabIndex = 11;
|
||||
this.FOVx.Text = "0";
|
||||
this.FOVx.Visible = false;
|
||||
@@ -493,7 +490,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, 22);
|
||||
this.UsrBox.Size = new System.Drawing.Size(345, 26);
|
||||
this.UsrBox.TabIndex = 10;
|
||||
this.UsrBox.Text = "0";
|
||||
this.UsrBox.Visible = false;
|
||||
@@ -509,7 +506,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, 22);
|
||||
this.ResBox.Size = new System.Drawing.Size(345, 26);
|
||||
this.ResBox.TabIndex = 9;
|
||||
this.ResBox.Text = "0";
|
||||
this.ResBox.Visible = false;
|
||||
@@ -523,9 +520,9 @@ namespace AndroidSideloader
|
||||
this.TextureResTextBox.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.TextureResTextBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.TextureResTextBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.TextureResTextBox.Location = new System.Drawing.Point(13, 155);
|
||||
this.TextureResTextBox.Location = new System.Drawing.Point(13, 152);
|
||||
this.TextureResTextBox.Name = "TextureResTextBox";
|
||||
this.TextureResTextBox.Size = new System.Drawing.Size(169, 22);
|
||||
this.TextureResTextBox.Size = new System.Drawing.Size(167, 26);
|
||||
this.TextureResTextBox.TabIndex = 3;
|
||||
this.TextureResTextBox.Text = "0";
|
||||
//
|
||||
@@ -538,9 +535,9 @@ namespace AndroidSideloader
|
||||
this.QUEnable.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.QUEnable.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.QUEnable.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.QUEnable.Location = new System.Drawing.Point(191, 606);
|
||||
this.QUEnable.Location = new System.Drawing.Point(189, 606);
|
||||
this.QUEnable.Name = "QUEnable";
|
||||
this.QUEnable.Size = new System.Drawing.Size(169, 25);
|
||||
this.QUEnable.Size = new System.Drawing.Size(170, 25);
|
||||
this.QUEnable.TabIndex = 16;
|
||||
this.QUEnable.Text = "APPLY";
|
||||
this.QUEnable.UseVisualStyleBackColor = false;
|
||||
@@ -556,9 +553,9 @@ namespace AndroidSideloader
|
||||
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.button1.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.button1.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.button1.Location = new System.Drawing.Point(191, 155);
|
||||
this.button1.Location = new System.Drawing.Point(189, 152);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(167, 25);
|
||||
this.button1.Size = new System.Drawing.Size(169, 25);
|
||||
this.button1.TabIndex = 4;
|
||||
this.button1.Text = "APPLY";
|
||||
this.button1.UseVisualStyleBackColor = false;
|
||||
@@ -579,9 +576,9 @@ namespace AndroidSideloader
|
||||
"72",
|
||||
"90",
|
||||
"120"});
|
||||
this.QURfrRt.Location = new System.Drawing.Point(12, 555);
|
||||
this.QURfrRt.Location = new System.Drawing.Point(13, 555);
|
||||
this.QURfrRt.Name = "QURfrRt";
|
||||
this.QURfrRt.Size = new System.Drawing.Size(170, 24);
|
||||
this.QURfrRt.Size = new System.Drawing.Size(170, 28);
|
||||
this.QURfrRt.TabIndex = 13;
|
||||
this.QURfrRt.Text = "0";
|
||||
this.QURfrRt.Visible = false;
|
||||
@@ -601,12 +598,29 @@ namespace AndroidSideloader
|
||||
"72",
|
||||
"90",
|
||||
"120"});
|
||||
this.RefreshRateComboBox.Location = new System.Drawing.Point(13, 68);
|
||||
this.RefreshRateComboBox.Location = new System.Drawing.Point(13, 65);
|
||||
this.RefreshRateComboBox.Name = "RefreshRateComboBox";
|
||||
this.RefreshRateComboBox.Size = new System.Drawing.Size(345, 24);
|
||||
this.RefreshRateComboBox.Size = new System.Drawing.Size(346, 28);
|
||||
this.RefreshRateComboBox.TabIndex = 0;
|
||||
this.RefreshRateComboBox.Text = "Select refresh rate";
|
||||
//
|
||||
// WifiWake
|
||||
//
|
||||
this.WifiWake.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.WifiWake.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.WifiWake.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.WifiWake.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.WifiWake.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.WifiWake.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.WifiWake.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.WifiWake.Location = new System.Drawing.Point(189, 180);
|
||||
this.WifiWake.Name = "WifiWake";
|
||||
this.WifiWake.Size = new System.Drawing.Size(170, 25);
|
||||
this.WifiWake.TabIndex = 4;
|
||||
this.WifiWake.Text = "ENABLE WIFI WAKE";
|
||||
this.WifiWake.UseVisualStyleBackColor = false;
|
||||
this.WifiWake.Click += new System.EventHandler(this.WifiWake_Click);
|
||||
//
|
||||
// QuestForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
@@ -646,15 +660,19 @@ namespace AndroidSideloader
|
||||
this.Controls.Add(this.ResBox);
|
||||
this.Controls.Add(this.TextureResTextBox);
|
||||
this.Controls.Add(this.QUEnable);
|
||||
this.Controls.Add(this.WifiWake);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.QURfrRt);
|
||||
this.Controls.Add(this.RefreshRateComboBox);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.MaximumSize = new System.Drawing.Size(386, 776);
|
||||
this.MinimumSize = new System.Drawing.Size(386, 776);
|
||||
this.Name = "QuestForm";
|
||||
this.ShowIcon = false;
|
||||
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Quest settings";
|
||||
this.TopMost = true;
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.QuestForm_FormClosed);
|
||||
this.Load += new System.EventHandler(this.QuestForm_Load);
|
||||
this.ResumeLayout(false);
|
||||
@@ -700,6 +718,7 @@ namespace AndroidSideloader
|
||||
private Label label14;
|
||||
private Label label15;
|
||||
private Label label16;
|
||||
private Button WifiWake;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
45
QuestForm.cs
45
QuestForm.cs
@@ -107,6 +107,7 @@ namespace AndroidSideloader
|
||||
FOVy.Text = Properties.Settings.Default.QUy;
|
||||
FOVx.Text = Properties.Settings.Default.QUx;
|
||||
QURfrRt.SelectedValue = Properties.Settings.Default.QUhz;
|
||||
Properties.Settings.Default.QUturnedon = true;
|
||||
}
|
||||
else if (!QUon.Checked)
|
||||
{
|
||||
@@ -124,9 +125,10 @@ namespace AndroidSideloader
|
||||
label9.Visible = false;
|
||||
label10.Visible = false;
|
||||
deleteButton.Visible = false;
|
||||
|
||||
Properties.Settings.Default.QUturnedon = false;
|
||||
MessageBox.Show("Ok, Deleted your custom settings file.\nIf you would like to re-enable return here and apply settings again");
|
||||
File.Delete($"{Properties.Settings.Default.MainDir}\\Config.Json");
|
||||
File.Delete($"{Environment.CurrentDirectory}\\Config.Json");
|
||||
File.Delete($"{Environment.CurrentDirectory}\\delete_settings");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -146,7 +148,7 @@ namespace AndroidSideloader
|
||||
MessageBox.Show("OK, any -QU packages installed will have these settings applied!\nTo delete settings: goto main app window, select a game with top menu, and click \"Remove QU Setting\"");
|
||||
if (QUon.Checked)
|
||||
{
|
||||
|
||||
Properties.Settings.Default.QUturnedon = true;
|
||||
Random r = new Random();
|
||||
|
||||
int x = r.Next(999999999);
|
||||
@@ -170,6 +172,10 @@ namespace AndroidSideloader
|
||||
string boff = Properties.Settings.Default.QUStringF + Properties.Settings.Default.QUString;
|
||||
File.WriteAllText($"{Properties.Settings.Default.MainDir}\\config.json", boff);
|
||||
}
|
||||
else
|
||||
{
|
||||
Properties.Settings.Default.QUturnedon = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -306,24 +312,29 @@ 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 WifiWake_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void label8_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void label7_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_available 1");
|
||||
ADB.RunAdbCommandToString("shell settings put global wifi_wakeup_enabled 1");
|
||||
MessageBox.Show("Wake on Wifi enabled!\n\nNOTE: This requires having wireless ADB enabled to work. (Obviously)");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
22
RCLONE.cs
22
RCLONE.cs
@@ -3,6 +3,7 @@ using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using JR.Utils.GUI.Forms;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
@@ -37,9 +38,6 @@ namespace AndroidSideloader
|
||||
{
|
||||
if (!MainForm.HasInternet) return new ProcessOutput("", "No internet");
|
||||
|
||||
//Set the password for rclone configs
|
||||
Environment.SetEnvironmentVariable("RCLONE_CRYPT_REMOTE", rclonepw);
|
||||
Environment.SetEnvironmentVariable("RCLONE_CONFIG_PASS", rclonepw);
|
||||
ProcessOutput prcoutput = new ProcessOutput();
|
||||
//Rclone output is unicode, else it will show garbage instead of unicode characters
|
||||
rclone.StartInfo.StandardOutputEncoding = Encoding.UTF8;
|
||||
@@ -60,8 +58,12 @@ namespace AndroidSideloader
|
||||
//set rclonepw
|
||||
if (rclonepw.Length > 0)
|
||||
command += " --ask-password=false";
|
||||
|
||||
Logger.Log($"Running Rclone command: {command}");
|
||||
string logcmd = Utilities.StringUtilities.RemoveEverythingBeforeFirst(command, "rclone.exe");
|
||||
if (logcmd.Contains($"\"{Properties.Settings.Default.CurrentLogPath}\""))
|
||||
logcmd = logcmd.Replace($"\"{Properties.Settings.Default.CurrentLogPath}\"", $"\"{Properties.Settings.Default.CurrentLogName}\"");
|
||||
if (logcmd.Contains(Environment.CurrentDirectory))
|
||||
logcmd = logcmd.Replace($"{Environment.CurrentDirectory}", $"CurrentDirectory");
|
||||
Logger.Log($"Running Rclone command: {logcmd}");
|
||||
|
||||
rclone.StartInfo.FileName = Environment.CurrentDirectory + "\\rclone\\rclone.exe";
|
||||
rclone.StartInfo.Arguments = command;
|
||||
@@ -85,7 +87,7 @@ namespace AndroidSideloader
|
||||
rclone.WaitForExit();
|
||||
|
||||
//if there is one of these errors, we switch the mirrors
|
||||
if (error.Contains("cannot fetch token") || error.Contains("authError") || (error.Contains("quota") || error.Contains("exceeded")))
|
||||
if (error.Contains("400 Bad Request") || error.Contains("cannot fetch token") || error.Contains("authError") || error.Contains("quota") || error.Contains("exceeded") || error.Contains("directory not found") || error.Contains("couldn't list"))
|
||||
{
|
||||
string oldRemote = MainForm.currentRemote;
|
||||
try
|
||||
@@ -103,11 +105,13 @@ namespace AndroidSideloader
|
||||
prcoutput.Output = output;
|
||||
prcoutput.Error = error;
|
||||
}
|
||||
if (!output.Contains("Game Name;Release Name;"))
|
||||
if (!output.Contains("Game Name;Release Name;") && !output.Contains("package:"))
|
||||
Logger.Log($"Rclone error: {error}\nRclone Output: {output}");
|
||||
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;
|
||||
{
|
||||
FlexibleMessageBox.Show("There isn't enough space on your PC to properly install this game. Please have at least 2x the size of the game you are trying to download/install available on the drive where Rookie is installed.", "NOT ENOUGH SPACE");
|
||||
}
|
||||
return prcoutput;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# androidsideloader
|
||||
|
||||
!IMPORTANT!
|
||||
This app may be buggy and have problems, I will recode it from scratch when MAUI will be released (This september) and a linux port will be available, making RSL cross-platform.
|
||||
|
||||
This app might get detected as malware, however both the sideloader and the sideloader launcher are open source
|
||||
|
||||
https://www.virustotal.com/gui/file/977105693610cf360fc29339b918e224180ba393ba05a64b6255af3845cbf376/relations
|
||||
@@ -15,4 +18,4 @@ Special thanks to
|
||||
- [rclone](https://rclone.org/) team for [rclone](https://rclone.org/) :D
|
||||
- [erike](https://stackoverflow.com/users/57611/erike) for the folder browser dialog code
|
||||
- Serge Weinstock for developing SergeUtils, which is used to search the combo box
|
||||
- https://www.c-sharpcorner.com/members/mike-gold2 for the scrollable message box
|
||||
- https://www.c-sharpcorner.com/members/mike-gold2 for the scrollable message box
|
||||
|
||||
BIN
Resources/ajax-loader.gif
Normal file
BIN
Resources/ajax-loader.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 723 B |
BIN
Resources/battery.png
Normal file
BIN
Resources/battery.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
BIN
Resources/battery1.png
Normal file
BIN
Resources/battery1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
BIN
Resources/battery11.png
Normal file
BIN
Resources/battery11.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
BIN
Resources/bluekey.png
Normal file
BIN
Resources/bluekey.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
6801
Resources/nouns.txt
Normal file
6801
Resources/nouns.txt
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Resources/redkey.png
Normal file
BIN
Resources/redkey.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
213
SettingsForm.Designer.cs
generated
213
SettingsForm.Designer.cs
generated
@@ -39,7 +39,15 @@
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.BandwithComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.DebugLogCopy = new System.Windows.Forms.Button();
|
||||
this.CrashLogCopy = new System.Windows.Forms.Button();
|
||||
this.crashlogID = new System.Windows.Forms.Label();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.debuglogID = new System.Windows.Forms.Label();
|
||||
this.DebugID = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.CblindBox = new System.Windows.Forms.CheckBox();
|
||||
this.nodevicemodeBox = new System.Windows.Forms.CheckBox();
|
||||
this.bmbfBox = new System.Windows.Forms.CheckBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// checkForUpdatesCheckBox
|
||||
@@ -47,9 +55,9 @@
|
||||
this.checkForUpdatesCheckBox.AutoSize = true;
|
||||
this.checkForUpdatesCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.checkForUpdatesCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.checkForUpdatesCheckBox.Location = new System.Drawing.Point(13, 13);
|
||||
this.checkForUpdatesCheckBox.Location = new System.Drawing.Point(12, 12);
|
||||
this.checkForUpdatesCheckBox.Name = "checkForUpdatesCheckBox";
|
||||
this.checkForUpdatesCheckBox.Size = new System.Drawing.Size(135, 20);
|
||||
this.checkForUpdatesCheckBox.Size = new System.Drawing.Size(148, 22);
|
||||
this.checkForUpdatesCheckBox.TabIndex = 0;
|
||||
this.checkForUpdatesCheckBox.Text = "Check for updates";
|
||||
this.checkForUpdatesCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -64,7 +72,7 @@
|
||||
this.applyButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.applyButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.applyButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.applyButton.Location = new System.Drawing.Point(12, 178);
|
||||
this.applyButton.Location = new System.Drawing.Point(67, 280);
|
||||
this.applyButton.Name = "applyButton";
|
||||
this.applyButton.Size = new System.Drawing.Size(101, 31);
|
||||
this.applyButton.TabIndex = 5;
|
||||
@@ -77,9 +85,9 @@
|
||||
this.enableMessageBoxesCheckBox.AutoSize = true;
|
||||
this.enableMessageBoxesCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.enableMessageBoxesCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.enableMessageBoxesCheckBox.Location = new System.Drawing.Point(13, 36);
|
||||
this.enableMessageBoxesCheckBox.Location = new System.Drawing.Point(12, 39);
|
||||
this.enableMessageBoxesCheckBox.Name = "enableMessageBoxesCheckBox";
|
||||
this.enableMessageBoxesCheckBox.Size = new System.Drawing.Size(284, 20);
|
||||
this.enableMessageBoxesCheckBox.Size = new System.Drawing.Size(309, 22);
|
||||
this.enableMessageBoxesCheckBox.TabIndex = 1;
|
||||
this.enableMessageBoxesCheckBox.Text = "Enable Message Boxes on task completed";
|
||||
this.enableMessageBoxesCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -94,7 +102,7 @@
|
||||
this.resetSettingsButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.resetSettingsButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.resetSettingsButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.resetSettingsButton.Location = new System.Drawing.Point(119, 178);
|
||||
this.resetSettingsButton.Location = new System.Drawing.Point(174, 280);
|
||||
this.resetSettingsButton.Name = "resetSettingsButton";
|
||||
this.resetSettingsButton.Size = new System.Drawing.Size(101, 31);
|
||||
this.resetSettingsButton.TabIndex = 4;
|
||||
@@ -107,9 +115,9 @@
|
||||
this.deleteAfterInstallCheckBox.AutoSize = true;
|
||||
this.deleteAfterInstallCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.deleteAfterInstallCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.deleteAfterInstallCheckBox.Location = new System.Drawing.Point(13, 59);
|
||||
this.deleteAfterInstallCheckBox.Location = new System.Drawing.Point(12, 65);
|
||||
this.deleteAfterInstallCheckBox.Name = "deleteAfterInstallCheckBox";
|
||||
this.deleteAfterInstallCheckBox.Size = new System.Drawing.Size(266, 20);
|
||||
this.deleteAfterInstallCheckBox.Size = new System.Drawing.Size(288, 22);
|
||||
this.deleteAfterInstallCheckBox.TabIndex = 3;
|
||||
this.deleteAfterInstallCheckBox.Text = "Delete games after download and install";
|
||||
this.deleteAfterInstallCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -120,9 +128,9 @@
|
||||
this.updateConfigCheckBox.AutoSize = true;
|
||||
this.updateConfigCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.updateConfigCheckBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.updateConfigCheckBox.Location = new System.Drawing.Point(13, 83);
|
||||
this.updateConfigCheckBox.Location = new System.Drawing.Point(12, 92);
|
||||
this.updateConfigCheckBox.Name = "updateConfigCheckBox";
|
||||
this.updateConfigCheckBox.Size = new System.Drawing.Size(193, 20);
|
||||
this.updateConfigCheckBox.Size = new System.Drawing.Size(208, 22);
|
||||
this.updateConfigCheckBox.TabIndex = 6;
|
||||
this.updateConfigCheckBox.Text = "Update config automatically";
|
||||
this.updateConfigCheckBox.UseVisualStyleBackColor = true;
|
||||
@@ -133,9 +141,9 @@
|
||||
this.userJsonOnGameInstall.AutoSize = true;
|
||||
this.userJsonOnGameInstall.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.userJsonOnGameInstall.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.userJsonOnGameInstall.Location = new System.Drawing.Point(13, 106);
|
||||
this.userJsonOnGameInstall.Location = new System.Drawing.Point(12, 119);
|
||||
this.userJsonOnGameInstall.Name = "userJsonOnGameInstall";
|
||||
this.userJsonOnGameInstall.Size = new System.Drawing.Size(218, 20);
|
||||
this.userJsonOnGameInstall.Size = new System.Drawing.Size(243, 22);
|
||||
this.userJsonOnGameInstall.TabIndex = 9;
|
||||
this.userJsonOnGameInstall.Text = "Push random user.json on install";
|
||||
this.userJsonOnGameInstall.UseVisualStyleBackColor = true;
|
||||
@@ -149,9 +157,9 @@
|
||||
this.BandwithTextbox.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "TextBoxColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.BandwithTextbox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.BandwithTextbox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.BandwithTextbox.Location = new System.Drawing.Point(12, 148);
|
||||
this.BandwithTextbox.Location = new System.Drawing.Point(52, 248);
|
||||
this.BandwithTextbox.Name = "BandwithTextbox";
|
||||
this.BandwithTextbox.Size = new System.Drawing.Size(177, 22);
|
||||
this.BandwithTextbox.Size = new System.Drawing.Size(177, 24);
|
||||
this.BandwithTextbox.TabIndex = 11;
|
||||
//
|
||||
// label1
|
||||
@@ -159,9 +167,9 @@
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.label1.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.label1.Location = new System.Drawing.Point(10, 127);
|
||||
this.label1.Location = new System.Drawing.Point(40, 225);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(224, 16);
|
||||
this.label1.Size = new System.Drawing.Size(245, 18);
|
||||
this.label1.TabIndex = 12;
|
||||
this.label1.Text = "Download speed limiter, 0 to disable";
|
||||
//
|
||||
@@ -180,9 +188,9 @@
|
||||
"K",
|
||||
"M",
|
||||
"G"});
|
||||
this.BandwithComboBox.Location = new System.Drawing.Point(195, 146);
|
||||
this.BandwithComboBox.Location = new System.Drawing.Point(235, 248);
|
||||
this.BandwithComboBox.Name = "BandwithComboBox";
|
||||
this.BandwithComboBox.Size = new System.Drawing.Size(55, 24);
|
||||
this.BandwithComboBox.Size = new System.Drawing.Size(55, 26);
|
||||
this.BandwithComboBox.TabIndex = 13;
|
||||
//
|
||||
// DebugLogCopy
|
||||
@@ -194,45 +202,160 @@
|
||||
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(12, 215);
|
||||
this.DebugLogCopy.Location = new System.Drawing.Point(29, 325);
|
||||
this.DebugLogCopy.Name = "DebugLogCopy";
|
||||
this.DebugLogCopy.Size = new System.Drawing.Size(285, 31);
|
||||
this.DebugLogCopy.TabIndex = 5;
|
||||
this.DebugLogCopy.Text = "Copy DebugLog to Desktop";
|
||||
this.DebugLogCopy.Text = "Send DebugLog to server.";
|
||||
this.DebugLogCopy.UseVisualStyleBackColor = false;
|
||||
this.DebugLogCopy.Click += new System.EventHandler(this.DebugLogCopy_click);
|
||||
//
|
||||
// CrashLogCopy
|
||||
// crashlogID
|
||||
//
|
||||
this.CrashLogCopy.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.CrashLogCopy.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.CrashLogCopy.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.CrashLogCopy.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.CrashLogCopy.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.CrashLogCopy.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.CrashLogCopy.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.CrashLogCopy.Location = new System.Drawing.Point(12, 252);
|
||||
this.CrashLogCopy.Name = "CrashLogCopy";
|
||||
this.CrashLogCopy.Size = new System.Drawing.Size(285, 31);
|
||||
this.CrashLogCopy.TabIndex = 5;
|
||||
this.CrashLogCopy.Text = "Copy CrashLog to Desktop";
|
||||
this.CrashLogCopy.UseVisualStyleBackColor = false;
|
||||
this.CrashLogCopy.Click += new System.EventHandler(this.CrashLogCopy_click);
|
||||
this.crashlogID.AutoSize = true;
|
||||
this.crashlogID.Location = new System.Drawing.Point(13, 441);
|
||||
this.crashlogID.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.crashlogID.Name = "crashlogID";
|
||||
this.crashlogID.Size = new System.Drawing.Size(0, 13);
|
||||
this.crashlogID.TabIndex = 15;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.button1.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.button1.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.button1.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.button1.Location = new System.Drawing.Point(29, 360);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(285, 31);
|
||||
this.button1.TabIndex = 5;
|
||||
this.button1.Text = "Reset Debug Log";
|
||||
this.button1.UseVisualStyleBackColor = false;
|
||||
this.button1.Click += new System.EventHandler(this.button1_click);
|
||||
//
|
||||
// debuglogID
|
||||
//
|
||||
this.debuglogID.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F);
|
||||
this.debuglogID.Location = new System.Drawing.Point(29, 436);
|
||||
this.debuglogID.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.debuglogID.Name = "debuglogID";
|
||||
this.debuglogID.Size = new System.Drawing.Size(285, 48);
|
||||
this.debuglogID.TabIndex = 14;
|
||||
this.debuglogID.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// DebugID
|
||||
//
|
||||
this.DebugID.AccessibleRole = System.Windows.Forms.AccessibleRole.Row;
|
||||
this.DebugID.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(45)))));
|
||||
this.DebugID.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.DebugID.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.DebugID.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Bold);
|
||||
this.DebugID.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.DebugID.Location = new System.Drawing.Point(29, 407);
|
||||
this.DebugID.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.DebugID.Name = "DebugID";
|
||||
this.DebugID.ReadOnly = true;
|
||||
this.DebugID.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal;
|
||||
this.DebugID.Size = new System.Drawing.Size(285, 21);
|
||||
this.DebugID.TabIndex = 16;
|
||||
this.DebugID.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.DebugID.Click += new System.EventHandler(this.DebugID_Click);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F);
|
||||
this.label2.Location = new System.Drawing.Point(29, 507);
|
||||
this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(284, 86);
|
||||
this.label2.TabIndex = 14;
|
||||
this.label2.Text = "This is your most recent CrashLogID. Click on the CrashLogID to copy it to your c" +
|
||||
"lipboard.";
|
||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.AccessibleRole = System.Windows.Forms.AccessibleRole.Row;
|
||||
this.textBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(45)))));
|
||||
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.textBox1.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Bold);
|
||||
this.textBox1.ForeColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.textBox1.Location = new System.Drawing.Point(29, 490);
|
||||
this.textBox1.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.ReadOnly = true;
|
||||
this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal;
|
||||
this.textBox1.Size = new System.Drawing.Size(285, 21);
|
||||
this.textBox1.TabIndex = 16;
|
||||
this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.textBox1.Click += new System.EventHandler(this.textBox1_Click);
|
||||
//
|
||||
// CblindBox
|
||||
//
|
||||
this.CblindBox.AutoSize = true;
|
||||
this.CblindBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.CblindBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.CblindBox.Location = new System.Drawing.Point(12, 145);
|
||||
this.CblindBox.Name = "CblindBox";
|
||||
this.CblindBox.Size = new System.Drawing.Size(182, 22);
|
||||
this.CblindBox.TabIndex = 9;
|
||||
this.CblindBox.Text = "Enable colorblind mode";
|
||||
this.CblindBox.UseVisualStyleBackColor = true;
|
||||
this.CblindBox.CheckedChanged += new System.EventHandler(this.CblindBox_CheckedChanged);
|
||||
this.CblindBox.Click += new System.EventHandler(this.CblindBox_Click);
|
||||
//
|
||||
// nodevicemodeBox
|
||||
//
|
||||
this.nodevicemodeBox.AutoSize = true;
|
||||
this.nodevicemodeBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.nodevicemodeBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.nodevicemodeBox.Location = new System.Drawing.Point(12, 196);
|
||||
this.nodevicemodeBox.Name = "nodevicemodeBox";
|
||||
this.nodevicemodeBox.Size = new System.Drawing.Size(181, 22);
|
||||
this.nodevicemodeBox.TabIndex = 9;
|
||||
this.nodevicemodeBox.Text = "Enable no device mode";
|
||||
this.nodevicemodeBox.UseVisualStyleBackColor = true;
|
||||
this.nodevicemodeBox.CheckedChanged += new System.EventHandler(this.nodevicemodeBox_CheckedChanged);
|
||||
//
|
||||
// bmbfBox
|
||||
//
|
||||
this.bmbfBox.AutoSize = true;
|
||||
this.bmbfBox.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.bmbfBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.bmbfBox.Location = new System.Drawing.Point(12, 170);
|
||||
this.bmbfBox.Name = "bmbfBox";
|
||||
this.bmbfBox.Size = new System.Drawing.Size(281, 22);
|
||||
this.bmbfBox.TabIndex = 9;
|
||||
this.bmbfBox.Text = "Enable BMBF song zips drag and drop";
|
||||
this.bmbfBox.UseVisualStyleBackColor = true;
|
||||
this.bmbfBox.CheckedChanged += new System.EventHandler(this.bmbfBox_CheckedChanged);
|
||||
//
|
||||
// SettingsForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
this.ClientSize = new System.Drawing.Size(313, 291);
|
||||
this.ClientSize = new System.Drawing.Size(342, 606);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.DebugID);
|
||||
this.Controls.Add(this.crashlogID);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.debuglogID);
|
||||
this.Controls.Add(this.BandwithComboBox);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.BandwithTextbox);
|
||||
this.Controls.Add(this.bmbfBox);
|
||||
this.Controls.Add(this.nodevicemodeBox);
|
||||
this.Controls.Add(this.CblindBox);
|
||||
this.Controls.Add(this.userJsonOnGameInstall);
|
||||
this.Controls.Add(this.updateConfigCheckBox);
|
||||
this.Controls.Add(this.deleteAfterInstallCheckBox);
|
||||
this.Controls.Add(this.enableMessageBoxesCheckBox);
|
||||
this.Controls.Add(this.CrashLogCopy);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.DebugLogCopy);
|
||||
this.Controls.Add(this.applyButton);
|
||||
this.Controls.Add(this.checkForUpdatesCheckBox);
|
||||
@@ -240,10 +363,14 @@
|
||||
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.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "SettingsForm";
|
||||
this.ShowIcon = false;
|
||||
this.Text = "Settings";
|
||||
this.TopMost = true;
|
||||
this.Load += new System.EventHandler(this.SettingsForm_Load);
|
||||
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.SettingsForm_KeyPress);
|
||||
this.Leave += new System.EventHandler(this.SettingsForm_Leave);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -262,6 +389,14 @@
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.ComboBox BandwithComboBox;
|
||||
private System.Windows.Forms.Button DebugLogCopy;
|
||||
private System.Windows.Forms.Button CrashLogCopy;
|
||||
private System.Windows.Forms.Label crashlogID;
|
||||
private System.Windows.Forms.Button button1;
|
||||
public System.Windows.Forms.Label debuglogID;
|
||||
private System.Windows.Forms.TextBox DebugID;
|
||||
public System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private System.Windows.Forms.CheckBox CblindBox;
|
||||
private System.Windows.Forms.CheckBox nodevicemodeBox;
|
||||
private System.Windows.Forms.CheckBox bmbfBox;
|
||||
}
|
||||
}
|
||||
137
SettingsForm.cs
137
SettingsForm.cs
@@ -15,26 +15,33 @@ namespace AndroidSideloader
|
||||
private void SettingsForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.CenterToParent();
|
||||
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.CurrentLogName))
|
||||
textBox1.Text = Properties.Settings.Default.CurrentCrashName;
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.CurrentLogPath))
|
||||
DebugID.Text = Properties.Settings.Default.CurrentLogName;
|
||||
debuglogID.Text = "This is your DebugLogID. Click on your DebugLogID to copy it to your clipboard.";
|
||||
intSettings();
|
||||
|
||||
intToolTips();
|
||||
}
|
||||
|
||||
//Init form objects with values from settings
|
||||
private void intSettings()
|
||||
{
|
||||
CblindBox.Checked = Properties.Settings.Default.QblindOn;
|
||||
checkForUpdatesCheckBox.Checked = Properties.Settings.Default.checkForUpdates;
|
||||
enableMessageBoxesCheckBox.Checked = Properties.Settings.Default.enableMessageBoxes;
|
||||
deleteAfterInstallCheckBox.Checked = Properties.Settings.Default.deleteAllAfterInstall;
|
||||
updateConfigCheckBox.Checked = Properties.Settings.Default.autoUpdateConfig;
|
||||
userJsonOnGameInstall.Checked = Properties.Settings.Default.userJsonOnGameInstall;
|
||||
if (Properties.Settings.Default.BandwithLimit.Length>1)
|
||||
nodevicemodeBox.Checked = Properties.Settings.Default.nodevicemode;
|
||||
bmbfBox.Checked = Properties.Settings.Default.BMBFchecked;
|
||||
|
||||
if (Properties.Settings.Default.BandwithLimit.Length > 1)
|
||||
{
|
||||
BandwithTextbox.Text = Properties.Settings.Default.BandwithLimit.Remove(Properties.Settings.Default.BandwithLimit.Length - 1);
|
||||
BandwithComboBox.Text = Properties.Settings.Default.BandwithLimit[Properties.Settings.Default.BandwithLimit.Length-1].ToString();
|
||||
BandwithComboBox.Text = Properties.Settings.Default.BandwithLimit[Properties.Settings.Default.BandwithLimit.Length - 1].ToString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void intToolTips()
|
||||
@@ -51,34 +58,45 @@ namespace AndroidSideloader
|
||||
|
||||
|
||||
|
||||
private void DebugLogCopy_click(object sender, EventArgs e)
|
||||
public void DebugLogCopy_click(object sender, EventArgs e)
|
||||
{
|
||||
if (File.Exists($"{Properties.Settings.Default.MainDir}\\debuglog.txt"))
|
||||
if (File.Exists($"{Properties.Settings.Default.CurrentLogPath}"))
|
||||
{
|
||||
if (File.Exists($"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\\debuglog.txt"))
|
||||
File.Delete($"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\\debuglog.txt");
|
||||
System.IO.File.Copy($"{Properties.Settings.Default.MainDir}\\debuglog.txt", $"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\\debuglog.txt", true);
|
||||
MessageBox.Show("debuglog.txt copied to your desktop!");
|
||||
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).");
|
||||
}
|
||||
}
|
||||
|
||||
private void CrashLogCopy_click(object sender, EventArgs e)
|
||||
|
||||
public void button1_click(object sender, EventArgs e)
|
||||
{
|
||||
if (File.Exists($"{Properties.Settings.Default.MainDir}\\crashlog.txt"))
|
||||
|
||||
if (File.Exists($"{Properties.Settings.Default.CurrentLogPath}"))
|
||||
File.Delete($"{Properties.Settings.Default.CurrentLogPath}");
|
||||
if (File.Exists($"{Environment.CurrentDirectory}\\debuglog.txt"))
|
||||
File.Delete($"{Environment.CurrentDirectory}\\debuglog.txt");
|
||||
|
||||
|
||||
if (File.Exists($"{Environment.CurrentDirectory}\\nouns\\nouns.txt"))
|
||||
{
|
||||
if (File.Exists($"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\\crashlog.txt"))
|
||||
File.Delete($"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\\crashlog.txt");
|
||||
System.IO.File.Copy($"{Properties.Settings.Default.MainDir}\\crashlog.txt", $"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\\crashlog.txt", true);
|
||||
MessageBox.Show("crashlog.txt copied to your desktop!");
|
||||
|
||||
string[] lines = File.ReadAllLines($"{Environment.CurrentDirectory}\\nouns\\nouns.txt");
|
||||
Random r = new Random();
|
||||
int x = r.Next(6806);
|
||||
int y = r.Next(6806);
|
||||
string randomnoun = lines[new Random(x).Next(lines.Length)];
|
||||
string randomnoun2 = lines[new Random(y).Next(lines.Length)];
|
||||
string combined = randomnoun + "-" + randomnoun2;
|
||||
Properties.Settings.Default.CurrentLogPath = Environment.CurrentDirectory + "\\" + combined + ".txt";
|
||||
Properties.Settings.Default.CurrentLogName = combined;
|
||||
Properties.Settings.Default.Save();
|
||||
DebugID.Text = combined;
|
||||
this.Close();
|
||||
SettingsForm Form = new SettingsForm();
|
||||
Form.Show();
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
MessageBox.Show("No crashlog found!");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -133,5 +151,78 @@ namespace AndroidSideloader
|
||||
Properties.Settings.Default.userJsonOnGameInstall = userJsonOnGameInstall.Checked;
|
||||
}
|
||||
|
||||
private void SettingsForm_KeyPress(object sender, KeyPressEventArgs e)
|
||||
{
|
||||
if (e.KeyChar == (char)Keys.Escape)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void SettingsForm_Leave(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
|
||||
|
||||
private void Form_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Escape)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
protected override bool ProcessDialogKey(Keys keyData)
|
||||
{
|
||||
if (Form.ModifierKeys == Keys.None && keyData == Keys.Escape)
|
||||
{
|
||||
this.Close();
|
||||
return true;
|
||||
}
|
||||
return base.ProcessDialogKey(keyData);
|
||||
}
|
||||
|
||||
private void DebugID_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\" + Properties.Settings.Default.CurrentLogName + ".txt"))
|
||||
Clipboard.SetText(DebugID.Text);
|
||||
MessageBox.Show("DebugLogID copied to clipboard! Paste it to a moderator/helper for assistance!");
|
||||
}
|
||||
|
||||
private void textBox1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!String.IsNullOrEmpty(Properties.Settings.Default.CurrentCrashName))
|
||||
{
|
||||
Clipboard.SetText(textBox1.Text);
|
||||
MessageBox.Show("CrashLogID copied to clipboard! Paste it to a moderator/helper for assistance!");
|
||||
}
|
||||
}
|
||||
|
||||
private void CblindBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
Properties.Settings.Default.QblindOn = CblindBox.Checked;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
}
|
||||
|
||||
private void CblindBox_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (CblindBox.Checked)
|
||||
MessageBox.Show("You must restart Rookie's Sideloader OR click Refresh Updates List for changes to take effect.\n\nNOTE: Colors in the legend at the top right of the main window of Rookie won't update until you restart the program.");
|
||||
}
|
||||
|
||||
private void nodevicemodeBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.nodevicemode = nodevicemodeBox.Checked;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
|
||||
private void bmbfBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.BMBFchecked = bmbfBox.Checked;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,10 +35,7 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
}
|
||||
|
||||
//List of all installed package names from connected device
|
||||
public static Dictionary<string, string> InstalledPackages = new Dictionary<string, string>(); //Packagename and Version
|
||||
//public static List<string> InstalledPackageNames = new List<string>();
|
||||
|
||||
//Remove folder from device
|
||||
//public static List<string> InstalledPackageNames = new List<string>(); //Remove folder from device
|
||||
public static ProcessOutput RemoveFolder(string path)
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
@@ -62,7 +59,7 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
{
|
||||
Program.form.ChangeTitle($"Running {cmd}");
|
||||
Logger.Log($"Logging command: {cmd} from file: {path}");
|
||||
output += ADB.RunCommandToString(cmd, path);
|
||||
ADB.RunCommandToString(cmd, path);
|
||||
}
|
||||
if (cmd.StartsWith("adb"))
|
||||
{
|
||||
@@ -135,19 +132,11 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
ProcessOutput output = new ProcessOutput("", "");
|
||||
|
||||
string packageName = Sideloader.gameNameToPackageName(GameName);
|
||||
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show($"Are you sure you want to uninstall {packageName}? this CANNOT be undone!", "WARNING!", MessageBoxButtons.YesNo);
|
||||
if (dialogResult != DialogResult.Yes)
|
||||
return output;
|
||||
|
||||
output = ADB.UninstallPackage(packageName);
|
||||
|
||||
//remove both data and obb if there is any
|
||||
Sideloader.RemoveFolder("/sdcard/Android/obb/" + packageName);
|
||||
Sideloader.RemoveFolder("/sdcard/Android/data/" + packageName);
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
@@ -170,6 +159,7 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
//Extracts apk from device, saves it by package name to sideloader folder
|
||||
public static ProcessOutput getApk(string GameName)
|
||||
{
|
||||
|
||||
ADB.WakeDevice();
|
||||
ProcessOutput output = new ProcessOutput("", "");
|
||||
|
||||
@@ -182,16 +172,18 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
apkPath = apkPath.Remove(apkPath.Length - 1);
|
||||
apkPath = apkPath.Remove(0, 8); //remove package:
|
||||
apkPath = apkPath.Remove(apkPath.Length - 1);
|
||||
|
||||
if (File.Exists($"{Properties.Settings.Default.ADBFolder}\\base.apk"))
|
||||
File.Delete($"{Properties.Settings.Default.ADBFolder}\\base.apk");
|
||||
if (File.Exists($"{Properties.Settings.Default.MainDir}\\{packageName}\\{packageName}.apk"))
|
||||
File.Delete($"{Properties.Settings.Default.MainDir}\\{packageName}\\{packageName}.apk");
|
||||
output += ADB.RunAdbCommandToString("pull " + apkPath); //pull apk
|
||||
|
||||
if (Directory.Exists($"{Properties.Settings.Default.MainDir}\\{packageName}"))
|
||||
Directory.Delete($"{Properties.Settings.Default.MainDir}\\{packageName}", true);
|
||||
|
||||
Directory.CreateDirectory($"{Properties.Settings.Default.MainDir}\\{packageName}");
|
||||
|
||||
if (File.Exists(Properties.Settings.Default.MainDir + "\\" + packageName + ".apk"))
|
||||
File.Delete(Properties.Settings.Default.MainDir + "\\" + 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");
|
||||
|
||||
File.Move($"{Properties.Settings.Default.ADBFolder}\\base.apk", $"{Properties.Settings.Default.MainDir}\\{packageName}\\{packageName}.apk");
|
||||
return output;
|
||||
}
|
||||
|
||||
@@ -199,14 +191,47 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
{
|
||||
foreach (string[] game in SideloaderRCLONE.games)
|
||||
{
|
||||
if (gameName.Equals(game[SideloaderRCLONE.GameNameIndex]))
|
||||
if (gameName.Contains(game[SideloaderRCLONE.GameNameIndex]))
|
||||
return game[SideloaderRCLONE.PackageNameIndex];
|
||||
if (gameName.Equals(game[SideloaderRCLONE.ReleaseNameIndex]))
|
||||
if (gameName.Contains(game[SideloaderRCLONE.ReleaseNameIndex]))
|
||||
return game[SideloaderRCLONE.PackageNameIndex];
|
||||
}
|
||||
return gameName;
|
||||
}
|
||||
|
||||
public static string PackageNametoGameName(string gameName)
|
||||
{
|
||||
foreach (string[] game in SideloaderRCLONE.games)
|
||||
{
|
||||
if (gameName.Contains(game[SideloaderRCLONE.PackageNameIndex]))
|
||||
return game[SideloaderRCLONE.ReleaseNameIndex];
|
||||
}
|
||||
return gameName;
|
||||
}
|
||||
|
||||
public static string gameNameToSimpleName(string gameName)
|
||||
{
|
||||
foreach (string[] game in SideloaderRCLONE.games)
|
||||
{
|
||||
if (gameName.Contains(game[SideloaderRCLONE.GameNameIndex]))
|
||||
return game[SideloaderRCLONE.GameNameIndex];
|
||||
if (gameName.Contains(game[SideloaderRCLONE.ReleaseNameIndex]))
|
||||
return game[SideloaderRCLONE.GameNameIndex];
|
||||
}
|
||||
return gameName;
|
||||
}
|
||||
|
||||
public static string PackageNameToSimpleName(string gameName)
|
||||
{
|
||||
foreach (string[] game in SideloaderRCLONE.games)
|
||||
{
|
||||
if (gameName.Contains(game[SideloaderRCLONE.PackageNameIndex]))
|
||||
return game[SideloaderRCLONE.GameNameIndex];
|
||||
}
|
||||
return gameName;
|
||||
}
|
||||
|
||||
|
||||
//Downloads the required files
|
||||
public static void downloadFiles()
|
||||
{
|
||||
|
||||
@@ -7,6 +7,15 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
class rcloneFolder
|
||||
{
|
||||
public string Path { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string Size { get; set; }
|
||||
public string ModTime { get; set; }
|
||||
|
||||
}
|
||||
|
||||
class SideloaderRCLONE
|
||||
{
|
||||
public static List<string> RemotesList = new List<string>();
|
||||
@@ -32,12 +41,18 @@ namespace AndroidSideloader
|
||||
*/
|
||||
public static List<string[]> games = new List<string[]>();
|
||||
|
||||
public static string Nouns = Environment.CurrentDirectory + "\\nouns";
|
||||
public static string ThumbnailsFolder = Environment.CurrentDirectory + "\\thumbnails";
|
||||
public static string NotesFolder = Environment.CurrentDirectory + "\\notes";
|
||||
|
||||
public static void UpdateNouns(string remote)
|
||||
{
|
||||
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/nouns\" \"{Nouns}\"");
|
||||
}
|
||||
|
||||
public static void UpdateGamePhotos(string remote)
|
||||
{
|
||||
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/thumbnails\" \"{ThumbnailsFolder}\"");
|
||||
RCLONE.runRcloneCommand($"sync \"{remote}:{RcloneGamesFolder}/.meta/thumbnails\" \"{ThumbnailsFolder}\"");
|
||||
}
|
||||
|
||||
public static void UpdateGameNotes(string remote)
|
||||
@@ -72,20 +87,48 @@ namespace AndroidSideloader
|
||||
games.Clear();
|
||||
string tempGameList = RCLONE.runRcloneCommand($"cat \"{remote}:{RcloneGamesFolder}/GameList.txt\"").Output;
|
||||
if (MainForm.debugMode)
|
||||
{
|
||||
File.WriteAllText("GamesList.txt", tempGameList);
|
||||
}
|
||||
string gamePropertiesLine = Utilities.StringUtilities.RemoveEverythingAfterFirst(tempGameList, "\n");
|
||||
|
||||
foreach (string gameProperty in gamePropertiesLine.Split(';'))
|
||||
{
|
||||
gameProperties.Add(gameProperty);
|
||||
}
|
||||
gameProperties.Add("Last Updated");
|
||||
|
||||
|
||||
tempGameList = Utilities.StringUtilities.RemoveEverythingBeforeFirst(tempGameList, "\n");
|
||||
|
||||
List<rcloneFolder> gameFolders = JsonConvert.DeserializeObject<List<rcloneFolder>>(RCLONE.runRcloneCommand($"lsjson \"{remote}:{RcloneGamesFolder}\"").Output);
|
||||
if (gameFolders == null || gameFolders.Count < 1)
|
||||
{
|
||||
Program.form.SwitchMirrors();
|
||||
gameFolders = JsonConvert.DeserializeObject<List<rcloneFolder>>(RCLONE.runRcloneCommand($"lsjson \"{remote}:{RcloneGamesFolder}\"").Output);
|
||||
}
|
||||
|
||||
|
||||
foreach (string game in tempGameList.Split('\n'))
|
||||
{
|
||||
if (game.Length > 1)
|
||||
games.Add(game.Split(';'));
|
||||
{
|
||||
string[] splitGame = game.Split(';');
|
||||
|
||||
//gameFolder.find();
|
||||
Array.Resize(ref splitGame, splitGame.Length + 1);
|
||||
|
||||
var gameSynced = gameFolders.Exists((predicate) => predicate.Path == splitGame[1]);
|
||||
if (gameSynced)
|
||||
{
|
||||
var gameFolder = gameFolders.Find((predicate) => predicate.Path == splitGame[1]);
|
||||
//splitGame[6] = gameFolder.ModTime;
|
||||
string gametime = Utilities.StringUtilities.RemoveEverythingAfterLast(gameFolder.ModTime, ":");
|
||||
gametime = gametime.Replace("T", " ");
|
||||
splitGame[splitGame.Length - 1] = gametime;
|
||||
games.Add(splitGame);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Output
|
||||
@@ -94,12 +137,20 @@ namespace AndroidSideloader
|
||||
//{
|
||||
// Console.WriteLine($"gameProperty: {s}");
|
||||
//}
|
||||
|
||||
|
||||
|
||||
foreach (string[] s in games)
|
||||
{
|
||||
string output = "";
|
||||
for (int i = 0; i < gameProperties.Count; i++)
|
||||
output += s[i] + " ";
|
||||
//string output = "";
|
||||
//for (int i = 0; i < gameProperties.Count; i++)
|
||||
// output += s[i] + " ";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
using System.IO;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Management;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
@@ -13,5 +17,47 @@ namespace AndroidSideloader
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
public static string UUID()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2",
|
||||
"SELECT * FROM Win32_Processor");
|
||||
|
||||
foreach (ManagementObject queryObj in searcher.Get())
|
||||
{
|
||||
sb.Append(queryObj["NumberOfCores"]);
|
||||
sb.Append(queryObj["ProcessorId"]);
|
||||
sb.Append(queryObj["Name"]);
|
||||
sb.Append(queryObj["SocketDesignation"]);
|
||||
}
|
||||
|
||||
searcher = new ManagementObjectSearcher("root\\CIMV2",
|
||||
"SELECT * FROM Win32_BIOS");
|
||||
|
||||
foreach (ManagementObject queryObj in searcher.Get())
|
||||
{
|
||||
sb.Append(queryObj["Manufacturer"]);
|
||||
sb.Append(queryObj["Name"]);
|
||||
sb.Append(queryObj["Version"]);
|
||||
|
||||
}
|
||||
|
||||
searcher = new ManagementObjectSearcher("root\\CIMV2",
|
||||
"SELECT * FROM Win32_BaseBoard");
|
||||
|
||||
foreach (ManagementObject queryObj in searcher.Get())
|
||||
{
|
||||
sb.Append(queryObj["Product"]);
|
||||
}
|
||||
|
||||
var bytes = Encoding.ASCII.GetBytes(sb.ToString());
|
||||
SHA256Managed sha = new SHA256Managed();
|
||||
|
||||
byte[] hash = sha.ComputeHash(bytes);
|
||||
|
||||
return BitConverter.ToString(hash).Replace("-", "");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
10
Updater.cs
10
Updater.cs
@@ -16,10 +16,12 @@ namespace AndroidSideloader
|
||||
public static string Repostory { get; set; }
|
||||
private static string RawGitHubUrl;
|
||||
private static string GitHubUrl;
|
||||
static readonly public string LocalVersion = "2.1.3.2";
|
||||
|
||||
static readonly public string LocalVersion = "2.8.5";
|
||||
public static string currentVersion = string.Empty;
|
||||
public static string changelog = string.Empty;
|
||||
|
||||
//Check if there is a new version of the sideloader
|
||||
private static bool IsUpdateAvailable()
|
||||
{
|
||||
HttpClient client = new HttpClient();
|
||||
@@ -32,6 +34,8 @@ namespace AndroidSideloader
|
||||
catch { return false; }
|
||||
return LocalVersion != currentVersion;
|
||||
}
|
||||
|
||||
//Call this to ask the user if they want to update
|
||||
public static void Update()
|
||||
{
|
||||
RawGitHubUrl = $"https://raw.githubusercontent.com/nerdunit/androidsideloader";
|
||||
@@ -40,11 +44,14 @@ namespace AndroidSideloader
|
||||
doUpdate();
|
||||
}
|
||||
|
||||
//If the user wants to update
|
||||
private static void doUpdate()
|
||||
{
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show($"There is a new update you have version {LocalVersion}, do you want to update?\nCHANGELOG\n{changelog}", $"Version {currentVersion} is available", MessageBoxButtons.YesNo);
|
||||
if (dialogResult != DialogResult.Yes)
|
||||
return;
|
||||
|
||||
//Download new sideloader with version appended to file name so there is no chance of overwriting the current exe
|
||||
try
|
||||
{
|
||||
var fileClient = new WebClient();
|
||||
@@ -56,6 +63,7 @@ namespace AndroidSideloader
|
||||
|
||||
Logger.Log($"Starting {AppName} v{currentVersion}.exe");
|
||||
Process.Start($"{AppName} v{currentVersion}.exe");
|
||||
//Delete current version
|
||||
AndroidSideloader.Utilities.GeneralUtilities.Melt();
|
||||
}
|
||||
catch { }
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
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 time = DateTime.Now.ToString("hh:mmtt(UTC): ");
|
||||
if (text.Length > 5)
|
||||
{
|
||||
@@ -16,7 +17,7 @@ namespace AndroidSideloader
|
||||
string newline = "\n";
|
||||
if (text.Length > 40 && text.Contains("\n"))
|
||||
newline += "\n\n";
|
||||
try { File.AppendAllText(logfile, time + text + newline); } catch { }
|
||||
try {File.AppendAllText(Properties.Settings.Default.CurrentLogPath, time + text + newline); } catch { }
|
||||
return ret;
|
||||
}
|
||||
return ret;
|
||||
|
||||
36
Utilities/UploadGame.cs
Normal file
36
Utilities/UploadGame.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AndroidSideloader.Utilities
|
||||
{
|
||||
class UploadGame
|
||||
{
|
||||
private string uploadcommand;
|
||||
public string Uploadcommand
|
||||
{
|
||||
get => uploadcommand;
|
||||
set => uploadcommand = value;
|
||||
}
|
||||
private string pckgcommand;
|
||||
public string Pckgcommand
|
||||
{
|
||||
get => pckgcommand;
|
||||
set => pckgcommand = value;
|
||||
}
|
||||
private string uploadgamename;
|
||||
public string Uploadgamename
|
||||
{
|
||||
get => uploadgamename;
|
||||
set => uploadgamename = value;
|
||||
}
|
||||
private ulong uploadversion;
|
||||
public ulong Uploadversion
|
||||
{
|
||||
get => uploadversion;
|
||||
set => uploadversion = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
886
changelog.txt
886
changelog.txt
@@ -1,878 +1,20 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
RSL 2.8.5
|
||||
|
||||
RSL 2.1.3.2
|
||||
+ Added OPT-IN installed packages check,
|
||||
this will be used to add common free apps
|
||||
to a blacklist so a future version of RSL
|
||||
can ask users to donate new apps.
|
||||
|
||||
+ 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-----
|
||||
= Fixed logic for apk signature mismatch
|
||||
automatic reinstall.
|
||||
|
||||
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-----
|
||||
= Increased timer for apk installation
|
||||
failure to 3 minutes.
|
||||
|
||||
= Fixed blacklist implementation for
|
||||
updates to apps already on RSL.
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
- Removed 2nd confirmation dialog for
|
||||
app uninstalls.
|
||||
|
||||
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.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmC2YLYACgkQx/Rql1Vo
|
||||
czfzXxAAlgKvec94/48QX27BYxVLExEO1AukM7c3D4ONDq4xz6R7jZdoGTbSpfPg
|
||||
IVbJX8ZeMVQS5yPQr3YOEYdfunU5olu2+XMx5be0uuq0VpZsHdh4Z99GDZId+YFX
|
||||
W9AJ86p0l9Z6m6npJnc64Fz+3akq8bbZVNHjIpTl99ZSpNMuwYtGpKzNjDXZ9h/Q
|
||||
v4xQKlCJy7pZO9XY6wEf1z0s+2dMCAGTnfVP6nSXwhx+jKHudRcIRNy7vfgke7d6
|
||||
tVGRQxe0UP1fth9D80R6y+PGw318kNxqPH5b9bN5+PJrHwaHdQ7vXwrVdgVU4g12
|
||||
53bGcRdNH1+N0mEXCz0VQyYmd73HVYtNYYEtocUY+I/W/sxBqbPcvVJ+XZinFfdg
|
||||
BaX5I2M5Ub56wUtyzpP3OoFkIMAN6/Z9S1k/Mq2qTPH/aGtprFzWgmg32kWHi9/n
|
||||
64uIf4TQlr4o6t0MrMR1pk/F38Rnow66sn5v4eOQ01c9bFOANTMxL2fQiZluSK98
|
||||
36eYYdxPkSwPiRDVZTrwOOPbJfiHeKREHFcBT2C7OehJm5PkueSzW+CVnjSfH92q
|
||||
yjp1+zGEaYn5pos+TeaN22uG0L3U5wbfUuCHSHWstIMEwx0aroKhRyou1MtZn40W
|
||||
k5PjmtDRjt36eLH3MzSxnhwydFrC2V2rl6UbtxjYjdlqEEdFlX4=
|
||||
=224y
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
!!!IMPORTANT!!!
|
||||
THIS VERSION IS A WORK IN PROGRESS DUE TO LACK OF TESTERS!!!
|
||||
|
||||
v2.1
|
||||
|
||||
-Changes-
|
||||
|
||||
+ Backups are now stored in Documents\Rookie Backups\(BackupDate) folder.
|
||||
+ 404 error fixed.
|
||||
+ If installing an app that has a different patching method or signature than the previous version did user will now recieve a prompt for the option to upgrade which will backup savedata then uninstall and reinstall the app. NOTE: Not all apps allow backup of savedata.
|
||||
+ Refresh updates list now loads much faster and refreshes the main update list.
|
||||
+ Added Wireless ADB functionality.
|
||||
+ Added Enable Wireless ADB and Remove Wireless ADB buttons to main menu.
|
||||
+ Added ">" symbols on collapsible and expandable menu items to let user know they can be expanded/collapsed.
|
||||
+ "Hand/Finger pointer" symbol added above clickable main menu buttons to let user know they're clickable.
|
||||
+ Added logic to allow entire list to load and compare installed versions with Rclone versions before populating and added informative text of this step to the bottom/title bar.
|
||||
+ Added QU Settings for their newest patch method. Can be found under Quest Options, this will allow you to change settings for any games that include "-QU" in the version/filename. Click Enable QU Settings box to reveal the options.
|
||||
DETAILS: Clicking enable again will remove the settings file, if you re-enable you MUST click apply again for it to work. QU Settings are applied automatically when any games are Downloaded/Installed via Rookie as long as the custom settings been enabled and applied in the Quest Options menu.Once applied they can also be added to any already installed titles by selecting the game you wish to add them to in the menu at the top of RSL in the main window then(the same list used to uninstall games) then clicking on Install QU Setting. To remove a setting for a game select it from the same menu and click Remove QU Setting. If you click Delete Custom Settings in Quest Options it will not delete settings for any games installed while it was enabled, you must do this with the previously mentioned Remove QU Setting option. Clear Settings just clears the values entered in the fields. Settings entered into those fields will persist between instances of RSL.
|
||||
+ Public key for HarryEffingPotter(Rookie contributor/VRPE dev) added to Rookie directory.
|
||||
= Fixed Install.txt automation to make Manual installs automatic.
|
||||
|
||||
- -HarryEffingPotter-
|
||||
|
||||
Released: May 29th 2021
|
||||
|
||||
|
||||
Public key for Rookie and HarryEffingPotter included in Rookie directory along with Checksum(can be run with QuickSFV.exe)
|
||||
|
||||
THIS SOFTWARE IS FREE TO USE, IF YOU PAID FOR IT YOU WERE RIPPED OFF. We can be found on Telegram @ t.me/VRPirates.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmCyMHUACgkQx/Rql1Vo
|
||||
czeJ+Q//ZBEopVVZVc/IcmYFS05hUy+xHFd8QWajSCAFsQVyCctEPEzsluOSmwM1
|
||||
OQlO0awzMM4s9IWwPIk0/caML7ZgkwDlIxR7KgasgI+BirrFCz1VImILoF1CiSHV
|
||||
q5Xj6GQ3NPE0xK1QDe4fCVdXX+VScqQOAnP/ohkfHfuP0ce6KKxZpH/UeafDjh+V
|
||||
Birzv6a+1dMnewJHnAwn6xg5Q8jvPT4Iz++t4XBS3k/dg5bMpLg4T6dwPnuJ3zjh
|
||||
muThmNzBSw1ICegO/SaF8jhgGrhwVsF7aM9pVv2fvYaFpDbuxITQOcV+jcvO6Orf
|
||||
R/LTf26pdguQnuc/KLWMCthMtNr1O7q3tnVF8DGVio5yzL0lKfVkDqjb3Qp+GTYB
|
||||
f/lZyrzKZyt1OaVInmxtLsj5wavQtcYRUeJGU9ABd6yb9ecmgJlP6rwPR1RMiZWS
|
||||
B/nEC8td1JeTK7qhop/FA1qoQ9Z+2cSVCuILKcKj8B1ushxQzDdIDeqrwPxz98Ta
|
||||
5voJKtq8wWtV8gkldVCvZRvlIi3qaIFBLutnY5AqTxmDHgaTdF1l3adauK32alyL
|
||||
xUsQits39mBui6bMBw1fCfw1zu3uqh7gylZ/j0t+XLVDJtIC+UcRTjjIpRLeHjM8
|
||||
O8gLNx7jFtRtm/vO1jAlS7Zu3LHIxq6I9kwOZsbwNQe7yqfUwPw=
|
||||
=iJ4Y
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
!!!IMPORTANT!!!
|
||||
THIS VERSION IS WORK IN PROGRESS DUE TO LACK OF TESTERS!
|
||||
Due to how the rclone config works now, if you used Rookie's Sideloader with a custom config
|
||||
Make sure to redownload the entire rclone folder from the config provider!
|
||||
|
||||
I forgot, adb usb isn't called at start so the last changelog was wrong
|
||||
Also this was the first release to use GIT and sideloader had broken updates so thats why the huge ammount of commits in such a short time sorry
|
||||
|
||||
v2.0-WIP-SU1
|
||||
|
||||
Changes
|
||||
= Enabled mount button
|
||||
= Pushed UI Changes made by harry
|
||||
|
||||
|
||||
Date 15/04/2021
|
||||
|
||||
VT: https://bit.ly/3uPda5K
|
||||
|
||||
MD5 Checksum: 4259AD179E8C56478828FFFC38586BE0
|
||||
SHA-1 Checksum: 44C1754D0CD0B1677A73BE5A10B05E02BC85E6B7
|
||||
SHA-256 Checksum: 8D6CCFB6DDA656BB3FEB1EBAB4F3BA9D9A0D431398A80F23F8C1E097DEB8B827
|
||||
SHA-512 Checksum: B6DF140C00E3761698C604BCD1A8835C6B2EB5BE18477C3BB69900E2353EE42C196A475E81A95D495C346C35CD2100148FA5E5A0C03D3FEBCB4F469E7E8C6EBF
|
||||
|
||||
You can always get my public key from miligra.me/pgp
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAmB3+4UACgkQvrtJUNxE
|
||||
TxP75BAAknKjeZmhvXGn8ScYyRIdl/hOk0fjJ8tk4UJBFByrMqDJPyGsQW5z+bRl
|
||||
RinNEmV0LWfT1I4wFoX755NXBoQfxd2ZgRo9EQ5w6AxeVoml1vL7p38NbmQZ2dEb
|
||||
nXJFz0Ds+8jW+LDcCBC05rQjOoz3yiFm+lXQpQfuX0/KppJn7aFmijSZ11dFytWI
|
||||
Ih8aOQVmrt7PUwIFT0ZZbHuQsFjN5cNWUK3S+s7qnjo6RLRiwmbSGO6Bt9vnAgtR
|
||||
IlaRa9im4wjWnCGrXw7cLv44SkaHuolJ7fGWN5kgO3ulOsqz5/scsRG57RQjCxlQ
|
||||
9wbveyROLCAbuJ4GVcgKPTimVIuZJg4rE1exV1ey3oYopjrfXOkqbeUILQFOGqIf
|
||||
oQ7qEIMx8hOcT5Yz81eddSKZXOOBUgYuI91XX+ROwb4DXkAWZbqSWEZcUuKUz95P
|
||||
U6mEqdtCEE3OVEzA1w/eW+o3l3m6nPc60SFV2jpNQPV/QOZYme4njOOmpvqrCqQN
|
||||
4HQse91FJdkIllIL6DgfcavvpKqpstuBH3iY8DWUu4rb6HX+OimscFKmJCXNKYO3
|
||||
peCKU/Rq4zAZXCxtxJRlitgPaBx/RUdQ2ZtWR+86aUlNSvE+9X0FCPY0iiqQ7/iy
|
||||
2V28poXEr5Nn5zn3EfiTjBooJ9LM9Kmc3tV0uxUlbAT2MdxhNak=
|
||||
=+19T
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
!!!IMPORTANT!!!
|
||||
THIS VERSION IS WORK IN PROGRESS DUE TO LACK OF TESTERS!
|
||||
Due to how the rclone config works now, if you used Rookie's Sideloader with a custom config
|
||||
Make sure to redownload the entire rclone folder from the config provider!
|
||||
|
||||
v2.0-WIP
|
||||
|
||||
Changes
|
||||
+ Added update checker for games
|
||||
+ Added dependency check for spoofer
|
||||
+ Games now can have images
|
||||
+ Replaced the gamescombo box with a listview
|
||||
+ Listview marks already installed games with green and outdated ones with yellow
|
||||
+ Sideloader should be faster now
|
||||
+ Reduced sideloader size
|
||||
+ Installing games and copying obbs tries to wake the device first
|
||||
+ Sideloader calls adb usb on start now
|
||||
+ ADB Output now is a proper object containing strings for stdout and stderr, handling will be easier now
|
||||
+ Changed spoof on rclone install to resign, allowing users to easily update games from now on!
|
||||
//You can still use the spoof button manually
|
||||
= Fixed UI not starting for some people
|
||||
= Refreshing mirrors now deosn't change the selected mirror
|
||||
= Cleaned & reworked code in sideloader and spoofer
|
||||
= Fixed Spoofer.Init() on Non-English Windows
|
||||
= Fixed crash detection
|
||||
= Reworked rclone config handling
|
||||
= Fixed game release not existing resulted in a crash
|
||||
= Sideloader false positive detections reduced
|
||||
= Small ui changes, hopefully for the better
|
||||
|
||||
Date 13/04/2021
|
||||
|
||||
VT: https://bit.ly/3a3LvGg
|
||||
|
||||
MD5 Checksum: 597D4AC957F69D5B1860D14D15DD3904
|
||||
SHA-1 Checksum: EC78E4416D5222E507F46499B62A1D16880F84DF
|
||||
SHA-256 Checksum: B68EE3B95CA531CA4678FEAAFD13F75A69D4495879536A9D04094ECFFEEC86EA
|
||||
SHA-512 Checksum: D98F319986179B362D0F4C4E092FE6AF4ED8D1FD5445667F68280B43BF49C9DB7AC3B0F49690644CB46A7A391EDF36E82A8BCF7C52770498E6CACEA52D44EA4D
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAmB1rNsACgkQvrtJUNxE
|
||||
TxND0BAAgq4HKuNG/wxcYfari00+Vz56BdjWawZ5OvgcB/KuZLEWFXN5IpDktZrl
|
||||
S7M8xGsAffDJYa0qamnpB0aE6uBgp3RCa4oyZUUlYf5sRiVwz9lF2Ip7XWZlkkpT
|
||||
3zDYC4FSnPtlMP/97/OfMfdUSO97TpI+mEM2qtknl4dQZ8DdTugRWKWq0Kb+0ZI7
|
||||
mD4FpxZSyko1lzBKCvInr/5LQWPrNknRIOwzxH3T+BPr9CjhAoPduvJUT7QzZZAc
|
||||
+wYMUQYIb7M6zMy7iiiVtNlyIfwW8EnJdyE4p4NejIAQTOcFyvB7XTK/z2Ut7T1c
|
||||
/DIINF+Sat8wZ1mZ+c2I9+99StlwTSiYdWVZh2jW5F5wb8pWrgDrCmoG50X4gvWJ
|
||||
PGcWXG14x6TTAU0b55oPUEydWXMyxg9x/8IQA4IeDZGo9HdJDFfkW4hynTO675+o
|
||||
1AKr9dfdnAhgqqfw59eWtxh2epU67JAOIek7wikfOjNnVRykim4wZmHB/FC+hIuQ
|
||||
ppzs2QBxV2LknV3UeOklUMvR6n8Q/N0JZNxUde6o9HCOm2EbY27Iiho9wZI0+7Bk
|
||||
IL+cF4SdRdsBQHX6PLPk+1wX667A+QnwHOfkC9SXyUK+MI4CMvqZlzIitqT4QiFz
|
||||
r3JeCjJjYW4jwO7gKD8OM9CUMy+6+4C2ImS5CZ3cBB3KLXR59n4=
|
||||
=17aK
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.17SU1
|
||||
|
||||
Changes
|
||||
+ Added some instructions & checks for the spoofer
|
||||
+ Added crash detection
|
||||
= Fixed the game queue broken since 1.17
|
||||
|
||||
Date 11/19/2020
|
||||
|
||||
VT: https://bit.ly/3nDUMcx
|
||||
|
||||
MD5 Checksum: 6DA8ADBE4447A809C598379E73DC7F77
|
||||
SHA-1 Checksum: 924220FE8877174CCB9732F1F99B759DD6749102
|
||||
SHA-256 Checksum: 0405C389A7D84CAC0D9081BDE10D010300822B10EBC2FF94C501EC740C8CFA40
|
||||
SHA-512 Checksum: E8C3A15257C30278CEBC46507B1F6049FFB5AC0D6E4FBB73E1776537F80CBEA95C8C81A3F3259F8AEEDE276EBF6D50F6945622403E9D80B5E9E0F47B050BBEA9
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+2aycACgkQvrtJUNxE
|
||||
TxOlEw/6ArmiRFAjUNC2YaElJ7fFsXVzCaeJ680rs0CK4oX9P7YjZ46y2/VGDtX/
|
||||
IAGvWCqHOIw2t0sk01/JwoyKZFERLDn2MRCj9FTPsrPA8yqveiIx/fof90QaN2Q9
|
||||
4aV6ht+SSirQFWTXENboEbQSWxFHW/z5/Dud8gDBuCTuFuueBk+EAph5yI3dcjCK
|
||||
naDE1gX+CE21ef84F3nGMspu2q/uCaIM2mvEWR2hBvWLsQpH7m5uQegXGYywe6YC
|
||||
/8wEY2mEe0nayp/3NglDDarsPN8wx1U5i/kqS8wrzZZT49pRqKZ0wykWGfAPQsaO
|
||||
txmfiwH+5cu3J/6PpAMVuNjhtL0dnR5MapsXT3CoRvSiRDl2urdYJUQj1CsYOEWP
|
||||
Q4St6ISoUoANhVFRcM9mbq7clxdJnfBqdr1J0YrK804qWp3krDYv5hrpE3Puu/nA
|
||||
TORsqWiHPgQQHANsNYsY4WkvLiYHWyB62Cm2NATdtaoVWzsrBgFk9xlp1oIQcMXo
|
||||
RlRQZQ7tQ0VFFxaP7ARRaf9ay78geC3W/cr63JTn8Hz7Ul1h+ZRa7tb1KYvpCTnp
|
||||
xC7vh3IyBwc4M7mt4CxsjdFnkO3iaDybFvlufua/5vMlt70HLdutHa7vMYSZ+GFr
|
||||
HL+SrazP9o8ut2L85uBqCjWHPfgVaBaaQgk9FgZe0WQoS06fdeU=
|
||||
=DIzT
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.17
|
||||
Please manually update to this version, as it fixes automatic updates that were broken since 1.15
|
||||
|
||||
Changes
|
||||
+ Better game installation => no need for manual installation of games anymore
|
||||
+ Added theme changer back and updated it
|
||||
= Fixed updates
|
||||
= Updated quest options
|
||||
|
||||
Date 11/14/2020
|
||||
|
||||
VT: https://bit.ly/3lwztcn
|
||||
|
||||
MD5 Checksum: CC7BF16A3D687C21208E9E986D720CAE
|
||||
SHA-1 Checksum: CE0C71B4097068E84FA6FC65F4AFE69CBC79AA29
|
||||
SHA-256 Checksum: D9393C28376DDE1D0582BCF939D1414879EDE6772CE82F83F54C0EA0F239B2F0
|
||||
SHA-512 Checksum: 326C7A0177E9B8BCFA10CB3B8FAEA025F9C45C599DE5D46CA06DFEE427351F3AE88371C5A0827DEADF7D3F459052C421A145AA5581FE3C4BD2EFAD33BCFFC37B
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+wFCUACgkQvrtJUNxE
|
||||
TxO0ThAAw6po24zaYQFa+aGrgQNuWYWRxirCkLekEgmy8XVL6Q0rgMeLeq2MrCBP
|
||||
wi2eBMFlLNOXy1TXOhled89NRBiBeST2Hl4TVv0Qdavd9cSeuGD/rh/PsyxnxY2Y
|
||||
RWCPeXiYOf0mN1zVylLas+2vk9o/lrNieJir1nMEvyVbUJs8lTDcBdo2vVFwHK9N
|
||||
nStFPxjqRb8R6smTIsltIh4+juQQMX0GyCcEMUkb5aO6BP34Mpsoaf+9bxV/elJm
|
||||
UXnFSh5pjzHhkYGKVePtoHev8aFOzLeqIrfyWRJl+7gBMgYIautaxAIE+Zsy3Sai
|
||||
wxUk9HJeAYwEPhYcIJKGAy+fmeX/TePQjUqLu1Pp+sJ8orstSiMjwXr84UtvyUWZ
|
||||
+gSTgsQJ1QNUlhp+eJ0D6CchkAwliUXgnpIzwyn1Jj54X3ecHNjMbc5SettlXcBG
|
||||
qgy5bUx8+v4H4gHmqTyZQNv1bsvIiQlcwPPUtpSzSXrzJPfZjrqPZzUWB8/Vltqc
|
||||
JIR8FxEqi7+mW6AqrhUjE74N/fFibJTEuv6RALwZIAfMYEuSeFlZlDJYZ9v3H4/X
|
||||
2jd+wEksbq6uYUl2l3X/7TpMWX29paj18cLD8oTSLK/RvzLXe0hhUcvuHrMxi+14
|
||||
Q+V7uZYGge4Z5PANGPhd2tSkvw4CyA25OQ868QXjqciSLTfK2SU=
|
||||
=Yu78
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.16
|
||||
|
||||
Changes
|
||||
+ Speed Limiter for rclone
|
||||
= Random packagenames more random now
|
||||
= Bugfixes
|
||||
|
||||
Date 11/12/2020
|
||||
|
||||
VT: https://bit.ly/2K4Y5Lv
|
||||
|
||||
MD5 Checksum: 29978E435BF02865CE61EF6279FB42ED
|
||||
SHA-1 Checksum: 2E47CFDE7549D088A102F021657E9CD6859EAC47
|
||||
SHA-256 Checksum: 50057AC0DA315C492C9C45B5801AE99E65B812F5BC18E23622CCAF5FBC48760A
|
||||
SHA-512 Checksum: E485ADB6088C1F7DC34B65B57A9077E876D3D576D48CCED1FCA691A113CA5F6D0F8A0D31C6C848B6719FF18B7D4C5F829B9DAA8789EA6087F8B1D41005F87A48
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+tHY0ACgkQvrtJUNxE
|
||||
TxOpjRAAmjaIfvIP+HvfTMGKOEGoVRDIBqEyi8tzq8hn5Z3OadBVLkWT23WblQBw
|
||||
Ur6BN1fuhH5B8ToGoqX/C1lrgXsvHNDB8frGUWnO1G1KJAQEGwKPRdKyK7YPlrYm
|
||||
kK74CYuM8w7qjkhX3f50ECZ4Kj1WsE92mIHjfB1xLSGzN0o7Tr1EvFFDnuXrJ0I0
|
||||
vEbeto0Qo19ORcoP7KFPgGuYmMYJQ2MuwYmWDWAdm4iL1Y9vEKZ4TsHG+KmYPdo8
|
||||
19YoZj8PsgYxCBy9B+UZfkJnfF7gYKmiAsgnQviDc4BvZccfAVjmWcKkzJueDkvr
|
||||
GgFmbaFE48svC2NU8Qd2gq6gIX0JrnKACZqopqgorl1817Z7Rsdh2iVwTMOvxbe7
|
||||
a4kAtDN90KwuRlnwoxeCBdESDSrANbiNi1yaDZc5hr/xOxUsa1JKhk7/8mcdHj78
|
||||
QoCRoji60Cq8XYeRNDXI32TkZd7ql9c64AjGH1uSySIPXfehOa+m5S53Jo2dRh5p
|
||||
iI1LGHjTk7EDekIVRh/cPC+hohfUAKYbUcXp15cx0HndW5+galYIH/RAjF0L+Q1U
|
||||
THz36HpKvLSsgkVkeVjPNJn9Ow6xgyByLTkHrS9D7Kj78FrKiAKr08+aI3+WCpdq
|
||||
1G9HcH5VzDeZ7/jfVQPhsAn3dPxlTt6ReYzbeFkrO1UHFcTdl58=
|
||||
=KyH4
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.15HF1
|
||||
|
||||
Changes
|
||||
= Bugfixes
|
||||
|
||||
Date 11/06/2020
|
||||
|
||||
VT: https://bit.ly/2GDYWRU
|
||||
|
||||
MD5 Checksum: F0D51FEC94F8D266390E61E89E6A2EE0
|
||||
SHA-1 Checksum: 4FB43CFA6021B8360A23858169FAF15468B68EDF
|
||||
SHA-256 Checksum: CBE414D9A283871099057EE5D8E56AF408996AE9C996C31F92C4DAE16D48B024
|
||||
SHA-512 Checksum: F16A6B29ECABBB16D25B7F7FC52CB15AE4930B2B17ABAC791BF1F331270F40B047094FDEAF1EF834E72E26AA3A6762AF8BE13EBCB735EB1C1009F884E338D9DE
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+lfEkACgkQvrtJUNxE
|
||||
TxMDDxAAg+90vrCn0PllPEezzX3AJpy7NFWhFjUlDOLzNFMPa/QdAfF6H5vhEGay
|
||||
bhX2BDHKSIV86bLkyGPkGHuf3etpXvZsNAmPuDoZpZ4owd1O09DOvAHIJx8F1Eia
|
||||
Jc9Zovz6lKLAeIbK9ZdChKwTG3hYLIkx3rMgtvnJkZfzUKbhdU9MP0rVEzDPkSfe
|
||||
ay2CGA9xLBUhPcItUTxhANzrDpRXMGHqbi+Wrscp+KmvnjHzN3Haq2A9rsasXM5Z
|
||||
RSG8ccLZiI496tJQquTvPXYcnWQQudzcf3yiicztein0xcISEat0FFIVao7TtnS4
|
||||
cgitvGNtfXXauAxyzjZ7PdgrVuoAE/v4m25pzaTRy7TOfW1uTz2/6lr6tZa38+p9
|
||||
Bs36KcoK64FcPWjfR7zvvmCUWT/aHlRC9FwMvBHB81WRRk6xGaKl8G2QxfKY/ATl
|
||||
DNlgYXfXLzipam74XfPHiyK4Sc55WLDQxZfZfD6tqTo4u8qoDESvcEz+pbGe4Wp8
|
||||
awY4FVeSP1jVQzHgWf+oMTiHm5Gb3qMLUhZ/AHidUWFLhzXmAA4YXxIHKidRjCYT
|
||||
42Kzs1sjT2A5ll2V7jz4pqoRlsvRAxNZ5KgAZ2R01zo7gS1nGqjyoGq3tLWHbfJk
|
||||
/kD4QlOwcv06Jvp8aHcPxpccB7KHZGoRT2PB6IQE9Gt72pmAU9c=
|
||||
=f7yh
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.15
|
||||
|
||||
Changes
|
||||
+ Added a spoofer
|
||||
+ Added option to auto spoof games with random package name
|
||||
+ Added new username support for quest 2
|
||||
= Updated drag and drop sideloading
|
||||
= Fixed storage label
|
||||
- Removed troubleshoot form and theme form
|
||||
|
||||
Date 11/04/2020
|
||||
|
||||
VT: https://bit.ly/3kYCQsb
|
||||
|
||||
MD5 Checksum: 39BAB4CEE3D0E387E770BA35F4488C2F
|
||||
SHA-1 Checksum: C6F311411408BCF5A55034E7A926EA385819F348
|
||||
SHA-256 Checksum: 64640374EF39DD9CFC4A613A49888E3194994AA934C5E952174A2FCF533E2D19
|
||||
SHA-512 Checksum: 22769280B732821539100BFA77C67141F271DB401DB3AFB28EF285E352659F9F45A90C8ABE1C0B829770C5AE580CA76A9208505888443C22EE82AAAE7035C6F7
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+jJScACgkQvrtJUNxE
|
||||
TxMTag//f570tZ4zxL1x1rdajdoYzPD6oaGIabRVPrqVogsFPuVF1Q3AOzr+nzQN
|
||||
Tiq7yRPmByu/dtBGby2mqL1acQ/9TLYDtmnOAxQJqj4h0KhYlnzdCfqJJbTghtZX
|
||||
cy44ZqgPW47P608+zC/NfePNt7Fq1rFKN3Bpo/ISoyi5/IVGqGq1Ix/D0SlhiM5X
|
||||
5VkiY+w5S0rXuAyQ4g6/03AiI9fdNVkREhUh/tYvb7IkxaN9IDlltHByeuvekMjZ
|
||||
KU+mwZ9habfthB31hp+bAXz82tbIzB4LJ1P8MNadIT8ZXG19zHEY/KlaDp2NjniV
|
||||
h+V9AnxPHlcZk63yVPOywxpZcv81LflMgs9XItX+zKH7ibniBEu8jxc/2uAjrDF/
|
||||
JuvnOUKTuH7S2iIzHhKLYZYHiOu8sIuwGC96Ep172PGCAkVVR6CtfNPMmVZRllsY
|
||||
JG3Pxdrw526SAy3Vqixbbm79Fs1o77resqGM2zl6L7Sr6sH3VnDxabVXxALgo1pH
|
||||
+LSu5rCLIIsCP1a4MAyy6UgO/+ZLrC1QazR4yY7SRQHAIM48XG4d6CznFCOjczhW
|
||||
VvYL6gZD7X4xlNBqNMtih8JDHIQ1y7n1f075oCxfWwt02kXhDL/cn8+UZ17IS6EZ
|
||||
zr/SLm1464/htCZgsUZgQrov6CpHX/xNqAubowkAVOdDREbwh2w=
|
||||
=QKlt
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.14SU1
|
||||
|
||||
Changes
|
||||
+ Quota errors now will try to redownload the game from another mirror
|
||||
= Only showing mirror remotes for apps
|
||||
// Will fix device storage when I get my quest 2 and can debug adb
|
||||
|
||||
Date 10/18/2020
|
||||
|
||||
VT: https://bit.ly/3kcG62A
|
||||
|
||||
MD5 Checksum: 2A30E5F3DB785DC8104A2AA55A83CF53
|
||||
SHA-1 Checksum: 8376E5971FC4F60995A1125DD9344E52135DB4F7
|
||||
SHA-256 Checksum: FD5C74067BA00561A540DE5A4F49FA63B99C9520435A51487F997AEC569E9659
|
||||
SHA-512 Checksum: 6188D6306CA2A3F25DE08E19D1F20046774F7AA30BD745ED24FC7E53126DF3950211B599E3D774F540A6C1DEC177A895FAE70FB564B6AE96F5F10ABDCB9021C1
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+MCbMACgkQvrtJUNxE
|
||||
TxNMVxAAlIkoTuGTDwXRBFNanulPiYmus9UazHoVFxtG2BELk1/JLPm7dwT29FiZ
|
||||
oacUhhxLAEfDm169FoPNFCH/6q74xqjACkm8FjwCoas53DekguIvrhJKA3SiBUtZ
|
||||
m7+hrT3WWGxXoE3+avSFmdBWWvKVA9pNR/DHprHSoinDUvgSfwBHrWD8PtuSIlwU
|
||||
/jNpzyDnmBfdT4LROq93hcfFXM+POLWs5f3rXFdT+zTZexxlRiG5h7yMmsYdwdov
|
||||
4jMUSzrBpRXbmmHwDi4KLzsdOJ/5okJgRdPTZm/L1rAoJT0F7QVi2shvkoN7SIH/
|
||||
Fg+k0ZrNOnlpdAJwLmJD4PkQmxv5zpGSh8w7nbQJ41HgBtTQTh3OCpRRamPzAmfo
|
||||
A2n/NsYpR8J8u7kGzT1MUnUn2RL+igutSrnQl8R6yR8jFjaTt+F90pBXZ1nnY6mS
|
||||
8YE9mBBK3365cYVqQzOW1TUSCSzQqwTbfKDHkKrzHQWrpQ8VNMLcJBLZwU8di+4p
|
||||
u8lt1uT5MRZ+9I80YBXhwzBKkiNYOt5vHpGgt0Ib4WDS7rt/7UnzEAfl8P3VEEfX
|
||||
6w1HctI2zAVWYutBMv6HL3v23cO+UT8H6Wdgxq36mlMSNiqjLIntfIRrySUOy7JV
|
||||
D6LE34gzpDGsBIzrpW/Hlz4wGTi6nnY0Ke6DkA1H0UOoDN9ItI4=
|
||||
=ARa/
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.14
|
||||
|
||||
Changes
|
||||
+ Added the ability to change remotes (mirrors)
|
||||
+ Rclone errors are now reported properly
|
||||
= Fixed some bugs
|
||||
// Will fix device storage when I get my quest 2 and can debug adb
|
||||
|
||||
Date 10/17/2020
|
||||
|
||||
VT: https://bit.ly/3j8kCm8
|
||||
|
||||
MD5 Checksum: B862B807462CE35CC930C2B1118D5692
|
||||
SHA-1 Checksum: F52C8630C89CAEDB2E90A857E494DE00B137712D
|
||||
SHA-256 Checksum: 3DDFA2B4CCFC0E9F6F86E8A74E6D3511B9C643F4C4AF19D3878B8704FA360558
|
||||
SHA-512 Checksum: 16A022D8A4D235D7C537D9F01FE7C5F964A67A3A8CD68B3DC17AF08D94837DAC6CE0C20557D029DC169E5616B36C2A4C36B1647CE0DF930C7694F3FEC3430E70
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+KrhQACgkQvrtJUNxE
|
||||
TxP9MRAAjZbYWkbZPK+QMqzNqsgEARs6buzrwc24dth6QEod9Fgmdg5wdinZdG8X
|
||||
MK467pd9u0JqM3u8DeKSUD0GEzJZStNKsbHfjvNAF3m8toaXLncWy7MYNN9loAra
|
||||
17MvUBBwB1QgsXtQ3EXT1cBbS3YkQPg5E+ayvY9ZgyiOpDK6fs1tA24NZUWc53kY
|
||||
TIl5IL3mZNfJck8Xc/QkZJmkBOA89oDToLOjNmZRXXEHNT/eTS6pEkMZonWQjGqF
|
||||
D2dEfQTOuIAD93JzwcP5wVJFh7z6o65/7tfguDqBsTgoRWODaY+kQJDAxoWN9w/n
|
||||
nagXg/y30EmE1mWQFUYa1n0V65OzT5+J8VF53DCHkgaejYLfi0lhy8TlWQZpmzen
|
||||
WJOsP1Oj3ZZ9sErO8waajDBzDZ3kU9NvAOeOblE491w0713MYZYs5BVgoyHi24xO
|
||||
obcp1gpLi326fkPqajgIFpDHJ014OnaXmoY9ynW9rlZJ4rwJ7WytRDzcpfyk9LV1
|
||||
G1tlcCS4c/RmuVfZi4Jh0guvOOIpJSqdG4KUtvd548sslTMdHytt+YugbKqcBAto
|
||||
nWroKcsmg0swAm7YgYmQXqcpM17JC21eUgm3Bc4ZZSDtP4g3Pm7vRO1+hwUNYBE9
|
||||
QeEMXYDPRsTxdpuEFsbmS/EfnndvJvl9BL92Zt4+T4ruL+II50s=
|
||||
=r+0B
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
New version v1.13 Released
|
||||
|
||||
Changes
|
||||
+ Pgp messages will be available now for every update, so you can verify updates easily
|
||||
= Fixed some bugs like the rclone suicide
|
||||
- Removed china detection
|
||||
|
||||
Date 9/10/2020
|
||||
|
||||
MD5 Checksum: 3834485C5AF611523460E639969284F3
|
||||
SHA-1 Checksum: DAF556D34F80FDE6A6A3D8F338381030B2B19E44
|
||||
SHA-256 Checksum: 063FABA6A76A98AB862BBBF6F3348F176F66FD4932075E761A5FCAA85785EE4B
|
||||
SHA-512 Checksum: CC743BD95826664535239BB665934E88A25CC948B95E4A3E8B34379C1E8DEB8FED05EAD87428F4B85D5841ED9101F38E4E3DAFB0EAF3CD2F2E4314B62356104D
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl9aBpMACgkQvrtJUNxE
|
||||
TxOJcA/+LEzXQtyBhZ0oj22PEk0yMLQYOBLYDB96jf39IqLQAzrIUL339jRcRKMv
|
||||
yhFWXpvND1wrQl3/LNtFpBSkSnvqUXtxHWg6US+Ov3nnrEvYiwK8D9f1eC5Mt3Wy
|
||||
4HZIyTh9HcrLsfbnP2kDlLOaMQSIH4rChezF79xZMcx7kRmQ0/hyXlmGAPyWs8t8
|
||||
5aLxk5YUcfq1Pu+ncqeX+ihYVzQHi2eXaOAIR1rSCEXfHEg9tkRzWcma8tY29gQv
|
||||
IgGwxF/YnAPOdBtzuakaT88a1MsP+tAcWxmsyvTQHrv1m0h3QPU1DxMFUfAlBjLM
|
||||
5tHgTTjkXedRpR+Kga5CDuK7L5p1zVMRDINcUOf9MXV2fRurZ+OIHefAd+zbrd0n
|
||||
vHi1D1sFzb/lT5LCa/vrfO9crRnLdK1EI/5HNeSj9iIdD2jEMbjSjo9yv7LA2MHi
|
||||
4wnvguRpK5YUGqGc2yyCRxtyKAgXXxLBFNb5K453vdLtDukZIkhLuQVchsk4PutZ
|
||||
1uIg7/ZmAIPxlEHaLckaV7QEFbq9h2hFWOsSjWAATyvnkp4nxyvAavW4zNQCbd3V
|
||||
XJhimZkE+3SNAuZGw10nikVz7DFMlI0dyL+jmwIuODcFMZZwkEtBr3J/Ad9V1k+G
|
||||
DFKYJpBgATHdRTwt7/zZwJCBq0ONheA/6+6VYj8x8Q5rqbiDDdc=
|
||||
=xp7X
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
1.11HF1
|
||||
= Fixed some crashes that occured when a unauthorized device was used with the sideloader
|
||||
|
||||
1.11
|
||||
+ Added support for multiple devices
|
||||
|
||||
1.10SU1
|
||||
+ Settings should now persist through updates
|
||||
- Removed download button and hwid stuff
|
||||
|
||||
1.10
|
||||
+ Added back the game size messagebox
|
||||
+ Added support for unicode in adb
|
||||
= Fixed restore gamedata
|
||||
= Clicking the first game won't remove it since it causes problems
|
||||
= Changed the sideloader icon
|
||||
|
||||
1.9SU2
|
||||
+ Clicking a game on the listbox will now remove it from the list
|
||||
|
||||
1.9SU1
|
||||
- Removed some code I forgot to remove when debugging
|
||||
|
||||
1.9
|
||||
+ Added a queue for downloading games
|
||||
+ Added a setting for disabling user.json push
|
||||
|
||||
1.8SU2
|
||||
= Install game now won't throw an exception when a game isn't selected
|
||||
|
||||
1.8SU1
|
||||
+ Added debug logs for rclone
|
||||
|
||||
1.8
|
||||
+ Disk info updates every command that changes disk space
|
||||
= Rclone now logs commands and output
|
||||
= Changed backup button
|
||||
|
||||
1.7.5
|
||||
+ Made sideloader even faster when opening
|
||||
+ Added some chiptune music and the setting to stop it
|
||||
= Fixed donator button broken in 1.7
|
||||
|
||||
1.7
|
||||
+ Removed some freezes
|
||||
+ Sideloader kills rclone on start and on close if it's open so you dont waste bandwith
|
||||
+ Updating rclone config now does a hash check first
|
||||
+ Refresh storage after game install and on game uninstall
|
||||
|
||||
1.6
|
||||
+ Disk space label and check
|
||||
+ Checks game size before download
|
||||
= Download and install game button outputs adb log now
|
||||
- Launch package name button and textbox
|
||||
|
||||
1.5
|
||||
+ Added ETA, based on CURRENT DOWNLOAD SPEED NOT DELTA OF IT
|
||||
+ Added DLS label instead of showing it in the toolbar
|
||||
+ Added more indication of what the software is doing, in the toolbar
|
||||
+ Added some tooltips
|
||||
|
||||
1.4
|
||||
+ Donators can now change the speed of the donate button color change (even disable)
|
||||
+ Auto update for the rclone config
|
||||
+ Theme export and import buttons (by gotard)
|
||||
|
||||
1.3
|
||||
+ Added progress bar logic for game downloading with rclone
|
||||
+ Uninstalling apps now asks the user if it should also remove game data
|
||||
= Sorted installed apps combobox
|
||||
= Fixed uninstalling apps by package names lol nobody knew was broken
|
||||
|
||||
1.2
|
||||
+ Added unicode support for rclone
|
||||
+ Added some delay on game installation
|
||||
= Fixed stuff
|
||||
|
||||
1.1
|
||||
+ Added Themes
|
||||
+ Added dollarvr user.json
|
||||
+ Added user.json transfer on game download
|
||||
+ Added user.json transfer on first run
|
||||
= Fixed tab indexes
|
||||
= Now both drop downs can be visible at the same time
|
||||
|
||||
1.0HF1
|
||||
= Fixed a problem when deleting an app
|
||||
|
||||
1.0
|
||||
+ Added games auto download
|
||||
+ Added auto troubleshoot
|
||||
+ Every app installed will have all perms granted
|
||||
+ Displays apps for games instead of package names if you have rclone set up
|
||||
+ Uninstall app now will also delete its obb folder
|
||||
//For auto download you need an rclone config and rclone to be set up correctly
|
||||
|
||||
0.15HF1
|
||||
+ Added list apps button back
|
||||
= Fixed Uninstall apk and get apk
|
||||
|
||||
0.15
|
||||
= MASSIVE UI REDESIGN
|
||||
+ Added toggle for tor/clearnet
|
||||
+ Added download games through tor but still waiting for someone to help me host the files
|
||||
+ Added download with progress
|
||||
= Changed adb sideload command to allow downgrades too
|
||||
- Removed perms stuff, was too buggy
|
||||
|
||||
0.14HF1
|
||||
+ Added donate button
|
||||
= Fixed ui order
|
||||
- Removed warning from bulk obb sideload button
|
||||
|
||||
0.14
|
||||
+ Check file hash button
|
||||
+ Added first run check (will maybe be used to create user.json files)
|
||||
+ Added drag and drop for apk and obb files
|
||||
+ Progress bar now works for every adb command
|
||||
= Moved buttons
|
||||
- Instructions button
|
||||
- Removed run custom adb command button and form
|
||||
|
||||
0.13
|
||||
+ Added vrmoo.cn.json
|
||||
+ Added bulk obb copy
|
||||
= Message Box now top most
|
||||
|
||||
0.12
|
||||
+ Added settings form
|
||||
+ Added progress bar (again)
|
||||
+ Added a new user.json
|
||||
= Fixed crash on some systems (PerformanceCounter)
|
||||
= Fixed crash because of file name inconsistency
|
||||
- Removed performance counters because they made the software not work for some people
|
||||
|
||||
0.11
|
||||
+ Changed normal message boxes to flexible ones
|
||||
+ Added changelog to update message
|
||||
= Improved update message
|
||||
- Removed progressbar
|
||||
|
||||
0.10
|
||||
+ Added few tooltips
|
||||
+ Sideload folder now works for all apks (recursive search)
|
||||
= Obb copy and Sideload progress bar problems should be fixed
|
||||
= Fixed user.json not working if the any of folder had spaces
|
||||
= Switched back to Message Boxes
|
||||
|
||||
0.9
|
||||
+ Added the buggy progress bar back, uses different "logic"
|
||||
+ Added an icon (Increased the exe size by like 300% just with that)
|
||||
+ Added sideload folder button
|
||||
+ Added Create user.json button and form
|
||||
+ Changed Message Boxes to notifications
|
||||
|
||||
0.8.5
|
||||
+ Added auto update download
|
||||
= Fixed a bug where if you didn't have the adb folder it would crash
|
||||
|
||||
0.8
|
||||
+ Every command now shows progress on title bar
|
||||
+ Automatically run Adb Devices and List Apps on form startup
|
||||
+ You can now search the App List Combo Box
|
||||
= Cleaned some code
|
||||
|
||||
0.7
|
||||
= Fixed UI Freezes
|
||||
+ Added Uninstall APK Button
|
||||
+ Added Launch package Button
|
||||
- Removed loading bar
|
||||
|
||||
0.6
|
||||
+ Added List Apk Perms button
|
||||
+ Added Change Permissions button
|
||||
+ Added dinamically added checkbox for permisssions
|
||||
= The software now downloads adb from master instead of v0.3 release
|
||||
|
||||
0.5
|
||||
- Removed Flash Firmware
|
||||
= Redesigned UI
|
||||
= Reworked RunAdbCommand function (now it will be possible to do stuff I wasnt able to do before)
|
||||
= Replaced Ui Buttons, still needs work
|
||||
+ Added List apk button
|
||||
+ Added List apk combo box
|
||||
+ Added get apk function
|
||||
= Cleaned a bit of code
|
||||
|
||||
0.4
|
||||
+ Added auto download of adb archive
|
||||
+ Added auto extraction of adb archive
|
||||
|
||||
0.3
|
||||
+ Added new form, you can run custom adb commands now
|
||||
+ Added recover and backup app data
|
||||
- Removed Select APK and Select OBB Buttons
|
||||
- Removed tooltips from removed buttons
|
||||
+ Sideload APK and Copy Obb buttons now also make you select the file/folder
|
||||
+ Improved firmware button
|
||||
|
||||
0.2
|
||||
+ Added Flash Firmware button
|
||||
+ Added few tooltips
|
||||
+ Renamed buttons
|
||||
|
||||
0.1
|
||||
+ Initial Release
|
||||
|
||||
HF - Hot Fix
|
||||
SU - Small Update
|
||||
HFP
|
||||
Reference in New Issue
Block a user