Compare commits

...

26 Commits
v2.1 ... v2.2

Author SHA1 Message Date
harryeffinpotter
e8fcae997b 2.2 2021-06-17 04:22:20 -04:00
Harry Fn Potter
9912af4acc Updater revert 2021-06-17 04:17:37 -04:00
harryeffinpotter
f243853fca HF 2021-06-17 04:14:52 -04:00
harryeffinpotter
fc98d61304 removed v 2021-06-17 04:12:14 -04:00
Harry Fn Potter
d38af14ed4 Merge branch 'master' of https://github.com/nerdunit/androidsideloader 2021-06-17 04:09:49 -04:00
Harry Fn Potter
17165c35a9 changelog 2021-06-17 04:09:42 -04:00
harryeffinpotter
5e30e3a22c 2.1.2 2021-06-17 04:08:28 -04:00
Harry Fn Potter
bba48c5dc5 ADB Debugging warning reimplemented. Unauthorized code section was not proccing response. 2021-06-17 04:01:15 -04:00
Harry Fn Potter
5d75edaf63 Anchor points + max/min window size for Quest options. 2021-06-16 05:58:29 -04:00
Harry Fn Potter
62d9187cfa Merge branch 'master' of https://github.com/nerdunit/androidsideloader 2021-06-16 05:38:11 -04:00
Harry Fn Potter
cf1dda5e5b 2.1.2 - in progress, still testing,
= Fixed apk drag and drop when install.txt present, apk now installs prior to following install.txt commands.
= Changed OBB procedure for drag and drop to check for com. in directory name prior to running copyObb command.
= Fixed freeze caused by having Wireless ADB enabled but device idle or rebooted.
2021-06-16 05:38:01 -04:00
harryeffinpotter
a5f6590019 v2.1.1
2.1.1
2021-06-01 12:34:02 -04:00
Harry Fn Potter
b7cd6c1cb4 Merge branch 'master' of https://github.com/nerdunit/androidsideloader 2021-06-01 12:32:04 -04:00
Harry Fn Potter
452e733b3a changed version name to 2.1.1 2021-06-01 12:31:45 -04:00
harryeffinpotter
146defaef3 update to hf2
update hf2
2021-06-01 12:17:30 -04:00
Harry Fn Potter
fb2b6c0a58 version change 2021-06-01 12:12:59 -04:00
Harry Fn Potter
cec0104b05 Merge branch 'master' of https://github.com/nerdunit/androidsideloader 2021-06-01 12:12:38 -04:00
Harry Fn Potter
7c78acb9bd HF2 Fixed QUSettings not working (due to 0's not being in unused fields), fixed backup and mount. 2021-06-01 12:12:24 -04:00
harryeffinpotter
7cad9565b2 HF 2021-05-29 10:28:06 -04:00
harryeffinpotter
a47918841f test 2021-05-29 10:07:21 -04:00
harryeffinpotter
b8e28b38ff Hotfix 2021-05-29 09:54:41 -04:00
Harry Fn Potter
2f66e7bf88 Hotfix: Font size and Install.txt automation. 2021-05-29 09:51:43 -04:00
Harry Fn Potter
30f6dc9064 Merge branch 'master' of https://github.com/nerdunit/androidsideloader 2021-05-29 08:37:25 -04:00
Harry Fn Potter
8f937ee8f3 updater /n fix. 2021-05-29 08:36:12 -04:00
harryeffinpotter
94b7aac050 fix 2021-05-29 08:34:55 -04:00
harryeffinpotter
89c58b202e 2.1 2021-05-29 08:22:04 -04:00
15 changed files with 6727 additions and 204 deletions

3
.gitignore vendored
View File

@@ -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
View File

@@ -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;
}

View File

@@ -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
View File

@@ -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";
//

View File

@@ -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)

View File

@@ -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;
}
}
}
}

View File

@@ -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
View File

@@ -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;

View File

@@ -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");
}

View File

@@ -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!";

View File

@@ -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 { }

View File

@@ -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!!!

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
2.0-WIP-SU1
2.2