Compare commits
112 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9ca02c9e4f | ||
|
|
9bc80c73b4 | ||
|
|
6b3cc0385f | ||
|
|
86fb982224 | ||
|
|
69ffff1111 | ||
|
|
b53f8209d5 | ||
|
|
5d602bd62b | ||
|
|
1c8167c736 | ||
|
|
6730667fd7 | ||
|
|
5febd93757 | ||
|
|
e6b32ccd00 | ||
|
|
4cba1bfdce | ||
|
|
07b64816cb | ||
|
|
cbfa67d08a | ||
|
|
2a76577b5e | ||
|
|
ca707c44cb | ||
|
|
ccdb5d2062 | ||
|
|
cefb969004 | ||
|
|
ff8046d3a4 | ||
|
|
15fda32f19 | ||
|
|
e6505c75a8 | ||
|
|
a8daba4325 | ||
|
|
d07a739746 | ||
|
|
8cb5a1036d | ||
|
|
022f906c4d | ||
|
|
ec76448477 | ||
|
|
ef72be31e3 | ||
|
|
2734a9bf61 | ||
|
|
a3dfa21899 | ||
|
|
eac379757c | ||
|
|
f66cd4ba66 | ||
|
|
1ddfd8de2e | ||
|
|
78a67b41d8 | ||
|
|
8c69c68d23 | ||
|
|
f7a44380f3 | ||
|
|
bcc57865a0 | ||
|
|
c56fe7af39 | ||
|
|
8feb830c6a | ||
|
|
577a14133d | ||
|
|
fcad1ce636 | ||
|
|
3fae800f7e | ||
|
|
4a541335d0 | ||
|
|
c6f8985bc0 | ||
|
|
1c0b95014c | ||
|
|
4ac29040f8 | ||
|
|
0a612c7da1 | ||
|
|
33ba798b41 | ||
|
|
57525e1afa | ||
|
|
191044d88b | ||
|
|
ec5395b0df | ||
|
|
2505cd6923 | ||
|
|
872ceb17ce | ||
|
|
494f3dec69 | ||
|
|
ab870f984d | ||
|
|
c4327c3de9 | ||
|
|
34c3c1b9ab | ||
|
|
698c49bc0e | ||
|
|
298fbe8a00 | ||
|
|
7143bf63c6 | ||
|
|
c905acaa6a | ||
|
|
de1cfd511a | ||
|
|
af7bbc3407 | ||
|
|
e9805f8c17 | ||
|
|
a8106a87b2 | ||
|
|
3eb88329b6 | ||
|
|
2f6e196ea3 | ||
|
|
aa8185abea | ||
|
|
683c3b87b5 | ||
|
|
49f7bc9470 | ||
|
|
ceb2e5954e | ||
|
|
6eba1c46bf | ||
|
|
781ffbbc90 | ||
|
|
6690099982 | ||
|
|
6726de7d26 | ||
|
|
401c9c22dd | ||
|
|
6e6341e11f | ||
|
|
cc09e41622 | ||
|
|
059d195f21 | ||
|
|
cf334f00cd | ||
|
|
f0af68b228 | ||
|
|
92a1da1939 | ||
|
|
bfce0e54ec | ||
|
|
66c4ad7377 | ||
|
|
897ea3b1df | ||
|
|
53f7855009 | ||
|
|
722dfefeb7 | ||
|
|
b86e21080b | ||
|
|
8621fa7008 | ||
|
|
f60ff2ef96 | ||
|
|
a86dba2e52 | ||
|
|
bd0ec85135 | ||
|
|
2723dac64f | ||
|
|
df32d593f2 | ||
|
|
050697c2b3 | ||
|
|
72efbc12ac | ||
|
|
fe44a8f501 | ||
|
|
9cd02f1860 | ||
|
|
12c1ba0c93 | ||
|
|
ebbf0ae066 | ||
|
|
09a98a4262 | ||
|
|
e8c0e313cc | ||
|
|
7047089f0d | ||
|
|
d7ddeff532 | ||
|
|
7b8f806be6 | ||
|
|
cd58002295 | ||
|
|
31120a8735 | ||
|
|
b2d4dca283 | ||
|
|
4a121e1e83 | ||
|
|
a785127de3 | ||
|
|
fd8bb084f8 | ||
|
|
ca69955211 | ||
|
|
6ed41a5443 |
146
ADB.cs
Normal file
146
ADB.cs
Normal file
@@ -0,0 +1,146 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Management;
|
||||
using System.ComponentModel;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Net.Http;
|
||||
using System.Windows.Threading;
|
||||
using System.Net;
|
||||
using SergeUtils;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using Newtonsoft.Json;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
class ADB
|
||||
{
|
||||
static Process adb = new Process();
|
||||
public static string adbPath = Environment.CurrentDirectory + "\\adb\\";
|
||||
public static bool IsRunningCommand = false;
|
||||
public static string RunAdbCommandToString(string command)
|
||||
{
|
||||
|
||||
IsRunningCommand = true;
|
||||
|
||||
if (DeviceID.Length > 1)
|
||||
command = $" -s {DeviceID} {command}";
|
||||
|
||||
Logger.Log($"Running command {command}");
|
||||
adb.StartInfo.FileName = Environment.CurrentDirectory + "\\adb\\adb.exe";
|
||||
adb.StartInfo.Arguments = command;
|
||||
adb.StartInfo.RedirectStandardInput = true;
|
||||
adb.StartInfo.RedirectStandardOutput = true;
|
||||
adb.StartInfo.RedirectStandardError = true;
|
||||
adb.StartInfo.CreateNoWindow = true;
|
||||
adb.StartInfo.UseShellExecute = false;
|
||||
adb.StartInfo.WorkingDirectory = adbPath;
|
||||
|
||||
//adb.OutputDataReceived += ADB_OutputDataReceived;
|
||||
adb.ErrorDataReceived += ADB_ErrorDataReceived;
|
||||
|
||||
adb.Start();
|
||||
adb.StandardInput.WriteLine(command);
|
||||
adb.StandardInput.Flush();
|
||||
adb.StandardInput.Close();
|
||||
|
||||
var output = adb.StandardOutput.ReadToEnd();
|
||||
error = adb.StandardError.ReadToEnd();
|
||||
|
||||
adb.WaitForExit();
|
||||
IsRunningCommand = false;
|
||||
Logger.Log(output);
|
||||
return output;
|
||||
}
|
||||
|
||||
public static string UninstallPackage(string package)
|
||||
{
|
||||
string output = string.Empty;
|
||||
output += RunAdbCommandToString($"shell pm uninstall -k --user 0 {package}");
|
||||
output += RunAdbCommandToString($"shell pm uninstall {package}");
|
||||
return output;
|
||||
}
|
||||
|
||||
public static string error = "";
|
||||
|
||||
static void ADB_ErrorDataReceived(object sender, DataReceivedEventArgs e)
|
||||
{
|
||||
Logger.Log($"ADB ERROR: {e.Data}");
|
||||
}
|
||||
|
||||
public static string DeviceID = "";
|
||||
|
||||
public static string GetAvailableSpace()
|
||||
{
|
||||
long totalSize = 0;
|
||||
|
||||
long usedSize = 0;
|
||||
|
||||
long freeSize = 0;
|
||||
|
||||
var output = RunAdbCommandToString("shell df").Split('\n');
|
||||
|
||||
foreach (string currLine in output)
|
||||
{
|
||||
if (currLine.StartsWith("/data/media"))
|
||||
{
|
||||
var foo = currLine.Split(' ');
|
||||
int i = 0;
|
||||
foreach (string curr in foo)
|
||||
{
|
||||
if (curr.Length > 1)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
totalSize = Int64.Parse(curr) / 1000;
|
||||
break;
|
||||
case 2:
|
||||
usedSize = Int64.Parse(curr) / 1000;
|
||||
break;
|
||||
case 3:
|
||||
freeSize = Int64.Parse(curr) / 1000;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $"Total space: {String.Format("{0:0.00}", (double)totalSize / 1000)}GB\n Used space: {String.Format("{0:0.00}", (double)usedSize / 1000)}GB\n Free space: {String.Format("{0:0.00}", (double)freeSize / 1000)}GB";
|
||||
}
|
||||
|
||||
public static string Sideload(string path)
|
||||
{
|
||||
return RunAdbCommandToString($"install -g -r \"{path}\"");
|
||||
}
|
||||
|
||||
public static string CopyOBB(string path)
|
||||
{
|
||||
bool ok = false;
|
||||
foreach (string file in Directory.GetFiles(path))
|
||||
{
|
||||
if (Path.GetExtension(file) == ".obb")
|
||||
{
|
||||
ok = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (ok)
|
||||
return RunAdbCommandToString($"push \"{path}\" /sdcard/Android/obb");
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,27 @@
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<UseShortFileNames>True</UseShortFileNames>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<IntermediateOutputPath>C:\Sideloader</IntermediateOutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
@@ -37,8 +58,7 @@
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>
|
||||
</ApplicationIcon>
|
||||
<ApplicationIcon>icon.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<StartupObject>AndroidSideloader.Program</StartupObject>
|
||||
@@ -64,12 +84,71 @@
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'x86|AnyCPU'">
|
||||
<OutputPath>bin\x86\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'x86|x64'">
|
||||
<OutputPath>bin\x64\x86\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'x86|x86'">
|
||||
<OutputPath>bin\x86\x86\</OutputPath>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SignAssembly>false</SignAssembly>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<AssemblyOriginatorKeyFile>AndroidSideloader_TemporaryKey.pfx</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<DelaySign>false</DelaySign>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SignManifests>false</SignManifests>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ManifestCertificateThumbprint>2596B6735D27EAE6BD754AC8A5249B9EAE39122F</ManifestCertificateThumbprint>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ManifestKeyFile>AndroidSideloader_TemporaryKey.pfx</ManifestKeyFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Costura, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL">
|
||||
<HintPath>packages\Costura.Fody.4.1.0\lib\net40\Costura.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MetroFramework">
|
||||
<HintPath>..\Fortniteaccgen\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.dll</HintPath>
|
||||
<Reference Include="MetroFramework, Version=1.2.0.3, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
|
||||
<HintPath>packages\MetroFramework.RunTime.1.2.0.3\lib\net40-Client\MetroFramework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MetroFramework.Design, Version=1.2.0.3, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
|
||||
<HintPath>packages\MetroFramework.Design.1.2.0.3\lib\net40\MetroFramework.Design.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="MetroFramework.Fonts, Version=1.2.0.3, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
|
||||
<HintPath>packages\MetroFramework.Fonts.1.2.0.3\lib\net40\MetroFramework.Fonts.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="SergeUtils">
|
||||
<HintPath>.\SergeUtils.dll</HintPath>
|
||||
@@ -88,12 +167,7 @@
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="customAdbCommandForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="customAdbCommandForm.Designer.cs">
|
||||
<DependentUpon>customAdbCommandForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ADB.cs" />
|
||||
<Compile Include="FlexibleMessageBox.cs" />
|
||||
<Compile Include="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
@@ -101,42 +175,81 @@
|
||||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ImageForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ImageForm.Designer.cs">
|
||||
<DependentUpon>ImageForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Logger.cs" />
|
||||
<Compile Include="QuestForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="QuestForm.Designer.cs">
|
||||
<DependentUpon>QuestForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="RCLONE.cs" />
|
||||
<Compile Include="SettingsForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SettingsForm.Designer.cs">
|
||||
<DependentUpon>SettingsForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="usernameForm.cs">
|
||||
<Compile Include="spoofer.cs" />
|
||||
<Compile Include="SpoofForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="usernameForm.Designer.cs">
|
||||
<DependentUpon>usernameForm.cs</DependentUpon>
|
||||
<Compile Include="SpoofForm.Designer.cs">
|
||||
<DependentUpon>SpoofForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UsernameForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UsernameForm.Designer.cs">
|
||||
<DependentUpon>UsernameForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SelectFolder.cs" />
|
||||
<EmbeddedResource Include="customAdbCommandForm.resx">
|
||||
<DependentUpon>customAdbCommandForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Utilities.cs" />
|
||||
<EmbeddedResource Include="Form1.resx">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ImageForm.resx">
|
||||
<DependentUpon>ImageForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="QuestForm.resx">
|
||||
<DependentUpon>QuestForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SettingsForm.resx">
|
||||
<DependentUpon>SettingsForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="usernameForm.resx">
|
||||
<DependentUpon>usernameForm.cs</DependentUpon>
|
||||
<EmbeddedResource Include="SpoofForm.resx">
|
||||
<DependentUpon>SpoofForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UsernameForm.resx">
|
||||
<DependentUpon>UsernameForm.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<None Include=".editorconfig" />
|
||||
<None Include="AndroidSideloader_TemporaryKey.pfx" />
|
||||
<None Include="keypair.snk">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
@@ -147,13 +260,31 @@
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<None Include="public.snk">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="changelog.txt" />
|
||||
<Content Include="icon.ico" />
|
||||
<Content Include="MetroFramework.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4.5.2 %28x86 and x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="packages\Fody.6.0.0\build\Fody.targets" Condition="Exists('packages\Fody.6.0.0\build\Fody.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
@@ -163,4 +294,12 @@
|
||||
<Error Condition="!Exists('packages\Fody.6.0.0\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Fody.6.0.0\build\Fody.targets'))" />
|
||||
<Error Condition="!Exists('packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Costura.Fody.4.1.0\build\Costura.Fody.props'))" />
|
||||
</Target>
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
14
AndroidSideloader.csproj.user
Normal file
14
AndroidSideloader.csproj.user
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectView>ShowAllFiles</ProjectView>
|
||||
<PublishUrlHistory>publish\</PublishUrlHistory>
|
||||
<InstallUrlHistory />
|
||||
<SupportUrlHistory />
|
||||
<UpdateUrlHistory />
|
||||
<BootstrapperUrlHistory />
|
||||
<ErrorReportUrlHistory />
|
||||
<FallbackCulture>en-US</FallbackCulture>
|
||||
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -5,22 +5,42 @@ VisualStudioVersion = 16.0.30011.22
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AndroidSideloader", "AndroidSideloader.csproj", "{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{9E3C926E-5E5F-4F97-AC52-060B14DDB055}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.editorconfig = .editorconfig
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
x86|Any CPU = x86|Any CPU
|
||||
x86|x64 = x86|x64
|
||||
x86|x86 = x86|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Debug|x64.Build.0 = Debug|x64
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Debug|x86.Build.0 = Debug|x86
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Release|x64.ActiveCfg = Release|x64
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Release|x64.Build.0 = Release|x64
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Release|x86.ActiveCfg = Release|x86
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.Release|x86.Build.0 = Release|x86
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.x86|Any CPU.ActiveCfg = x86|Any CPU
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.x86|Any CPU.Build.0 = x86|Any CPU
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.x86|x64.ActiveCfg = x86|x64
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.x86|x64.Build.0 = x86|x64
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.x86|x86.ActiveCfg = x86|x86
|
||||
{CC8BE9F0-CE07-406A-A378-81D9CFE4CC1D}.x86|x86.Build.0 = x86|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
53
App.config
53
App.config
@@ -2,23 +2,68 @@
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||
<section name="AndroidSideloader.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
<section name="AndroidADB.Sideloader.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
|
||||
</startup>
|
||||
<userSettings>
|
||||
<AndroidSideloader.Properties.Settings>
|
||||
<AndroidADB.Sideloader.Properties.Settings>
|
||||
<setting name="checkForUpdates" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="enableMessageBoxes" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="copyMessageToClipboard" serializeAs="String">
|
||||
<setting name="logRclone" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
</AndroidSideloader.Properties.Settings>
|
||||
<setting name="firstRun" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="deleteAllAfterInstall" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="autoUpdateConfig" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="userJsonOnGameInstall" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="CallUpgrade" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="BackColor" serializeAs="String">
|
||||
<value>45, 45, 45</value>
|
||||
</setting>
|
||||
<setting name="PanelColor" serializeAs="String">
|
||||
<value>ActiveCaptionText</value>
|
||||
</setting>
|
||||
<setting name="ButtonColor" serializeAs="String">
|
||||
<value>ActiveCaptionText</value>
|
||||
</setting>
|
||||
<setting name="SubButtonColor" serializeAs="String">
|
||||
<value>64, 64, 64</value>
|
||||
</setting>
|
||||
<setting name="TextBoxColor" serializeAs="String">
|
||||
<value>45, 45, 45</value>
|
||||
</setting>
|
||||
<setting name="ComboBoxColor" serializeAs="String">
|
||||
<value>45, 45, 45</value>
|
||||
</setting>
|
||||
<setting name="FontColor" serializeAs="String">
|
||||
<value>White</value>
|
||||
</setting>
|
||||
<setting name="FontStyle" serializeAs="String">
|
||||
<value>Microsoft Sans Serif, 11.25pt</value>
|
||||
</setting>
|
||||
<setting name="BackPicturePath" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="SpoofGames" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
</AndroidADB.Sideloader.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
@@ -1,79 +0,0 @@
|
||||
0.12
|
||||
+ Added settings form
|
||||
+ Added progress bar (again)
|
||||
+ Added a new user.json
|
||||
= Fixed crash on some systems (PerformanceCounter)
|
||||
= Fixed crash because of file name inconsistency
|
||||
- Removed performance counters because they made the software not work for some people
|
||||
|
||||
0.11
|
||||
+ Changed normal message boxes to flexible ones
|
||||
+ Added changelog to update message
|
||||
= Improved update message
|
||||
- Removed progressbar
|
||||
|
||||
0.10
|
||||
+ Added few tooltips
|
||||
+ Sideload folder now works for all apks (recursive search)
|
||||
= Obb copy and Sideload progress bar problems should be fixed
|
||||
= Fixed user.json not working if the any of folder had spaces
|
||||
= Switched back to Message Boxes
|
||||
|
||||
0.9
|
||||
+ Added the buggy progress bar back, uses different "logic"
|
||||
+ Added an icon (Increased the exe size by like 300% just with that)
|
||||
+ Added sideload folder button
|
||||
+ Added Creat user.json button and form
|
||||
+ Changed Message Boxes to notifications
|
||||
|
||||
0.8.5
|
||||
+ Added auto update download
|
||||
= Fixed a bug where if you didn't have the adb folder it would crash
|
||||
|
||||
0.8
|
||||
+ Every command now shows progress on title bar
|
||||
+ Automatically run Adb Devices and List Apps on form startup
|
||||
+ You can now search the App List Combo Box
|
||||
= Cleaned some code
|
||||
|
||||
0.7
|
||||
= Fixed UI Freezes
|
||||
+ Added Uninstall APK Button
|
||||
+ Added Launch package Button
|
||||
- Removed loading bar
|
||||
|
||||
0.6
|
||||
+ Added List Apk Perms button
|
||||
+ Added Change Permissions button
|
||||
+ Added dinamically added checkbox for permisssions
|
||||
= The software now downloads adb from master instead of v0.3 release
|
||||
|
||||
0.5
|
||||
- Removed Flash Firmware
|
||||
= Redesigned UI
|
||||
= Reworked RunAdbCommand function (now it will be possible to do stuff I wasnt able to do before)
|
||||
= Replaced Ui Buttons, still needs work
|
||||
+ Added List apk button
|
||||
+ Added List apk combo box
|
||||
+ Added get apk function
|
||||
= Cleaned a bit of code
|
||||
|
||||
0.4
|
||||
+ Added auto download of adb archive
|
||||
+ Added auto extraction of adb archive
|
||||
|
||||
0.3
|
||||
+ Added new form, you can run custom adb commands now
|
||||
+ Added recover and backup app data
|
||||
- Removed Select APK and Select OBB Buttons
|
||||
- Removed tooltips from removed buttons
|
||||
+ Sideload APK and Copy Obb buttons now also make you select the file/folder
|
||||
+ Improved firmware button
|
||||
|
||||
0.2
|
||||
+ Added Flash Firmware button
|
||||
+ Added few tooltips
|
||||
+ Renamed buttons
|
||||
|
||||
0.1
|
||||
+ Initial Release
|
||||
848
Form1.Designer.cs
generated
848
Form1.Designer.cs
generated
@@ -28,253 +28,734 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
|
||||
this.m_combo = new SergeUtils.EasyCompletionComboBox();
|
||||
this.startsideloadbutton = new System.Windows.Forms.Button();
|
||||
this.devicesbutton = new System.Windows.Forms.Button();
|
||||
this.instructionsbutton = new System.Windows.Forms.Button();
|
||||
this.obbcopybutton = new System.Windows.Forms.Button();
|
||||
this.backupbutton = new System.Windows.Forms.Button();
|
||||
this.restorebutton = new System.Windows.Forms.Button();
|
||||
this.customadbcmdbutton = new System.Windows.Forms.Button();
|
||||
this.ListApps = new System.Windows.Forms.Button();
|
||||
this.getApkButton = new System.Windows.Forms.Button();
|
||||
this.listApkPermsButton = new System.Windows.Forms.Button();
|
||||
this.changePermsBtn = new System.Windows.Forms.Button();
|
||||
this.launchPackageTextBox = new System.Windows.Forms.TextBox();
|
||||
this.launchApkButton = new System.Windows.Forms.Button();
|
||||
this.uninstallAppButton = new System.Windows.Forms.Button();
|
||||
this.sideloadFolderButton = new System.Windows.Forms.Button();
|
||||
this.progressBar = new System.Windows.Forms.ProgressBar();
|
||||
this.copyBulkObbButton = new System.Windows.Forms.Button();
|
||||
this.DragDropLbl = new System.Windows.Forms.Label();
|
||||
this.downloadInstallGameButton = new System.Windows.Forms.Button();
|
||||
this.gamesComboBox = new SergeUtils.EasyCompletionComboBox();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.aboutBtn = new System.Windows.Forms.Button();
|
||||
this.userjsonButton = new System.Windows.Forms.Button();
|
||||
this.progressBar1 = new System.Windows.Forms.ProgressBar();
|
||||
this.settingsButton = new System.Windows.Forms.Button();
|
||||
this.otherContainer = new System.Windows.Forms.Panel();
|
||||
this.QuestOptionsButton = new System.Windows.Forms.Button();
|
||||
this.killRcloneButton = new System.Windows.Forms.Button();
|
||||
this.movieStreamButton = new System.Windows.Forms.Button();
|
||||
this.userjsonButton = new System.Windows.Forms.Button();
|
||||
this.otherDrop = new System.Windows.Forms.Button();
|
||||
this.backupContainer = new System.Windows.Forms.Panel();
|
||||
this.backupDrop = new System.Windows.Forms.Button();
|
||||
this.sideloadContainer = new System.Windows.Forms.Panel();
|
||||
this.listApkButton = new System.Windows.Forms.Button();
|
||||
this.sideloadDrop = new System.Windows.Forms.Button();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.etaLabel = new System.Windows.Forms.Label();
|
||||
this.speedLabel = new System.Windows.Forms.Label();
|
||||
this.diskLabel = new System.Windows.Forms.Label();
|
||||
this.gamesQueListBox = new System.Windows.Forms.ListBox();
|
||||
this.freeDisclaimer = new System.Windows.Forms.Label();
|
||||
this.devicesComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.remotesList = new System.Windows.Forms.ComboBox();
|
||||
this.SpoofFormButton = new System.Windows.Forms.Button();
|
||||
this.panel1.SuspendLayout();
|
||||
this.otherContainer.SuspendLayout();
|
||||
this.backupContainer.SuspendLayout();
|
||||
this.sideloadContainer.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// m_combo
|
||||
//
|
||||
this.m_combo.Location = new System.Drawing.Point(12, 134);
|
||||
this.m_combo.BackColor = global::AndroidSideloader.Properties.Settings.Default.ComboBoxColor;
|
||||
this.m_combo.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ComboBoxColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.m_combo.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.m_combo.Font = new System.Drawing.Font("Arial", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.m_combo.ForeColor = System.Drawing.Color.White;
|
||||
this.m_combo.Location = new System.Drawing.Point(224, 11);
|
||||
this.m_combo.Name = "m_combo";
|
||||
this.m_combo.Size = new System.Drawing.Size(427, 21);
|
||||
this.m_combo.TabIndex = 16;
|
||||
this.m_combo.Size = new System.Drawing.Size(504, 21);
|
||||
this.m_combo.TabIndex = 19;
|
||||
this.m_combo.Text = "Select an app from here...";
|
||||
//
|
||||
// startsideloadbutton
|
||||
//
|
||||
this.startsideloadbutton.Location = new System.Drawing.Point(100, 12);
|
||||
this.startsideloadbutton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.startsideloadbutton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.startsideloadbutton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.startsideloadbutton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.startsideloadbutton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.startsideloadbutton.FlatAppearance.BorderSize = 0;
|
||||
this.startsideloadbutton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.startsideloadbutton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.startsideloadbutton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.startsideloadbutton.Location = new System.Drawing.Point(0, 140);
|
||||
this.startsideloadbutton.Name = "startsideloadbutton";
|
||||
this.startsideloadbutton.Size = new System.Drawing.Size(87, 33);
|
||||
this.startsideloadbutton.TabIndex = 2;
|
||||
this.startsideloadbutton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.startsideloadbutton.Size = new System.Drawing.Size(218, 28);
|
||||
this.startsideloadbutton.TabIndex = 7;
|
||||
this.startsideloadbutton.Text = "Sideload APK";
|
||||
this.startsideloadbutton.UseVisualStyleBackColor = true;
|
||||
this.startsideloadbutton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.startsideloadbutton.UseVisualStyleBackColor = false;
|
||||
this.startsideloadbutton.Click += new System.EventHandler(this.startsideloadbutton_Click);
|
||||
//
|
||||
// devicesbutton
|
||||
//
|
||||
this.devicesbutton.Location = new System.Drawing.Point(12, 12);
|
||||
this.devicesbutton.BackColor = global::AndroidSideloader.Properties.Settings.Default.ButtonColor;
|
||||
this.devicesbutton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.devicesbutton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.devicesbutton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.devicesbutton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.devicesbutton.FlatAppearance.BorderSize = 0;
|
||||
this.devicesbutton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.devicesbutton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.devicesbutton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.devicesbutton.Location = new System.Drawing.Point(0, 0);
|
||||
this.devicesbutton.Name = "devicesbutton";
|
||||
this.devicesbutton.Size = new System.Drawing.Size(82, 34);
|
||||
this.devicesbutton.TabIndex = 1;
|
||||
this.devicesbutton.Text = "Adb devices";
|
||||
this.devicesbutton.UseVisualStyleBackColor = true;
|
||||
this.devicesbutton.Size = new System.Drawing.Size(218, 28);
|
||||
this.devicesbutton.TabIndex = 0;
|
||||
this.devicesbutton.Text = "ADB DEVICES";
|
||||
this.devicesbutton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.devicesbutton.UseVisualStyleBackColor = false;
|
||||
this.devicesbutton.Click += new System.EventHandler(this.devicesbutton_Click);
|
||||
//
|
||||
// instructionsbutton
|
||||
//
|
||||
this.instructionsbutton.Location = new System.Drawing.Point(282, 12);
|
||||
this.instructionsbutton.Name = "instructionsbutton";
|
||||
this.instructionsbutton.Size = new System.Drawing.Size(87, 34);
|
||||
this.instructionsbutton.TabIndex = 4;
|
||||
this.instructionsbutton.Text = "Instructions";
|
||||
this.instructionsbutton.UseVisualStyleBackColor = true;
|
||||
this.instructionsbutton.Click += new System.EventHandler(this.instructionsbutton_Click);
|
||||
//
|
||||
// obbcopybutton
|
||||
//
|
||||
this.obbcopybutton.Location = new System.Drawing.Point(193, 12);
|
||||
this.obbcopybutton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.obbcopybutton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.obbcopybutton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.obbcopybutton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.obbcopybutton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.obbcopybutton.FlatAppearance.BorderSize = 0;
|
||||
this.obbcopybutton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.obbcopybutton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.obbcopybutton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.obbcopybutton.Location = new System.Drawing.Point(0, 0);
|
||||
this.obbcopybutton.Name = "obbcopybutton";
|
||||
this.obbcopybutton.Size = new System.Drawing.Size(87, 34);
|
||||
this.obbcopybutton.TabIndex = 3;
|
||||
this.obbcopybutton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.obbcopybutton.Size = new System.Drawing.Size(218, 28);
|
||||
this.obbcopybutton.TabIndex = 2;
|
||||
this.obbcopybutton.Text = "Copy Obb";
|
||||
this.obbcopybutton.UseVisualStyleBackColor = true;
|
||||
this.obbcopybutton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.obbcopybutton.UseVisualStyleBackColor = false;
|
||||
this.obbcopybutton.Click += new System.EventHandler(this.obbcopybutton_Click);
|
||||
//
|
||||
// backupbutton
|
||||
//
|
||||
this.backupbutton.Location = new System.Drawing.Point(12, 52);
|
||||
this.backupbutton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.backupbutton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.backupbutton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.backupbutton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.backupbutton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.backupbutton.FlatAppearance.BorderSize = 0;
|
||||
this.backupbutton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.backupbutton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.backupbutton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.backupbutton.Location = new System.Drawing.Point(0, 28);
|
||||
this.backupbutton.Name = "backupbutton";
|
||||
this.backupbutton.Size = new System.Drawing.Size(82, 34);
|
||||
this.backupbutton.TabIndex = 5;
|
||||
this.backupbutton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.backupbutton.Size = new System.Drawing.Size(218, 28);
|
||||
this.backupbutton.TabIndex = 11;
|
||||
this.backupbutton.Text = "Backup Gamedata";
|
||||
this.backupbutton.UseVisualStyleBackColor = true;
|
||||
this.backupbutton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.backupbutton.UseVisualStyleBackColor = false;
|
||||
this.backupbutton.Click += new System.EventHandler(this.backupbutton_Click);
|
||||
//
|
||||
// restorebutton
|
||||
//
|
||||
this.restorebutton.Location = new System.Drawing.Point(100, 52);
|
||||
this.restorebutton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.restorebutton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.restorebutton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.restorebutton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.restorebutton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.restorebutton.FlatAppearance.BorderSize = 0;
|
||||
this.restorebutton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.restorebutton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.restorebutton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.restorebutton.Location = new System.Drawing.Point(0, 0);
|
||||
this.restorebutton.Name = "restorebutton";
|
||||
this.restorebutton.Size = new System.Drawing.Size(87, 34);
|
||||
this.restorebutton.TabIndex = 6;
|
||||
this.restorebutton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.restorebutton.Size = new System.Drawing.Size(218, 28);
|
||||
this.restorebutton.TabIndex = 10;
|
||||
this.restorebutton.Text = "Restore Gamedata";
|
||||
this.restorebutton.UseVisualStyleBackColor = true;
|
||||
this.restorebutton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.restorebutton.UseVisualStyleBackColor = false;
|
||||
this.restorebutton.Click += new System.EventHandler(this.restorebutton_Click);
|
||||
//
|
||||
// customadbcmdbutton
|
||||
//
|
||||
this.customadbcmdbutton.Location = new System.Drawing.Point(193, 52);
|
||||
this.customadbcmdbutton.Name = "customadbcmdbutton";
|
||||
this.customadbcmdbutton.Size = new System.Drawing.Size(87, 34);
|
||||
this.customadbcmdbutton.TabIndex = 7;
|
||||
this.customadbcmdbutton.Text = "Run Adb Command";
|
||||
this.customadbcmdbutton.UseVisualStyleBackColor = true;
|
||||
this.customadbcmdbutton.Click += new System.EventHandler(this.customadbcmdbutton_Click);
|
||||
//
|
||||
// ListApps
|
||||
//
|
||||
this.ListApps.Location = new System.Drawing.Point(12, 92);
|
||||
this.ListApps.Name = "ListApps";
|
||||
this.ListApps.Size = new System.Drawing.Size(82, 34);
|
||||
this.ListApps.TabIndex = 8;
|
||||
this.ListApps.Text = "Refresh Apps";
|
||||
this.ListApps.UseVisualStyleBackColor = true;
|
||||
this.ListApps.Click += new System.EventHandler(this.ListApps_Click);
|
||||
//
|
||||
// getApkButton
|
||||
//
|
||||
this.getApkButton.Location = new System.Drawing.Point(100, 92);
|
||||
this.getApkButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.getApkButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.getApkButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.getApkButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.getApkButton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.getApkButton.FlatAppearance.BorderSize = 0;
|
||||
this.getApkButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.getApkButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.getApkButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.getApkButton.Location = new System.Drawing.Point(0, 56);
|
||||
this.getApkButton.Name = "getApkButton";
|
||||
this.getApkButton.Size = new System.Drawing.Size(87, 34);
|
||||
this.getApkButton.TabIndex = 9;
|
||||
this.getApkButton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.getApkButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.getApkButton.TabIndex = 4;
|
||||
this.getApkButton.Text = "Get Apk";
|
||||
this.getApkButton.UseVisualStyleBackColor = true;
|
||||
this.getApkButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.getApkButton.UseVisualStyleBackColor = false;
|
||||
this.getApkButton.Click += new System.EventHandler(this.getApkButton_Click);
|
||||
//
|
||||
// listApkPermsButton
|
||||
//
|
||||
this.listApkPermsButton.Location = new System.Drawing.Point(193, 92);
|
||||
this.listApkPermsButton.Name = "listApkPermsButton";
|
||||
this.listApkPermsButton.Size = new System.Drawing.Size(87, 34);
|
||||
this.listApkPermsButton.TabIndex = 10;
|
||||
this.listApkPermsButton.Text = "List Apk Perms";
|
||||
this.listApkPermsButton.UseVisualStyleBackColor = true;
|
||||
this.listApkPermsButton.Click += new System.EventHandler(this.listApkPermsButton_Click);
|
||||
//
|
||||
// changePermsBtn
|
||||
//
|
||||
this.changePermsBtn.Location = new System.Drawing.Point(282, 92);
|
||||
this.changePermsBtn.Name = "changePermsBtn";
|
||||
this.changePermsBtn.Size = new System.Drawing.Size(87, 34);
|
||||
this.changePermsBtn.TabIndex = 11;
|
||||
this.changePermsBtn.Text = "Change Permissions";
|
||||
this.changePermsBtn.UseVisualStyleBackColor = true;
|
||||
this.changePermsBtn.Click += new System.EventHandler(this.changePermsBtn_Click);
|
||||
//
|
||||
// launchPackageTextBox
|
||||
//
|
||||
this.launchPackageTextBox.Location = new System.Drawing.Point(446, 134);
|
||||
this.launchPackageTextBox.Name = "launchPackageTextBox";
|
||||
this.launchPackageTextBox.Size = new System.Drawing.Size(192, 20);
|
||||
this.launchPackageTextBox.TabIndex = 15;
|
||||
this.launchPackageTextBox.Text = "de.eye_interactive.atvl.settings";
|
||||
//
|
||||
// launchApkButton
|
||||
//
|
||||
this.launchApkButton.Location = new System.Drawing.Point(446, 161);
|
||||
this.launchApkButton.Name = "launchApkButton";
|
||||
this.launchApkButton.Size = new System.Drawing.Size(192, 20);
|
||||
this.launchApkButton.TabIndex = 13;
|
||||
this.launchApkButton.Text = "Launch Apk By Package Name";
|
||||
this.launchApkButton.UseVisualStyleBackColor = true;
|
||||
this.launchApkButton.Click += new System.EventHandler(this.launchApkButton_Click);
|
||||
//
|
||||
// uninstallAppButton
|
||||
//
|
||||
this.uninstallAppButton.Location = new System.Drawing.Point(375, 92);
|
||||
this.uninstallAppButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.uninstallAppButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.uninstallAppButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.uninstallAppButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.uninstallAppButton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.uninstallAppButton.FlatAppearance.BorderSize = 0;
|
||||
this.uninstallAppButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.uninstallAppButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.uninstallAppButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.uninstallAppButton.Location = new System.Drawing.Point(0, 84);
|
||||
this.uninstallAppButton.Name = "uninstallAppButton";
|
||||
this.uninstallAppButton.Size = new System.Drawing.Size(64, 34);
|
||||
this.uninstallAppButton.TabIndex = 12;
|
||||
this.uninstallAppButton.Text = "Uninstall app";
|
||||
this.uninstallAppButton.UseVisualStyleBackColor = true;
|
||||
this.uninstallAppButton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.uninstallAppButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.uninstallAppButton.TabIndex = 5;
|
||||
this.uninstallAppButton.Text = "Uninstall App";
|
||||
this.uninstallAppButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.uninstallAppButton.UseVisualStyleBackColor = false;
|
||||
this.uninstallAppButton.Click += new System.EventHandler(this.uninstallAppButton_Click);
|
||||
//
|
||||
// sideloadFolderButton
|
||||
//
|
||||
this.sideloadFolderButton.Location = new System.Drawing.Point(375, 12);
|
||||
this.sideloadFolderButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.sideloadFolderButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.sideloadFolderButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.sideloadFolderButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.sideloadFolderButton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.sideloadFolderButton.FlatAppearance.BorderSize = 0;
|
||||
this.sideloadFolderButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.sideloadFolderButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.sideloadFolderButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.sideloadFolderButton.Location = new System.Drawing.Point(0, 112);
|
||||
this.sideloadFolderButton.Name = "sideloadFolderButton";
|
||||
this.sideloadFolderButton.Size = new System.Drawing.Size(92, 33);
|
||||
this.sideloadFolderButton.TabIndex = 17;
|
||||
this.sideloadFolderButton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.sideloadFolderButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.sideloadFolderButton.TabIndex = 6;
|
||||
this.sideloadFolderButton.Text = "Sideload Folder";
|
||||
this.sideloadFolderButton.UseVisualStyleBackColor = true;
|
||||
this.sideloadFolderButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.sideloadFolderButton.UseVisualStyleBackColor = false;
|
||||
this.sideloadFolderButton.Click += new System.EventHandler(this.sideloadFolderButton_Click);
|
||||
//
|
||||
// progressBar
|
||||
//
|
||||
this.progressBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.progressBar.ForeColor = System.Drawing.Color.Purple;
|
||||
this.progressBar.Location = new System.Drawing.Point(224, 37);
|
||||
this.progressBar.Name = "progressBar";
|
||||
this.progressBar.Size = new System.Drawing.Size(503, 20);
|
||||
this.progressBar.TabIndex = 20;
|
||||
//
|
||||
// copyBulkObbButton
|
||||
//
|
||||
this.copyBulkObbButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.copyBulkObbButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.copyBulkObbButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.copyBulkObbButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.copyBulkObbButton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.copyBulkObbButton.FlatAppearance.BorderSize = 0;
|
||||
this.copyBulkObbButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.copyBulkObbButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.copyBulkObbButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.copyBulkObbButton.Location = new System.Drawing.Point(0, 28);
|
||||
this.copyBulkObbButton.Name = "copyBulkObbButton";
|
||||
this.copyBulkObbButton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.copyBulkObbButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.copyBulkObbButton.TabIndex = 3;
|
||||
this.copyBulkObbButton.Text = "Copy Bulk Obb";
|
||||
this.copyBulkObbButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.copyBulkObbButton.UseVisualStyleBackColor = false;
|
||||
this.copyBulkObbButton.Click += new System.EventHandler(this.copyBulkObbButton_Click);
|
||||
//
|
||||
// DragDropLbl
|
||||
//
|
||||
this.DragDropLbl.AutoSize = true;
|
||||
this.DragDropLbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 36F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.DragDropLbl.ForeColor = System.Drawing.Color.White;
|
||||
this.DragDropLbl.Location = new System.Drawing.Point(208, 566);
|
||||
this.DragDropLbl.Name = "DragDropLbl";
|
||||
this.DragDropLbl.Size = new System.Drawing.Size(320, 55);
|
||||
this.DragDropLbl.TabIndex = 25;
|
||||
this.DragDropLbl.Text = "DragDropLBL";
|
||||
this.DragDropLbl.Visible = false;
|
||||
//
|
||||
// downloadInstallGameButton
|
||||
//
|
||||
this.downloadInstallGameButton.Enabled = false;
|
||||
this.downloadInstallGameButton.Location = new System.Drawing.Point(224, 92);
|
||||
this.downloadInstallGameButton.Name = "downloadInstallGameButton";
|
||||
this.downloadInstallGameButton.Size = new System.Drawing.Size(503, 23);
|
||||
this.downloadInstallGameButton.TabIndex = 22;
|
||||
this.downloadInstallGameButton.Text = "Download and Install Game";
|
||||
this.downloadInstallGameButton.UseVisualStyleBackColor = true;
|
||||
this.downloadInstallGameButton.Click += new System.EventHandler(this.downloadInstallGameButton_Click);
|
||||
//
|
||||
// gamesComboBox
|
||||
//
|
||||
this.gamesComboBox.BackColor = global::AndroidSideloader.Properties.Settings.Default.ComboBoxColor;
|
||||
this.gamesComboBox.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ComboBoxColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.gamesComboBox.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.gamesComboBox.Font = new System.Drawing.Font("Arial", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.gamesComboBox.ForeColor = System.Drawing.Color.White;
|
||||
this.gamesComboBox.Location = new System.Drawing.Point(224, 66);
|
||||
this.gamesComboBox.Name = "gamesComboBox";
|
||||
this.gamesComboBox.Size = new System.Drawing.Size(504, 21);
|
||||
this.gamesComboBox.Sorted = true;
|
||||
this.gamesComboBox.TabIndex = 21;
|
||||
this.gamesComboBox.Text = "Select a game from here...";
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.AutoScroll = true;
|
||||
this.panel1.BackColor = global::AndroidSideloader.Properties.Settings.Default.PanelColor;
|
||||
this.panel1.Controls.Add(this.aboutBtn);
|
||||
this.panel1.Controls.Add(this.settingsButton);
|
||||
this.panel1.Controls.Add(this.otherContainer);
|
||||
this.panel1.Controls.Add(this.otherDrop);
|
||||
this.panel1.Controls.Add(this.backupContainer);
|
||||
this.panel1.Controls.Add(this.backupDrop);
|
||||
this.panel1.Controls.Add(this.sideloadContainer);
|
||||
this.panel1.Controls.Add(this.sideloadDrop);
|
||||
this.panel1.Controls.Add(this.devicesbutton);
|
||||
this.panel1.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "PanelColor", 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.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(218, 659);
|
||||
this.panel1.TabIndex = 73;
|
||||
//
|
||||
// aboutBtn
|
||||
//
|
||||
this.aboutBtn.Location = new System.Drawing.Point(574, 94);
|
||||
this.aboutBtn.BackColor = global::AndroidSideloader.Properties.Settings.Default.ButtonColor;
|
||||
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));
|
||||
this.aboutBtn.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.aboutBtn.FlatAppearance.BorderSize = 0;
|
||||
this.aboutBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.aboutBtn.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.aboutBtn.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.aboutBtn.Location = new System.Drawing.Point(0, 549);
|
||||
this.aboutBtn.Name = "aboutBtn";
|
||||
this.aboutBtn.Size = new System.Drawing.Size(64, 34);
|
||||
this.aboutBtn.TabIndex = 18;
|
||||
this.aboutBtn.Text = "About";
|
||||
this.aboutBtn.UseVisualStyleBackColor = true;
|
||||
this.aboutBtn.Size = new System.Drawing.Size(218, 28);
|
||||
this.aboutBtn.TabIndex = 82;
|
||||
this.aboutBtn.Text = "ABOUT";
|
||||
this.aboutBtn.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.aboutBtn.UseVisualStyleBackColor = false;
|
||||
this.aboutBtn.Click += new System.EventHandler(this.aboutBtn_Click);
|
||||
//
|
||||
// userjsonButton
|
||||
//
|
||||
this.userjsonButton.Location = new System.Drawing.Point(473, 13);
|
||||
this.userjsonButton.Name = "userjsonButton";
|
||||
this.userjsonButton.Size = new System.Drawing.Size(92, 33);
|
||||
this.userjsonButton.TabIndex = 22;
|
||||
this.userjsonButton.Text = "Create user.json";
|
||||
this.userjsonButton.UseVisualStyleBackColor = true;
|
||||
this.userjsonButton.Click += new System.EventHandler(this.userjsonButton_Click);
|
||||
//
|
||||
// progressBar1
|
||||
//
|
||||
this.progressBar1.Location = new System.Drawing.Point(12, 161);
|
||||
this.progressBar1.Name = "progressBar1";
|
||||
this.progressBar1.Size = new System.Drawing.Size(428, 20);
|
||||
this.progressBar1.TabIndex = 23;
|
||||
//
|
||||
// settingsButton
|
||||
//
|
||||
this.settingsButton.Location = new System.Drawing.Point(504, 94);
|
||||
this.settingsButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.ButtonColor;
|
||||
this.settingsButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.settingsButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.settingsButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.settingsButton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.settingsButton.FlatAppearance.BorderSize = 0;
|
||||
this.settingsButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.settingsButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.settingsButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.settingsButton.Location = new System.Drawing.Point(0, 521);
|
||||
this.settingsButton.Name = "settingsButton";
|
||||
this.settingsButton.Size = new System.Drawing.Size(64, 34);
|
||||
this.settingsButton.TabIndex = 24;
|
||||
this.settingsButton.Text = "Settings";
|
||||
this.settingsButton.UseVisualStyleBackColor = true;
|
||||
this.settingsButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.settingsButton.TabIndex = 81;
|
||||
this.settingsButton.Text = "SETTINGS";
|
||||
this.settingsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.settingsButton.UseVisualStyleBackColor = false;
|
||||
this.settingsButton.Click += new System.EventHandler(this.settingsButton_Click);
|
||||
//
|
||||
// otherContainer
|
||||
//
|
||||
this.otherContainer.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.otherContainer.Controls.Add(this.SpoofFormButton);
|
||||
this.otherContainer.Controls.Add(this.QuestOptionsButton);
|
||||
this.otherContainer.Controls.Add(this.killRcloneButton);
|
||||
this.otherContainer.Controls.Add(this.movieStreamButton);
|
||||
this.otherContainer.Controls.Add(this.userjsonButton);
|
||||
this.otherContainer.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.otherContainer.Location = new System.Drawing.Point(0, 373);
|
||||
this.otherContainer.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.otherContainer.Name = "otherContainer";
|
||||
this.otherContainer.Size = new System.Drawing.Size(218, 148);
|
||||
this.otherContainer.TabIndex = 80;
|
||||
//
|
||||
// QuestOptionsButton
|
||||
//
|
||||
this.QuestOptionsButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.QuestOptionsButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.QuestOptionsButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.QuestOptionsButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.QuestOptionsButton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.QuestOptionsButton.FlatAppearance.BorderSize = 0;
|
||||
this.QuestOptionsButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.QuestOptionsButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.QuestOptionsButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.QuestOptionsButton.Location = new System.Drawing.Point(0, 84);
|
||||
this.QuestOptionsButton.Name = "QuestOptionsButton";
|
||||
this.QuestOptionsButton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.QuestOptionsButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.QuestOptionsButton.TabIndex = 16;
|
||||
this.QuestOptionsButton.Text = "QUEST OPTIONS";
|
||||
this.QuestOptionsButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.QuestOptionsButton.UseVisualStyleBackColor = false;
|
||||
this.QuestOptionsButton.Click += new System.EventHandler(this.QuestOptionsButton_Click_1);
|
||||
//
|
||||
// killRcloneButton
|
||||
//
|
||||
this.killRcloneButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.killRcloneButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.killRcloneButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.killRcloneButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.killRcloneButton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.killRcloneButton.FlatAppearance.BorderSize = 0;
|
||||
this.killRcloneButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.killRcloneButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.killRcloneButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.killRcloneButton.Location = new System.Drawing.Point(0, 56);
|
||||
this.killRcloneButton.Name = "killRcloneButton";
|
||||
this.killRcloneButton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.killRcloneButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.killRcloneButton.TabIndex = 15;
|
||||
this.killRcloneButton.Text = "KILL RCLONE";
|
||||
this.killRcloneButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.killRcloneButton.UseVisualStyleBackColor = false;
|
||||
this.killRcloneButton.Click += new System.EventHandler(this.killRcloneButton_Click);
|
||||
//
|
||||
// movieStreamButton
|
||||
//
|
||||
this.movieStreamButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.movieStreamButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.movieStreamButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.movieStreamButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.movieStreamButton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.movieStreamButton.FlatAppearance.BorderSize = 0;
|
||||
this.movieStreamButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.movieStreamButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.movieStreamButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.movieStreamButton.Location = new System.Drawing.Point(0, 28);
|
||||
this.movieStreamButton.Name = "movieStreamButton";
|
||||
this.movieStreamButton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.movieStreamButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.movieStreamButton.TabIndex = 14;
|
||||
this.movieStreamButton.Text = "START MOVIE STREAM";
|
||||
this.movieStreamButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.movieStreamButton.UseVisualStyleBackColor = false;
|
||||
this.movieStreamButton.Click += new System.EventHandler(this.movieStreamButton_Click);
|
||||
//
|
||||
// userjsonButton
|
||||
//
|
||||
this.userjsonButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.userjsonButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.userjsonButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.userjsonButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.userjsonButton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.userjsonButton.FlatAppearance.BorderSize = 0;
|
||||
this.userjsonButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.userjsonButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.userjsonButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.userjsonButton.Location = new System.Drawing.Point(0, 0);
|
||||
this.userjsonButton.Name = "userjsonButton";
|
||||
this.userjsonButton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.userjsonButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.userjsonButton.TabIndex = 11;
|
||||
this.userjsonButton.Text = "USER.JSON";
|
||||
this.userjsonButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.userjsonButton.UseVisualStyleBackColor = false;
|
||||
this.userjsonButton.Click += new System.EventHandler(this.userjsonButton_Click);
|
||||
//
|
||||
// otherDrop
|
||||
//
|
||||
this.otherDrop.BackColor = global::AndroidSideloader.Properties.Settings.Default.ButtonColor;
|
||||
this.otherDrop.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.otherDrop.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.otherDrop.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.otherDrop.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.otherDrop.FlatAppearance.BorderSize = 0;
|
||||
this.otherDrop.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
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, 345);
|
||||
this.otherDrop.Margin = new System.Windows.Forms.Padding(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);
|
||||
this.otherDrop.TabIndex = 77;
|
||||
this.otherDrop.Text = "OTHER";
|
||||
this.otherDrop.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.otherDrop.UseVisualStyleBackColor = false;
|
||||
this.otherDrop.Click += new System.EventHandler(this.otherDrop_Click);
|
||||
//
|
||||
// backupContainer
|
||||
//
|
||||
this.backupContainer.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.backupContainer.Controls.Add(this.backupbutton);
|
||||
this.backupContainer.Controls.Add(this.restorebutton);
|
||||
this.backupContainer.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.backupContainer.Location = new System.Drawing.Point(0, 285);
|
||||
this.backupContainer.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.backupContainer.Name = "backupContainer";
|
||||
this.backupContainer.Size = new System.Drawing.Size(218, 60);
|
||||
this.backupContainer.TabIndex = 76;
|
||||
//
|
||||
// backupDrop
|
||||
//
|
||||
this.backupDrop.BackColor = global::AndroidSideloader.Properties.Settings.Default.ButtonColor;
|
||||
this.backupDrop.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.backupDrop.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.backupDrop.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.backupDrop.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.backupDrop.FlatAppearance.BorderSize = 0;
|
||||
this.backupDrop.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
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, 257);
|
||||
this.backupDrop.Margin = new System.Windows.Forms.Padding(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);
|
||||
this.backupDrop.TabIndex = 9;
|
||||
this.backupDrop.Text = "BACKUP";
|
||||
this.backupDrop.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.backupDrop.UseVisualStyleBackColor = false;
|
||||
this.backupDrop.Click += new System.EventHandler(this.backupDrop_Click);
|
||||
//
|
||||
// sideloadContainer
|
||||
//
|
||||
this.sideloadContainer.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.sideloadContainer.Controls.Add(this.listApkButton);
|
||||
this.sideloadContainer.Controls.Add(this.startsideloadbutton);
|
||||
this.sideloadContainer.Controls.Add(this.sideloadFolderButton);
|
||||
this.sideloadContainer.Controls.Add(this.uninstallAppButton);
|
||||
this.sideloadContainer.Controls.Add(this.getApkButton);
|
||||
this.sideloadContainer.Controls.Add(this.copyBulkObbButton);
|
||||
this.sideloadContainer.Controls.Add(this.obbcopybutton);
|
||||
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.Name = "sideloadContainer";
|
||||
this.sideloadContainer.Size = new System.Drawing.Size(218, 201);
|
||||
this.sideloadContainer.TabIndex = 74;
|
||||
//
|
||||
// listApkButton
|
||||
//
|
||||
this.listApkButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.listApkButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.listApkButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.listApkButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.listApkButton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.listApkButton.FlatAppearance.BorderSize = 0;
|
||||
this.listApkButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.listApkButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.listApkButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.listApkButton.Location = new System.Drawing.Point(0, 168);
|
||||
this.listApkButton.Name = "listApkButton";
|
||||
this.listApkButton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.listApkButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.listApkButton.TabIndex = 8;
|
||||
this.listApkButton.Text = "Refresh Apk, Games, Space";
|
||||
this.listApkButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.listApkButton.UseVisualStyleBackColor = false;
|
||||
this.listApkButton.Click += new System.EventHandler(this.listApkButton_Click);
|
||||
//
|
||||
// sideloadDrop
|
||||
//
|
||||
this.sideloadDrop.BackColor = global::AndroidSideloader.Properties.Settings.Default.ButtonColor;
|
||||
this.sideloadDrop.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.sideloadDrop.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "ButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.sideloadDrop.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.sideloadDrop.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.sideloadDrop.FlatAppearance.BorderSize = 0;
|
||||
this.sideloadDrop.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
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.Name = "sideloadDrop";
|
||||
this.sideloadDrop.Padding = new System.Windows.Forms.Padding(7, 0, 0, 0);
|
||||
this.sideloadDrop.Size = new System.Drawing.Size(218, 28);
|
||||
this.sideloadDrop.TabIndex = 1;
|
||||
this.sideloadDrop.Text = "SIDELOAD";
|
||||
this.sideloadDrop.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.sideloadDrop.UseVisualStyleBackColor = false;
|
||||
this.sideloadDrop.Click += new System.EventHandler(this.sideloadContainer_Click);
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pictureBox1.DataBindings.Add(new System.Windows.Forms.Binding("ImageLocation", global::AndroidSideloader.Properties.Settings.Default, "BackPicturePath", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.pictureBox1.ErrorImage = null;
|
||||
this.pictureBox1.ImageLocation = global::AndroidSideloader.Properties.Settings.Default.BackPicturePath;
|
||||
this.pictureBox1.InitialImage = null;
|
||||
this.pictureBox1.Location = new System.Drawing.Point(217, 0);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(520, 652);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pictureBox1.TabIndex = 74;
|
||||
this.pictureBox1.TabStop = false;
|
||||
this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
|
||||
//
|
||||
// etaLabel
|
||||
//
|
||||
this.etaLabel.AutoSize = true;
|
||||
this.etaLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.etaLabel.ForeColor = System.Drawing.Color.White;
|
||||
this.etaLabel.Location = new System.Drawing.Point(219, 383);
|
||||
this.etaLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.etaLabel.Name = "etaLabel";
|
||||
this.etaLabel.Size = new System.Drawing.Size(235, 29);
|
||||
this.etaLabel.TabIndex = 75;
|
||||
this.etaLabel.Text = "ETA: HH:MM:SS Left";
|
||||
//
|
||||
// speedLabel
|
||||
//
|
||||
this.speedLabel.AutoSize = true;
|
||||
this.speedLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.speedLabel.ForeColor = System.Drawing.Color.White;
|
||||
this.speedLabel.Location = new System.Drawing.Point(219, 355);
|
||||
this.speedLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.speedLabel.Name = "speedLabel";
|
||||
this.speedLabel.Size = new System.Drawing.Size(242, 29);
|
||||
this.speedLabel.TabIndex = 76;
|
||||
this.speedLabel.Text = "DLS: Speed in MBPS";
|
||||
//
|
||||
// diskLabel
|
||||
//
|
||||
this.diskLabel.AutoSize = true;
|
||||
this.diskLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.diskLabel.ForeColor = System.Drawing.Color.White;
|
||||
this.diskLabel.Location = new System.Drawing.Point(224, 292);
|
||||
this.diskLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.diskLabel.Name = "diskLabel";
|
||||
this.diskLabel.Size = new System.Drawing.Size(83, 20);
|
||||
this.diskLabel.TabIndex = 77;
|
||||
this.diskLabel.Text = "Disk Label";
|
||||
//
|
||||
// gamesQueListBox
|
||||
//
|
||||
this.gamesQueListBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
|
||||
this.gamesQueListBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.gamesQueListBox.ForeColor = System.Drawing.Color.White;
|
||||
this.gamesQueListBox.FormattingEnabled = true;
|
||||
this.gamesQueListBox.Location = new System.Drawing.Point(223, 145);
|
||||
this.gamesQueListBox.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.gamesQueListBox.Name = "gamesQueListBox";
|
||||
this.gamesQueListBox.Size = new System.Drawing.Size(504, 145);
|
||||
this.gamesQueListBox.TabIndex = 78;
|
||||
this.gamesQueListBox.MouseClick += new System.Windows.Forms.MouseEventHandler(this.gamesQueListBox_MouseClick);
|
||||
//
|
||||
// freeDisclaimer
|
||||
//
|
||||
this.freeDisclaimer.AutoSize = true;
|
||||
this.freeDisclaimer.Font = new System.Drawing.Font("Microsoft Sans Serif", 13.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.freeDisclaimer.ForeColor = System.Drawing.Color.White;
|
||||
this.freeDisclaimer.Location = new System.Drawing.Point(220, 622);
|
||||
this.freeDisclaimer.Name = "freeDisclaimer";
|
||||
this.freeDisclaimer.Size = new System.Drawing.Size(487, 24);
|
||||
this.freeDisclaimer.TabIndex = 79;
|
||||
this.freeDisclaimer.Text = "This software is free, if you paid for it, you got SCAMMED!";
|
||||
//
|
||||
// devicesComboBox
|
||||
//
|
||||
this.devicesComboBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
|
||||
this.devicesComboBox.ForeColor = System.Drawing.Color.White;
|
||||
this.devicesComboBox.FormattingEnabled = true;
|
||||
this.devicesComboBox.Location = new System.Drawing.Point(224, 120);
|
||||
this.devicesComboBox.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.devicesComboBox.Name = "devicesComboBox";
|
||||
this.devicesComboBox.Size = new System.Drawing.Size(153, 21);
|
||||
this.devicesComboBox.TabIndex = 80;
|
||||
this.devicesComboBox.Text = "Select your device";
|
||||
this.devicesComboBox.SelectedIndexChanged += new System.EventHandler(this.devicesComboBox_SelectedIndexChanged);
|
||||
//
|
||||
// remotesList
|
||||
//
|
||||
this.remotesList.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
|
||||
this.remotesList.ForeColor = System.Drawing.Color.White;
|
||||
this.remotesList.FormattingEnabled = true;
|
||||
this.remotesList.Location = new System.Drawing.Point(381, 120);
|
||||
this.remotesList.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.remotesList.Name = "remotesList";
|
||||
this.remotesList.Size = new System.Drawing.Size(153, 21);
|
||||
this.remotesList.TabIndex = 81;
|
||||
this.remotesList.Text = "Select a mirror";
|
||||
this.remotesList.SelectedIndexChanged += new System.EventHandler(this.remotesList_SelectedIndexChanged);
|
||||
//
|
||||
// SpoofFormButton
|
||||
//
|
||||
this.SpoofFormButton.BackColor = global::AndroidSideloader.Properties.Settings.Default.SubButtonColor;
|
||||
this.SpoofFormButton.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "SubButtonColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.SpoofFormButton.DataBindings.Add(new System.Windows.Forms.Binding("Font", global::AndroidSideloader.Properties.Settings.Default, "FontStyle", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.SpoofFormButton.DataBindings.Add(new System.Windows.Forms.Binding("ForeColor", global::AndroidSideloader.Properties.Settings.Default, "FontColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.SpoofFormButton.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.SpoofFormButton.FlatAppearance.BorderSize = 0;
|
||||
this.SpoofFormButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.SpoofFormButton.Font = global::AndroidSideloader.Properties.Settings.Default.FontStyle;
|
||||
this.SpoofFormButton.ForeColor = global::AndroidSideloader.Properties.Settings.Default.FontColor;
|
||||
this.SpoofFormButton.Location = new System.Drawing.Point(0, 112);
|
||||
this.SpoofFormButton.Name = "SpoofFormButton";
|
||||
this.SpoofFormButton.Padding = new System.Windows.Forms.Padding(23, 0, 0, 0);
|
||||
this.SpoofFormButton.Size = new System.Drawing.Size(218, 28);
|
||||
this.SpoofFormButton.TabIndex = 17;
|
||||
this.SpoofFormButton.Text = "SPOOF";
|
||||
this.SpoofFormButton.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.SpoofFormButton.UseVisualStyleBackColor = false;
|
||||
this.SpoofFormButton.Click += new System.EventHandler(this.SpoofFormButton_Click);
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
this.AllowDrop = true;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(650, 411);
|
||||
this.Controls.Add(this.settingsButton);
|
||||
this.Controls.Add(this.progressBar1);
|
||||
this.Controls.Add(this.userjsonButton);
|
||||
this.Controls.Add(this.aboutBtn);
|
||||
this.Controls.Add(this.sideloadFolderButton);
|
||||
this.Controls.Add(this.uninstallAppButton);
|
||||
this.Controls.Add(this.launchApkButton);
|
||||
this.Controls.Add(this.launchPackageTextBox);
|
||||
this.Controls.Add(this.changePermsBtn);
|
||||
this.Controls.Add(this.listApkPermsButton);
|
||||
this.Controls.Add(this.getApkButton);
|
||||
this.Controls.Add(this.ListApps);
|
||||
this.Controls.Add(this.customadbcmdbutton);
|
||||
this.Controls.Add(this.restorebutton);
|
||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
this.ClientSize = new System.Drawing.Size(738, 659);
|
||||
this.Controls.Add(this.remotesList);
|
||||
this.Controls.Add(this.devicesComboBox);
|
||||
this.Controls.Add(this.gamesQueListBox);
|
||||
this.Controls.Add(this.diskLabel);
|
||||
this.Controls.Add(this.speedLabel);
|
||||
this.Controls.Add(this.etaLabel);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Controls.Add(this.gamesComboBox);
|
||||
this.Controls.Add(this.downloadInstallGameButton);
|
||||
this.Controls.Add(this.DragDropLbl);
|
||||
this.Controls.Add(this.progressBar);
|
||||
this.Controls.Add(this.m_combo);
|
||||
this.Controls.Add(this.backupbutton);
|
||||
this.Controls.Add(this.obbcopybutton);
|
||||
this.Controls.Add(this.instructionsbutton);
|
||||
this.Controls.Add(this.devicesbutton);
|
||||
this.Controls.Add(this.startsideloadbutton);
|
||||
this.HelpButton = true;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MaximumSize = new System.Drawing.Size(666, 1000);
|
||||
this.MinimumSize = new System.Drawing.Size(466, 450);
|
||||
this.Controls.Add(this.freeDisclaimer);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "BackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.MaximizeBox = false;
|
||||
this.MaximumSize = new System.Drawing.Size(754, 698);
|
||||
this.MinimumSize = new System.Drawing.Size(754, 698);
|
||||
this.Name = "Form1";
|
||||
this.ShowIcon = false;
|
||||
this.Text = "Rookie SideLoader";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
|
||||
this.Load += new System.EventHandler(this.Form1_Load);
|
||||
this.Shown += new System.EventHandler(this.Form1_Shown);
|
||||
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);
|
||||
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);
|
||||
this.DragLeave += new System.EventHandler(this.Form1_DragLeave);
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.otherContainer.ResumeLayout(false);
|
||||
this.backupContainer.ResumeLayout(false);
|
||||
this.sideloadContainer.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -283,24 +764,41 @@
|
||||
#endregion
|
||||
private System.Windows.Forms.Button startsideloadbutton;
|
||||
private System.Windows.Forms.Button devicesbutton;
|
||||
private System.Windows.Forms.Button instructionsbutton;
|
||||
private System.Windows.Forms.Button obbcopybutton;
|
||||
private System.Windows.Forms.Button backupbutton;
|
||||
private System.Windows.Forms.Button restorebutton;
|
||||
private System.Windows.Forms.Button customadbcmdbutton;
|
||||
private System.Windows.Forms.Button ListApps;
|
||||
private System.Windows.Forms.Button getApkButton;
|
||||
private System.Windows.Forms.Button listApkPermsButton;
|
||||
private System.Windows.Forms.Button changePermsBtn;
|
||||
private SergeUtils.EasyCompletionComboBox m_combo;
|
||||
private System.Windows.Forms.TextBox launchPackageTextBox;
|
||||
private System.Windows.Forms.Button launchApkButton;
|
||||
private System.Windows.Forms.Button uninstallAppButton;
|
||||
private System.Windows.Forms.Button sideloadFolderButton;
|
||||
private System.Windows.Forms.Button aboutBtn;
|
||||
private System.Windows.Forms.ProgressBar progressBar;
|
||||
private System.Windows.Forms.Button copyBulkObbButton;
|
||||
private System.Windows.Forms.Label DragDropLbl;
|
||||
private System.Windows.Forms.Button downloadInstallGameButton;
|
||||
private SergeUtils.EasyCompletionComboBox gamesComboBox;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Panel backupContainer;
|
||||
private System.Windows.Forms.Button backupDrop;
|
||||
private System.Windows.Forms.Panel sideloadContainer;
|
||||
private System.Windows.Forms.Button sideloadDrop;
|
||||
private System.Windows.Forms.Button listApkButton;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.Label etaLabel;
|
||||
private System.Windows.Forms.Label speedLabel;
|
||||
private System.Windows.Forms.Label diskLabel;
|
||||
private System.Windows.Forms.Button otherDrop;
|
||||
private System.Windows.Forms.Panel otherContainer;
|
||||
private System.Windows.Forms.Button userjsonButton;
|
||||
private System.Windows.Forms.ProgressBar progressBar1;
|
||||
private System.Windows.Forms.Button aboutBtn;
|
||||
private System.Windows.Forms.Button settingsButton;
|
||||
private System.Windows.Forms.Button movieStreamButton;
|
||||
private System.Windows.Forms.Button killRcloneButton;
|
||||
private System.Windows.Forms.ListBox gamesQueListBox;
|
||||
private System.Windows.Forms.Label freeDisclaimer;
|
||||
private System.Windows.Forms.ComboBox devicesComboBox;
|
||||
private System.Windows.Forms.ComboBox remotesList;
|
||||
private System.Windows.Forms.Button QuestOptionsButton;
|
||||
private System.Windows.Forms.Button SpoofFormButton;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
1788
Form1.resx
1788
Form1.resx
File diff suppressed because it is too large
Load Diff
65
ImageForm.Designer.cs
generated
Normal file
65
ImageForm.Designer.cs
generated
Normal file
@@ -0,0 +1,65 @@
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
partial class ImageForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.Location = new System.Drawing.Point(13, 13);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(775, 425);
|
||||
this.pictureBox1.TabIndex = 0;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// ImageForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
this.Name = "ImageForm";
|
||||
this.ShowIcon = false;
|
||||
this.Text = "ImageForm";
|
||||
this.TopMost = true;
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ImageForm_FormClosing);
|
||||
this.Load += new System.EventHandler(this.ImageForm_Load);
|
||||
this.Shown += new System.EventHandler(this.ImageForm_Shown);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
}
|
||||
}
|
||||
45
ImageForm.cs
Normal file
45
ImageForm.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
public partial class ImageForm : Form
|
||||
{
|
||||
public ImageForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void ImageForm_Shown(object sender, EventArgs e)
|
||||
{
|
||||
//this.CenterToScreen();
|
||||
this.WindowState = FormWindowState.Maximized;
|
||||
this.MinimumSize = this.Size;
|
||||
this.MaximumSize = this.Size;
|
||||
|
||||
pictureBox1.Size = this.Size;
|
||||
|
||||
pictureBox1.Image = new Bitmap(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\warning.png");
|
||||
pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
|
||||
}
|
||||
|
||||
private void ImageForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void ImageForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
Form1 obj = (Form1)Application.OpenForms["Form1"];
|
||||
obj.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
18
Logger.cs
Normal file
18
Logger.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System.IO;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
class Logger
|
||||
{
|
||||
public static string logfile = "debuglog.txt";
|
||||
|
||||
public static bool Log(string text, bool ret = true)
|
||||
{
|
||||
string newline = "\n";
|
||||
if (text.Length > 40 && text.Contains("\n"))
|
||||
newline += "\n\n";
|
||||
try { File.AppendAllText(logfile, text + newline); } catch { }
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
25
MetroFramework.txt
Normal file
25
MetroFramework.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
MetroFramework - Modern UI for WinForms
|
||||
|
||||
Copyright (c) 2013 Jens Thiel, http://thielj.github.io/MetroFramework
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in the
|
||||
Software without restriction, including without limitation the rights to use, copy,
|
||||
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
and to permit persons to whom the Software is furnished to do so, subject to the
|
||||
following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Portions of this software are:
|
||||
|
||||
Copyright (c) 2011 Sven Walter, http://github.com/viperneo
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
[assembly: AssemblyVersion("1.13.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.13.0.0")]
|
||||
|
||||
44
Properties/Resources.Designer.cs
generated
44
Properties/Resources.Designer.cs
generated
@@ -8,10 +8,10 @@
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace AndroidSideloader.Properties
|
||||
{
|
||||
|
||||
|
||||
namespace AndroidSideloader.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
@@ -19,51 +19,43 @@ namespace AndroidSideloader.Properties
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources
|
||||
{
|
||||
|
||||
public class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources()
|
||||
{
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager
|
||||
{
|
||||
get
|
||||
{
|
||||
if ((resourceMan == null))
|
||||
{
|
||||
public static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AndroidSideloader.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture
|
||||
{
|
||||
get
|
||||
{
|
||||
public static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set
|
||||
{
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
@@ -60,6 +60,7 @@
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@@ -68,9 +69,10 @@
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
@@ -85,9 +87,10 @@
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
@@ -109,9 +112,9 @@
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
238
Properties/Settings.Designer.cs
generated
238
Properties/Settings.Designer.cs
generated
@@ -8,23 +8,235 @@
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace AndroidSideloader.Properties
|
||||
{
|
||||
|
||||
|
||||
namespace AndroidSideloader.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
|
||||
{
|
||||
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default
|
||||
{
|
||||
get
|
||||
{
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool checkForUpdates {
|
||||
get {
|
||||
return ((bool)(this["checkForUpdates"]));
|
||||
}
|
||||
set {
|
||||
this["checkForUpdates"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool enableMessageBoxes {
|
||||
get {
|
||||
return ((bool)(this["enableMessageBoxes"]));
|
||||
}
|
||||
set {
|
||||
this["enableMessageBoxes"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool logRclone {
|
||||
get {
|
||||
return ((bool)(this["logRclone"]));
|
||||
}
|
||||
set {
|
||||
this["logRclone"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool firstRun {
|
||||
get {
|
||||
return ((bool)(this["firstRun"]));
|
||||
}
|
||||
set {
|
||||
this["firstRun"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool deleteAllAfterInstall {
|
||||
get {
|
||||
return ((bool)(this["deleteAllAfterInstall"]));
|
||||
}
|
||||
set {
|
||||
this["deleteAllAfterInstall"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool autoUpdateConfig {
|
||||
get {
|
||||
return ((bool)(this["autoUpdateConfig"]));
|
||||
}
|
||||
set {
|
||||
this["autoUpdateConfig"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool userJsonOnGameInstall {
|
||||
get {
|
||||
return ((bool)(this["userJsonOnGameInstall"]));
|
||||
}
|
||||
set {
|
||||
this["userJsonOnGameInstall"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool CallUpgrade {
|
||||
get {
|
||||
return ((bool)(this["CallUpgrade"]));
|
||||
}
|
||||
set {
|
||||
this["CallUpgrade"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("45, 45, 45")]
|
||||
public global::System.Drawing.Color BackColor {
|
||||
get {
|
||||
return ((global::System.Drawing.Color)(this["BackColor"]));
|
||||
}
|
||||
set {
|
||||
this["BackColor"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("ActiveCaptionText")]
|
||||
public global::System.Drawing.Color PanelColor {
|
||||
get {
|
||||
return ((global::System.Drawing.Color)(this["PanelColor"]));
|
||||
}
|
||||
set {
|
||||
this["PanelColor"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("ActiveCaptionText")]
|
||||
public global::System.Drawing.Color ButtonColor {
|
||||
get {
|
||||
return ((global::System.Drawing.Color)(this["ButtonColor"]));
|
||||
}
|
||||
set {
|
||||
this["ButtonColor"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("64, 64, 64")]
|
||||
public global::System.Drawing.Color SubButtonColor {
|
||||
get {
|
||||
return ((global::System.Drawing.Color)(this["SubButtonColor"]));
|
||||
}
|
||||
set {
|
||||
this["SubButtonColor"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("45, 45, 45")]
|
||||
public global::System.Drawing.Color TextBoxColor {
|
||||
get {
|
||||
return ((global::System.Drawing.Color)(this["TextBoxColor"]));
|
||||
}
|
||||
set {
|
||||
this["TextBoxColor"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("45, 45, 45")]
|
||||
public global::System.Drawing.Color ComboBoxColor {
|
||||
get {
|
||||
return ((global::System.Drawing.Color)(this["ComboBoxColor"]));
|
||||
}
|
||||
set {
|
||||
this["ComboBoxColor"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("White")]
|
||||
public global::System.Drawing.Color FontColor {
|
||||
get {
|
||||
return ((global::System.Drawing.Color)(this["FontColor"]));
|
||||
}
|
||||
set {
|
||||
this["FontColor"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Microsoft Sans Serif, 11.25pt")]
|
||||
public global::System.Drawing.Font FontStyle {
|
||||
get {
|
||||
return ((global::System.Drawing.Font)(this["FontStyle"]));
|
||||
}
|
||||
set {
|
||||
this["FontStyle"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string BackPicturePath {
|
||||
get {
|
||||
return ((string)(this["BackPicturePath"]));
|
||||
}
|
||||
set {
|
||||
this["BackPicturePath"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool SpoofGames {
|
||||
get {
|
||||
return ((bool)(this["SpoofGames"]));
|
||||
}
|
||||
set {
|
||||
this["SpoofGames"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,60 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="AndroidSideloader.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="checkForUpdates" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="enableMessageBoxes" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="logRclone" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="firstRun" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="deleteAllAfterInstall" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="autoUpdateConfig" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="userJsonOnGameInstall" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="CallUpgrade" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="BackColor" Type="System.Drawing.Color" Scope="User">
|
||||
<Value Profile="(Default)">45, 45, 45</Value>
|
||||
</Setting>
|
||||
<Setting Name="PanelColor" Type="System.Drawing.Color" Scope="User">
|
||||
<Value Profile="(Default)">ActiveCaptionText</Value>
|
||||
</Setting>
|
||||
<Setting Name="ButtonColor" Type="System.Drawing.Color" Scope="User">
|
||||
<Value Profile="(Default)">ActiveCaptionText</Value>
|
||||
</Setting>
|
||||
<Setting Name="SubButtonColor" Type="System.Drawing.Color" Scope="User">
|
||||
<Value Profile="(Default)">64, 64, 64</Value>
|
||||
</Setting>
|
||||
<Setting Name="TextBoxColor" Type="System.Drawing.Color" Scope="User">
|
||||
<Value Profile="(Default)">45, 45, 45</Value>
|
||||
</Setting>
|
||||
<Setting Name="ComboBoxColor" Type="System.Drawing.Color" Scope="User">
|
||||
<Value Profile="(Default)">45, 45, 45</Value>
|
||||
</Setting>
|
||||
<Setting Name="FontColor" Type="System.Drawing.Color" Scope="User">
|
||||
<Value Profile="(Default)">White</Value>
|
||||
</Setting>
|
||||
<Setting Name="FontStyle" Type="System.Drawing.Font" Scope="User">
|
||||
<Value Profile="(Default)">Microsoft Sans Serif, 11.25pt</Value>
|
||||
</Setting>
|
||||
<Setting Name="BackPicturePath" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="SpoofGames" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
104
QuestForm.Designer.cs
generated
Normal file
104
QuestForm.Designer.cs
generated
Normal file
@@ -0,0 +1,104 @@
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
partial class QuestForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.RefreshRateComboBox = new System.Windows.Forms.ComboBox();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.TextureResTextBox = new System.Windows.Forms.TextBox();
|
||||
this.ResolutionLabel = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// RefreshRateComboBox
|
||||
//
|
||||
this.RefreshRateComboBox.FormattingEnabled = true;
|
||||
this.RefreshRateComboBox.Items.AddRange(new object[] {
|
||||
"72",
|
||||
"90"});
|
||||
this.RefreshRateComboBox.Location = new System.Drawing.Point(12, 12);
|
||||
this.RefreshRateComboBox.Name = "RefreshRateComboBox";
|
||||
this.RefreshRateComboBox.Size = new System.Drawing.Size(121, 21);
|
||||
this.RefreshRateComboBox.TabIndex = 0;
|
||||
this.RefreshRateComboBox.Text = "Select refresh rate";
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(13, 66);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(75, 23);
|
||||
this.button1.TabIndex = 1;
|
||||
this.button1.Text = "Apply";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// TextureResTextBox
|
||||
//
|
||||
this.TextureResTextBox.Location = new System.Drawing.Point(13, 40);
|
||||
this.TextureResTextBox.Name = "TextureResTextBox";
|
||||
this.TextureResTextBox.Size = new System.Drawing.Size(120, 20);
|
||||
this.TextureResTextBox.TabIndex = 2;
|
||||
this.TextureResTextBox.Text = "0";
|
||||
//
|
||||
// ResolutionLabel
|
||||
//
|
||||
this.ResolutionLabel.AutoSize = true;
|
||||
this.ResolutionLabel.ForeColor = System.Drawing.Color.White;
|
||||
this.ResolutionLabel.Location = new System.Drawing.Point(135, 43);
|
||||
this.ResolutionLabel.Name = "ResolutionLabel";
|
||||
this.ResolutionLabel.Size = new System.Drawing.Size(160, 13);
|
||||
this.ResolutionLabel.TabIndex = 3;
|
||||
this.ResolutionLabel.Text = "Resolution per eye (0 for default)";
|
||||
//
|
||||
// QuestForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(45)))));
|
||||
this.ClientSize = new System.Drawing.Size(307, 103);
|
||||
this.Controls.Add(this.ResolutionLabel);
|
||||
this.Controls.Add(this.TextureResTextBox);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.RefreshRateComboBox);
|
||||
this.MaximumSize = new System.Drawing.Size(323, 142);
|
||||
this.MinimumSize = new System.Drawing.Size(323, 142);
|
||||
this.Name = "QuestForm";
|
||||
this.ShowIcon = false;
|
||||
this.Text = "QuestForm";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ComboBox RefreshRateComboBox;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.TextBox TextureResTextBox;
|
||||
private System.Windows.Forms.Label ResolutionLabel;
|
||||
}
|
||||
}
|
||||
38
QuestForm.cs
Normal file
38
QuestForm.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
public partial class QuestForm : Form
|
||||
{
|
||||
public QuestForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (RefreshRateComboBox.SelectedIndex != -1)
|
||||
{
|
||||
ADB.RunAdbCommandToString($"shell setprop debug.oculus.refreshRate {RefreshRateComboBox.SelectedItem.ToString()}");
|
||||
ADB.RunAdbCommandToString($"shell settings put global 90hz_global {RefreshRateComboBox.SelectedIndex}");
|
||||
ADB.RunAdbCommandToString($"shell settings put global 90hzglobal {RefreshRateComboBox.SelectedIndex}");
|
||||
}
|
||||
|
||||
if (TextureResTextBox.Text.Length>0)
|
||||
{
|
||||
Int32.TryParse(TextureResTextBox.Text, out int result);
|
||||
ADB.RunAdbCommandToString($"shell settings put global texture_size_Global {TextureResTextBox.Text}");
|
||||
ADB.RunAdbCommandToString($"shell settings put global texture_size_Global {TextureResTextBox.Text}");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
12
RCLONE.cs
Normal file
12
RCLONE.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
class RCLONE
|
||||
{
|
||||
}
|
||||
}
|
||||
16
README.md
16
README.md
@@ -2,7 +2,15 @@
|
||||
|
||||
The icon of the app contains an icon made by icon8.com
|
||||
|
||||
Special thanks to
|
||||
- https://stackoverflow.com/users/57611/erike for the folder browser dialog code
|
||||
- Serge Weinstock for developing SergeUtils, which is used to search the combo box
|
||||
- Mike Gold https://www.c-sharpcorner.com/members/mike-gold2 for the scrollable message box
|
||||
Special thanks:
|
||||
- Thanks to pmow for all of his work, including rclone, wonka and other projects
|
||||
- Thanks to flow for being friendly and helping every one, also congrats on being the discord server owner now! :D
|
||||
- Thanks to the data team, they know who they are ;)
|
||||
- Thanks to badcoder5000 for helping me redesign the ui
|
||||
- Thanks to gotard for the theme changer
|
||||
- Thanks to Verb8em for drawing the new icon
|
||||
- Thanks to 7zip team for 7zip :)
|
||||
- Thanks to rclone team for rclone :D
|
||||
- Thanks to https://stackoverflow.com/users/57611/erike for the folder browser dialog code
|
||||
- Thanks to Serge Weinstock for developing SergeUtils, which is used to search the combo box
|
||||
- Thanks to Mike Gold https://www.c-sharpcorner.com/members/mike-gold2 for the scrollable message box
|
||||
|
||||
100
SettingsForm.Designer.cs
generated
100
SettingsForm.Designer.cs
generated
@@ -31,8 +31,12 @@
|
||||
this.checkForUpdatesCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.applyButton = new System.Windows.Forms.Button();
|
||||
this.enableMessageBoxesCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.copyMessageToClipboardCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.resetSettingsButton = new System.Windows.Forms.Button();
|
||||
this.deleteAfterInstallCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.updateConfigCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.debugRcloneCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.userJsonOnGameInstall = new System.Windows.Forms.CheckBox();
|
||||
this.spoofGamesCheckbox = new System.Windows.Forms.CheckBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// checkForUpdatesCheckBox
|
||||
@@ -48,12 +52,14 @@
|
||||
//
|
||||
// applyButton
|
||||
//
|
||||
this.applyButton.BackColor = System.Drawing.Color.White;
|
||||
this.applyButton.ForeColor = System.Drawing.Color.Black;
|
||||
this.applyButton.Location = new System.Drawing.Point(357, 183);
|
||||
this.applyButton.Name = "applyButton";
|
||||
this.applyButton.Size = new System.Drawing.Size(75, 23);
|
||||
this.applyButton.TabIndex = 1;
|
||||
this.applyButton.TabIndex = 5;
|
||||
this.applyButton.Text = "Apply";
|
||||
this.applyButton.UseVisualStyleBackColor = true;
|
||||
this.applyButton.UseVisualStyleBackColor = false;
|
||||
this.applyButton.Click += new System.EventHandler(this.applyButton_Click);
|
||||
//
|
||||
// enableMessageBoxesCheckBox
|
||||
@@ -62,43 +68,97 @@
|
||||
this.enableMessageBoxesCheckBox.Location = new System.Drawing.Point(13, 36);
|
||||
this.enableMessageBoxesCheckBox.Name = "enableMessageBoxesCheckBox";
|
||||
this.enableMessageBoxesCheckBox.Size = new System.Drawing.Size(227, 17);
|
||||
this.enableMessageBoxesCheckBox.TabIndex = 2;
|
||||
this.enableMessageBoxesCheckBox.TabIndex = 1;
|
||||
this.enableMessageBoxesCheckBox.Text = "Enable Message Boxes on task completed";
|
||||
this.enableMessageBoxesCheckBox.UseVisualStyleBackColor = true;
|
||||
this.enableMessageBoxesCheckBox.CheckedChanged += new System.EventHandler(this.enableMessageBoxesCheckBox_CheckedChanged);
|
||||
//
|
||||
// copyMessageToClipboardCheckBox
|
||||
//
|
||||
this.copyMessageToClipboardCheckBox.AutoSize = true;
|
||||
this.copyMessageToClipboardCheckBox.Location = new System.Drawing.Point(13, 59);
|
||||
this.copyMessageToClipboardCheckBox.Name = "copyMessageToClipboardCheckBox";
|
||||
this.copyMessageToClipboardCheckBox.Size = new System.Drawing.Size(153, 17);
|
||||
this.copyMessageToClipboardCheckBox.TabIndex = 3;
|
||||
this.copyMessageToClipboardCheckBox.Text = "Copy message to clipboard";
|
||||
this.copyMessageToClipboardCheckBox.UseVisualStyleBackColor = true;
|
||||
this.copyMessageToClipboardCheckBox.CheckedChanged += new System.EventHandler(this.copyMessageToClipboardCheckBox_CheckedChanged);
|
||||
//
|
||||
// resetSettingsButton
|
||||
//
|
||||
this.resetSettingsButton.BackColor = System.Drawing.Color.White;
|
||||
this.resetSettingsButton.ForeColor = System.Drawing.Color.Black;
|
||||
this.resetSettingsButton.Location = new System.Drawing.Point(256, 183);
|
||||
this.resetSettingsButton.Name = "resetSettingsButton";
|
||||
this.resetSettingsButton.Size = new System.Drawing.Size(95, 23);
|
||||
this.resetSettingsButton.TabIndex = 4;
|
||||
this.resetSettingsButton.Text = "Reset Settings";
|
||||
this.resetSettingsButton.UseVisualStyleBackColor = true;
|
||||
this.resetSettingsButton.UseVisualStyleBackColor = false;
|
||||
this.resetSettingsButton.Click += new System.EventHandler(this.resetSettingsButton_Click);
|
||||
//
|
||||
// deleteAfterInstallCheckBox
|
||||
//
|
||||
this.deleteAfterInstallCheckBox.AutoSize = true;
|
||||
this.deleteAfterInstallCheckBox.Location = new System.Drawing.Point(13, 59);
|
||||
this.deleteAfterInstallCheckBox.Name = "deleteAfterInstallCheckBox";
|
||||
this.deleteAfterInstallCheckBox.Size = new System.Drawing.Size(214, 17);
|
||||
this.deleteAfterInstallCheckBox.TabIndex = 3;
|
||||
this.deleteAfterInstallCheckBox.Text = "Delete games after download and install";
|
||||
this.deleteAfterInstallCheckBox.UseVisualStyleBackColor = true;
|
||||
this.deleteAfterInstallCheckBox.CheckedChanged += new System.EventHandler(this.deleteAfterInstallCheckBox_CheckedChanged);
|
||||
//
|
||||
// updateConfigCheckBox
|
||||
//
|
||||
this.updateConfigCheckBox.AutoSize = true;
|
||||
this.updateConfigCheckBox.Location = new System.Drawing.Point(13, 83);
|
||||
this.updateConfigCheckBox.Name = "updateConfigCheckBox";
|
||||
this.updateConfigCheckBox.Size = new System.Drawing.Size(157, 17);
|
||||
this.updateConfigCheckBox.TabIndex = 6;
|
||||
this.updateConfigCheckBox.Text = "Update config automatically";
|
||||
this.updateConfigCheckBox.UseVisualStyleBackColor = true;
|
||||
this.updateConfigCheckBox.CheckedChanged += new System.EventHandler(this.updateConfigCheckBox_CheckedChanged);
|
||||
//
|
||||
// debugRcloneCheckBox
|
||||
//
|
||||
this.debugRcloneCheckBox.AutoSize = true;
|
||||
this.debugRcloneCheckBox.Location = new System.Drawing.Point(13, 106);
|
||||
this.debugRcloneCheckBox.Name = "debugRcloneCheckBox";
|
||||
this.debugRcloneCheckBox.Size = new System.Drawing.Size(95, 17);
|
||||
this.debugRcloneCheckBox.TabIndex = 8;
|
||||
this.debugRcloneCheckBox.Text = "Debug Rclone";
|
||||
this.debugRcloneCheckBox.UseVisualStyleBackColor = true;
|
||||
this.debugRcloneCheckBox.CheckedChanged += new System.EventHandler(this.debugRcloneCheckBox_CheckedChanged);
|
||||
//
|
||||
// userJsonOnGameInstall
|
||||
//
|
||||
this.userJsonOnGameInstall.AutoSize = true;
|
||||
this.userJsonOnGameInstall.Location = new System.Drawing.Point(13, 130);
|
||||
this.userJsonOnGameInstall.Name = "userJsonOnGameInstall";
|
||||
this.userJsonOnGameInstall.Size = new System.Drawing.Size(177, 17);
|
||||
this.userJsonOnGameInstall.TabIndex = 9;
|
||||
this.userJsonOnGameInstall.Text = "Push random user.json on install";
|
||||
this.userJsonOnGameInstall.UseVisualStyleBackColor = true;
|
||||
this.userJsonOnGameInstall.CheckedChanged += new System.EventHandler(this.userJsonOnGameInstall_CheckedChanged);
|
||||
//
|
||||
// spoofGamesCheckbox
|
||||
//
|
||||
this.spoofGamesCheckbox.AutoSize = true;
|
||||
this.spoofGamesCheckbox.Location = new System.Drawing.Point(13, 153);
|
||||
this.spoofGamesCheckbox.Name = "spoofGamesCheckbox";
|
||||
this.spoofGamesCheckbox.Size = new System.Drawing.Size(184, 17);
|
||||
this.spoofGamesCheckbox.TabIndex = 10;
|
||||
this.spoofGamesCheckbox.Text = "Spoof games installed from rclone";
|
||||
this.spoofGamesCheckbox.UseVisualStyleBackColor = true;
|
||||
this.spoofGamesCheckbox.CheckedChanged += new System.EventHandler(this.spoofGamesCheckbox_CheckedChanged);
|
||||
//
|
||||
// SettingsForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
this.ClientSize = new System.Drawing.Size(444, 218);
|
||||
this.Controls.Add(this.spoofGamesCheckbox);
|
||||
this.Controls.Add(this.userJsonOnGameInstall);
|
||||
this.Controls.Add(this.debugRcloneCheckBox);
|
||||
this.Controls.Add(this.updateConfigCheckBox);
|
||||
this.Controls.Add(this.deleteAfterInstallCheckBox);
|
||||
this.Controls.Add(this.resetSettingsButton);
|
||||
this.Controls.Add(this.copyMessageToClipboardCheckBox);
|
||||
this.Controls.Add(this.enableMessageBoxesCheckBox);
|
||||
this.Controls.Add(this.applyButton);
|
||||
this.Controls.Add(this.checkForUpdatesCheckBox);
|
||||
this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "BackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.ForeColor = System.Drawing.Color.White;
|
||||
this.Name = "SettingsForm";
|
||||
this.ShowIcon = false;
|
||||
this.Text = "SettingsForm";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SettingsForm_FormClosing);
|
||||
this.Load += new System.EventHandler(this.SettingsForm_Load);
|
||||
@@ -112,7 +172,11 @@
|
||||
private System.Windows.Forms.CheckBox checkForUpdatesCheckBox;
|
||||
private System.Windows.Forms.Button applyButton;
|
||||
private System.Windows.Forms.CheckBox enableMessageBoxesCheckBox;
|
||||
private System.Windows.Forms.CheckBox copyMessageToClipboardCheckBox;
|
||||
private System.Windows.Forms.Button resetSettingsButton;
|
||||
private System.Windows.Forms.CheckBox deleteAfterInstallCheckBox;
|
||||
private System.Windows.Forms.CheckBox updateConfigCheckBox;
|
||||
private System.Windows.Forms.CheckBox debugRcloneCheckBox;
|
||||
private System.Windows.Forms.CheckBox userJsonOnGameInstall;
|
||||
private System.Windows.Forms.CheckBox spoofGamesCheckbox;
|
||||
}
|
||||
}
|
||||
@@ -30,7 +30,11 @@ namespace AndroidSideloader
|
||||
{
|
||||
checkForUpdatesCheckBox.Checked = Properties.Settings.Default.checkForUpdates;
|
||||
enableMessageBoxesCheckBox.Checked = Properties.Settings.Default.enableMessageBoxes;
|
||||
copyMessageToClipboardCheckBox.Checked = Properties.Settings.Default.copyMessageToClipboard;
|
||||
deleteAfterInstallCheckBox.Checked = Properties.Settings.Default.deleteAllAfterInstall;
|
||||
updateConfigCheckBox.Checked = Properties.Settings.Default.autoUpdateConfig;
|
||||
debugRcloneCheckBox.Checked = Properties.Settings.Default.logRclone;
|
||||
userJsonOnGameInstall.Checked = Properties.Settings.Default.userJsonOnGameInstall;
|
||||
spoofGamesCheckbox.Checked = Properties.Settings.Default.SpoofGames;
|
||||
}
|
||||
|
||||
void intToolTips()
|
||||
@@ -39,12 +43,13 @@ namespace AndroidSideloader
|
||||
checkForUpdatesToolTip.SetToolTip(this.checkForUpdatesCheckBox, "If this is checked, the software will check for available updates");
|
||||
ToolTip enableMessageBoxesToolTip = new ToolTip();
|
||||
enableMessageBoxesToolTip.SetToolTip(this.enableMessageBoxesCheckBox, "If this is checked, the software will display message boxes after every completed task");
|
||||
ToolTip copyMessageToClipboardToolTip = new ToolTip();
|
||||
copyMessageToClipboardToolTip.SetToolTip(this.copyMessageToClipboardCheckBox, "If this is checked, after each task the software will set the result message to your clipboard");
|
||||
ToolTip deleteAfterInstallToolTip = new ToolTip();
|
||||
deleteAfterInstallToolTip.SetToolTip(this.deleteAfterInstallCheckBox, "If this is checked, the software will delete all game files after downloading and installing a game from a remote server");
|
||||
}
|
||||
|
||||
private void applyButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
|
||||
@@ -63,15 +68,35 @@ namespace AndroidSideloader
|
||||
Properties.Settings.Default.enableMessageBoxes = enableMessageBoxesCheckBox.Checked;
|
||||
}
|
||||
|
||||
private void copyMessageToClipboardCheckBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.copyMessageToClipboard = copyMessageToClipboardCheckBox.Checked;
|
||||
}
|
||||
|
||||
private void resetSettingsButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.Reset();
|
||||
intSettings();
|
||||
}
|
||||
|
||||
private void deleteAfterInstallCheckBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.deleteAllAfterInstall = deleteAfterInstallCheckBox.Checked;
|
||||
}
|
||||
|
||||
private void updateConfigCheckBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.autoUpdateConfig = updateConfigCheckBox.Checked;
|
||||
}
|
||||
|
||||
private void debugRcloneCheckBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.logRclone = debugRcloneCheckBox.Checked;
|
||||
}
|
||||
|
||||
private void userJsonOnGameInstall_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.userJsonOnGameInstall = userJsonOnGameInstall.Checked;
|
||||
}
|
||||
|
||||
private void spoofGamesCheckbox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.SpoofGames = spoofGamesCheckbox.Checked;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
Sideloader Launcher.exe
Normal file
BIN
Sideloader Launcher.exe
Normal file
Binary file not shown.
98
SpoofForm.Designer.cs
generated
Normal file
98
SpoofForm.Designer.cs
generated
Normal file
@@ -0,0 +1,98 @@
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
partial class SpoofForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SpoofButton = new System.Windows.Forms.Button();
|
||||
this.PackageNameTextBox = new System.Windows.Forms.TextBox();
|
||||
this.RandomizeButton = new System.Windows.Forms.Button();
|
||||
this.progressBar1 = new System.Windows.Forms.ProgressBar();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// SpoofButton
|
||||
//
|
||||
this.SpoofButton.Location = new System.Drawing.Point(216, 13);
|
||||
this.SpoofButton.Name = "SpoofButton";
|
||||
this.SpoofButton.Size = new System.Drawing.Size(70, 20);
|
||||
this.SpoofButton.TabIndex = 0;
|
||||
this.SpoofButton.Text = "Spoof!";
|
||||
this.SpoofButton.UseVisualStyleBackColor = true;
|
||||
this.SpoofButton.Click += new System.EventHandler(this.SpoofButton_Click);
|
||||
//
|
||||
// PackageNameTextBox
|
||||
//
|
||||
this.PackageNameTextBox.Location = new System.Drawing.Point(13, 13);
|
||||
this.PackageNameTextBox.Name = "PackageNameTextBox";
|
||||
this.PackageNameTextBox.Size = new System.Drawing.Size(117, 20);
|
||||
this.PackageNameTextBox.TabIndex = 1;
|
||||
//
|
||||
// RandomizeButton
|
||||
//
|
||||
this.RandomizeButton.Location = new System.Drawing.Point(137, 13);
|
||||
this.RandomizeButton.Name = "RandomizeButton";
|
||||
this.RandomizeButton.Size = new System.Drawing.Size(73, 20);
|
||||
this.RandomizeButton.TabIndex = 2;
|
||||
this.RandomizeButton.Text = "Randomize";
|
||||
this.RandomizeButton.UseVisualStyleBackColor = true;
|
||||
this.RandomizeButton.Click += new System.EventHandler(this.RandomizeButton_Click);
|
||||
//
|
||||
// progressBar1
|
||||
//
|
||||
this.progressBar1.Location = new System.Drawing.Point(13, 39);
|
||||
this.progressBar1.Name = "progressBar1";
|
||||
this.progressBar1.Size = new System.Drawing.Size(273, 23);
|
||||
this.progressBar1.TabIndex = 3;
|
||||
//
|
||||
// SpoofForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56)))));
|
||||
this.ClientSize = new System.Drawing.Size(300, 80);
|
||||
this.Controls.Add(this.progressBar1);
|
||||
this.Controls.Add(this.RandomizeButton);
|
||||
this.Controls.Add(this.PackageNameTextBox);
|
||||
this.Controls.Add(this.SpoofButton);
|
||||
this.MaximumSize = new System.Drawing.Size(316, 119);
|
||||
this.MinimumSize = new System.Drawing.Size(316, 119);
|
||||
this.Name = "SpoofForm";
|
||||
this.Text = "SpoofForm";
|
||||
this.Load += new System.EventHandler(this.SpoofForm_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button SpoofButton;
|
||||
private System.Windows.Forms.TextBox PackageNameTextBox;
|
||||
private System.Windows.Forms.Button RandomizeButton;
|
||||
private System.Windows.Forms.ProgressBar progressBar1;
|
||||
}
|
||||
}
|
||||
61
SpoofForm.cs
Normal file
61
SpoofForm.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
using JR.Utils.GUI.Forms;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using Spoofer;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
public partial class SpoofForm : Form
|
||||
{
|
||||
public SpoofForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private async void SpoofButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
string NewPackageName = PackageNameTextBox.Text;
|
||||
string path;
|
||||
using (OpenFileDialog openFileDialog = new OpenFileDialog())
|
||||
{
|
||||
openFileDialog.Filter = "Android apps (*.apk)|*.apk";
|
||||
openFileDialog.FilterIndex = 2;
|
||||
openFileDialog.RestoreDirectory = true;
|
||||
|
||||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||
path = openFileDialog.FileName;
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
progressBar1.Style = ProgressBarStyle.Marquee;
|
||||
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
spoofer.Init();
|
||||
spoofer.SpoofApk(path, NewPackageName);
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
|
||||
while (t1.IsAlive)
|
||||
await Task.Delay(100);
|
||||
|
||||
progressBar1.Style = ProgressBarStyle.Continuous;
|
||||
|
||||
FlexibleMessageBox.Show($"App spoofed from {spoofer.originalPackageName} to {NewPackageName}");
|
||||
}
|
||||
|
||||
private void SpoofForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
PackageNameTextBox.Text = Utilities.RandomPackageName();
|
||||
}
|
||||
|
||||
private void RandomizeButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
PackageNameTextBox.Text = Utilities.RandomPackageName();
|
||||
}
|
||||
}
|
||||
}
|
||||
120
SpoofForm.resx
Normal file
120
SpoofForm.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
249
ThemeForm.Designer.cs
generated
Normal file
249
ThemeForm.Designer.cs
generated
Normal file
@@ -0,0 +1,249 @@
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
partial class themeForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.colorDialog1 = new System.Windows.Forms.ColorDialog();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.button4 = new System.Windows.Forms.Button();
|
||||
this.button5 = new System.Windows.Forms.Button();
|
||||
this.button6 = new System.Windows.Forms.Button();
|
||||
this.button7 = new System.Windows.Forms.Button();
|
||||
this.button8 = new System.Windows.Forms.Button();
|
||||
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||
this.button9 = new System.Windows.Forms.Button();
|
||||
this.button10 = new System.Windows.Forms.Button();
|
||||
this.fontDialog1 = new System.Windows.Forms.FontDialog();
|
||||
this.button3 = new System.Windows.Forms.Button();
|
||||
this.button11 = new System.Windows.Forms.Button();
|
||||
this.button12 = new System.Windows.Forms.Button();
|
||||
this.button13 = new System.Windows.Forms.Button();
|
||||
this.openThemeDialog = new System.Windows.Forms.OpenFileDialog();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// colorDialog1
|
||||
//
|
||||
this.colorDialog1.AnyColor = true;
|
||||
this.colorDialog1.FullOpen = true;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(13, 12);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(128, 23);
|
||||
this.button1.TabIndex = 0;
|
||||
this.button1.Text = "Set backgorund color";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Location = new System.Drawing.Point(13, 68);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(128, 23);
|
||||
this.button2.TabIndex = 0;
|
||||
this.button2.Text = "Set panel color";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||
//
|
||||
// button4
|
||||
//
|
||||
this.button4.Location = new System.Drawing.Point(13, 152);
|
||||
this.button4.Name = "button4";
|
||||
this.button4.Size = new System.Drawing.Size(128, 23);
|
||||
this.button4.TabIndex = 0;
|
||||
this.button4.Text = "Set button color";
|
||||
this.button4.UseVisualStyleBackColor = true;
|
||||
this.button4.Click += new System.EventHandler(this.button4_Click);
|
||||
//
|
||||
// button5
|
||||
//
|
||||
this.button5.Location = new System.Drawing.Point(13, 208);
|
||||
this.button5.Name = "button5";
|
||||
this.button5.Size = new System.Drawing.Size(128, 23);
|
||||
this.button5.TabIndex = 0;
|
||||
this.button5.Text = "Set combobox color";
|
||||
this.button5.UseVisualStyleBackColor = true;
|
||||
this.button5.Click += new System.EventHandler(this.button5_Click);
|
||||
//
|
||||
// button6
|
||||
//
|
||||
this.button6.Location = new System.Drawing.Point(13, 236);
|
||||
this.button6.Name = "button6";
|
||||
this.button6.Size = new System.Drawing.Size(128, 23);
|
||||
this.button6.TabIndex = 0;
|
||||
this.button6.Text = "Set textbox color";
|
||||
this.button6.UseVisualStyleBackColor = true;
|
||||
this.button6.Click += new System.EventHandler(this.button6_Click);
|
||||
//
|
||||
// button7
|
||||
//
|
||||
this.button7.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.button7.Location = new System.Drawing.Point(185, 11);
|
||||
this.button7.Name = "button7";
|
||||
this.button7.Size = new System.Drawing.Size(93, 52);
|
||||
this.button7.TabIndex = 1;
|
||||
this.button7.Text = "Save";
|
||||
this.button7.UseVisualStyleBackColor = true;
|
||||
this.button7.Click += new System.EventHandler(this.button7_Click);
|
||||
//
|
||||
// button8
|
||||
//
|
||||
this.button8.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.button8.Location = new System.Drawing.Point(185, 69);
|
||||
this.button8.Name = "button8";
|
||||
this.button8.Size = new System.Drawing.Size(93, 52);
|
||||
this.button8.TabIndex = 2;
|
||||
this.button8.Text = "Reset";
|
||||
this.button8.UseVisualStyleBackColor = true;
|
||||
this.button8.Click += new System.EventHandler(this.button8_Click);
|
||||
//
|
||||
// openFileDialog1
|
||||
//
|
||||
this.openFileDialog1.Filter = "Images|*.png;*.jpg;*.bmp;*.gif";
|
||||
//
|
||||
// button9
|
||||
//
|
||||
this.button9.Location = new System.Drawing.Point(13, 40);
|
||||
this.button9.Name = "button9";
|
||||
this.button9.Size = new System.Drawing.Size(128, 23);
|
||||
this.button9.TabIndex = 3;
|
||||
this.button9.Text = "Set background picture";
|
||||
this.button9.UseVisualStyleBackColor = true;
|
||||
this.button9.Click += new System.EventHandler(this.button9_Click);
|
||||
//
|
||||
// button10
|
||||
//
|
||||
this.button10.Location = new System.Drawing.Point(13, 124);
|
||||
this.button10.Name = "button10";
|
||||
this.button10.Size = new System.Drawing.Size(128, 23);
|
||||
this.button10.TabIndex = 4;
|
||||
this.button10.Text = "Set font style";
|
||||
this.button10.UseVisualStyleBackColor = true;
|
||||
this.button10.Click += new System.EventHandler(this.button10_Click);
|
||||
//
|
||||
// fontDialog1
|
||||
//
|
||||
this.fontDialog1.Color = System.Drawing.Color.White;
|
||||
this.fontDialog1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
//
|
||||
// button3
|
||||
//
|
||||
this.button3.Location = new System.Drawing.Point(13, 96);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(128, 23);
|
||||
this.button3.TabIndex = 5;
|
||||
this.button3.Text = "Set font color";
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
this.button3.Click += new System.EventHandler(this.button3_Click);
|
||||
//
|
||||
// button11
|
||||
//
|
||||
this.button11.Location = new System.Drawing.Point(13, 180);
|
||||
this.button11.Name = "button11";
|
||||
this.button11.Size = new System.Drawing.Size(128, 23);
|
||||
this.button11.TabIndex = 6;
|
||||
this.button11.Text = "Set sub-button color";
|
||||
this.button11.UseVisualStyleBackColor = true;
|
||||
this.button11.Click += new System.EventHandler(this.button11_Click);
|
||||
//
|
||||
// button12
|
||||
//
|
||||
this.button12.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.button12.Location = new System.Drawing.Point(185, 127);
|
||||
this.button12.Name = "button12";
|
||||
this.button12.Size = new System.Drawing.Size(93, 52);
|
||||
this.button12.TabIndex = 7;
|
||||
this.button12.Text = "Export Theme";
|
||||
this.button12.UseVisualStyleBackColor = true;
|
||||
this.button12.Click += new System.EventHandler(this.button12_Click);
|
||||
//
|
||||
// button13
|
||||
//
|
||||
this.button13.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.button13.Location = new System.Drawing.Point(185, 185);
|
||||
this.button13.Name = "button13";
|
||||
this.button13.Size = new System.Drawing.Size(93, 52);
|
||||
this.button13.TabIndex = 8;
|
||||
this.button13.Text = "Import theme";
|
||||
this.button13.UseVisualStyleBackColor = true;
|
||||
this.button13.Click += new System.EventHandler(this.button13_Click);
|
||||
//
|
||||
// openThemeDialog
|
||||
//
|
||||
this.openThemeDialog.Filter = "Text Files|*.txt";
|
||||
//
|
||||
// themeForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
this.ClientSize = new System.Drawing.Size(290, 272);
|
||||
this.Controls.Add(this.button13);
|
||||
this.Controls.Add(this.button12);
|
||||
this.Controls.Add(this.button11);
|
||||
this.Controls.Add(this.button3);
|
||||
this.Controls.Add(this.button10);
|
||||
this.Controls.Add(this.button9);
|
||||
this.Controls.Add(this.button8);
|
||||
this.Controls.Add(this.button7);
|
||||
this.Controls.Add(this.button6);
|
||||
this.Controls.Add(this.button5);
|
||||
this.Controls.Add(this.button4);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "BackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.Name = "themeForm";
|
||||
this.Text = "Create Your Theme";
|
||||
this.Load += new System.EventHandler(this.themeForm_Load);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ColorDialog colorDialog1;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.Button button4;
|
||||
private System.Windows.Forms.Button button5;
|
||||
private System.Windows.Forms.Button button6;
|
||||
private System.Windows.Forms.Button button7;
|
||||
private System.Windows.Forms.Button button8;
|
||||
private System.Windows.Forms.OpenFileDialog openFileDialog1;
|
||||
private System.Windows.Forms.Button button9;
|
||||
private System.Windows.Forms.Button button10;
|
||||
private System.Windows.Forms.FontDialog fontDialog1;
|
||||
private System.Windows.Forms.Button button3;
|
||||
private System.Windows.Forms.Button button11;
|
||||
private System.Windows.Forms.Button button12;
|
||||
private System.Windows.Forms.Button button13;
|
||||
private System.Windows.Forms.OpenFileDialog openThemeDialog;
|
||||
}
|
||||
}
|
||||
199
ThemeForm.cs
Normal file
199
ThemeForm.cs
Normal file
@@ -0,0 +1,199 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
public partial class themeForm : Form
|
||||
{
|
||||
|
||||
public themeForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void button4_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.ButtonColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.PanelColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.BackColor = colorDialog1.Color;
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void button7_Click(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.Save();
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void button8_Click(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.BackColor = Color.FromArgb(45,45,45);
|
||||
Properties.Settings.Default.ComboBoxColor = Color.FromArgb(45, 45, 45);
|
||||
Properties.Settings.Default.TextBoxColor = Color.FromArgb(45,45,45);
|
||||
Properties.Settings.Default.ButtonColor = SystemColors.ActiveCaptionText;
|
||||
Properties.Settings.Default.SubButtonColor=Color.FromArgb(64, 64, 64);
|
||||
Properties.Settings.Default.PanelColor = SystemColors.ActiveCaptionText;
|
||||
Properties.Settings.Default.BackPicturePath = "";
|
||||
Properties.Settings.Default.FontStyle = new Font("Microsoft Sans Serif", 11, FontStyle.Regular);
|
||||
Properties.Settings.Default.FontColor = Color.White;
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void button5_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.ComboBoxColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void button6_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.TextBoxColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void button9_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (openFileDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
String extension = Path.GetExtension(openFileDialog1.FileName);
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\pic" + extension))
|
||||
File.Delete(Environment.CurrentDirectory + "\\pic" + extension);
|
||||
File.Copy(openFileDialog1.FileName, Environment.CurrentDirectory + "\\pic" + extension);
|
||||
Properties.Settings.Default.BackPicturePath = Environment.CurrentDirectory + "\\pic" + extension ;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void button10_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (fontDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
Properties.Settings.Default.FontStyle = fontDialog1.Font;
|
||||
}
|
||||
}
|
||||
|
||||
private void button3_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.FontColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void button11_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (colorDialog1.ShowDialog() == DialogResult.OK)
|
||||
Properties.Settings.Default.SubButtonColor = colorDialog1.Color;
|
||||
}
|
||||
|
||||
private void themeForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void button12_Click(object sender, EventArgs e)
|
||||
{
|
||||
String BackColor = ColorTranslator.ToHtml(Properties.Settings.Default.BackColor);
|
||||
String PanelColor = ColorTranslator.ToHtml(Properties.Settings.Default.PanelColor);
|
||||
String TextBoxColor = ColorTranslator.ToHtml(Properties.Settings.Default.TextBoxColor);
|
||||
String ComboBoxColor = ColorTranslator.ToHtml(Properties.Settings.Default.ComboBoxColor);
|
||||
String ButtonColor = ColorTranslator.ToHtml(Properties.Settings.Default.ButtonColor);
|
||||
String SubButtonColor = ColorTranslator.ToHtml(Properties.Settings.Default.SubButtonColor);
|
||||
String FontColor = ColorTranslator.ToHtml(Properties.Settings.Default.FontColor);
|
||||
var cvt = new FontConverter();
|
||||
string FontStyle = cvt.ConvertToString(Properties.Settings.Default.FontStyle);
|
||||
int i;
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\theme.txt"))
|
||||
{
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\theme11.txt"))
|
||||
MessageBox.Show("You can't export more than 12 themes, sorry :(");
|
||||
else
|
||||
{
|
||||
for (i = 1; i <= 10; i++)
|
||||
{
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\theme" + i + ".txt"))
|
||||
continue;
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
File.WriteAllText(Environment.CurrentDirectory + "\\theme" + i + ".txt", "#SideloaderTheme# \n" + BackColor + "\n" + PanelColor + "\n" + ButtonColor + "\n" + SubButtonColor + "\n"
|
||||
+ TextBoxColor + "\n" + ComboBoxColor + "\n" + FontColor + "\n" + FontStyle);
|
||||
MessageBox.Show("Theme exported as theme" + i + ".txt");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
File.WriteAllText(Environment.CurrentDirectory + "\\theme.txt", "#SideloaderTheme# \n" + BackColor + "\n" + PanelColor + "\n" + ButtonColor + "\n" + SubButtonColor + "\n"
|
||||
+ TextBoxColor + "\n" + ComboBoxColor + "\n" + FontColor + "\n" + FontStyle);
|
||||
MessageBox.Show("Theme exported as theme.txt");
|
||||
}
|
||||
}
|
||||
|
||||
private void button13_Click(object sender, EventArgs e)
|
||||
{
|
||||
openThemeDialog.InitialDirectory = Environment.CurrentDirectory;
|
||||
if (openThemeDialog.ShowDialog() == DialogResult.OK) {
|
||||
using (StreamReader sr = new StreamReader(openThemeDialog.FileName))
|
||||
{
|
||||
StringCollection myCol = new StringCollection();
|
||||
myCol.AddRange(File.ReadAllLines(openThemeDialog.FileName));
|
||||
if (myCol.Contains("#SideloaderTheme# "))
|
||||
{
|
||||
String[] settings = new String[myCol.Count];
|
||||
myCol.CopyTo(settings, 0);
|
||||
|
||||
Color BackColor = ColorTranslator.FromHtml(settings[1]);
|
||||
Color PanelColor = ColorTranslator.FromHtml(settings[2]);
|
||||
Color ButtonColor = ColorTranslator.FromHtml(settings[3]);
|
||||
Color SubButtonColor = ColorTranslator.FromHtml(settings[4]);
|
||||
Color TextBoxColor = ColorTranslator.FromHtml(settings[5]);
|
||||
Color ComboBoxColor = ColorTranslator.FromHtml(settings[6]);
|
||||
Color FontColor = ColorTranslator.FromHtml(settings[7]);
|
||||
Properties.Settings.Default.BackColor = BackColor;
|
||||
Properties.Settings.Default.PanelColor = PanelColor;
|
||||
Properties.Settings.Default.ButtonColor = ButtonColor;
|
||||
Properties.Settings.Default.SubButtonColor = SubButtonColor;
|
||||
Properties.Settings.Default.TextBoxColor = TextBoxColor;
|
||||
Properties.Settings.Default.ComboBoxColor = ComboBoxColor;
|
||||
Properties.Settings.Default.FontColor = FontColor;
|
||||
System.ComponentModel.TypeConverter converter =
|
||||
System.ComponentModel.TypeDescriptor.GetConverter(typeof(Font));
|
||||
var cvt = new FontConverter();
|
||||
Font f = cvt.ConvertFromString(settings[8]) as Font;
|
||||
Properties.Settings.Default.FontStyle = f;
|
||||
}
|
||||
else
|
||||
MessageBox.Show("The file you've selected is not a Rookie Sideloader theme file!");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
132
ThemeForm.resx
Normal file
132
ThemeForm.resx
Normal file
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="colorDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>138, 17</value>
|
||||
</metadata>
|
||||
<metadata name="fontDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>278, 17</value>
|
||||
</metadata>
|
||||
<metadata name="openThemeDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>394, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
24
usernameForm.Designer.cs → UsernameForm.Designer.cs
generated
24
usernameForm.Designer.cs → UsernameForm.Designer.cs
generated
@@ -1,6 +1,6 @@
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
partial class usernameForm
|
||||
partial class UsernameForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
@@ -34,6 +34,9 @@
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.BackColor = global::AndroidSideloader.Properties.Settings.Default.TextBoxColor;
|
||||
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "TextBoxColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.textBox1.ForeColor = System.Drawing.Color.White;
|
||||
this.textBox1.Location = new System.Drawing.Point(13, 13);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(400, 20);
|
||||
@@ -42,24 +45,31 @@
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.button1.ForeColor = System.Drawing.Color.White;
|
||||
this.button1.Location = new System.Drawing.Point(13, 39);
|
||||
this.button1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(400, 23);
|
||||
this.button1.TabIndex = 1;
|
||||
this.button1.Text = "Create User.Json";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.UseVisualStyleBackColor = false;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// usernameForm
|
||||
// UsernameForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(425, 74);
|
||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||
this.ClientSize = new System.Drawing.Size(424, 72);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.MaximumSize = new System.Drawing.Size(441, 113);
|
||||
this.MinimumSize = new System.Drawing.Size(441, 113);
|
||||
this.Name = "usernameForm";
|
||||
this.DataBindings.Add(new System.Windows.Forms.Binding("BackColor", global::AndroidSideloader.Properties.Settings.Default, "BackColor", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
|
||||
this.ForeColor = System.Drawing.Color.White;
|
||||
this.MaximumSize = new System.Drawing.Size(440, 111);
|
||||
this.MinimumSize = new System.Drawing.Size(440, 111);
|
||||
this.Name = "UsernameForm";
|
||||
this.ShowIcon = false;
|
||||
this.Text = "USER.JSON";
|
||||
this.Load += new System.EventHandler(this.usernameForm_Load);
|
||||
this.ResumeLayout(false);
|
||||
84
UsernameForm.cs
Normal file
84
UsernameForm.cs
Normal file
@@ -0,0 +1,84 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
public partial class UsernameForm : Form
|
||||
{
|
||||
public UsernameForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
string defaultText;
|
||||
|
||||
private void usernameForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
defaultText = textBox1.Text;
|
||||
}
|
||||
|
||||
|
||||
private async void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (textBox1.Text == defaultText || textBox1.Text.Length == 0)
|
||||
{
|
||||
MessageBox.Show("Please enter your username first");
|
||||
return;
|
||||
}
|
||||
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
createUserJson(textBox1.Text);
|
||||
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
|
||||
while (t1.IsAlive)
|
||||
await Task.Delay(100);
|
||||
|
||||
Form1.notify("Done");
|
||||
|
||||
}
|
||||
|
||||
public static List<string> userJsons = new List<string>(new string[] { "user.json", "vrmoo.cn.json", "qq1091481055.json", "dollarvr.com.json" });
|
||||
|
||||
public static void createUserJson(string username)
|
||||
{
|
||||
ADB.RunAdbCommandToString($"shell settings put global username {username}");
|
||||
foreach (var jsonFileName in userJsons)
|
||||
{
|
||||
createUserJsonByName(username, jsonFileName);
|
||||
ADB.RunAdbCommandToString("push \"" + Environment.CurrentDirectory + $"\\{jsonFileName}\" " + " /sdcard/");
|
||||
File.Delete(jsonFileName);
|
||||
}
|
||||
|
||||
}
|
||||
public static void createUserJsonByName(string username, string jsonName)
|
||||
{
|
||||
switch (jsonName)
|
||||
{
|
||||
case "user.json":
|
||||
File.WriteAllText("user.json", "{\"username\":\"" + username + "\"}");
|
||||
break;
|
||||
case "vrmoo.cn.json":
|
||||
File.WriteAllText("vrmoo.cn.json", "{\"username\":\"" + username + "\"}");
|
||||
break;
|
||||
case "qq1091481055.json":
|
||||
File.WriteAllText("qq1091481055.json", "{\n \"username\":\"" + username + "\"\n }");
|
||||
break;
|
||||
case "dollarvr.com.json":
|
||||
File.WriteAllText("dollarvr.com.json", "{\n \"username\":\"" + username + "\"\n }");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
120
UsernameForm.resx
Normal file
120
UsernameForm.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
170
Utilities.cs
Normal file
170
Utilities.cs
Normal file
@@ -0,0 +1,170 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Diagnostics;
|
||||
using JR.Utils.GUI.Forms;
|
||||
using System.Net;
|
||||
using System.Windows.Forms;
|
||||
using System.Net.Http;
|
||||
using System.IO;
|
||||
|
||||
|
||||
namespace Spoofer
|
||||
{
|
||||
class Utilities
|
||||
{
|
||||
private static Random rand = new Random();
|
||||
public static string RandomPackageName()
|
||||
{
|
||||
return $"com.{Utilities.randomString(rand.Next(3, 8))}.{Utilities.randomString(rand.Next(3, 8))}";
|
||||
}
|
||||
|
||||
public static string CommandOutput = "";
|
||||
public static string CommandError = "";
|
||||
|
||||
public static void ExecuteCommand(string command)
|
||||
{
|
||||
var processInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
|
||||
processInfo.CreateNoWindow = true;
|
||||
processInfo.UseShellExecute = false;
|
||||
processInfo.RedirectStandardError = true;
|
||||
processInfo.RedirectStandardOutput = true;
|
||||
|
||||
var process = Process.Start(processInfo);
|
||||
|
||||
process.OutputDataReceived += (object sender, DataReceivedEventArgs e) =>
|
||||
CommandOutput += e.Data;
|
||||
process.BeginOutputReadLine();
|
||||
|
||||
process.ErrorDataReceived += (object sender, DataReceivedEventArgs e) =>
|
||||
CommandError += e.Data;
|
||||
process.BeginErrorReadLine();
|
||||
|
||||
process.WaitForExit();
|
||||
|
||||
Console.WriteLine("ExitCode: {0}", process.ExitCode);
|
||||
process.Close();
|
||||
}
|
||||
|
||||
public static void Melt()
|
||||
{
|
||||
Process.Start(new ProcessStartInfo()
|
||||
{
|
||||
Arguments = "/C choice /C Y /N /D Y /T 5 & Del \"" + Application.ExecutablePath + "\"",
|
||||
WindowStyle = ProcessWindowStyle.Hidden,
|
||||
CreateNoWindow = true,
|
||||
FileName = "cmd.exe"
|
||||
});
|
||||
}
|
||||
|
||||
public static string randomString(int length)
|
||||
{
|
||||
string valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
StringBuilder res = new StringBuilder();
|
||||
Random rnd = new Random();
|
||||
int randomInteger = rnd.Next(0, valid.Length);
|
||||
while (0 < length--)
|
||||
{
|
||||
res.Append(valid[randomInteger]);
|
||||
randomInteger = rnd.Next(0, valid.Length);
|
||||
}
|
||||
return res.ToString();
|
||||
}
|
||||
public static string processError = string.Empty;
|
||||
public static string startProcess(string process, string path, string command)
|
||||
{
|
||||
Process cmd = new Process();
|
||||
cmd.StartInfo.FileName = "cmd.exe";
|
||||
cmd.StartInfo.RedirectStandardInput = true;
|
||||
cmd.StartInfo.RedirectStandardOutput = true;
|
||||
cmd.StartInfo.RedirectStandardError = true;
|
||||
cmd.StartInfo.WorkingDirectory = path;
|
||||
cmd.StartInfo.CreateNoWindow = true;
|
||||
cmd.StartInfo.UseShellExecute = false;
|
||||
cmd.Start();
|
||||
cmd.StandardInput.WriteLine(command);
|
||||
cmd.StandardInput.Flush();
|
||||
cmd.StandardInput.Close();
|
||||
cmd.WaitForExit();
|
||||
string error = cmd.StandardError.ReadToEnd();
|
||||
if (error.Length > 1)
|
||||
processError = error;
|
||||
|
||||
return cmd.StandardOutput.ReadToEnd();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Zip
|
||||
{
|
||||
public static void ExtractFile(string sourceArchive, string destination)
|
||||
{
|
||||
if (!File.Exists(Environment.CurrentDirectory + "\\7z.exe"))
|
||||
{
|
||||
WebClient client = new WebClient();
|
||||
client.DownloadFile("https://github.com/nerdunit/androidsideloader/raw/master/7z.exe", "7z.exe");
|
||||
client.DownloadFile("https://github.com/nerdunit/androidsideloader/raw/master/7z.dll", "7z.dll");
|
||||
}
|
||||
ProcessStartInfo pro = new ProcessStartInfo();
|
||||
pro.WindowStyle = ProcessWindowStyle.Hidden;
|
||||
pro.FileName = "7z.exe";
|
||||
pro.Arguments = string.Format("x \"{0}\" -y -o\"{1}\"", sourceArchive, destination);
|
||||
Process x = Process.Start(pro);
|
||||
x.WaitForExit();
|
||||
}
|
||||
}
|
||||
|
||||
class Updater
|
||||
{
|
||||
|
||||
public static string AppName { get; set; }
|
||||
public static string RawGitHubUrl { get; set; } //https://raw.githubusercontent.com/nerdunit/androidADB.Sideloader
|
||||
static readonly public string LocalVersion = "1.15HF1";
|
||||
public static string currentVersion = string.Empty;
|
||||
public static string changelog = string.Empty;
|
||||
|
||||
private static bool IsUpdateAvailable()
|
||||
{
|
||||
HttpClient client = new HttpClient();
|
||||
try
|
||||
{
|
||||
currentVersion = client.GetStringAsync($"{RawGitHubUrl}/master/version").Result;
|
||||
currentVersion = currentVersion.Remove(currentVersion.Length - 1);
|
||||
changelog = client.GetStringAsync($"{RawGitHubUrl}/master/changelog.txt").Result;
|
||||
}
|
||||
catch { return false; }
|
||||
return LocalVersion != currentVersion;
|
||||
}
|
||||
public static void Update()
|
||||
{
|
||||
if (IsUpdateAvailable())
|
||||
doUpdate();
|
||||
}
|
||||
private static void doUpdate()
|
||||
{
|
||||
try
|
||||
{
|
||||
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 updated version
|
||||
using (var fileClient = new WebClient())
|
||||
{
|
||||
ServicePointManager.Expect100Continue = true;
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
fileClient.DownloadFile($"{RawGitHubUrl}/releases/download/v{currentVersion}/{AppName}.exe", $"{AppName} v{currentVersion}.exe");
|
||||
}
|
||||
|
||||
Utilities.Melt();
|
||||
|
||||
Process.Start($"{AppName} v{currentVersion}.exe");
|
||||
|
||||
Environment.Exit(0);
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
328
changelog.txt
328
changelog.txt
@@ -1,3 +1,328 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.15HF1
|
||||
|
||||
Changes
|
||||
= Bugfixes
|
||||
|
||||
Date 11/06/2020
|
||||
|
||||
VT: https://bit.ly/2GDYWRU
|
||||
|
||||
MD5 Checksum: F0D51FEC94F8D266390E61E89E6A2EE0
|
||||
SHA-1 Checksum: 4FB43CFA6021B8360A23858169FAF15468B68EDF
|
||||
SHA-256 Checksum: CBE414D9A283871099057EE5D8E56AF408996AE9C996C31F92C4DAE16D48B024
|
||||
SHA-512 Checksum: F16A6B29ECABBB16D25B7F7FC52CB15AE4930B2B17ABAC791BF1F331270F40B047094FDEAF1EF834E72E26AA3A6762AF8BE13EBCB735EB1C1009F884E338D9DE
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+lfEkACgkQvrtJUNxE
|
||||
TxMDDxAAg+90vrCn0PllPEezzX3AJpy7NFWhFjUlDOLzNFMPa/QdAfF6H5vhEGay
|
||||
bhX2BDHKSIV86bLkyGPkGHuf3etpXvZsNAmPuDoZpZ4owd1O09DOvAHIJx8F1Eia
|
||||
Jc9Zovz6lKLAeIbK9ZdChKwTG3hYLIkx3rMgtvnJkZfzUKbhdU9MP0rVEzDPkSfe
|
||||
ay2CGA9xLBUhPcItUTxhANzrDpRXMGHqbi+Wrscp+KmvnjHzN3Haq2A9rsasXM5Z
|
||||
RSG8ccLZiI496tJQquTvPXYcnWQQudzcf3yiicztein0xcISEat0FFIVao7TtnS4
|
||||
cgitvGNtfXXauAxyzjZ7PdgrVuoAE/v4m25pzaTRy7TOfW1uTz2/6lr6tZa38+p9
|
||||
Bs36KcoK64FcPWjfR7zvvmCUWT/aHlRC9FwMvBHB81WRRk6xGaKl8G2QxfKY/ATl
|
||||
DNlgYXfXLzipam74XfPHiyK4Sc55WLDQxZfZfD6tqTo4u8qoDESvcEz+pbGe4Wp8
|
||||
awY4FVeSP1jVQzHgWf+oMTiHm5Gb3qMLUhZ/AHidUWFLhzXmAA4YXxIHKidRjCYT
|
||||
42Kzs1sjT2A5ll2V7jz4pqoRlsvRAxNZ5KgAZ2R01zo7gS1nGqjyoGq3tLWHbfJk
|
||||
/kD4QlOwcv06Jvp8aHcPxpccB7KHZGoRT2PB6IQE9Gt72pmAU9c=
|
||||
=f7yh
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.15
|
||||
|
||||
Changes
|
||||
+ Added a spoofer
|
||||
+ Added option to auto spoof games with random package name
|
||||
+ Added new username support for quest 2
|
||||
= Updated drag and drop sideloading
|
||||
= Fixed storage label
|
||||
- Removed troubleshoot form and theme form
|
||||
|
||||
Date 11/04/2020
|
||||
|
||||
VT: https://bit.ly/3kYCQsb
|
||||
|
||||
MD5 Checksum: 39BAB4CEE3D0E387E770BA35F4488C2F
|
||||
SHA-1 Checksum: C6F311411408BCF5A55034E7A926EA385819F348
|
||||
SHA-256 Checksum: 64640374EF39DD9CFC4A613A49888E3194994AA934C5E952174A2FCF533E2D19
|
||||
SHA-512 Checksum: 22769280B732821539100BFA77C67141F271DB401DB3AFB28EF285E352659F9F45A90C8ABE1C0B829770C5AE580CA76A9208505888443C22EE82AAAE7035C6F7
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+jJScACgkQvrtJUNxE
|
||||
TxMTag//f570tZ4zxL1x1rdajdoYzPD6oaGIabRVPrqVogsFPuVF1Q3AOzr+nzQN
|
||||
Tiq7yRPmByu/dtBGby2mqL1acQ/9TLYDtmnOAxQJqj4h0KhYlnzdCfqJJbTghtZX
|
||||
cy44ZqgPW47P608+zC/NfePNt7Fq1rFKN3Bpo/ISoyi5/IVGqGq1Ix/D0SlhiM5X
|
||||
5VkiY+w5S0rXuAyQ4g6/03AiI9fdNVkREhUh/tYvb7IkxaN9IDlltHByeuvekMjZ
|
||||
KU+mwZ9habfthB31hp+bAXz82tbIzB4LJ1P8MNadIT8ZXG19zHEY/KlaDp2NjniV
|
||||
h+V9AnxPHlcZk63yVPOywxpZcv81LflMgs9XItX+zKH7ibniBEu8jxc/2uAjrDF/
|
||||
JuvnOUKTuH7S2iIzHhKLYZYHiOu8sIuwGC96Ep172PGCAkVVR6CtfNPMmVZRllsY
|
||||
JG3Pxdrw526SAy3Vqixbbm79Fs1o77resqGM2zl6L7Sr6sH3VnDxabVXxALgo1pH
|
||||
+LSu5rCLIIsCP1a4MAyy6UgO/+ZLrC1QazR4yY7SRQHAIM48XG4d6CznFCOjczhW
|
||||
VvYL6gZD7X4xlNBqNMtih8JDHIQ1y7n1f075oCxfWwt02kXhDL/cn8+UZ17IS6EZ
|
||||
zr/SLm1464/htCZgsUZgQrov6CpHX/xNqAubowkAVOdDREbwh2w=
|
||||
=QKlt
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.14SU1
|
||||
|
||||
Changes
|
||||
+ Quota errors now will try to redownload the game from another mirror
|
||||
= Only showing mirror remotes for apps
|
||||
// Will fix device storage when I get my quest 2 and can debug adb
|
||||
|
||||
Date 10/18/2020
|
||||
|
||||
VT: https://bit.ly/3kcG62A
|
||||
|
||||
MD5 Checksum: 2A30E5F3DB785DC8104A2AA55A83CF53
|
||||
SHA-1 Checksum: 8376E5971FC4F60995A1125DD9344E52135DB4F7
|
||||
SHA-256 Checksum: FD5C74067BA00561A540DE5A4F49FA63B99C9520435A51487F997AEC569E9659
|
||||
SHA-512 Checksum: 6188D6306CA2A3F25DE08E19D1F20046774F7AA30BD745ED24FC7E53126DF3950211B599E3D774F540A6C1DEC177A895FAE70FB564B6AE96F5F10ABDCB9021C1
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+MCbMACgkQvrtJUNxE
|
||||
TxNMVxAAlIkoTuGTDwXRBFNanulPiYmus9UazHoVFxtG2BELk1/JLPm7dwT29FiZ
|
||||
oacUhhxLAEfDm169FoPNFCH/6q74xqjACkm8FjwCoas53DekguIvrhJKA3SiBUtZ
|
||||
m7+hrT3WWGxXoE3+avSFmdBWWvKVA9pNR/DHprHSoinDUvgSfwBHrWD8PtuSIlwU
|
||||
/jNpzyDnmBfdT4LROq93hcfFXM+POLWs5f3rXFdT+zTZexxlRiG5h7yMmsYdwdov
|
||||
4jMUSzrBpRXbmmHwDi4KLzsdOJ/5okJgRdPTZm/L1rAoJT0F7QVi2shvkoN7SIH/
|
||||
Fg+k0ZrNOnlpdAJwLmJD4PkQmxv5zpGSh8w7nbQJ41HgBtTQTh3OCpRRamPzAmfo
|
||||
A2n/NsYpR8J8u7kGzT1MUnUn2RL+igutSrnQl8R6yR8jFjaTt+F90pBXZ1nnY6mS
|
||||
8YE9mBBK3365cYVqQzOW1TUSCSzQqwTbfKDHkKrzHQWrpQ8VNMLcJBLZwU8di+4p
|
||||
u8lt1uT5MRZ+9I80YBXhwzBKkiNYOt5vHpGgt0Ib4WDS7rt/7UnzEAfl8P3VEEfX
|
||||
6w1HctI2zAVWYutBMv6HL3v23cO+UT8H6Wdgxq36mlMSNiqjLIntfIRrySUOy7JV
|
||||
D6LE34gzpDGsBIzrpW/Hlz4wGTi6nnY0Ke6DkA1H0UOoDN9ItI4=
|
||||
=ARa/
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
v1.14
|
||||
|
||||
Changes
|
||||
+ Added the ability to change remotes (mirrors)
|
||||
+ Rclone errors are now reported properly
|
||||
= Fixed some bugs
|
||||
// Will fix device storage when I get my quest 2 and can debug adb
|
||||
|
||||
Date 10/17/2020
|
||||
|
||||
VT: https://bit.ly/3j8kCm8
|
||||
|
||||
MD5 Checksum: B862B807462CE35CC930C2B1118D5692
|
||||
SHA-1 Checksum: F52C8630C89CAEDB2E90A857E494DE00B137712D
|
||||
SHA-256 Checksum: 3DDFA2B4CCFC0E9F6F86E8A74E6D3511B9C643F4C4AF19D3878B8704FA360558
|
||||
SHA-512 Checksum: 16A022D8A4D235D7C537D9F01FE7C5F964A67A3A8CD68B3DC17AF08D94837DAC6CE0C20557D029DC169E5616B36C2A4C36B1647CE0DF930C7694F3FEC3430E70
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl+KrhQACgkQvrtJUNxE
|
||||
TxP9MRAAjZbYWkbZPK+QMqzNqsgEARs6buzrwc24dth6QEod9Fgmdg5wdinZdG8X
|
||||
MK467pd9u0JqM3u8DeKSUD0GEzJZStNKsbHfjvNAF3m8toaXLncWy7MYNN9loAra
|
||||
17MvUBBwB1QgsXtQ3EXT1cBbS3YkQPg5E+ayvY9ZgyiOpDK6fs1tA24NZUWc53kY
|
||||
TIl5IL3mZNfJck8Xc/QkZJmkBOA89oDToLOjNmZRXXEHNT/eTS6pEkMZonWQjGqF
|
||||
D2dEfQTOuIAD93JzwcP5wVJFh7z6o65/7tfguDqBsTgoRWODaY+kQJDAxoWN9w/n
|
||||
nagXg/y30EmE1mWQFUYa1n0V65OzT5+J8VF53DCHkgaejYLfi0lhy8TlWQZpmzen
|
||||
WJOsP1Oj3ZZ9sErO8waajDBzDZ3kU9NvAOeOblE491w0713MYZYs5BVgoyHi24xO
|
||||
obcp1gpLi326fkPqajgIFpDHJ014OnaXmoY9ynW9rlZJ4rwJ7WytRDzcpfyk9LV1
|
||||
G1tlcCS4c/RmuVfZi4Jh0guvOOIpJSqdG4KUtvd548sslTMdHytt+YugbKqcBAto
|
||||
nWroKcsmg0swAm7YgYmQXqcpM17JC21eUgm3Bc4ZZSDtP4g3Pm7vRO1+hwUNYBE9
|
||||
QeEMXYDPRsTxdpuEFsbmS/EfnndvJvl9BL92Zt4+T4ruL+II50s=
|
||||
=r+0B
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
New version v1.13 Released
|
||||
|
||||
Changes
|
||||
+ Pgp messages will be available now for every update, so you can verify updates easily
|
||||
= Fixed some bugs like the rclone suicide
|
||||
- Removed china detection
|
||||
|
||||
Date 9/10/2020
|
||||
|
||||
MD5 Checksum: 3834485C5AF611523460E639969284F3
|
||||
SHA-1 Checksum: DAF556D34F80FDE6A6A3D8F338381030B2B19E44
|
||||
SHA-256 Checksum: 063FABA6A76A98AB862BBBF6F3348F176F66FD4932075E761A5FCAA85785EE4B
|
||||
SHA-512 Checksum: CC743BD95826664535239BB665934E88A25CC948B95E4A3E8B34379C1E8DEB8FED05EAD87428F4B85D5841ED9101F38E4E3DAFB0EAF3CD2F2E4314B62356104D
|
||||
|
||||
You can always get my public key from rookie.wtf/pgp.txt
|
||||
You can verify the signed message using kleopatra for windows or dark.fail/pgp
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEG9eYw4mQVDjvGf4lvrtJUNxETxMFAl9aBpMACgkQvrtJUNxE
|
||||
TxOJcA/+LEzXQtyBhZ0oj22PEk0yMLQYOBLYDB96jf39IqLQAzrIUL339jRcRKMv
|
||||
yhFWXpvND1wrQl3/LNtFpBSkSnvqUXtxHWg6US+Ov3nnrEvYiwK8D9f1eC5Mt3Wy
|
||||
4HZIyTh9HcrLsfbnP2kDlLOaMQSIH4rChezF79xZMcx7kRmQ0/hyXlmGAPyWs8t8
|
||||
5aLxk5YUcfq1Pu+ncqeX+ihYVzQHi2eXaOAIR1rSCEXfHEg9tkRzWcma8tY29gQv
|
||||
IgGwxF/YnAPOdBtzuakaT88a1MsP+tAcWxmsyvTQHrv1m0h3QPU1DxMFUfAlBjLM
|
||||
5tHgTTjkXedRpR+Kga5CDuK7L5p1zVMRDINcUOf9MXV2fRurZ+OIHefAd+zbrd0n
|
||||
vHi1D1sFzb/lT5LCa/vrfO9crRnLdK1EI/5HNeSj9iIdD2jEMbjSjo9yv7LA2MHi
|
||||
4wnvguRpK5YUGqGc2yyCRxtyKAgXXxLBFNb5K453vdLtDukZIkhLuQVchsk4PutZ
|
||||
1uIg7/ZmAIPxlEHaLckaV7QEFbq9h2hFWOsSjWAATyvnkp4nxyvAavW4zNQCbd3V
|
||||
XJhimZkE+3SNAuZGw10nikVz7DFMlI0dyL+jmwIuODcFMZZwkEtBr3J/Ad9V1k+G
|
||||
DFKYJpBgATHdRTwt7/zZwJCBq0ONheA/6+6VYj8x8Q5rqbiDDdc=
|
||||
=xp7X
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
MUST UPDATE 1.12
|
||||
READ THIS -> https://pastebin.com/raw/K7eJe3F9
|
||||
|
||||
1.11HF1
|
||||
= Fixed some crashes that occured when a unauthorized device was used with the sideloader
|
||||
|
||||
1.11
|
||||
+ Added support for multiple devices
|
||||
|
||||
1.10SU1
|
||||
+ Settings should now persist through updates
|
||||
- Removed download button and hwid stuff
|
||||
|
||||
1.10
|
||||
+ Added back the game size messagebox
|
||||
+ Added support for unicode in adb
|
||||
= Fixed restore gamedata
|
||||
= Clicking the first game won't remove it since it causes problems
|
||||
= Changed the sideloader icon
|
||||
|
||||
1.9SU2
|
||||
+ Clicking a game on the listbox will now remove it from the list
|
||||
|
||||
1.9SU1
|
||||
- Removed some code I forgot to remove when debugging
|
||||
|
||||
1.9
|
||||
+ Added a queue for downloading games
|
||||
+ Added a setting for disabling user.json push
|
||||
|
||||
1.8SU2
|
||||
= Install game now won't throw an exception when a game isn't selected
|
||||
|
||||
1.8SU1
|
||||
+ Added debug logs for rclone
|
||||
|
||||
1.8
|
||||
+ Disk info updates every command that changes disk space
|
||||
= Rclone now logs commands and output
|
||||
= Changed backup button
|
||||
|
||||
1.7.5
|
||||
+ Made sideloader even faster when opening
|
||||
+ Added some chiptune music and the setting to stop it
|
||||
= Fixed donator button broken in 1.7
|
||||
|
||||
1.7
|
||||
+ Removed some freezes
|
||||
+ Sideloader kills rclone on start and on close if it's open so you dont waste bandwith
|
||||
+ Updating rclone config now does a hash check first
|
||||
+ Refresh storage after game install and on game uninstall
|
||||
|
||||
1.6
|
||||
+ Disk space label and check
|
||||
+ Checks game size before download
|
||||
= Download and install game button outputs adb log now
|
||||
- Launch package name button and textbox
|
||||
|
||||
1.5
|
||||
+ Added ETA, based on CURRENT DOWNLOAD SPEED NOT DELTA OF IT
|
||||
+ Added DLS label instead of showing it in the toolbar
|
||||
+ Added more indication of what the software is doing, in the toolbar
|
||||
+ Added some tooltips
|
||||
|
||||
1.4
|
||||
+ Donators can now change the speed of the donate button color change (even disable)
|
||||
+ Auto update for the rclone config
|
||||
+ Theme export and import buttons (by gotard)
|
||||
|
||||
1.3
|
||||
+ Added progress bar logic for game downloading with rclone
|
||||
+ Uninstalling apps now asks the user if it should also remove game data
|
||||
= Sorted installed apps combobox
|
||||
= Fixed uninstalling apps by package names lol nobody knew was broken
|
||||
|
||||
1.2
|
||||
+ Added unicode support for rclone
|
||||
+ Added some delay on game installation
|
||||
= Fixed stuff
|
||||
|
||||
1.1
|
||||
+ Added Themes
|
||||
+ Added dollarvr user.json
|
||||
+ Added user.json transfer on game download
|
||||
+ Added user.json transfer on first run
|
||||
= Fixed tab indexes
|
||||
= Now both drop downs can be visible at the same time
|
||||
|
||||
1.0HF1
|
||||
= Fixed a problem when deleting an app
|
||||
|
||||
1.0
|
||||
+ Added games auto download
|
||||
+ Added auto troubleshoot
|
||||
+ Every app installed will have all perms granted
|
||||
+ Displays apps for games instead of package names if you have rclone set up
|
||||
+ Uninstall app now will also delete its obb folder
|
||||
//For auto download you need an rclone config and rclone to be set up correctly, VRP:Quest Games
|
||||
|
||||
0.15HF1
|
||||
+ Added list apps button back
|
||||
= Fixed Uninstall apk and get apk
|
||||
|
||||
0.15
|
||||
= MASSIVE UI REDESIGN
|
||||
+ Added toggle for tor/clearnet
|
||||
+ Added download games through tor but still waiting for someone to help me host the files
|
||||
+ Added download with progress
|
||||
= Changed adb sideload command to allow downgrades too
|
||||
- Removed perms stuff, was too buggy
|
||||
|
||||
0.14HF1
|
||||
+ Added donate button
|
||||
= Fixed ui order
|
||||
- Removed warning from bulk obb sideload button
|
||||
|
||||
0.14
|
||||
+ Check file hash button
|
||||
+ Added first run check (will maybe be used to create user.json files)
|
||||
+ Added drag and drop for apk and obb files
|
||||
+ Progress bar now works for every adb command
|
||||
= Moved buttons
|
||||
- Instructions button
|
||||
- Removed run custom adb command button and form
|
||||
|
||||
0.13
|
||||
+ Added vrmoo.cn.json
|
||||
+ Added bulk obb copy
|
||||
= Message Box now top most
|
||||
|
||||
0.12
|
||||
+ Added settings form
|
||||
+ Added progress bar (again)
|
||||
@@ -77,3 +402,6 @@
|
||||
|
||||
0.1
|
||||
+ Initial Release
|
||||
|
||||
HF - Hot Fix
|
||||
SU - Small Update
|
||||
85
customAdbCommandForm.Designer.cs
generated
85
customAdbCommandForm.Designer.cs
generated
@@ -1,85 +0,0 @@
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
partial class customAdbCommandForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
|
||||
this.runcustomadbcmdbutton = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.Location = new System.Drawing.Point(13, 13);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(775, 20);
|
||||
this.textBox1.TabIndex = 0;
|
||||
this.textBox1.Text = "Enter your command here";
|
||||
//
|
||||
// richTextBox1
|
||||
//
|
||||
this.richTextBox1.Location = new System.Drawing.Point(13, 39);
|
||||
this.richTextBox1.Name = "richTextBox1";
|
||||
this.richTextBox1.Size = new System.Drawing.Size(775, 365);
|
||||
this.richTextBox1.TabIndex = 1;
|
||||
this.richTextBox1.Text = "";
|
||||
this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged);
|
||||
//
|
||||
// runcustomadbcmdbutton
|
||||
//
|
||||
this.runcustomadbcmdbutton.Location = new System.Drawing.Point(13, 410);
|
||||
this.runcustomadbcmdbutton.Name = "runcustomadbcmdbutton";
|
||||
this.runcustomadbcmdbutton.Size = new System.Drawing.Size(93, 28);
|
||||
this.runcustomadbcmdbutton.TabIndex = 2;
|
||||
this.runcustomadbcmdbutton.Text = "Run";
|
||||
this.runcustomadbcmdbutton.UseVisualStyleBackColor = true;
|
||||
this.runcustomadbcmdbutton.Click += new System.EventHandler(this.runcustomadbcmdbutton_Click);
|
||||
//
|
||||
// customAdbCommandForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 450);
|
||||
this.Controls.Add(this.runcustomadbcmdbutton);
|
||||
this.Controls.Add(this.richTextBox1);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Name = "customAdbCommandForm";
|
||||
this.Text = "customAdbCommandForm";
|
||||
this.Load += new System.EventHandler(this.customAdbCommandForm_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private System.Windows.Forms.RichTextBox richTextBox1;
|
||||
private System.Windows.Forms.Button runcustomadbcmdbutton;
|
||||
}
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
using System.Net.Http;
|
||||
using System.Reflection;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
public partial class customAdbCommandForm : Form
|
||||
{
|
||||
public customAdbCommandForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
string output;
|
||||
|
||||
private void runcustomadbcmdbutton_Click(object sender, EventArgs e)
|
||||
{
|
||||
var command = textBox1.Text;
|
||||
if (command.StartsWith("adb "))
|
||||
command = command.Remove(0, 4);
|
||||
runAdbCommand(command);
|
||||
}
|
||||
|
||||
public void runAdbCommand(string command)
|
||||
{
|
||||
Process cmd = new Process();
|
||||
cmd.StartInfo.FileName = Environment.CurrentDirectory + "\\adb\\adb.exe";
|
||||
cmd.StartInfo.Arguments = command;
|
||||
cmd.StartInfo.RedirectStandardInput = true;
|
||||
cmd.StartInfo.RedirectStandardOutput = true;
|
||||
cmd.StartInfo.CreateNoWindow = true;
|
||||
cmd.StartInfo.UseShellExecute = false;
|
||||
cmd.StartInfo.WorkingDirectory = Environment.CurrentDirectory + "\\adb\\";
|
||||
cmd.Start();
|
||||
cmd.StandardInput.WriteLine(command);
|
||||
cmd.StandardInput.Flush();
|
||||
cmd.StandardInput.Close();
|
||||
output = cmd.StandardOutput.ReadToEnd();
|
||||
cmd.WaitForExit();
|
||||
|
||||
StreamWriter sw = File.AppendText("debugC.log");
|
||||
sw.Write("Action name = " + command + '\n');
|
||||
sw.Write(output);
|
||||
sw.Write("\n--------------------------------------------------------------------\n");
|
||||
sw.Flush();
|
||||
sw.Close();
|
||||
|
||||
richTextBox1.Text = output;
|
||||
}
|
||||
|
||||
private void customAdbCommandForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void richTextBox1_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
63
documentation.txt
Normal file
63
documentation.txt
Normal file
@@ -0,0 +1,63 @@
|
||||
Main Form
|
||||
=========
|
||||
- Adb Devices Button
|
||||
Notifies the user every device returned by adb
|
||||
Changes Form1 Titlebar to "Rookie Sideloader | Device Connected with ID | {DEVICEID}"
|
||||
- Sideload Drop Button
|
||||
Shows/Hides the rest of sideload buttons
|
||||
- Copy Obb Button
|
||||
Opens a new folder select dialog where the user selects an folder, that folder will be copied to Android/Obb
|
||||
- Copy Bulk Obb Button
|
||||
Opens a new folder select dialog where the user selects an folder, that folder will be searched and every obb folder will be copied to Android/Obb
|
||||
- Get Apk Button
|
||||
After the user selects an package from m_combo (first combobox) the apk will be pulled to the current directory
|
||||
- Uninstall App Button
|
||||
After the user selects an package from m_combo (first combobox) and he accepts the warning given, the apk selected will be uninstalled from the device
|
||||
- Sideload Folder Button
|
||||
Opens a new folder select dialog where the user selects an folder, that folder will be searched and every apk from it will be sideloaded
|
||||
- Sideload Apk Button
|
||||
Opens a new file select dialog where the user selects a file, that file will be sideloaded
|
||||
- Refresh Apk List Button
|
||||
Refreshes the apks/packages listed in m_combo
|
||||
- Backup Drop Button
|
||||
Shows/Hides the rest of backup buttons
|
||||
- Backup Gamedata Button
|
||||
Saves every folder from Android/data to a folder in the current directory
|
||||
- Restore Gamedata Button
|
||||
Pushes every folder form current dirctory/data to Android/data
|
||||
- User.Json button
|
||||
Opens a new UsernameForm
|
||||
- Sideload Apk Button
|
||||
Opens a new file select dialog where the user selects a file, that file's sha256 hash will be copied to clipboard and the user will be notified
|
||||
- Troublshoot Button
|
||||
Opens a new TroubleshootForm
|
||||
- Settings Button
|
||||
Opens a new SettingsForm
|
||||
- About Button
|
||||
Shows the credits
|
||||
- Donate Button
|
||||
Sets clipboard text to rookie's steam inventory trade link and sends the user a message
|
||||
Settings Form
|
||||
=============
|
||||
- Check for Updates checkbox
|
||||
If enabled the software checks for updates every startup (default:enabled)
|
||||
- Enable Message Boxes on task completed checkbox
|
||||
If enabled the software will notify the user on every completed task via a Flexible MessageBox (default:enabled)
|
||||
- Copy message to clipboard checkbox
|
||||
If enabled the software copy every message called by the notify function to clipboard (default:disabled)
|
||||
- Delete games after download and install checkbox
|
||||
If enabled the software will delete every file downloaded by the Download and Install Game Button
|
||||
- Json TextBox
|
||||
Here should be the link to custom games json
|
||||
- Reset Settings Button
|
||||
Restores settings to default values, you still need to press apply
|
||||
- Apply Button
|
||||
Applies settings
|
||||
Troubleshoot Form
|
||||
=================
|
||||
- Ask the software button
|
||||
Depending on the input from the textbox, the software might respond with a good answer, still WIP
|
||||
User.Json Form
|
||||
==============
|
||||
- Creat User.Json
|
||||
Creates all 3 user.json (at the moment) with the username from the textbox then pushes them to the root folder on the quest
|
||||
12
donators.txt
Normal file
12
donators.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
CC0E0834BFEBFBFF000906E9;5000;ROOKIE.LOL
|
||||
184204E0178BFBFF00870F10;0;Flow
|
||||
E5148390BFEBFBFF000906EA;250;Gotard
|
||||
5ECC5497178BFBFF00870F10;1024;Saidis21
|
||||
B0374BE2BFEBFBFF00040651;0;ecirbaf
|
||||
926C60A8178BFBFF00800F82;250;ThePhantomPickaxe
|
||||
2A8C5999BFEBFBFF0001067A;0;karl
|
||||
80ACB80FBFEBFBFF000206C2;4096;JJ-4
|
||||
9AA172C9BFEBFBFF000906ED;1024;Clayton Bigsby
|
||||
645C9EADBFEBFBFF000906EA;5000;Heracide
|
||||
1C51D0CD178BFBFF00870F10;0;Mr.Tibby
|
||||
287B5C6CBFEBFBFF000906EA;0;videobeer
|
||||
@@ -2,4 +2,9 @@
|
||||
<packages>
|
||||
<package id="Costura.Fody" version="4.1.0" targetFramework="net452" />
|
||||
<package id="Fody" version="6.0.0" targetFramework="net452" developmentDependency="true" />
|
||||
<package id="MetroFramework" version="1.2.0.3" targetFramework="net452" />
|
||||
<package id="MetroFramework.Design" version="1.2.0.3" targetFramework="net452" />
|
||||
<package id="MetroFramework.Fonts" version="1.2.0.3" targetFramework="net452" />
|
||||
<package id="MetroFramework.RunTime" version="1.2.0.3" targetFramework="net452" />
|
||||
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net452" />
|
||||
</packages>
|
||||
25
packages/MetroFramework.1.2.0.3/Content/MetroFramework.txt
vendored
Normal file
25
packages/MetroFramework.1.2.0.3/Content/MetroFramework.txt
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
MetroFramework - Modern UI for WinForms
|
||||
|
||||
Copyright (c) 2013 Jens Thiel, http://thielj.github.io/MetroFramework
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in the
|
||||
Software without restriction, including without limitation the rights to use, copy,
|
||||
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
and to permit persons to whom the Software is furnished to do so, subject to the
|
||||
following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Portions of this software are:
|
||||
|
||||
Copyright (c) 2011 Sven Walter, http://github.com/viperneo
|
||||
BIN
packages/MetroFramework.1.2.0.3/MetroFramework.1.2.0.3.nupkg
vendored
Normal file
BIN
packages/MetroFramework.1.2.0.3/MetroFramework.1.2.0.3.nupkg
vendored
Normal file
Binary file not shown.
10
packages/MetroFramework.1.2.0.3/README.TXT
vendored
Normal file
10
packages/MetroFramework.1.2.0.3/README.TXT
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
|
||||
NOTE:
|
||||
|
||||
To make use of designers, you must reference both MetroFramework.dll and MetroFramework.Design.dll
|
||||
from your project. I recommend to change the properties for the Design dll to "Copy local: false"
|
||||
as you do not need to redistribute it. This also helps to make your application independent of
|
||||
System.Design.dll and compatible with the .NET client profile, a subset of the full .NET framework.
|
||||
|
||||
Project Site: http://thielj.github.io/MetroFramework
|
||||
BIN
packages/MetroFramework.Design.1.2.0.3/MetroFramework.Design.1.2.0.3.nupkg
vendored
Normal file
BIN
packages/MetroFramework.Design.1.2.0.3/MetroFramework.Design.1.2.0.3.nupkg
vendored
Normal file
Binary file not shown.
10
packages/MetroFramework.Design.1.2.0.3/README.TXT
vendored
Normal file
10
packages/MetroFramework.Design.1.2.0.3/README.TXT
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
|
||||
NOTE:
|
||||
|
||||
To make use of designers, you must reference both MetroFramework.dll and MetroFramework.Design.dll
|
||||
from your project. I recommend to change the properties for the Design dll to "Copy local: false"
|
||||
as you do not need to redistribute it. This also helps to make your application independent of
|
||||
System.Design.dll and compatible with the .NET client profile, a subset of the full .NET framework.
|
||||
|
||||
Project Site: http://thielj.github.io/MetroFramework
|
||||
9
packages/MetroFramework.Design.1.2.0.3/Tools/install.ps1
vendored
Normal file
9
packages/MetroFramework.Design.1.2.0.3/Tools/install.ps1
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
param($installPath, $toolsPath, $package, $project)
|
||||
|
||||
foreach ($reference in $project.Object.References)
|
||||
{
|
||||
if($reference.Name -eq "MetroFramework.Design")
|
||||
{
|
||||
$reference.CopyLocal = $false;
|
||||
}
|
||||
}
|
||||
BIN
packages/MetroFramework.Design.1.2.0.3/lib/net40/MetroFramework.Design.dll
vendored
Normal file
BIN
packages/MetroFramework.Design.1.2.0.3/lib/net40/MetroFramework.Design.dll
vendored
Normal file
Binary file not shown.
BIN
packages/MetroFramework.Fonts.1.2.0.3/MetroFramework.Fonts.1.2.0.3.nupkg
vendored
Normal file
BIN
packages/MetroFramework.Fonts.1.2.0.3/MetroFramework.Fonts.1.2.0.3.nupkg
vendored
Normal file
Binary file not shown.
10
packages/MetroFramework.Fonts.1.2.0.3/README.TXT
vendored
Normal file
10
packages/MetroFramework.Fonts.1.2.0.3/README.TXT
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
|
||||
NOTE:
|
||||
|
||||
To make use of designers, you must reference both MetroFramework.dll and MetroFramework.Design.dll
|
||||
from your project. I recommend to change the properties for the Design dll to "Copy local: false"
|
||||
as you do not need to redistribute it. This also helps to make your application independent of
|
||||
System.Design.dll and compatible with the .NET client profile, a subset of the full .NET framework.
|
||||
|
||||
Project Site: http://thielj.github.io/MetroFramework
|
||||
BIN
packages/MetroFramework.Fonts.1.2.0.3/lib/net40/MetroFramework.Fonts.dll
vendored
Normal file
BIN
packages/MetroFramework.Fonts.1.2.0.3/lib/net40/MetroFramework.Fonts.dll
vendored
Normal file
Binary file not shown.
BIN
packages/MetroFramework.RunTime.1.2.0.3/MetroFramework.RunTime.1.2.0.3.nupkg
vendored
Normal file
BIN
packages/MetroFramework.RunTime.1.2.0.3/MetroFramework.RunTime.1.2.0.3.nupkg
vendored
Normal file
Binary file not shown.
10
packages/MetroFramework.RunTime.1.2.0.3/README.TXT
vendored
Normal file
10
packages/MetroFramework.RunTime.1.2.0.3/README.TXT
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
|
||||
NOTE:
|
||||
|
||||
To make use of designers, you must reference both MetroFramework.dll and MetroFramework.Design.dll
|
||||
from your project. I recommend to change the properties for the Design dll to "Copy local: false"
|
||||
as you do not need to redistribute it. This also helps to make your application independent of
|
||||
System.Design.dll and compatible with the .NET client profile, a subset of the full .NET framework.
|
||||
|
||||
Project Site: http://thielj.github.io/MetroFramework
|
||||
BIN
packages/MetroFramework.RunTime.1.2.0.3/lib/net40-Client/MetroFramework.dll
vendored
Normal file
BIN
packages/MetroFramework.RunTime.1.2.0.3/lib/net40-Client/MetroFramework.dll
vendored
Normal file
Binary file not shown.
20
packages/Newtonsoft.Json.12.0.3/LICENSE.md
vendored
Normal file
20
packages/Newtonsoft.Json.12.0.3/LICENSE.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2007 James Newton-King
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
BIN
packages/Newtonsoft.Json.12.0.3/Newtonsoft.Json.12.0.3.nupkg
vendored
Normal file
BIN
packages/Newtonsoft.Json.12.0.3/Newtonsoft.Json.12.0.3.nupkg
vendored
Normal file
Binary file not shown.
BIN
packages/Newtonsoft.Json.12.0.3/lib/net20/Newtonsoft.Json.dll
vendored
Normal file
BIN
packages/Newtonsoft.Json.12.0.3/lib/net20/Newtonsoft.Json.dll
vendored
Normal file
Binary file not shown.
10298
packages/Newtonsoft.Json.12.0.3/lib/net20/Newtonsoft.Json.xml
vendored
Normal file
10298
packages/Newtonsoft.Json.12.0.3/lib/net20/Newtonsoft.Json.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/Newtonsoft.Json.12.0.3/lib/net35/Newtonsoft.Json.dll
vendored
Normal file
BIN
packages/Newtonsoft.Json.12.0.3/lib/net35/Newtonsoft.Json.dll
vendored
Normal file
Binary file not shown.
9446
packages/Newtonsoft.Json.12.0.3/lib/net35/Newtonsoft.Json.xml
vendored
Normal file
9446
packages/Newtonsoft.Json.12.0.3/lib/net35/Newtonsoft.Json.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/Newtonsoft.Json.12.0.3/lib/net40/Newtonsoft.Json.dll
vendored
Normal file
BIN
packages/Newtonsoft.Json.12.0.3/lib/net40/Newtonsoft.Json.dll
vendored
Normal file
Binary file not shown.
9646
packages/Newtonsoft.Json.12.0.3/lib/net40/Newtonsoft.Json.xml
vendored
Normal file
9646
packages/Newtonsoft.Json.12.0.3/lib/net40/Newtonsoft.Json.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/Newtonsoft.Json.12.0.3/lib/net45/Newtonsoft.Json.dll
vendored
Normal file
BIN
packages/Newtonsoft.Json.12.0.3/lib/net45/Newtonsoft.Json.dll
vendored
Normal file
Binary file not shown.
11262
packages/Newtonsoft.Json.12.0.3/lib/net45/Newtonsoft.Json.xml
vendored
Normal file
11262
packages/Newtonsoft.Json.12.0.3/lib/net45/Newtonsoft.Json.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/Newtonsoft.Json.12.0.3/lib/netstandard1.0/Newtonsoft.Json.dll
vendored
Normal file
BIN
packages/Newtonsoft.Json.12.0.3/lib/netstandard1.0/Newtonsoft.Json.dll
vendored
Normal file
Binary file not shown.
10950
packages/Newtonsoft.Json.12.0.3/lib/netstandard1.0/Newtonsoft.Json.xml
vendored
Normal file
10950
packages/Newtonsoft.Json.12.0.3/lib/netstandard1.0/Newtonsoft.Json.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/Newtonsoft.Json.12.0.3/lib/netstandard1.3/Newtonsoft.Json.dll
vendored
Normal file
BIN
packages/Newtonsoft.Json.12.0.3/lib/netstandard1.3/Newtonsoft.Json.dll
vendored
Normal file
Binary file not shown.
11072
packages/Newtonsoft.Json.12.0.3/lib/netstandard1.3/Newtonsoft.Json.xml
vendored
Normal file
11072
packages/Newtonsoft.Json.12.0.3/lib/netstandard1.3/Newtonsoft.Json.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/Newtonsoft.Json.12.0.3/lib/netstandard2.0/Newtonsoft.Json.dll
vendored
Normal file
BIN
packages/Newtonsoft.Json.12.0.3/lib/netstandard2.0/Newtonsoft.Json.dll
vendored
Normal file
Binary file not shown.
11237
packages/Newtonsoft.Json.12.0.3/lib/netstandard2.0/Newtonsoft.Json.xml
vendored
Normal file
11237
packages/Newtonsoft.Json.12.0.3/lib/netstandard2.0/Newtonsoft.Json.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/Newtonsoft.Json.12.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll
vendored
Normal file
BIN
packages/Newtonsoft.Json.12.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll
vendored
Normal file
Binary file not shown.
9010
packages/Newtonsoft.Json.12.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml
vendored
Normal file
9010
packages/Newtonsoft.Json.12.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/Newtonsoft.Json.12.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll
vendored
Normal file
BIN
packages/Newtonsoft.Json.12.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll
vendored
Normal file
Binary file not shown.
10950
packages/Newtonsoft.Json.12.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml
vendored
Normal file
10950
packages/Newtonsoft.Json.12.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
packages/Newtonsoft.Json.12.0.3/packageIcon.png
vendored
Normal file
BIN
packages/Newtonsoft.Json.12.0.3/packageIcon.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.7 KiB |
196
spoofer.cs
Normal file
196
spoofer.cs
Normal file
@@ -0,0 +1,196 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Spoofer
|
||||
{
|
||||
class spoofer
|
||||
{
|
||||
public static string alias = string.Empty;
|
||||
public static string password = string.Empty;
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
if (File.Exists("keystore.key") == false || File.Exists("details.txt") == false)
|
||||
{
|
||||
Console.WriteLine("There is no key to sign the apk, making one now...");
|
||||
alias = Utilities.randomString(8);
|
||||
password = Utilities.randomString(16);
|
||||
|
||||
Process cmd = new Process();
|
||||
cmd.StartInfo.FileName = "cmd.exe";
|
||||
cmd.StartInfo.RedirectStandardInput = true;
|
||||
cmd.StartInfo.RedirectStandardOutput = true;
|
||||
cmd.StartInfo.RedirectStandardError = true;
|
||||
cmd.StartInfo.WorkingDirectory = Environment.CurrentDirectory;
|
||||
cmd.StartInfo.CreateNoWindow = true;
|
||||
cmd.StartInfo.UseShellExecute = false;
|
||||
cmd.Start();
|
||||
cmd.StandardInput.WriteLine($"keytool -genkeypair -alias {alias} -keyalg RSA -keysize 2048 -keystore keystore.key");
|
||||
cmd.StandardInput.WriteLine(password);
|
||||
cmd.StandardInput.WriteLine(password);
|
||||
var rand = new Random();
|
||||
for (int i = 0; i < 6; i++)
|
||||
cmd.StandardInput.WriteLine(Utilities.randomString(rand.Next(2,6)));
|
||||
cmd.StandardInput.WriteLine("yes");
|
||||
cmd.StandardInput.Flush();
|
||||
cmd.StandardInput.Close();
|
||||
cmd.WaitForExit();
|
||||
string keyerror = cmd.StandardError.ReadToEnd();
|
||||
string keyoutput = cmd.StandardOutput.ReadToEnd();
|
||||
File.WriteAllText("debug.txt", $"Output: {keyoutput} Error: {keyerror}");
|
||||
File.WriteAllText("details.txt", $"{alias};{password}");
|
||||
Console.WriteLine("Key generated");
|
||||
}
|
||||
else
|
||||
{
|
||||
var temp = File.ReadAllText("details.txt").Split(';');
|
||||
alias = temp[0];
|
||||
password = temp[1];
|
||||
}
|
||||
}
|
||||
|
||||
public static string folderPath = string.Empty;
|
||||
|
||||
public static string decompiledPath = string.Empty;
|
||||
public static string newPackageName = string.Empty;
|
||||
public static string originalPackageName = string.Empty;
|
||||
|
||||
public static string spoofedApkPath = string.Empty;
|
||||
|
||||
public static void SpoofApk(string apkPath, string newPackageName, string obbPath = "")
|
||||
{
|
||||
//Rename
|
||||
string oldGameName = Path.GetFileName(apkPath);
|
||||
folderPath = apkPath.Replace(Path.GetFileName(apkPath), "");
|
||||
File.Move(apkPath, $"{folderPath}spoofme.apk");
|
||||
apkPath = $"{folderPath}spoofme.apk";
|
||||
var rand = new Random();
|
||||
decompiledPath = apkPath.Replace(".apk","");
|
||||
//newPackageName = $"com.{Utilities.randomString(rand.Next(3, 8))}.{Utilities.randomString(rand.Next(3, 8))}";
|
||||
originalPackageName = PackageName(apkPath);
|
||||
Console.WriteLine($"Your app will be spoofed as {newPackageName}");
|
||||
Console.WriteLine($"Folderpath: {folderPath} decompiledPaht: {decompiledPath} ");
|
||||
if (obbPath.Length > 1)
|
||||
{
|
||||
RenameObb(obbPath,newPackageName,originalPackageName);
|
||||
}
|
||||
|
||||
Console.WriteLine("Extracting apk...");
|
||||
DecompileApk(apkPath);
|
||||
|
||||
Console.WriteLine("Spoofing apk...");
|
||||
//Rename APK Packagename
|
||||
string foo = File.ReadAllText($"{decompiledPath}\\AndroidManifest.xml").Replace(originalPackageName, newPackageName);
|
||||
File.WriteAllText($"{decompiledPath}\\AndroidManifest.xml", foo);
|
||||
foreach (string file in Directory.EnumerateFiles(decompiledPath, "*.*", SearchOption.AllDirectories))
|
||||
{
|
||||
if (Path.GetFileName(file) == "BuildConfig.smali")
|
||||
{
|
||||
foo = File.ReadAllText(file).Replace(originalPackageName, newPackageName);
|
||||
File.WriteAllText(file, foo);
|
||||
}
|
||||
}
|
||||
//BMBF
|
||||
//if (File.Exists("bmbf.txt"))
|
||||
//{
|
||||
// string bspckgname = File.ReadAllText("bmbf.txt");
|
||||
// foreach (string file in Directory.EnumerateFiles(decompiledPath, "*.js", SearchOption.AllDirectories))
|
||||
// {
|
||||
// foo = File.ReadAllText(file).Replace("com.beatgames.beatsaber", bspckgname);
|
||||
// File.WriteAllText(file, foo);
|
||||
// }
|
||||
//}
|
||||
Console.WriteLine("APK Spoofed");
|
||||
|
||||
|
||||
Console.WriteLine("Rebuilding the APK...");
|
||||
spoofedApkPath = $"{Path.GetFileName(apkPath).Replace(".apk", "")}_Spoofed as {newPackageName}.apk";
|
||||
|
||||
string output = Utilities.startProcess("cmd.exe", folderPath, $"apktool b \"{Path.GetFileName(apkPath).Replace(".apk", "")}\" -o \"{spoofedApkPath}\"");
|
||||
File.AppendAllText("debug.txt", $"apktool b \"{Path.GetFileName(apkPath).Replace(".apk", "")}\" -o \"{spoofedApkPath}\": {output}");
|
||||
Console.WriteLine("APK Rebuilt");
|
||||
|
||||
//Sign the new apk
|
||||
Console.WriteLine("Signing the APK...");
|
||||
if (File.Exists(folderPath + "keystore.key") == false)
|
||||
File.Copy("keystore.key", $"{folderPath}keystore.key");
|
||||
SignApk(apkPath,newPackageName);
|
||||
|
||||
File.Move($"{folderPath}\\{spoofedApkPath}", $"{folderPath}\\{oldGameName}_ Spoofed as {newPackageName}.apk");
|
||||
File.Move(apkPath, $"{apkPath.Replace(Path.GetFileName(apkPath), "")}\\{oldGameName}.apk");
|
||||
|
||||
Console.WriteLine("APK Signed");
|
||||
|
||||
//Delete the copy of the key and the decompiled apk folder
|
||||
Console.WriteLine("Deleting residual files...");
|
||||
if (string.Equals(folderPath, Environment.CurrentDirectory + "\\") == false)
|
||||
File.Delete($"{folderPath}keystore.key");
|
||||
Directory.Delete(decompiledPath, true);
|
||||
Console.WriteLine("Residual files deleted");
|
||||
}
|
||||
|
||||
public static void SignApk(string path, string packageName)
|
||||
{
|
||||
Process cmdSign = new Process();
|
||||
cmdSign.StartInfo.FileName = "cmd.exe";
|
||||
cmdSign.StartInfo.RedirectStandardInput = true;
|
||||
cmdSign.StartInfo.WorkingDirectory = folderPath;
|
||||
cmdSign.StartInfo.CreateNoWindow = true;
|
||||
cmdSign.StartInfo.UseShellExecute = false;
|
||||
cmdSign.Start();
|
||||
cmdSign.StandardInput.WriteLine($"jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore keystore.key \"{spoofedApkPath}\" {alias}");
|
||||
cmdSign.StandardInput.WriteLine(password);
|
||||
cmdSign.StandardInput.Flush();
|
||||
cmdSign.StandardInput.Close();
|
||||
cmdSign.WaitForExit();
|
||||
File.AppendAllText("debug.txt", $"jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore keystore.key \"{spoofedApkPath}\" {alias}");
|
||||
}
|
||||
|
||||
public static void DecompileApk(string path)
|
||||
{
|
||||
string output = Utilities.startProcess("cmd.exe", folderPath, $"apktool d -f \"{path}\"");
|
||||
|
||||
Console.WriteLine(output);
|
||||
File.AppendAllText("debug.txt", $"apktool d \"{path}\": {output}");
|
||||
//If error
|
||||
if (Utilities.processError.Length > 1)
|
||||
Console.WriteLine($"ERROR: {Utilities.processError}");
|
||||
}
|
||||
|
||||
//Renames obb to new obb according to packagename
|
||||
public static void RenameObb(string obbPath, string newPackageName, string originalPackageName)
|
||||
{
|
||||
Directory.Move(obbPath, obbPath.Replace(originalPackageName, newPackageName));
|
||||
obbPath = obbPath.Replace(originalPackageName, newPackageName);
|
||||
foreach (string file in Directory.GetFiles(obbPath))
|
||||
{
|
||||
if (Path.GetExtension(file) == ".obb")
|
||||
{
|
||||
File.Move(file, file.Replace(originalPackageName, newPackageName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static string PackageName(string path)
|
||||
{
|
||||
Console.WriteLine($"aapt dump badging \"{path}\"");
|
||||
|
||||
string originalPackageName = Utilities.startProcess("cmd.exe", path.Replace(Path.GetFileName(path), string.Empty), $"aapt dump badging \"{path}\" | findstr -i \"package: name\"");
|
||||
File.AppendAllText("debug.txt", $"originalPackageName: {originalPackageName}");
|
||||
try
|
||||
{
|
||||
originalPackageName = originalPackageName.Substring(originalPackageName.IndexOf("package: name='") + 15);
|
||||
originalPackageName = originalPackageName.Substring(0, originalPackageName.IndexOf("'"));
|
||||
}
|
||||
catch
|
||||
{
|
||||
return "PackageName ERROR";
|
||||
}
|
||||
Console.WriteLine($"Packagename is {originalPackageName}");
|
||||
return originalPackageName;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
public partial class usernameForm : Form
|
||||
{
|
||||
public usernameForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
string defaultText;
|
||||
|
||||
private void usernameForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
defaultText = textBox1.Text;
|
||||
}
|
||||
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (textBox1.Text==defaultText || textBox1.Text.Length==0)
|
||||
{
|
||||
MessageBox.Show("Please enter your username first");
|
||||
return;
|
||||
}
|
||||
|
||||
File.WriteAllText("user.json", "{\"username\":\"" + textBox1.Text + "\"}");
|
||||
|
||||
string command = "push \"" + Environment.CurrentDirectory + "\\user.json\" " + " /sdcard/";
|
||||
|
||||
|
||||
Process cmd = new Process();
|
||||
cmd.StartInfo.FileName = Environment.CurrentDirectory + "\\adb\\adb.exe";
|
||||
cmd.StartInfo.Arguments = command;
|
||||
cmd.StartInfo.RedirectStandardInput = true;
|
||||
cmd.StartInfo.RedirectStandardOutput = true;
|
||||
cmd.StartInfo.CreateNoWindow = true;
|
||||
cmd.StartInfo.UseShellExecute = false;
|
||||
cmd.StartInfo.WorkingDirectory = Form1.adbPath;
|
||||
cmd.Start();
|
||||
cmd.StandardInput.WriteLine(command);
|
||||
cmd.StandardInput.Flush();
|
||||
cmd.StandardInput.Close();
|
||||
string allText = cmd.StandardOutput.ReadToEnd();
|
||||
cmd.WaitForExit();
|
||||
|
||||
File.Delete("user.json");
|
||||
|
||||
StreamWriter sw = File.AppendText(Form1.debugPath);
|
||||
sw.Write("Action name = " + command + '\n');
|
||||
sw.Write(allText);
|
||||
sw.Write("\n--------------------------------------------------------------------\n");
|
||||
sw.Flush();
|
||||
sw.Close();
|
||||
|
||||
|
||||
Form1.notify(allText);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user