Compare commits

...

2 Commits

Author SHA1 Message Date
William Swartwood
2ed7034284 RSL 2.8.5
+ Added OPT-IN installed packages check,
this will be used to add common free apps
to a blacklist so a future version of RSL
can ask users to donate new apps.

= Fixed logic for apk signature mismatch
automatic reinstall.

= Increased timer for apk installation
failure to 3 minutes.

= Fixed blacklist implementation for
updates to apps already on RSL.

- - Removed 2nd confirmation dialog for
app uninstalls.

HFP
2021-08-20 03:56:48 -04:00
William Swartwood
98dc7f4738 2.8.4* 2021-08-19 20:24:08 -04:00
8 changed files with 82 additions and 70 deletions

1
ADB.cs
View File

@@ -224,7 +224,6 @@ namespace AndroidSideloader
{
WakeDevice();
ProcessOutput output = new ProcessOutput("", "");
output += RunAdbCommandToString($"shell pm uninstall -k --user 0 {package}");
output += RunAdbCommandToString($"shell pm uninstall {package}");
return output;
}

View File

@@ -1,6 +1,49 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
RSL 2.8.5
+ Added OPT-IN installed packages check,
this will be used to add common free apps
to a blacklist so a future version of RSL
can ask users to donate new apps.
= Fixed logic for apk signature mismatch
automatic reinstall.
= Increased timer for apk installation
failure to 3 minutes.
= Fixed blacklist implementation for
updates to apps already on RSL.
- - Removed 2nd confirmation dialog for
app uninstalls.
HFP
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEKjgtlwMyrpVu4TGfx/Rql1VoczcFAmEfX4kACgkQx/Rql1Vo
czch2BAAgPAPx8ziiX8e+IH9wBTBbj+Z9V8/GCaehCYd2SdOi9n4rHwzKL2S96mb
VAyEuYyEnPc+sGIIVoUczAeoBOFpt6rwVwAysHfX85+MFcaJ8x/k5iAHwUYUDbaS
retbuPO4YIsPHI38DWscOO0G/uD+caa5sf6/hYr6wLhIIozAmE3L9XtUuYO6kKSo
m2hBAf728MWODRHH0G6+ktJG1sL1l5x66A+wvRkKHoYZFGLrAM126yGWIQlmWdtN
F2AzBPXvIX09wtpiXQwLAc0GNF/wrazd8A5d9l0c+Rkl2lmist5k9xBD+MAbehdb
QI1QgKXDvEZIp/+B4BgaB193HxZZFphVkRtera8mlohmiHVzunFcpHonOrc90jjk
7fAMiieR/EgaRGXux9a24s/q32L/dHxqUtZfHhYbgRtWe4Kcm9AbVkLDVSAPiQik
5k8fFRkokRQVgd5i/G0fzMPLHfKIn9afQ5oli7WxL761JQcx7HDb6/HS0BKiyZWN
CsAxNjHt+4B/k5lvJNSCJL8mjQMjTViiPNYE9OmM6SzttvYtn8NGE6+fKb/e5x7+
DjQuOVZ3b6TtKnvmx/Q5TbF82P23p9I6Aa32mMO8edD2CYKIF8bmDNlSGjWs3EC9
OxsIksCmNIb4pxY25ejlN/X92/75YNsxrI+dYhXJPMOm39WQtVY=
=EPMk
-----END PGP SIGNATURE-----
RSL 2.8.4
+ Hotfix to update the exclusion list of games we need updates for.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
RSL 2.8.2
+ Added automatic upload to Google shared drive

View File

@@ -879,12 +879,11 @@ namespace AndroidSideloader
Directory.CreateDirectory(CurrBackups);
ADB.RunAdbCommandToString($"pull \"/sdcard/Android/data/{packagename}\" \"{CurrBackups}\"");
DialogResult dialogResult = FlexibleMessageBox.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)
DialogResult dialogResult = FlexibleMessageBox.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?", "Continue with Uninstall?", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.No)
{
return;
}
ProcessOutput output = new ProcessOutput("", "");
progressBar.Style = ProgressBarStyle.Marquee;
Thread t1 = new Thread(() =>
@@ -892,26 +891,17 @@ namespace AndroidSideloader
output += Sideloader.UninstallGame(GameName);
});
t1.Start();
t1.IsBackground = true;
while (t1.IsAlive)
await Task.Delay(100);
ShowPrcOutput(output);
showAvailableSpace();
progressBar.Style = ProgressBarStyle.Continuous;
m_combo.Items.RemoveAt(m_combo.SelectedIndex);
ShowPrcOutput(output);
listappsbtn();
initListView();
}
private async void sideloadFolderButton_Click(object sender, EventArgs e)
{
{
ADB.WakeDevice();
var dialog = new FolderSelectDialog
@@ -1153,10 +1143,6 @@ namespace AndroidSideloader
{
gamesListView.Items.Clear();
gamesListView.Columns.Clear();
if (!File.Exists("installedPackages.json"))
{
File.Create("installedPackages.json");
}
foreach (string column in SideloaderRCLONE.gameProperties)
{
gamesListView.Columns.Add(column, 150);
@@ -1170,9 +1156,9 @@ namespace AndroidSideloader
char[] delims = new[] { '\r', '\n' };
string[] packageList = result.Split(delims, StringSplitOptions.RemoveEmptyEntries);
string[] blacklist = new string[] { };
if (File.Exists($"{Environment.CurrentDirectory}\\nouns\\blacklist.txt"))
if (File.Exists($"{Properties.Settings.Default.MainDir}\\nouns\\blacklist.txt"))
{
blacklist = File.ReadAllLines($"{Environment.CurrentDirectory}\\nouns\\blacklist.txt");
blacklist = File.ReadAllLines($"{Properties.Settings.Default.MainDir}\\nouns\\blacklist.txt");
}
List<ListViewItem> GameList = new List<ListViewItem>();
List<String> rookieList = new List<String>();
@@ -1227,13 +1213,16 @@ namespace AndroidSideloader
else
Game.BackColor = Color.FromArgb(102, 77, 0);
}
bool dontget = false;
if (installedVersionInt > cloudVersionInt)
{
bool dontget = false;
if (blacklist.Contains(packagename))
dontget = true;
string RlsName = Sideloader.PackageNametoGameName(packagename);
string GameName = Sideloader.gameNameToSimpleName(RlsName);
if (!GameName.Contains("Beat Saber") && !dontget && !updatesnotified && !isworking && cloudVersionInt > 0)
if (!dontget && !updatesnotified && !isworking)
{
DialogResult dialogResult = FlexibleMessageBox.Show($"You have a newer version of:\n\n{GameName}\n\nRSL can AUTOMATICALLY UPLOAD the clean files to a shared drive in the background,\nthis is the only way to keep the apps up to date for everyone.\n\nNOTE: Rookie will only extract the APK/OBB which contain NO personal information whatsoever.", "CONTRIBUTE CLEAN FILES?", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
@@ -1298,13 +1287,12 @@ namespace AndroidSideloader
if (File.Exists($"{Properties.Settings.Default.MainDir}\\{game.Uploadgamename} v{game.Uploadversion}.zip"))
File.Delete($"{Properties.Settings.Default.MainDir}\\{game.Uploadgamename} v{game.Uploadversion}.zip");
string path = $"{Properties.Settings.Default.MainDir}\\7z.exe";
string cmd = $"7z a \"{game.Uploadgamename} v{game.Uploadversion}.zip\" .\\{game.Pckgcommand}\\*";
string cmd = $"7z a \"{Properties.Settings.Default.MainDir}\\{game.Uploadgamename} v{game.Uploadversion}.zip\" .\\{game.Pckgcommand}\\*";
ChangeTitle("Zipping extracted application...");
ADB.RunCommandToString(cmd, path);
Directory.Delete($"{Properties.Settings.Default.MainDir}\\{game.Pckgcommand}", true);
ChangeTitle("Uploading to drive, you may continue to use Rookie while it uploads.");
RCLONE.runRcloneCommand(game.Uploadcommand);
FlexibleMessageBox.Show($"Upload of {game.Uploadgamename} is complete! Thank you for your contribution!");
File.Delete($"{Properties.Settings.Default.MainDir}\\{game.Uploadgamename} v{game.Uploadversion}.zip");
});
@@ -1779,7 +1767,7 @@ without him none of this would be possible
CurrAPK = file;
CurrPCKG = packagename;
System.Windows.Forms.Timer t = new System.Windows.Forms.Timer();
t.Interval = 60000; // 60 seconds to fail
t.Interval = 180000; // 180 seconds to fail
t.Tick += new EventHandler(timer_Tick4);
t.Start();
Thread apkThread = new Thread(() =>
@@ -1812,7 +1800,7 @@ without him none of this would be possible
}
}
ChangeTitle($"Installation of {gameName} completed....");
ChangeTitle($"Installation of {gameName} completed.");
}
if (Properties.Settings.Default.deleteAllAfterInstall)
{
@@ -1826,7 +1814,9 @@ without him none of this would be possible
gamesQueListBox.DataSource = gamesQueueList;
ChangeTitlebarToDevice();
showAvailableSpace();
}
ChangeTitle("");
}
}
progressBar.Style = ProgressBarStyle.Continuous;
etaLabel.Text = "ETA: Finished Queue";
@@ -1848,14 +1838,11 @@ without him none of this would be possible
if (!timerticked)
{
timerticked = true;
string[] blacklist = File.ReadAllLines($"{Environment.CurrentDirectory}\\installedPackages.json");
bool isinstalled = false;
foreach (string blacklistpckg in blacklist)
if (Properties.Settings.Default.InstalledApps.Contains(CurrPCKG))
{
if (blacklistpckg.Contains(CurrPCKG))
{
isinstalled = true;
}
isinstalled = true;
}
if (isinstalled)
{
@@ -1877,7 +1864,7 @@ without him none of this would be possible
if (Directory.Exists($"{Environment.CurrentDirectory}\\{CurrPCKG}"))
Directory.Delete($"{Environment.CurrentDirectory}\\{CurrPCKG}", true);
ChangeTitle("");
ShowPrcOutput(output);
return;
}
else
@@ -1891,6 +1878,7 @@ without him none of this would be possible
}
else
{
timerticked = false;
return;
}
}

View File

@@ -132,19 +132,11 @@ And all of them added to PATH, without ANY of them, the spoofer won't work!";
{
ADB.WakeDevice();
ProcessOutput output = new ProcessOutput("", "");
string packageName = Sideloader.gameNameToPackageName(GameName);
DialogResult dialogResult = FlexibleMessageBox.Show($"Are you sure you want to uninstall {packageName}? this CANNOT be undone!", "WARNING!", MessageBoxButtons.YesNo);
if (dialogResult != DialogResult.Yes)
return output;
output = ADB.UninstallPackage(packageName);
//remove both data and obb if there is any
Sideloader.RemoveFolder("/sdcard/Android/obb/" + packageName);
Sideloader.RemoveFolder("/sdcard/Android/data/" + packageName);
return output;
}

View File

@@ -83,8 +83,6 @@ namespace AndroidSideloader
public static void initGames(string remote)
{
if (remote.Contains("08"))
Program.form.SwitchMirrors();
gameProperties.Clear();
games.Clear();
string tempGameList = RCLONE.runRcloneCommand($"cat \"{remote}:{RcloneGamesFolder}/GameList.txt\"").Output;

View File

@@ -17,7 +17,7 @@ namespace AndroidSideloader
private static string RawGitHubUrl;
private static string GitHubUrl;
static readonly public string LocalVersion = "2.8.4";
static readonly public string LocalVersion = "2.8.5";
public static string currentVersion = string.Empty;
public static string changelog = string.Empty;

View File

@@ -1,28 +1,20 @@
RSL 2.8.3
+ Hotfix to update the exclusion list of games we need updates for.
RSL 2.8.5
RSL 2.8.2
+ Added OPT-IN installed packages check,
this will be used to add common free apps
to a blacklist so a future version of RSL
can ask users to donate new apps.
+ Added automatic upload to Google shared drive
for clean game files donation.
+ Added uploading GIF for duration of upload.
+ Added warning messages when user attempts
to close Rookie while games are download, installing,
or uploading.
= Threaded clean file zipping and uploading
so user can continue to use Rookie while game
is uploading.
= Fixed logic for apk signature mismatch
automatic reinstall.
= Increased timer for apk installation
failure to 3 minutes.
P.S. We are looking for volunteers for the next
beta which will automatically detect new games
installed on user's headset and suggest them for
donation. Message https://t.me/Harryeffingpotter or
https://t.me/pmowpmow on Telegram to join the beta
test!
= Fixed blacklist implementation for
updates to apps already on RSL.
HFP
- Removed 2nd confirmation dialog for
app uninstalls.
P.S MOVED PGP SIGNATURE TO CHANGELOGHISTORY.TXT @
https://github.com/nerdunit/androidsideloader
HFP

View File

@@ -1 +1 @@
2.8.4
2.8.5