Compare commits

...

25 Commits

Author SHA1 Message Date
Harry Fn Potter
5b5ce78471 changelog hf5 with sig 2021-06-30 23:31:46 -04:00
Harry Fn Potter
c96a98b38a Merge branch 'master' of https://github.com/nerdunit/androidsideloader 2021-06-30 23:29:16 -04:00
Harry Fn Potter
b0bb41732d ADB path fix once and for all. 2021-06-30 23:29:04 -04:00
harryeffinpotter
c6ef62c6ca 2.1HF4 2021-06-29 06:37:48 -04:00
Harry Fn Potter
0b04783962 Changelog update. 2021-06-29 06:33:21 -04:00
Harry Fn Potter
5fab216798 Updated version # in updater. 2021-06-29 06:28:08 -04:00
Harry Fn Potter
a37c843a99 Update RSL2.1HF4 - RSL now copies ADB files to AppData\Roaming\RSL\Version\ADB 2021-06-29 06:24:46 -04:00
harryeffinpotter
222edcd6a8 2.1 hf3 2021-06-20 17:49:13 -04:00
harryeffinpotter
130140727b testing something 2021-06-20 17:47:00 -04:00
harryeffinpotter
5ec2f260fc hf3 2021-06-20 17:41:37 -04:00
Harry Fn Potter
a7ad7c0a83 Fixed install.txt AGAIN. The spaghetti code is spaghetti code. 2021-06-20 17:31:15 -04:00
Harry Fn Potter
bd511d28a8 FINALLY back to normal. JFC. 2021-06-20 12:29:26 -04:00
Harry Fn Potter
75a75bd627 Missing bracket in mainform. 2021-06-19 23:05:09 -04:00
Harry Fn Potter
0bc0f6668a fixed obb install.txt. Fixed adb errors. Should be all good meow. Also fixed wireless causing program freeze if IP changed. 2021-06-19 23:03:18 -04:00
Harry Fn Potter
f72c6b8d95 updater 2021-06-19 20:03:50 -04:00
Harry Fn Potter
3952931831 Merge fixes 2021-06-19 20:02:39 -04:00
Harry Fn Potter
9346b75916 Fixes 2021-06-19 20:01:12 -04:00
Harry Fn Potter
b9e98894e9 Fixed all issues. 2021-06-19 20:00:18 -04:00
Harry Fn Potter
c2b4fb499c Merge branch 'master' of https://github.com/nerdunit/androidsideloader 2021-06-19 04:09:08 -04:00
Harry Fn Potter
e040e36564 Install.txt was using cmd exe , made it use adb exe and added another function for cmd only purposes for 7zip extracts during install.txt 2021-06-19 04:08:56 -04:00
harryeffinpotter
459a496bbb 2.1.2HF 2021-06-17 04:24:54 -04:00
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
12 changed files with 229 additions and 137 deletions

View File

@@ -2,5 +2,6 @@
"ExpandedNodes": [
""
],
"SelectedNode": "\\AndroidSideloader.sln",
"PreviewInSolutionExplorer": false
}

Binary file not shown.

127
ADB.cs
View File

@@ -12,17 +12,18 @@ namespace AndroidSideloader
class ADB
{
static Process adb = new Process();
public static string adbFolderPath = Properties.Settings.Default.ADBPath;
public static string adbFilePath = Properties.Settings.Default.ADBPath + "\\adb.exe";
public static string adbFolderPath = "C:\\RSL\\2.14HF5\\ADB";
public static string adbFilePath = adbFolderPath + "\\adb.exe";
public static string DeviceID = "";
public static string package = "";
public static ProcessOutput RunAdbCommandToString(string command)
{
Properties.Settings.Default.ADBPath = adbFilePath;
Properties.Settings.Default.Save();
if (DeviceID.Length > 1)
command = $" -s {DeviceID} {command}";
Logger.Log($"Running command {command}");
adb.StartInfo.FileName = adbFilePath;
adb.StartInfo.FileName = @adbFilePath;
adb.StartInfo.Arguments = command;
adb.StartInfo.RedirectStandardError = true;
adb.StartInfo.RedirectStandardInput = true;
@@ -30,26 +31,23 @@ namespace AndroidSideloader
adb.StartInfo.CreateNoWindow = true;
adb.StartInfo.UseShellExecute = false;
adb.StartInfo.WorkingDirectory = adbFolderPath;
adb.Start();
adb.StandardInput.WriteLine(command);
adb.StandardInput.Flush();
adb.StandardInput.Close();
string output = "";
string error = "";
try
{
{
output = adb.StandardOutput.ReadToEnd();
error = adb.StandardError.ReadToEnd();
}
catch { }
if (command.Contains("connect"))
{
bool graceful = adb.WaitForExit(5000); //Wait 7 secs.
bool graceful = adb.WaitForExit(3000); //Wait 3 secs.
if (!graceful)
{
adb.Kill();
@@ -57,16 +55,19 @@ namespace AndroidSideloader
}
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);
}
public static ProcessOutput RunAdbCommandToStringWOADB(string result, string path)
{
string command = result;
Properties.Settings.Default.ADBPath = adbFilePath;
Properties.Settings.Default.Save();
;
Logger.Log($"Running command {command}");
adb.StartInfo.FileName = "cmd.exe";
adb.StartInfo.RedirectStandardError = true;
@@ -86,19 +87,75 @@ namespace AndroidSideloader
try
{
output += adb.StandardOutput.ReadToEnd();
error += adb.StandardError.ReadToEnd();
output += adb.StandardOutput.ReadToEnd();
error += adb.StandardError.ReadToEnd();
}
catch { }
if (command.Contains("connect"))
{
bool graceful = adb.WaitForExit(3000);
if (!graceful)
{
adb.Kill();
}
}
else
adb.WaitForExit();
if (error.Contains("ADB_VENDOR_KEYS"))
MessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.");
Logger.Log(output);
Logger.Log(error);
return new ProcessOutput(output, error);
}
adb.WaitForExit();
public static ProcessOutput RunCommandToString(string result, string path)
{
string command = result;
Logger.Log($"Running command {command}");
adb.StartInfo.FileName = @"C:\windows\system32\cmd.exe";
adb.StartInfo.Arguments = command;
adb.StartInfo.RedirectStandardError = true;
adb.StartInfo.RedirectStandardInput = true;
adb.StartInfo.RedirectStandardOutput = true;
adb.StartInfo.CreateNoWindow = true;
adb.StartInfo.UseShellExecute = false;
adb.StartInfo.WorkingDirectory = Path.GetDirectoryName(path);
adb.Start();
adb.StandardInput.WriteLine(command);
adb.StandardInput.Flush();
adb.StandardInput.Close();
string output = "";
string error = "";
try
{
output += adb.StandardOutput.ReadToEnd();
error += adb.StandardError.ReadToEnd();
}
catch { }
if (command.Contains("connect"))
{
bool graceful = adb.WaitForExit(3000);
if (!graceful)
{
adb.Kill();
}
}
else
adb.WaitForExit();
if (error.Contains("ADB_VENDOR_KEYS"))
MessageBox.Show("Please check inside your headset for ADB DEBUGGING prompt, check box to \"Always allow from this computer.\" and hit OK.");
Logger.Log(output);
Logger.Log(error);
return new ProcessOutput(output, error);
}
public static ProcessOutput UninstallPackage(string package)
public static ProcessOutput UninstallPackage(string package)
{
WakeDevice();
ProcessOutput output = new ProcessOutput("", "");
@@ -114,7 +171,7 @@ namespace AndroidSideloader
long usedSize = 0;
long freeSize = 0;
WakeDevice();
var output = RunAdbCommandToString("shell df").Output.Split('\n');
foreach (string currLine in output)
@@ -228,6 +285,7 @@ namespace AndroidSideloader
WakeDevice();
ProcessOutput ret = new ProcessOutput();
package = packagename;
Program.form.ChangeTitle($"Sideloading {path}");
ret += RunAdbCommandToString($"install -g -r \"{path}\"");
@@ -247,7 +305,7 @@ namespace AndroidSideloader
ret.Output = string.Empty;
MessageBox.Show($"In-place upgrade for {packagename} failed. We will need to upgrade by uninstalling, and keeping savedata isn't guaranteed. Continue?", "UPGRADE FAILED!", MessageBoxButtons.OKCancel);
MessageBox.Show($"In place upgrade for {packagename} failed. We will need to upgrade by uninstalling, and keeping savedata isn't guaranteed. Continue?", "UPGRADE FAILED!", MessageBoxButtons.OKCancel);
string date_str = DateTime.Today.ToString("yyyy.MM.dd");
string CurrBackups = Path.Combine(BackupFolder, date_str);
@@ -256,9 +314,9 @@ namespace AndroidSideloader
MessageBox.Show($"Searching for save files...", "Searching!", MessageBoxButtons.OK);
if (Directory.Exists($"/sdcard/Android/data/{packagename}"))
{
MessageBox.Show($"Trying to backup save to Documents\\Rookie Backups\\{date_str}(year.month.date)\\{packagename}\\data", "Save files found", MessageBoxButtons.OK);
MessageBox.Show($"Trying to backup save to Documents\\Rookie Backups\\{date_str}(YYYY.MM.DD)\\{packagename}", "Save files found", MessageBoxButtons.OK);
Directory.CreateDirectory(CurrBackups);
ADB.RunAdbCommandToString($"pull \"/sdcard/Android/data/{packagename} \" \"{CurrBackups}\"");
ADB.RunAdbCommandToString($"pull \"/sdcard/Android/data/{packagename}\" \"{CurrBackups}\"");
}
else
{
@@ -269,7 +327,7 @@ namespace AndroidSideloader
}
}
ADB.WakeDevice();
ret += ADB.RunAdbCommandToString("shell pm uninstall " + packagename);
ret += ADB.RunAdbCommandToString("shell pm uninstall " + package);
ret += RunAdbCommandToString($"install -g -r \"{path}\"");
return ret;
}
@@ -277,15 +335,13 @@ namespace AndroidSideloader
}
if (File.Exists($"{Properties.Settings.Default.MainDir}\\Config.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");
if (!Directory.Exists($"/sdcard/android/data/{package}"))
RunAdbCommandToString($"shell mkdir /sdcard/android/data/{package}");
if (!Directory.Exists($"/sdcard/android/data/{package}/private"))
RunAdbCommandToString($"shell mkdir /sdcard/android/data/{package}/private");
Random r = new Random();
int x = r.Next(999999999);
@@ -304,15 +360,8 @@ namespace AndroidSideloader
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");
}
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";
ret += ADB.RunAdbCommandToString($"push \"{Environment.CurrentDirectory}\\delete_settings\" /sdcard/android/data/{package}/private/delete_settings");
ret += ADB.RunAdbCommandToString($"push \"{Environment.CurrentDirectory}\\config.json\" /sdcard/android/data/{package}/private/config.json");
}
Program.form.ChangeTitle("Sideload done");

View File

@@ -27,7 +27,7 @@
<value>True</value>
</setting>
<setting name="userJsonOnGameInstall" serializeAs="String">
<value>True</value>
<value>False</value>
</setting>
<setting name="CallUpgrade" serializeAs="String">
<value>True</value>

View File

@@ -194,29 +194,28 @@ namespace AndroidSideloader
public void ChangeTitlebarToDevice()
{
if (Devices[0].Length > 1 && Devices.Contains("unauthorized") || Devices.Contains("ADB_VENDOR_KEYS"))
{
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)
{
devicesbutton.PerformClick();
}
else
{
return;
}
});
}
if (!Devices.Contains("unauthorized"))
{
{
if (Devices[0].Length > 1 && Devices[0].Contains("unauthorized"))
{
DeviceConnected = false;
this.Invoke(() =>
{
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;
}
if (Devices[0].Length > 1)
});
}
else if (Devices[0].Length > 1)
{
this.Invoke(() => { this.Text = "Device Connected with ID | " + Devices[0].Replace("device", ""); });
DeviceConnected = true;
@@ -240,7 +239,6 @@ namespace AndroidSideloader
});
}
}
public async void showAvailableSpace()
@@ -291,12 +289,33 @@ namespace AndroidSideloader
private async void Form1_Load(object sender, EventArgs e)
{
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";
string adbFile = "C:\\RSL\\2.14HF5\\adb\\adb.exe";
string adbDir = "C:\\RSL\\2.14HF5\\adb";
string fileName = "";
string destFile = "";
Properties.Settings.Default.MainDir = Environment.CurrentDirectory;
Properties.Settings.Default.Save();
if (!File.Exists(adbFile))
{
Directory.CreateDirectory(adbDir);
if (System.IO.Directory.Exists($"{Environment.CurrentDirectory}\\adb"))
{
string[] ADBfiles = System.IO.Directory.GetFiles($"{Properties.Settings.Default.MainDir}\\adb");
// Copy the files and overwrite destination files if they already exist.
foreach (string s in ADBfiles)
{
fileName = System.IO.Path.GetFileName(s);
destFile = System.IO.Path.Combine(adbDir, fileName);
System.IO.File.Copy(s, destFile, true);
}
}
}
Properties.Settings.Default.ADBPath = adbFile;
Properties.Settings.Default.Save();
ADB.RunAdbCommandToString("kill-server");
if (File.Exists(Sideloader.CrashLogPath))
{
@@ -353,7 +372,6 @@ 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 { }
}
@@ -425,17 +443,17 @@ Do you want to delete the {Sideloader.CrashLogPath} (if you press yes, this mess
ProcessOutput output = new ProcessOutput("", "");
var dialog = new FolderSelectDialog
{
Title = "Select your obb folder"
Title = "Select full backup or packagename backup folder"
};
if (dialog.Show(Handle))
{
string path = dialog.FileName;
Thread t1 = new Thread(() =>
{
if (path.Contains("com."))
output += ADB.RunAdbCommandToString($"push \"{path}\" /sdcard/Android/data/");
if (path.Contains("data"))
output += ADB.RunAdbCommandToString($"push \"{path}\" /sdcard/Android/");
output += ADB.RunAdbCommandToString($"push \"{path}\" /sdcard/Android/");
else
output += ADB.RunAdbCommandToString($"push \"{path}\" /sdcard/Android/data/");
});
t1.IsBackground = true;
t1.Start();
@@ -524,7 +542,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");
@@ -533,7 +551,7 @@ 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}", "Attempting Backup...", MessageBoxButtons.OK);
MessageBox.Show($"If savedata is found it will be saved to Documents\\Rookie Backups\\{date_str}(YYYY.MM.DD)\\{packagename}", "Attempting Backup...", MessageBoxButtons.OK);
Directory.CreateDirectory(CurrBackups);
ADB.RunAdbCommandToString($"pull \"/sdcard/Android/data/{packagename}\" \"{CurrBackups}\"");
@@ -636,16 +654,17 @@ 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 (data.StartsWith("com."))
if (Directory.Exists(data))
{
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;
@@ -657,38 +676,35 @@ 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);
foreach (string file in files)
{
}
string[] files = Directory.GetFiles(data);
foreach (string file in files)
{
if (File.Exists(file))
if (file.EndsWith(".apk"))
{
output += ADB.Sideload(file);
}
}
string[] folders = Directory.GetDirectories(data);
foreach (string folder in folders)
{
output += ADB.CopyOBB(folder);
Properties.Settings.Default.CurrPckg = dir;
Properties.Settings.Default.Save();
}
}
string[] folders = Directory.GetDirectories(data);
foreach (string folder in folders)
{
output += ADB.CopyOBB(folder);
Properties.Settings.Default.CurrPckg = dir;
Properties.Settings.Default.Save();
}
}
//if it's a file
else if (File.Exists(data))
{
string extension = Path.GetExtension(data);
if (extension == ".apk")
{
output += ADB.Sideload(data);
if (File.Exists($"{dir}\\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;
@@ -699,6 +715,10 @@ 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")
{
@@ -1233,7 +1253,6 @@ without him none of this would be possible
}
if (quotaError == false)
{
ADB.WakeDevice();
ADB.DeviceID = GetDeviceID();
quotaTries = 0;
progressBar.Value = 0;
@@ -1273,7 +1292,6 @@ without him none of this would be possible
}
Debug.WriteLine(wrDelimiter);
ADB.WakeDevice();
string[] folders = Directory.GetDirectories(Environment.CurrentDirectory + "\\" + gameName);
foreach (string folder in folders)
@@ -1483,7 +1501,7 @@ without him none of this would be possible
FlexibleMessageBox.Show("There are no games in rclone, please check your internet connection and check if the config is working properly");
return;
}
string gamesToUpdate = "";
foreach (string packagename in Sideloader.InstalledPackages.Keys)
{
foreach (var release in SideloaderRCLONE.games)
@@ -1523,12 +1541,15 @@ without him none of this would be possible
{
ADB.WakeDevice();
if (ADB.DeviceID.Contains(":5555")) {
MessageBox.Show("Mounting does not work with Wireless ADB, you must plug Quest into PC to mount.");
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");
}
ADB.RunAdbCommandToString("shell svc usb setFunctions mtp true");
else
FlexibleMessageBox.Show("You must connect a device before mounting!");
}
private void freeDisclaimer_Click(object sender, EventArgs e)

View File

@@ -85,7 +85,7 @@ namespace AndroidSideloader.Properties {
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool userJsonOnGameInstall {
get {
return ((bool)(this["userJsonOnGameInstall"]));

View File

@@ -18,7 +18,7 @@
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="userJsonOnGameInstall" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CallUpgrade" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>

View File

@@ -58,16 +58,20 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
var commands = File.ReadAllLines(path);
foreach (string cmd in commands)
{
if (cmd.StartsWith("\"7z.exe\""))
if (cmd.Contains("7z.exe"))
{
Program.form.ChangeTitle($"Running {cmd}");
Logger.Log($"Logging command: {cmd} from file: {path}");
output += ADB.RunAdbCommandToStringWOADB(cmd, path);
output += ADB.RunCommandToString(cmd, path);
}
if (cmd.StartsWith("adb"))
{
string replacement = "";
string pattern = "adb";
string replacement = $"{Properties.Settings.Default.ADBPath} -s {ADB.DeviceID}";
if (ADB.DeviceID.Length > 1)
replacement = $"{Properties.Settings.Default.ADBPath} -s {ADB.DeviceID}";
else
replacement = $"{Properties.Settings.Default.ADBPath}";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(cmd, replacement);
Program.form.ChangeTitle($"Running {result}");

View File

@@ -115,7 +115,7 @@ namespace AndroidSideloader
catch { return 0; }
}
public static async Task updateConfig(string remote)
public static void updateConfig(string remote)
{
string localHash = "";
try { localHash = File.ReadAllText(Environment.CurrentDirectory + "\\rclone\\hash.txt"); } catch { } //file may not exist

View File

@@ -17,7 +17,7 @@ namespace AndroidSideloader
private static string RawGitHubUrl;
private static string GitHubUrl;
static readonly public string LocalVersion = "2.1.2";
static readonly public string LocalVersion = "2.1HF5";
public static string currentVersion = string.Empty;
public static string changelog = string.Empty;
@@ -28,8 +28,6 @@ namespace AndroidSideloader
try
{
currentVersion = client.GetStringAsync($"{RawGitHubUrl}/master/version").Result;
if (currentVersion.Length > LocalVersion.Length)
currentVersion = currentVersion.Remove(currentVersion.Length - 1);
changelog = client.GetStringAsync($"{RawGitHubUrl}/master/changelog.txt").Result;
client.Dispose();
}
@@ -40,8 +38,8 @@ namespace AndroidSideloader
//Call this to ask the user if they want to update
public static void Update()
{
RawGitHubUrl = $"https://raw.githubusercontent.com/{Repostory}";
GitHubUrl = $"https://github.com/{Repostory}";
RawGitHubUrl = $"https://raw.githubusercontent.com/nerdunit/androidsideloader";
GitHubUrl = $"https://github.com/nerdunit/androidsideloader";
if (IsUpdateAvailable())
doUpdate();
}

View File

@@ -1,38 +1,57 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
2.1.2
Update RSL2.1HF5
+ 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.
Fixed ADB path for usernames containing spaces. ADB now located at c:\RSL\VersionNumber\ADB
- -HarryEffingPotter-
-----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
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDdNvsACgkQx/Rql1Vo
czdIWQ/+OvvchZOuwMZJvd6d/N4WmBUPKm3TzyiF5JM/STLEbLIHB1p6LQg+6J3K
3d9x3mQmu/gMHMumsfmuOuHHI7OOs9CLOVY2UFm7CqTnDf7iCxl8+6/iQw48yfj9
63qwUKZdLueRX9IqtcV2MwZJP7eKdZmtv6ALyRbjWmo2fgbm/Fs1U+TfGnlY7qLg
wIascv5DuKRyHvRzlgdn6OqmewWTxHDOTwCTjodROIK9guCELNYhEWv/TtgMldv9
gz1Lr8KZOcxNltpvstJgdbeFy61LK67su0rKZHsGMu4x0hDe4YOyjyMDtXrVJ0VH
SJBqDgSKD3HE/MNYkCWusqs7np2XKXC8hP6nm2QO9zM44d+UWDfrJbwvvw6QUoez
Iqk/PskC3sF7kWAv4O+LRmLDlrHD2RG5TkkE4ohiIi4D4VaNEx4QyVf6INN+A9xd
IxcvXC9QkFwffUD93cThEdLNRnrnzZSsUFMRh3XrvPbq2wfvWjqZX1EGfD7ug0Mf
r9uPX4RdILvsXeybefiiwLiw3UNMJtUlaKDvqIit5S78BIP6DY+dGnMMRIQJa1vd
XBPnIHyifzvl1nyYd6TWCFRuOzZLYirv4Ug6xS1/KzyURXIz2P0EEhDURJAR/q+M
ZmqSO2eQo64B7Dfa9oRLKkZRfhWFgtYA9QKm9ei7tOPbnJ+2718=
=o5Nr
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
RSL 2.1.1
RSL 2.1HF4
= Moved ADB files to AppData\Roaming\RSL to fix compatibility issues across the board.
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmDa9rQACgkQx/Rql1Vo
czeiYQ//X6e3DD51Kgta/omu0fVtPM4lxt+P/H5ij1xbNPmoaL7w+QvNeFqVLPs0
T8btbEkDT7pisOHQtHFKENs4G0Sck0RkI0jVNu1lYIT67tmTYyFGP4jOxopktmNE
uydmI8g+8UkuTPYIKpkYJUOrWT1u4IV0SoBsdERYU7qRZmvCqWgwqdcs4R6wAdm0
FNqWRbUo/LhFw1rQicny4vL7w6rf7PvAksWifqbl1KfBFAchf4cZ3+YKeyO4V2Ym
7LcNgVGaSuPCr5dKmVr31B0kU0XrV8KPpKwgoIOym8eH8PNuaj3elwbndqYZ95fB
xNFluF9z9qejiIkYM9UDSoeNEfeJaUwIfgb1WI4w+BdlTWaYZfsG+DF+VOBvSU/h
YP1ucGrqCu2lLxcIS5ffNd7dTjS22D2x2rErqXGl+ETgqgVHK9NU9Bd02VVyP171
Ryq/JRd9tvFknAG6YViVADJDzKdnuwFYeo/T5wgt8P7GtzVZWmZbur6crXK454IH
TkyLn9XFbJneGPxjLNm4VwCR0XWFmhAsE+CfRz52hL18RAxyeohWq7RBTt+d49t9
eOhTTzOHoWgroOVTV793r+FLdc4nYDhLXRm6I65qhvQhEPCqZDIA1xuvzPbSectb
VNNRuPmhxDgtevFFsU/sX8xOv8pKi6naW8N6jobXPavwegABCEg=
=61BS
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
RSL 2.1HF3
= Fixed QUSettings not working issue.(unused fields in QUSettings MUST have 0's in them or it will not work, reset/clear all fields button now reflect this.)
= Fixed Uninstall auto-save-backup

View File

@@ -1 +1 @@
v2.1.2
2.1HF4