Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e8fcae997b | ||
|
|
9912af4acc | ||
|
|
f243853fca | ||
|
|
fc98d61304 | ||
|
|
d38af14ed4 | ||
|
|
17165c35a9 | ||
|
|
5e30e3a22c | ||
|
|
bba48c5dc5 | ||
|
|
5d75edaf63 | ||
|
|
62d9187cfa | ||
|
|
cf1dda5e5b | ||
|
|
a5f6590019 | ||
|
|
b7cd6c1cb4 | ||
|
|
452e733b3a | ||
|
|
146defaef3 | ||
|
|
fb2b6c0a58 | ||
|
|
cec0104b05 | ||
|
|
7c78acb9bd | ||
|
|
7cad9565b2 | ||
|
|
a47918841f | ||
|
|
b8e28b38ff | ||
|
|
2f66e7bf88 | ||
|
|
30f6dc9064 | ||
|
|
8f937ee8f3 | ||
|
|
94b7aac050 | ||
|
|
89c58b202e |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -16,3 +16,6 @@ installedPackages.json
|
||||
AndroidSideloader.csproj.user
|
||||
AndroidSideloader.csproj.user
|
||||
AndroidSideloader.csproj.user
|
||||
/AndroidSideloader v2.1.exe
|
||||
/crashlog.txt
|
||||
/debuglog.txt
|
||||
118
ADB.cs
118
ADB.cs
@@ -12,8 +12,8 @@ namespace AndroidSideloader
|
||||
class ADB
|
||||
{
|
||||
static Process adb = new Process();
|
||||
public static string adbFolderPath = Environment.CurrentDirectory + "\\adb";
|
||||
public static string adbFilePath = adbFolderPath + "\\adb.exe";
|
||||
public static string adbFolderPath = Properties.Settings.Default.ADBPath;
|
||||
public static string adbFilePath = Properties.Settings.Default.ADBPath + "\\adb.exe";
|
||||
public static string DeviceID = "";
|
||||
|
||||
public static ProcessOutput RunAdbCommandToString(string command)
|
||||
@@ -34,6 +34,7 @@ namespace AndroidSideloader
|
||||
adb.Start();
|
||||
adb.StandardInput.WriteLine(command);
|
||||
adb.StandardInput.Flush();
|
||||
|
||||
adb.StandardInput.Close();
|
||||
|
||||
string output = "";
|
||||
@@ -46,7 +47,18 @@ namespace AndroidSideloader
|
||||
}
|
||||
catch { }
|
||||
|
||||
if (command.Contains("connect"))
|
||||
{
|
||||
bool graceful = adb.WaitForExit(5000); //Wait 7 secs.
|
||||
if (!graceful)
|
||||
{
|
||||
adb.Kill();
|
||||
}
|
||||
}
|
||||
else
|
||||
adb.WaitForExit();
|
||||
if (error.Contains("ADB_VENDOR_KEYS"))
|
||||
MessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.");
|
||||
Logger.Log(output);
|
||||
Logger.Log(error);
|
||||
return new ProcessOutput(output, error);
|
||||
@@ -55,9 +67,6 @@ namespace AndroidSideloader
|
||||
{
|
||||
|
||||
string command = result;
|
||||
if (DeviceID.Length > 1)
|
||||
command = $"{command}";
|
||||
|
||||
Logger.Log($"Running command {command}");
|
||||
adb.StartInfo.FileName = "cmd.exe";
|
||||
adb.StartInfo.RedirectStandardError = true;
|
||||
@@ -105,7 +114,7 @@ namespace AndroidSideloader
|
||||
long usedSize = 0;
|
||||
|
||||
long freeSize = 0;
|
||||
WakeDevice();
|
||||
|
||||
var output = RunAdbCommandToString("shell df").Output.Split('\n');
|
||||
|
||||
foreach (string currLine in output)
|
||||
@@ -145,18 +154,30 @@ namespace AndroidSideloader
|
||||
|
||||
public static void WakeDevice()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.IPAddress))
|
||||
if (Properties.Settings.Default.IPAddress.Contains("connect"))
|
||||
{
|
||||
ADB.RunAdbCommandToString(Properties.Settings.Default.IPAddress);
|
||||
RunAdbCommandToString(Properties.Settings.Default.IPAddress);
|
||||
string response = ADB.RunAdbCommandToString(Properties.Settings.Default.IPAddress).Output;
|
||||
if (response.Contains("refused"))
|
||||
|
||||
RunAdbCommandToString("shell input keyevent KEYCODE_WAKEUP");
|
||||
if (response.Contains("cannot"))
|
||||
{
|
||||
DialogResult dialogResult = MessageBox.Show("It seems you have rebooted your Quest, Rookie's wireless ADB will persist past PC reboot, but not for Quest reboot.\n\nHave you assigned your Quest a static IP in your router configuration? If you no longer want to use Wireless ADB just hit cancel!", "DEVICE WAS REBOOTED", MessageBoxButtons.YesNoCancel);
|
||||
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)
|
||||
return;
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
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)
|
||||
ADB.WakeDevice();
|
||||
if (dialogResult2 == DialogResult.OK)
|
||||
{
|
||||
Properties.Settings.Default.IPAddress = "";
|
||||
Properties.Settings.Default.Save();
|
||||
ADB.WakeDevice();
|
||||
}
|
||||
|
||||
}
|
||||
else if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
MessageBox.Show("Connect your Quest to USB so we can reconnect to your saved IP address!");
|
||||
ADB.RunAdbCommandToString("devices");
|
||||
Thread.Sleep(250);
|
||||
@@ -168,9 +189,8 @@ namespace AndroidSideloader
|
||||
Thread.Sleep(500);
|
||||
ADB.RunAdbCommandToString(Properties.Settings.Default.IPAddress);
|
||||
}
|
||||
if (dialogResult == DialogResult.No)
|
||||
else if (dialogResult == DialogResult.No)
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
MessageBox.Show("You must repeat the entire connection process, press OK to begin.", "Reconfigure Wireless ADB", MessageBoxButtons.OK);
|
||||
ADB.RunAdbCommandToString("devices");
|
||||
ADB.RunAdbCommandToString("tcpip 5555");
|
||||
@@ -183,7 +203,6 @@ namespace AndroidSideloader
|
||||
strArrayOne = input.Split(' ');
|
||||
if (strArrayOne[0].Length > 7)
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
string IPaddr = strArrayOne[8];
|
||||
string IPcmnd = "connect " + IPaddr + ":5555";
|
||||
MessageBox.Show($"Your Quest's local IP address is: {IPaddr}\n\nPlease disconnect your Quest then wait 2 seconds.\nOnce it is disconnected hit OK", "", MessageBoxButtons.OK);
|
||||
@@ -195,16 +214,13 @@ namespace AndroidSideloader
|
||||
MessageBox.Show($"Connected!!", "", MessageBoxButtons.OK);
|
||||
Program.form.ChangeTitlebarToDevice();
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("No device connected!");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
RunAdbCommandToString("shell input keyevent KEYCODE_WAKEUP");
|
||||
|
||||
}
|
||||
public static ProcessOutput Sideload(string path, string packagename = "")
|
||||
{
|
||||
@@ -241,11 +257,8 @@ namespace AndroidSideloader
|
||||
if (Directory.Exists($"/sdcard/Android/data/{packagename}"))
|
||||
{
|
||||
MessageBox.Show($"Trying to backup save to Documents\\Rookie Backups\\{date_str}(year.month.date)\\{packagename}\\data", "Save files found", MessageBoxButtons.OK);
|
||||
|
||||
Directory.CreateDirectory(CurrBackups);
|
||||
String CurrbackupPaths = CurrBackups + "\\" + packagename + "\\data";
|
||||
Directory.CreateDirectory(CurrbackupPaths);
|
||||
ADB.RunAdbCommandToString($"pull \"/sdcard/Android/data/{packagename}\" \"{CurrbackupPaths}\"");
|
||||
ADB.RunAdbCommandToString($"pull \"/sdcard/Android/data/{packagename} \" \"{CurrBackups}\"");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -264,33 +277,44 @@ namespace AndroidSideloader
|
||||
}
|
||||
if (File.Exists($"{Properties.Settings.Default.MainDir}\\Config.Json"))
|
||||
{
|
||||
Program.form.ChangeTitle("Pushing Custom QU s3 Patch JSON.");
|
||||
if (packagename.Contains("com.*") || Properties.Settings.Default.CurrPckg.Contains("com"))
|
||||
{
|
||||
if (Properties.Settings.Default.CurrPckg.Contains("com"))
|
||||
packagename = Properties.Settings.Default.CurrPckg;
|
||||
Program.form.ChangeTitle("Pushing Custom QU s3 Patch JSON.");
|
||||
if (!Directory.Exists($"/sdcard/android/data/{packagename}"))
|
||||
RunAdbCommandToString($"shell mkdir /sdcard/android/data/{packagename}");
|
||||
if (!Directory.Exists($"/sdcard/android/data/{packagename}/private"))
|
||||
RunAdbCommandToString($"shell mkdir /sdcard/android/data/{packagename}/private");
|
||||
|
||||
RunAdbCommandToString($"shell mkdir /sdcard/android/data/{packagename}");
|
||||
RunAdbCommandToString($"shell mkdir /sdcard/android/data/{packagename}/private");
|
||||
|
||||
Random r = new Random();
|
||||
int x = r.Next(999999999);
|
||||
int y = r.Next(9999999);
|
||||
|
||||
Random r = new Random();
|
||||
int x = r.Next(999999999);
|
||||
int y = r.Next(9999999);
|
||||
var sum = ((long)y * (long)1000000000) + (long)x;
|
||||
|
||||
var sum = ((long)y * (long)1000000000) + (long)x;
|
||||
int x2 = r.Next(999999999);
|
||||
int y2 = r.Next(9999999);
|
||||
|
||||
int x2 = r.Next(999999999);
|
||||
int y2 = r.Next(9999999);
|
||||
var sum2 = ((long)y2 * (long)1000000000) + (long)x2;
|
||||
ADB.WakeDevice();
|
||||
Properties.Settings.Default.QUStringF = $"{{\"user_id\":{sum},\"app_id\":\"{sum2}\",";
|
||||
Properties.Settings.Default.Save();
|
||||
string boff = Properties.Settings.Default.QUStringF + Properties.Settings.Default.QUString;
|
||||
File.WriteAllText("config.json", boff);
|
||||
string blank = "";
|
||||
File.WriteAllText("delete_settings", blank);
|
||||
ret += ADB.RunAdbCommandToString($"push \"{Environment.CurrentDirectory}\\delete_settings\" /sdcard/android/data/{packagename}/private/delete_settings");
|
||||
ret += ADB.RunAdbCommandToString($"push \"{Environment.CurrentDirectory}\\config.json\" /sdcard/android/data/{packagename}/private/config.json");
|
||||
|
||||
var sum2 = ((long)y2 * (long)1000000000) + (long)x2;
|
||||
ADB.WakeDevice();
|
||||
Properties.Settings.Default.QUStringF = $"{{\"user_id\":{sum},\"app_id\":\"{sum2}\",";
|
||||
Properties.Settings.Default.Save();
|
||||
string boff = Properties.Settings.Default.QUStringF + Properties.Settings.Default.QUString;
|
||||
File.WriteAllText("config.json", boff);
|
||||
string blank = "";
|
||||
File.WriteAllText("delete_settings", blank);
|
||||
ret += ADB.RunAdbCommandToString($"push \"{Environment.CurrentDirectory}\\delete_settings\" /sdcard/android/data/{packagename}/private/");
|
||||
ret += ADB.RunAdbCommandToString($"push \"{Environment.CurrentDirectory}\\config.json\" /sdcard/android/data/{packagename}/private/");
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
ret.Output += "QU Settings could not be automatically applied.\nPlease restart Rookie to refresh installed apps.\nThen select the app from the installed apps (Dropdown list above Device ID).\nThen click Install QU Setting";
|
||||
|
||||
|
||||
|
||||
}
|
||||
Program.form.ChangeTitle("Sideload done");
|
||||
return ret;
|
||||
}
|
||||
|
||||
Binary file not shown.
15
App.config
15
App.config
@@ -51,7 +51,7 @@
|
||||
<value>White</value>
|
||||
</setting>
|
||||
<setting name="FontStyle" serializeAs="String">
|
||||
<value>Microsoft Sans Serif, 8.5pt</value>
|
||||
<value>Microsoft Sans Serif, 9.5pt</value>
|
||||
</setting>
|
||||
<setting name="BackPicturePath" serializeAs="String">
|
||||
<value />
|
||||
@@ -84,19 +84,19 @@
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="QUhz" serializeAs="String">
|
||||
<value />
|
||||
<value>0</value>
|
||||
</setting>
|
||||
<setting name="QUres" serializeAs="String">
|
||||
<value />
|
||||
<value>0</value>
|
||||
</setting>
|
||||
<setting name="QUy" serializeAs="String">
|
||||
<value />
|
||||
<value>0</value>
|
||||
</setting>
|
||||
<setting name="QUx" serializeAs="String">
|
||||
<value />
|
||||
<value>0</value>
|
||||
</setting>
|
||||
<setting name="QUname" serializeAs="String">
|
||||
<value />
|
||||
<value>Change Me</value>
|
||||
</setting>
|
||||
<setting name="QUString" serializeAs="String">
|
||||
<value />
|
||||
@@ -110,6 +110,9 @@
|
||||
<setting name="delsh" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="CurrPckg" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
</AndroidSideloader.Properties.Settings>
|
||||
<AndroidADB.Sideloader.Properties.Settings>
|
||||
<setting name="checkForUpdates" serializeAs="String">
|
||||
|
||||
53
MainForm.Designer.cs
generated
53
MainForm.Designer.cs
generated
@@ -97,7 +97,7 @@
|
||||
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(745, 21);
|
||||
this.m_combo.Size = new System.Drawing.Size(745, 24);
|
||||
this.m_combo.TabIndex = 0;
|
||||
this.m_combo.Text = "Select an app to uninstall...";
|
||||
//
|
||||
@@ -341,7 +341,7 @@
|
||||
this.panel1.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.panel1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(218, 775);
|
||||
this.panel1.TabIndex = 73;
|
||||
@@ -373,6 +373,7 @@
|
||||
// aboutBtn
|
||||
//
|
||||
this.aboutBtn.BackColor = global::AndroidSideloader.Properties.Settings.Default.ButtonColor;
|
||||
this.aboutBtn.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.aboutBtn.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.aboutBtn.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.aboutBtn.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
@@ -423,7 +424,7 @@
|
||||
this.otherContainer.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.otherContainer.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.otherContainer.Location = new System.Drawing.Point(0, 401);
|
||||
this.otherContainer.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.otherContainer.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.otherContainer.Name = "otherContainer";
|
||||
this.otherContainer.Size = new System.Drawing.Size(218, 167);
|
||||
this.otherContainer.TabIndex = 80;
|
||||
@@ -567,7 +568,7 @@
|
||||
this.otherDrop.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.otherDrop.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.otherDrop.Location = new System.Drawing.Point(0, 373);
|
||||
this.otherDrop.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.otherDrop.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.otherDrop.Name = "otherDrop";
|
||||
this.otherDrop.Padding = new System.Windows.Forms.Padding(7, 0, 0, 0);
|
||||
this.otherDrop.Size = new System.Drawing.Size(218, 28);
|
||||
@@ -585,7 +586,7 @@
|
||||
this.backupContainer.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.backupContainer.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.backupContainer.Location = new System.Drawing.Point(0, 313);
|
||||
this.backupContainer.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.backupContainer.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.backupContainer.Name = "backupContainer";
|
||||
this.backupContainer.Size = new System.Drawing.Size(218, 60);
|
||||
this.backupContainer.TabIndex = 76;
|
||||
@@ -603,7 +604,7 @@
|
||||
this.backupDrop.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.backupDrop.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.backupDrop.Location = new System.Drawing.Point(0, 285);
|
||||
this.backupDrop.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.backupDrop.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.backupDrop.Name = "backupDrop";
|
||||
this.backupDrop.Padding = new System.Windows.Forms.Padding(7, 0, 0, 0);
|
||||
this.backupDrop.Size = new System.Drawing.Size(218, 28);
|
||||
@@ -627,7 +628,7 @@
|
||||
this.sideloadContainer.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.sideloadContainer.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.sideloadContainer.Location = new System.Drawing.Point(0, 56);
|
||||
this.sideloadContainer.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.sideloadContainer.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.sideloadContainer.Name = "sideloadContainer";
|
||||
this.sideloadContainer.Size = new System.Drawing.Size(218, 229);
|
||||
this.sideloadContainer.TabIndex = 74;
|
||||
@@ -687,7 +688,7 @@
|
||||
this.sideloadDrop.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.sideloadDrop.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.sideloadDrop.Location = new System.Drawing.Point(0, 28);
|
||||
this.sideloadDrop.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.sideloadDrop.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.sideloadDrop.Name = "sideloadDrop";
|
||||
this.sideloadDrop.Padding = new System.Windows.Forms.Padding(7, 0, 0, 0);
|
||||
this.sideloadDrop.Size = new System.Drawing.Size(218, 28);
|
||||
@@ -707,7 +708,7 @@
|
||||
this.diskLabel.Location = new System.Drawing.Point(13, 654);
|
||||
this.diskLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.diskLabel.Name = "diskLabel";
|
||||
this.diskLabel.Size = new System.Drawing.Size(65, 15);
|
||||
this.diskLabel.Size = new System.Drawing.Size(72, 16);
|
||||
this.diskLabel.TabIndex = 7;
|
||||
this.diskLabel.Text = "Disk Label";
|
||||
//
|
||||
@@ -721,7 +722,7 @@
|
||||
this.speedLabel.Location = new System.Drawing.Point(12, 733);
|
||||
this.speedLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.speedLabel.Name = "speedLabel";
|
||||
this.speedLabel.Size = new System.Drawing.Size(124, 15);
|
||||
this.speedLabel.Size = new System.Drawing.Size(135, 16);
|
||||
this.speedLabel.TabIndex = 76;
|
||||
this.speedLabel.Text = "DLS: Speed in MBPS";
|
||||
//
|
||||
@@ -735,7 +736,7 @@
|
||||
this.etaLabel.Location = new System.Drawing.Point(12, 751);
|
||||
this.etaLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.etaLabel.Name = "etaLabel";
|
||||
this.etaLabel.Size = new System.Drawing.Size(120, 15);
|
||||
this.etaLabel.Size = new System.Drawing.Size(131, 16);
|
||||
this.etaLabel.TabIndex = 75;
|
||||
this.etaLabel.Text = "ETA: HH:MM:SS Left";
|
||||
//
|
||||
@@ -768,10 +769,11 @@
|
||||
this.gamesQueListBox.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.gamesQueListBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.gamesQueListBox.FormattingEnabled = true;
|
||||
this.gamesQueListBox.Location = new System.Drawing.Point(601, 529);
|
||||
this.gamesQueListBox.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.gamesQueListBox.ItemHeight = 16;
|
||||
this.gamesQueListBox.Location = new System.Drawing.Point(601, 530);
|
||||
this.gamesQueListBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.gamesQueListBox.Name = "gamesQueListBox";
|
||||
this.gamesQueListBox.Size = new System.Drawing.Size(372, 106);
|
||||
this.gamesQueListBox.Size = new System.Drawing.Size(372, 114);
|
||||
this.gamesQueListBox.TabIndex = 9;
|
||||
this.gamesQueListBox.MouseClick += new System.Windows.Forms.MouseEventHandler(this.gamesQueListBox_MouseClick);
|
||||
//
|
||||
@@ -788,9 +790,9 @@
|
||||
this.devicesComboBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.devicesComboBox.FormattingEnabled = true;
|
||||
this.devicesComboBox.Location = new System.Drawing.Point(227, 39);
|
||||
this.devicesComboBox.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.devicesComboBox.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.devicesComboBox.Name = "devicesComboBox";
|
||||
this.devicesComboBox.Size = new System.Drawing.Size(206, 21);
|
||||
this.devicesComboBox.Size = new System.Drawing.Size(206, 24);
|
||||
this.devicesComboBox.TabIndex = 1;
|
||||
this.devicesComboBox.Text = "Select your device";
|
||||
this.devicesComboBox.SelectedIndexChanged += new System.EventHandler(this.devicesComboBox_SelectedIndexChanged);
|
||||
@@ -807,9 +809,9 @@
|
||||
this.remotesList.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.remotesList.FormattingEnabled = true;
|
||||
this.remotesList.Location = new System.Drawing.Point(530, 39);
|
||||
this.remotesList.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.remotesList.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
|
||||
this.remotesList.Name = "remotesList";
|
||||
this.remotesList.Size = new System.Drawing.Size(206, 21);
|
||||
this.remotesList.Size = new System.Drawing.Size(206, 24);
|
||||
this.remotesList.TabIndex = 3;
|
||||
this.remotesList.Text = "Select a mirror";
|
||||
this.remotesList.SelectedIndexChanged += new System.EventHandler(this.remotesList_SelectedIndexChanged);
|
||||
@@ -845,7 +847,7 @@
|
||||
this.searchTextBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.searchTextBox.Location = new System.Drawing.Point(741, 40);
|
||||
this.searchTextBox.Name = "searchTextBox";
|
||||
this.searchTextBox.Size = new System.Drawing.Size(231, 20);
|
||||
this.searchTextBox.Size = new System.Drawing.Size(231, 22);
|
||||
this.searchTextBox.TabIndex = 5;
|
||||
this.searchTextBox.Text = "Search";
|
||||
this.searchTextBox.TextChanged += new System.EventHandler(this.searchTextBox_TextChanged);
|
||||
@@ -862,7 +864,7 @@
|
||||
//
|
||||
// gamesQueueLabel
|
||||
//
|
||||
this.gamesQueueLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.gamesQueueLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.gamesQueueLabel.AutoSize = true;
|
||||
this.gamesQueueLabel.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.gamesQueueLabel.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
@@ -870,7 +872,7 @@
|
||||
this.gamesQueueLabel.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.gamesQueueLabel.Location = new System.Drawing.Point(597, 628);
|
||||
this.gamesQueueLabel.Name = "gamesQueueLabel";
|
||||
this.gamesQueueLabel.Size = new System.Drawing.Size(87, 15);
|
||||
this.gamesQueueLabel.Size = new System.Drawing.Size(95, 16);
|
||||
this.gamesQueueLabel.TabIndex = 86;
|
||||
this.gamesQueueLabel.Text = "Games Queue";
|
||||
//
|
||||
@@ -893,6 +895,7 @@
|
||||
this.MountButton.Text = "Mount";
|
||||
this.MountButton.UseVisualStyleBackColor = false;
|
||||
this.MountButton.Click += new System.EventHandler(this.MountButton_Click);
|
||||
this.MountButton.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
|
||||
//
|
||||
// ProgressText
|
||||
//
|
||||
@@ -916,12 +919,12 @@
|
||||
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, 652);
|
||||
this.notesRichTextBox.Location = new System.Drawing.Point(601, 647);
|
||||
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, 91);
|
||||
this.notesRichTextBox.Size = new System.Drawing.Size(371, 96);
|
||||
this.notesRichTextBox.TabIndex = 10;
|
||||
this.notesRichTextBox.Text = "";
|
||||
//
|
||||
@@ -942,7 +945,7 @@
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.label1.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
@@ -950,7 +953,7 @@
|
||||
this.label1.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label1.Location = new System.Drawing.Point(598, 730);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(74, 15);
|
||||
this.label1.Size = new System.Drawing.Size(81, 16);
|
||||
this.label1.TabIndex = 86;
|
||||
this.label1.Text = "Install Notes";
|
||||
//
|
||||
|
||||
126
MainForm.cs
126
MainForm.cs
@@ -105,13 +105,12 @@ namespace AndroidSideloader
|
||||
FlexibleMessageBox.Show(this, message);
|
||||
}
|
||||
|
||||
private List<string> Devices = new List<string>();
|
||||
public List<string> Devices = new List<string>();
|
||||
|
||||
public async Task<int> CheckForDevice()
|
||||
{
|
||||
|
||||
Devices.Clear();
|
||||
ADB.WakeDevice();
|
||||
string output = string.Empty;
|
||||
ADB.DeviceID = GetDeviceID();
|
||||
Thread t1 = new Thread(() =>
|
||||
@@ -168,16 +167,13 @@ namespace AndroidSideloader
|
||||
|
||||
private async void obbcopybutton_Click(object sender, EventArgs e)
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
ProcessOutput output = new ProcessOutput("", "");
|
||||
var dialog = new FolderSelectDialog
|
||||
{
|
||||
Title = "Select your obb folder"
|
||||
};
|
||||
if (Properties.Settings.Default.IPAddress.Contains("connect"))
|
||||
{
|
||||
ADB.RunAdbCommandToString(Properties.Settings.Default.IPAddress);
|
||||
}
|
||||
ADB.WakeDevice();
|
||||
if (dialog.Show(Handle))
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
@@ -198,30 +194,29 @@ namespace AndroidSideloader
|
||||
|
||||
public void ChangeTitlebarToDevice()
|
||||
{
|
||||
|
||||
ADB.WakeDevice();
|
||||
if (!Devices.Contains("unauthorized"))
|
||||
if (Devices[0].Length > 1 && Devices.Contains("unauthorized") || Devices.Contains("ADB_VENDOR_KEYS"))
|
||||
{
|
||||
if (Devices[0].Length > 1 && Devices[0].Contains("unauthorized"))
|
||||
DeviceConnected = false;
|
||||
this.Invoke(() =>
|
||||
{
|
||||
DeviceConnected = false;
|
||||
this.Invoke(() =>
|
||||
this.Text = "Device Not Authorized";
|
||||
DialogResult dialogResult = MessageBox.Show("Device not authorized, check device screen for ALLOW USB DEBUGGING prompt, check \"Always allow\" box and hit OK.", "Not Authorized", MessageBoxButtons.RetryCancel);
|
||||
if (dialogResult == DialogResult.Retry)
|
||||
{
|
||||
this.Text = "Device Not Authorized";
|
||||
DialogResult dialogResult = MessageBox.Show("Device not authorized, be sure to authorize computer on device.", "Not Authorized", MessageBoxButtons.RetryCancel);
|
||||
if (dialogResult == DialogResult.Retry)
|
||||
{
|
||||
devicesbutton.PerformClick();
|
||||
;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
devicesbutton.PerformClick();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
else if (Devices[0].Length > 1)
|
||||
});
|
||||
}
|
||||
if (!Devices.Contains("unauthorized"))
|
||||
{
|
||||
|
||||
if (Devices[0].Length > 1)
|
||||
{
|
||||
this.Invoke(() => { this.Text = "Device Connected with ID | " + Devices[0].Replace("device", ""); });
|
||||
DeviceConnected = true;
|
||||
@@ -245,13 +240,11 @@ namespace AndroidSideloader
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public async void showAvailableSpace()
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
|
||||
|
||||
string AvailableSpace = string.Empty;
|
||||
ADB.DeviceID = GetDeviceID();
|
||||
Thread t1 = new Thread(() =>
|
||||
@@ -268,7 +261,6 @@ namespace AndroidSideloader
|
||||
|
||||
public string GetDeviceID()
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
string deviceId = string.Empty;
|
||||
int index = -1;
|
||||
devicesComboBox.Invoke(() => { index = devicesComboBox.SelectedIndex; });
|
||||
@@ -299,14 +291,13 @@ namespace AndroidSideloader
|
||||
|
||||
private async void Form1_Load(object sender, EventArgs e)
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
if (!string.IsNullOrEmpty(Properties.Settings.Default.MainDir))
|
||||
{
|
||||
Properties.Settings.Default.ADBPath = $"\"{Environment.CurrentDirectory}" + "\\adb\\adb.exe\"";
|
||||
Properties.Settings.Default.MainDir = Environment.CurrentDirectory;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
|
||||
if (Directory.Exists($"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}\\SideQuest\\platform-tools"))
|
||||
Properties.Settings.Default.ADBPath = $"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}\\SideQuest\\platform-tools";
|
||||
else
|
||||
Properties.Settings.Default.ADBPath = Environment.CurrentDirectory + "\\adb";
|
||||
Properties.Settings.Default.MainDir = Environment.CurrentDirectory;
|
||||
Properties.Settings.Default.Save();
|
||||
ADB.RunAdbCommandToString("kill-server");
|
||||
if (File.Exists(Sideloader.CrashLogPath))
|
||||
{
|
||||
DialogResult dialogResult = FlexibleMessageBox.Show(this, $@"Looks like sideloader crashed last time, please make an issue at https://github.com/nerdunit/androidsideloader/issues
|
||||
@@ -362,6 +353,7 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
ADB.WakeDevice();
|
||||
await CheckForDevice();
|
||||
ChangeTitlebarToDevice();
|
||||
ADB.RunAdbCommandToString("shell svc usb setFunctions mtp true");
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
@@ -440,7 +432,10 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
string path = dialog.FileName;
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
output += ADB.RunAdbCommandToString($"push \"{path}\" /sdcard/Android/");
|
||||
if (path.Contains("com."))
|
||||
output += ADB.RunAdbCommandToString($"push \"{path}\" /sdcard/Android/data/");
|
||||
if (path.Contains("data"))
|
||||
output += ADB.RunAdbCommandToString($"push \"{path}\" /sdcard/Android/");
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
@@ -455,7 +450,6 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
|
||||
private string listapps()
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
ADB.DeviceID = GetDeviceID();
|
||||
return ADB.RunAdbCommandToString("shell pm list packages -3").Output;
|
||||
}
|
||||
@@ -530,7 +524,7 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
ADB.WakeDevice();
|
||||
if (m_combo.SelectedIndex == -1)
|
||||
{
|
||||
FlexibleMessageBox.Show("Please select an app first");
|
||||
FlexibleMessageBox.Show("Please select an app first ");
|
||||
return;
|
||||
}
|
||||
string date_str = DateTime.Today.ToString("yyyy.MM.dd");
|
||||
@@ -539,12 +533,10 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
|
||||
string GameName = m_combo.SelectedItem.ToString();
|
||||
string packagename = Sideloader.gameNameToPackageName(GameName);
|
||||
MessageBox.Show($"If savedata is found it will be saved to Documents\\Rookie Backups\\{date_str}(year.month.date)\\{packagename}\\data", "Attempting Backup...", MessageBoxButtons.OK);
|
||||
MessageBox.Show($"If savedata is found it will be saved to Documents\\Rookie Backups\\{date_str}(year.month.date)\\{packagename}", "Attempting Backup...", MessageBoxButtons.OK);
|
||||
|
||||
Directory.CreateDirectory(CurrBackups);
|
||||
String CurrbackupPaths = CurrBackups + "\\" + packagename + "\\data";
|
||||
Directory.CreateDirectory(CurrbackupPaths);
|
||||
ADB.RunAdbCommandToString($"pull \"/sdcard/Android/data/{packagename}\" \"{CurrbackupPaths}\"");
|
||||
ADB.RunAdbCommandToString($"pull \"/sdcard/Android/data/{packagename}\" \"{CurrBackups}\"");
|
||||
DialogResult dialogResult = MessageBox.Show($"Please check to see if we automatically found savedata in Documents\\Rookie Backups.\nIf there are no new files there is recommended that you do a full backup via Backup Gamedata before continuing.\nNOTE: Some games do not allow backup of savedata.\nContinue with the uninstall?", "Check for backup.", MessageBoxButtons.OKCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
{
|
||||
@@ -635,6 +627,7 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
ADB.DeviceID = GetDeviceID();
|
||||
progressBar.Style = ProgressBarStyle.Marquee;
|
||||
Thread t1 = new Thread(() =>
|
||||
|
||||
{
|
||||
string[] datas = (string[])e.Data.GetData(DataFormats.FileDrop);
|
||||
foreach (string data in datas)
|
||||
@@ -643,17 +636,16 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
//if is directory
|
||||
string dir = Path.GetDirectoryName(data);
|
||||
string path = $"{dir}\\Install.txt";
|
||||
if (Directory.Exists(data))
|
||||
if (data.StartsWith("com."))
|
||||
{
|
||||
output += ADB.CopyOBB(data);
|
||||
string extension = Path.GetExtension(data);
|
||||
if (extension == ".apk")
|
||||
{
|
||||
|
||||
output += ADB.Sideload(data);
|
||||
if (File.Exists($"{Environment.CurrentDirectory}\\Install.txt"))
|
||||
{
|
||||
|
||||
|
||||
|
||||
DialogResult dialogResult = MessageBox.Show("Special instructions have been found with this file, would you like to run them automatically?", "Special Instructions found!", MessageBoxButtons.OKCancel);
|
||||
if (dialogResult == DialogResult.Cancel)
|
||||
return;
|
||||
@@ -665,6 +657,7 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
if (output.Error.Contains("reserved"))
|
||||
output.Output = "";
|
||||
ChangeTitle("Done.");
|
||||
|
||||
}
|
||||
}
|
||||
string[] files = Directory.GetFiles(data);
|
||||
@@ -680,6 +673,8 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
foreach (string folder in folders)
|
||||
{
|
||||
output += ADB.CopyOBB(folder);
|
||||
Properties.Settings.Default.CurrPckg = dir;
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
}
|
||||
//if it's a file
|
||||
@@ -689,6 +684,8 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
string extension = Path.GetExtension(data);
|
||||
if (extension == ".apk")
|
||||
{
|
||||
output += ADB.Sideload(data);
|
||||
|
||||
if (File.Exists($"{dir}\\Install.txt"))
|
||||
{
|
||||
|
||||
@@ -702,10 +699,6 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
ChangeTitle("Done.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
output += ADB.Sideload(data);
|
||||
}
|
||||
}
|
||||
else if (extension == ".obb")
|
||||
{
|
||||
@@ -717,6 +710,8 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
Directory.CreateDirectory(foldername);
|
||||
File.Copy(data, foldername + "\\" + filename);
|
||||
output += ADB.CopyOBB(foldername);
|
||||
Properties.Settings.Default.CurrPckg = foldername;
|
||||
Properties.Settings.Default.Save();
|
||||
Directory.Delete(foldername, true);
|
||||
}
|
||||
|
||||
@@ -758,7 +753,6 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
}
|
||||
private void initListView()
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
gamesListView.Items.Clear();
|
||||
gamesListView.Columns.Clear();
|
||||
if (!File.Exists("installedPackages.json"))
|
||||
@@ -887,8 +881,6 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
|
||||
|
||||
private void initMirrors(bool random)
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
|
||||
int index = 0;
|
||||
remotesList.Invoke(() => { index = remotesList.SelectedIndex; remotesList.Items.Clear(); });
|
||||
|
||||
@@ -1261,13 +1253,6 @@ without him none of this would be possible
|
||||
string extension = Path.GetExtension(file);
|
||||
if (extension == ".apk")
|
||||
{
|
||||
if (File.Exists($"{gameDirectory}\\Install.txt"))
|
||||
{
|
||||
|
||||
ChangeTitle("Sideloading custom install.txt automatically.");
|
||||
output += Sideloader.RunADBCommandsFromFile(path);
|
||||
ChangeTitle("Done.");
|
||||
}
|
||||
Thread apkThread = new Thread(() =>
|
||||
{
|
||||
string packagename = "";
|
||||
@@ -1307,6 +1292,7 @@ without him none of this would be possible
|
||||
|
||||
while (obbThread.IsAlive)
|
||||
await Task.Delay(100);
|
||||
ChangeTitle("Done");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1339,6 +1325,7 @@ without him none of this would be possible
|
||||
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
RCLONE.killRclone();
|
||||
ADB.RunAdbCommandToString("kill-server");
|
||||
}
|
||||
|
||||
private void ADBWirelessDisable_Click(object sender, EventArgs e)
|
||||
@@ -1536,15 +1523,12 @@ without him none of this would be possible
|
||||
{
|
||||
ADB.WakeDevice();
|
||||
|
||||
if (DeviceConnected)
|
||||
{
|
||||
if (!ADB.DeviceID.Contains(":5555"))
|
||||
MessageBox.Show("Mounting does not work with Wireless ADB, you must plug Quest into PC to mount.");
|
||||
|
||||
ADB.RunAdbCommandToString("shell svc usb setFunctions mtp true");
|
||||
|
||||
if (ADB.DeviceID.Contains(":5555")) {
|
||||
MessageBox.Show("Mounting does not work with Wireless ADB, you must plug Quest into PC to mount.");
|
||||
}
|
||||
else
|
||||
FlexibleMessageBox.Show("You must connect a device before mounting!");
|
||||
|
||||
ADB.RunAdbCommandToString("shell svc usb setFunctions mtp true");
|
||||
}
|
||||
|
||||
private void freeDisclaimer_Click(object sender, EventArgs e)
|
||||
|
||||
24
Properties/Settings.Designer.cs
generated
24
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, 8.5pt")]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Microsoft Sans Serif, 9.5pt")]
|
||||
public global::System.Drawing.Font FontStyle {
|
||||
get {
|
||||
return ((global::System.Drawing.Font)(this["FontStyle"]));
|
||||
@@ -313,7 +313,7 @@ namespace AndroidSideloader.Properties {
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||
public string QUhz {
|
||||
get {
|
||||
return ((string)(this["QUhz"]));
|
||||
@@ -325,7 +325,7 @@ namespace AndroidSideloader.Properties {
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||
public string QUres {
|
||||
get {
|
||||
return ((string)(this["QUres"]));
|
||||
@@ -337,7 +337,7 @@ namespace AndroidSideloader.Properties {
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||
public string QUy {
|
||||
get {
|
||||
return ((string)(this["QUy"]));
|
||||
@@ -349,7 +349,7 @@ namespace AndroidSideloader.Properties {
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||
public string QUx {
|
||||
get {
|
||||
return ((string)(this["QUx"]));
|
||||
@@ -361,7 +361,7 @@ namespace AndroidSideloader.Properties {
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Change Me")]
|
||||
public string QUname {
|
||||
get {
|
||||
return ((string)(this["QUname"]));
|
||||
@@ -418,5 +418,17 @@ namespace AndroidSideloader.Properties {
|
||||
this["delsh"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string CurrPckg {
|
||||
get {
|
||||
return ((string)(this["CurrPckg"]));
|
||||
}
|
||||
set {
|
||||
this["CurrPckg"] = 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, 8.5pt</Value>
|
||||
<Value Profile="(Default)">Microsoft Sans Serif, 9.5pt</Value>
|
||||
</Setting>
|
||||
<Setting Name="BackPicturePath" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
@@ -75,19 +75,19 @@
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="QUhz" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
<Value Profile="(Default)">0</Value>
|
||||
</Setting>
|
||||
<Setting Name="QUres" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
<Value Profile="(Default)">0</Value>
|
||||
</Setting>
|
||||
<Setting Name="QUy" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
<Value Profile="(Default)">0</Value>
|
||||
</Setting>
|
||||
<Setting Name="QUx" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
<Value Profile="(Default)">0</Value>
|
||||
</Setting>
|
||||
<Setting Name="QUname" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
<Value Profile="(Default)">Change Me</Value>
|
||||
</Setting>
|
||||
<Setting Name="QUString" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
@@ -101,5 +101,8 @@
|
||||
<Setting Name="delsh" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="CurrPckg" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
46
QuestForm.Designer.cs
generated
46
QuestForm.Designer.cs
generated
@@ -125,7 +125,7 @@ namespace AndroidSideloader
|
||||
//
|
||||
this.ResetQU.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.ResetQU.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.ResetQU.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.5F);
|
||||
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.Name = "ResetQU";
|
||||
@@ -134,13 +134,13 @@ namespace AndroidSideloader
|
||||
this.ResetQU.Text = "RESET ALL FIELDS";
|
||||
this.ResetQU.UseVisualStyleBackColor = false;
|
||||
this.ResetQU.Visible = false;
|
||||
this.ResetQU.Click += new System.EventHandler(this.Clear_click);
|
||||
this.ResetQU.Click += new System.EventHandler(this.ResetQU_click);
|
||||
//
|
||||
// deleteButton
|
||||
//
|
||||
this.deleteButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.deleteButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.deleteButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.5F);
|
||||
this.deleteButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.5F);
|
||||
this.deleteButton.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
this.deleteButton.Location = new System.Drawing.Point(13, 606);
|
||||
this.deleteButton.Name = "deleteButton";
|
||||
@@ -155,7 +155,7 @@ namespace AndroidSideloader
|
||||
//
|
||||
this.questPics.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.questPics.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.questPics.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.5F);
|
||||
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.Name = "questPics";
|
||||
@@ -169,7 +169,7 @@ namespace AndroidSideloader
|
||||
//
|
||||
this.questVids.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.questVids.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.questVids.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.5F);
|
||||
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.Name = "questVids";
|
||||
@@ -213,7 +213,7 @@ namespace AndroidSideloader
|
||||
//
|
||||
this.button3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.button3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.5F);
|
||||
this.button3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.5F);
|
||||
this.button3.ForeColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
this.button3.Location = new System.Drawing.Point(101, 702);
|
||||
this.button3.Name = "button3";
|
||||
@@ -332,7 +332,7 @@ namespace AndroidSideloader
|
||||
"4"});
|
||||
this.CPUComboBox.Location = new System.Drawing.Point(13, 126);
|
||||
this.CPUComboBox.Name = "CPUComboBox";
|
||||
this.CPUComboBox.Size = new System.Drawing.Size(345, 21);
|
||||
this.CPUComboBox.Size = new System.Drawing.Size(345, 24);
|
||||
this.CPUComboBox.TabIndex = 2;
|
||||
this.CPUComboBox.Text = "Select CPU level (0 for default)";
|
||||
//
|
||||
@@ -354,7 +354,7 @@ namespace AndroidSideloader
|
||||
"4"});
|
||||
this.GPUComboBox.Location = new System.Drawing.Point(13, 97);
|
||||
this.GPUComboBox.Name = "GPUComboBox";
|
||||
this.GPUComboBox.Size = new System.Drawing.Size(345, 21);
|
||||
this.GPUComboBox.Size = new System.Drawing.Size(345, 24);
|
||||
this.GPUComboBox.TabIndex = 1;
|
||||
this.GPUComboBox.Text = "Select GPU level (0 for default)";
|
||||
//
|
||||
@@ -368,7 +368,7 @@ namespace AndroidSideloader
|
||||
this.label7.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label7.Location = new System.Drawing.Point(13, 532);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(44, 15);
|
||||
this.label7.Size = new System.Drawing.Size(49, 16);
|
||||
this.label7.TabIndex = 3;
|
||||
this.label7.Text = "Fov - X";
|
||||
this.label7.Visible = false;
|
||||
@@ -384,7 +384,7 @@ namespace AndroidSideloader
|
||||
this.label8.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label8.Location = new System.Drawing.Point(191, 532);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(43, 15);
|
||||
this.label8.Size = new System.Drawing.Size(50, 16);
|
||||
this.label8.TabIndex = 3;
|
||||
this.label8.Text = "Fov - Y";
|
||||
this.label8.Visible = false;
|
||||
@@ -400,7 +400,7 @@ namespace AndroidSideloader
|
||||
this.label9.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label9.Location = new System.Drawing.Point(11, 583);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(79, 15);
|
||||
this.label9.Size = new System.Drawing.Size(87, 16);
|
||||
this.label9.TabIndex = 3;
|
||||
this.label9.Text = "Refresh Rate";
|
||||
this.label9.Visible = false;
|
||||
@@ -415,7 +415,7 @@ namespace AndroidSideloader
|
||||
this.label6.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label6.Location = new System.Drawing.Point(13, 484);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(142, 15);
|
||||
this.label6.Size = new System.Drawing.Size(153, 16);
|
||||
this.label6.TabIndex = 3;
|
||||
this.label6.Text = "Enter Custom Username";
|
||||
this.label6.Visible = false;
|
||||
@@ -431,7 +431,7 @@ namespace AndroidSideloader
|
||||
this.label5.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.label5.Location = new System.Drawing.Point(12, 434);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(278, 15);
|
||||
this.label5.Size = new System.Drawing.Size(301, 16);
|
||||
this.label5.TabIndex = 3;
|
||||
this.label5.Text = "Custom Resolution Width (Height auto calculated)";
|
||||
this.label5.Visible = false;
|
||||
@@ -447,7 +447,7 @@ namespace AndroidSideloader
|
||||
this.ResolutionLabel.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.ResolutionLabel.Location = new System.Drawing.Point(11, 183);
|
||||
this.ResolutionLabel.Name = "ResolutionLabel";
|
||||
this.ResolutionLabel.Size = new System.Drawing.Size(163, 15);
|
||||
this.ResolutionLabel.Size = new System.Drawing.Size(177, 16);
|
||||
this.ResolutionLabel.TabIndex = 3;
|
||||
this.ResolutionLabel.Text = "Resolution (p eye, 0=default)";
|
||||
//
|
||||
@@ -461,7 +461,7 @@ namespace AndroidSideloader
|
||||
this.FOVy.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.FOVy.Location = new System.Drawing.Point(191, 507);
|
||||
this.FOVy.Name = "FOVy";
|
||||
this.FOVy.Size = new System.Drawing.Size(167, 20);
|
||||
this.FOVy.Size = new System.Drawing.Size(167, 22);
|
||||
this.FOVy.TabIndex = 12;
|
||||
this.FOVy.Text = "0";
|
||||
this.FOVy.Visible = false;
|
||||
@@ -477,7 +477,7 @@ namespace AndroidSideloader
|
||||
this.FOVx.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.FOVx.Location = new System.Drawing.Point(13, 507);
|
||||
this.FOVx.Name = "FOVx";
|
||||
this.FOVx.Size = new System.Drawing.Size(169, 20);
|
||||
this.FOVx.Size = new System.Drawing.Size(169, 22);
|
||||
this.FOVx.TabIndex = 11;
|
||||
this.FOVx.Text = "0";
|
||||
this.FOVx.Visible = false;
|
||||
@@ -493,7 +493,7 @@ namespace AndroidSideloader
|
||||
this.UsrBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.UsrBox.Location = new System.Drawing.Point(13, 459);
|
||||
this.UsrBox.Name = "UsrBox";
|
||||
this.UsrBox.Size = new System.Drawing.Size(345, 20);
|
||||
this.UsrBox.Size = new System.Drawing.Size(345, 22);
|
||||
this.UsrBox.TabIndex = 10;
|
||||
this.UsrBox.Text = "0";
|
||||
this.UsrBox.Visible = false;
|
||||
@@ -509,7 +509,7 @@ namespace AndroidSideloader
|
||||
this.ResBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.ResBox.Location = new System.Drawing.Point(13, 409);
|
||||
this.ResBox.Name = "ResBox";
|
||||
this.ResBox.Size = new System.Drawing.Size(345, 20);
|
||||
this.ResBox.Size = new System.Drawing.Size(345, 22);
|
||||
this.ResBox.TabIndex = 9;
|
||||
this.ResBox.Text = "0";
|
||||
this.ResBox.Visible = false;
|
||||
@@ -525,7 +525,7 @@ namespace AndroidSideloader
|
||||
this.TextureResTextBox.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.TextureResTextBox.Location = new System.Drawing.Point(13, 155);
|
||||
this.TextureResTextBox.Name = "TextureResTextBox";
|
||||
this.TextureResTextBox.Size = new System.Drawing.Size(169, 20);
|
||||
this.TextureResTextBox.Size = new System.Drawing.Size(169, 22);
|
||||
this.TextureResTextBox.TabIndex = 3;
|
||||
this.TextureResTextBox.Text = "0";
|
||||
//
|
||||
@@ -581,7 +581,7 @@ namespace AndroidSideloader
|
||||
"120"});
|
||||
this.QURfrRt.Location = new System.Drawing.Point(12, 555);
|
||||
this.QURfrRt.Name = "QURfrRt";
|
||||
this.QURfrRt.Size = new System.Drawing.Size(170, 21);
|
||||
this.QURfrRt.Size = new System.Drawing.Size(170, 24);
|
||||
this.QURfrRt.TabIndex = 13;
|
||||
this.QURfrRt.Text = "0";
|
||||
this.QURfrRt.Visible = false;
|
||||
@@ -603,7 +603,7 @@ namespace AndroidSideloader
|
||||
"120"});
|
||||
this.RefreshRateComboBox.Location = new System.Drawing.Point(13, 68);
|
||||
this.RefreshRateComboBox.Name = "RefreshRateComboBox";
|
||||
this.RefreshRateComboBox.Size = new System.Drawing.Size(345, 21);
|
||||
this.RefreshRateComboBox.Size = new System.Drawing.Size(345, 24);
|
||||
this.RefreshRateComboBox.TabIndex = 0;
|
||||
this.RefreshRateComboBox.Text = "Select refresh rate";
|
||||
//
|
||||
@@ -649,8 +649,8 @@ namespace AndroidSideloader
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.QURfrRt);
|
||||
this.Controls.Add(this.RefreshRateComboBox);
|
||||
this.MaximumSize = new System.Drawing.Size(386, 808);
|
||||
this.MinimumSize = new System.Drawing.Size(386, 608);
|
||||
this.MaximumSize = new System.Drawing.Size(386, 776);
|
||||
this.MinimumSize = new System.Drawing.Size(386, 776);
|
||||
this.Name = "QuestForm";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
|
||||
@@ -68,10 +68,10 @@ namespace AndroidSideloader
|
||||
|
||||
|
||||
|
||||
private void Clear_click(object sender, EventArgs e)
|
||||
public void ResetQU_click(object sender, EventArgs e)
|
||||
{
|
||||
ResBox.Text = ("0");
|
||||
UsrBox.Clear();
|
||||
UsrBox.Text = ("Change Me");
|
||||
FOVx.Text = ("0");
|
||||
FOVy.Text = ("0");
|
||||
QURfrRt.SelectedIndex = 0;
|
||||
@@ -124,6 +124,7 @@ namespace AndroidSideloader
|
||||
label9.Visible = false;
|
||||
label10.Visible = false;
|
||||
deleteButton.Visible = 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");
|
||||
}
|
||||
|
||||
@@ -72,13 +72,11 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
|
||||
string result = rgx.Replace(cmd, replacement);
|
||||
Program.form.ChangeTitle($"Running {result}");
|
||||
Logger.Log($"Logging command: {result} from file: {path}");
|
||||
if (ADB.DeviceID.Length > 1)
|
||||
output += ADB.RunAdbCommandToStringWOADB(result, path);
|
||||
output += ADB.RunAdbCommandToStringWOADB(result, path);
|
||||
if (output.Error.Contains("mkdir"))
|
||||
output.Error = "";
|
||||
if (output.Output.Contains("reserved"))
|
||||
output.Output = "";
|
||||
|
||||
}
|
||||
}
|
||||
output.Output += "Custom install successful!";
|
||||
|
||||
23
Updater.cs
23
Updater.cs
@@ -17,11 +17,10 @@ namespace AndroidSideloader
|
||||
private static string RawGitHubUrl;
|
||||
private static string GitHubUrl;
|
||||
|
||||
static readonly public string LocalVersion = "2.1";
|
||||
static readonly public string LocalVersion = "2.1.2HF";
|
||||
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();
|
||||
@@ -36,8 +35,6 @@ 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/{Repostory}";
|
||||
@@ -45,27 +42,25 @@ namespace AndroidSideloader
|
||||
if (IsUpdateAvailable())
|
||||
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();
|
||||
ServicePointManager.Expect100Continue = true;
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
Logger.Log($"Downloading update from {RawGitHubUrl}/releases/download/v{currentVersion}/{AppName}.exe to {AppName} v{currentVersion}.exe");
|
||||
fileClient.DownloadFile($"{GitHubUrl}/releases/download/v{currentVersion}/{AppName}.exe", $"{AppName} v{currentVersion}.exe");
|
||||
fileClient.Dispose();
|
||||
using (var fileClient = new WebClient())
|
||||
{
|
||||
ServicePointManager.Expect100Continue = true;
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
Logger.Log($"Downloading update from {RawGitHubUrl}/releases/download/v{currentVersion}/{AppName}.exe to {AppName} v{currentVersion}.exe");
|
||||
fileClient.DownloadFile($"{GitHubUrl}/releases/download/v{currentVersion}/{AppName}.exe", $"{AppName} v{currentVersion}.exe");
|
||||
fileClient.Dispose();
|
||||
}
|
||||
|
||||
Logger.Log($"Starting {AppName} v{currentVersion}.exe");
|
||||
Process.Start($"{AppName} v{currentVersion}.exe");
|
||||
//Delete current version
|
||||
AndroidSideloader.Utilities.GeneralUtilities.Melt();
|
||||
}
|
||||
catch { }
|
||||
|
||||
@@ -1,6 +1,62 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
2.1.2
|
||||
|
||||
+ Updated logic to use SideQuest adb.exe if present on system, if not RSL will use local adb.exe. This will keep adb.exe up to date as long as SQ is up to date and should fix any adb version issues that were preventing obb's from copying correctly.
|
||||
+ Added adb kill-server command to launch and exit of RSL. No more adb.exe running in background forever.
|
||||
= After PC reboot wireless ADB message should only pop up once or twice now (depending on outside factors) instead of 5x, user can press cancel then "wake" quest before pressing cancel again to reconnect wireless ADB in case of device just being idle, not rebooted.
|
||||
= Fixed install.txt not installing APK before following install.txt commands when using Drag and Drop install.
|
||||
= Uninstall will now backup saves to
|
||||
Documents\Rookie Backups\<Today'sDate>\<PackageName> (e.g.: com.beatgames.beatsaber).
|
||||
Restore process now looks for either data folder (the folder that a full backup of entire Quest will be contained in) or PackageName folder (they all start with com. so if it finds that it will restore it to the appropriate location). Previously RSL would backup individual saves to
|
||||
Documents\Rookie Backups\PackageName\data\PackageName.
|
||||
= OBB folders will automatically be copied when drag and dropping even if the folder contains no OBB files.
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDLArAACgkQx/Rql1Vo
|
||||
czfF5w/+JLiuayS6i7qwK04rxkin8xv81YqPDnfnroOXVtmEZwj70C/474yvK1EA
|
||||
ntWdc8guKzqSS5E7aaUEttS8r8xh6h+ZNp1EPHuQqcRkn0BJZqzk4CFT9ZxHRrD1
|
||||
UPuo8mlWa27+sEGEywNwasVDFkB4lMNL5cv0OWXxvMwAbaIP5gneITYBA6KzIp3L
|
||||
WVnHyqkRGAz6pGHsdoCXurOBdiXs9IEt6TPgZTmjFAbysewEvjIodtfgThHZKSbp
|
||||
XQZwMiY0GbSYJWTGWT3wcbi6TE5p7oTb9CbD6a6n8iuCeaRppkMVqvFIik6vDREJ
|
||||
4mRsvehM1RWV5b/v9bWi+5Pz0A8+hWxX+VjlgIQD1hLSMHbbpG4vzwRORl0/u8Bc
|
||||
H+XZOb7jun0Aiswqm49QPUAYSGqKhKuWkL4Eu2JDL6Fyq0ukmC85/w7MQUt1JF01
|
||||
0dGT/QzjOyPfZYuAyPwrBr8MJ9pyn/3gC6XAKFgMEjmOnqM4Ab2P3aXlg+NwvtDB
|
||||
8g6lbPxhqDuO49NyZZzhChXURE8ndOIgR9sSLfMjgYs5NaK6ZydNJiV8VRPjx+/J
|
||||
wXpPQLhHxP2Onu9c8SFRt1Lf6M01uRmH2dO7LbSxVjh+V+WyDGoPZt0kUMXpa9LJ
|
||||
l5S1MO+qe8akmXgoOCXnQYBOniS9iQqg4nmUK4PF7nssahQ6nG0=
|
||||
=Le5S
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
RSL 2.1.1
|
||||
|
||||
= 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!!!
|
||||
|
||||
|
||||
6441
debuglog.txt
6441
debuglog.txt
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user