Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
646e38a737 | ||
|
|
d86bb17b4d | ||
|
|
d65f471ccd | ||
|
|
72a71f3b48 | ||
|
|
842a9d2e63 | ||
|
|
b06bd80f20 | ||
|
|
f6f0c5064c | ||
|
|
978dc671ef | ||
|
|
bcd61f1596 | ||
|
|
82f858b678 | ||
|
|
fa3b795695 | ||
|
|
6a34deeede | ||
|
|
266c242199 | ||
|
|
366627085f |
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="packages\Costura.Fody.4.1.0\build\Costura.Fody.props" Condition="Exists('packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
@@ -12,6 +13,8 @@
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
@@ -33,6 +36,12 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</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="SergeUtils">
|
||||
<HintPath>.\SergeUtils.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
@@ -75,6 +84,7 @@
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
@@ -89,4 +99,12 @@
|
||||
<None Include="App.config" />
|
||||
</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">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<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>
|
||||
</Project>
|
||||
3
FodyWeavers.xml
Normal file
3
FodyWeavers.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
|
||||
<Costura />
|
||||
</Weavers>
|
||||
111
FodyWeavers.xsd
Normal file
111
FodyWeavers.xsd
Normal file
@@ -0,0 +1,111 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
|
||||
<xs:element name="Weavers">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="Costura" minOccurs="0" maxOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="ExcludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="IncludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged32Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with line breaks.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged64Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with line breaks.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="PreloadOrder" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The order of preloaded assemblies, delimited with line breaks.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
<xs:attribute name="CreateTemporaryAssemblies" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IncludeDebugSymbols" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Controls if .pdbs for reference assemblies are also embedded.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="DisableCompression" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="DisableCleanup" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="LoadAtModuleInit" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IgnoreSatelliteAssemblies" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ExcludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IncludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Unmanaged32Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with |.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Unmanaged64Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with |.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="PreloadOrder" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The order of preloaded assemblies, delimited with |.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
<xs:attribute name="VerifyAssembly" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="GenerateXsd" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
139
Form1.Designer.cs
generated
139
Form1.Designer.cs
generated
@@ -28,20 +28,30 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
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.progressBar1 = new System.Windows.Forms.ProgressBar();
|
||||
this.backupbutton = new System.Windows.Forms.Button();
|
||||
this.debugbutton = 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.comboBox1 = new System.Windows.Forms.ComboBox();
|
||||
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.SuspendLayout();
|
||||
//
|
||||
// m_combo
|
||||
//
|
||||
this.m_combo.Location = new System.Drawing.Point(12, 134);
|
||||
this.m_combo.Name = "m_combo";
|
||||
this.m_combo.Size = new System.Drawing.Size(426, 21);
|
||||
this.m_combo.TabIndex = 16;
|
||||
//
|
||||
// startsideloadbutton
|
||||
//
|
||||
this.startsideloadbutton.Location = new System.Drawing.Point(100, 13);
|
||||
@@ -57,16 +67,16 @@
|
||||
this.devicesbutton.Location = new System.Drawing.Point(12, 12);
|
||||
this.devicesbutton.Name = "devicesbutton";
|
||||
this.devicesbutton.Size = new System.Drawing.Size(82, 34);
|
||||
this.devicesbutton.TabIndex = 3;
|
||||
this.devicesbutton.TabIndex = 1;
|
||||
this.devicesbutton.Text = "Adb devices";
|
||||
this.devicesbutton.UseVisualStyleBackColor = true;
|
||||
this.devicesbutton.Click += new System.EventHandler(this.devicesbutton_Click);
|
||||
//
|
||||
// instructionsbutton
|
||||
//
|
||||
this.instructionsbutton.Location = new System.Drawing.Point(281, 12);
|
||||
this.instructionsbutton.Location = new System.Drawing.Point(282, 12);
|
||||
this.instructionsbutton.Name = "instructionsbutton";
|
||||
this.instructionsbutton.Size = new System.Drawing.Size(88, 34);
|
||||
this.instructionsbutton.Size = new System.Drawing.Size(87, 34);
|
||||
this.instructionsbutton.TabIndex = 4;
|
||||
this.instructionsbutton.Text = "Instructions";
|
||||
this.instructionsbutton.UseVisualStyleBackColor = true;
|
||||
@@ -76,45 +86,28 @@
|
||||
//
|
||||
this.obbcopybutton.Location = new System.Drawing.Point(193, 12);
|
||||
this.obbcopybutton.Name = "obbcopybutton";
|
||||
this.obbcopybutton.Size = new System.Drawing.Size(82, 34);
|
||||
this.obbcopybutton.TabIndex = 5;
|
||||
this.obbcopybutton.Size = new System.Drawing.Size(87, 34);
|
||||
this.obbcopybutton.TabIndex = 3;
|
||||
this.obbcopybutton.Text = "Copy Obb";
|
||||
this.obbcopybutton.UseVisualStyleBackColor = true;
|
||||
this.obbcopybutton.Click += new System.EventHandler(this.obbcopybutton_Click);
|
||||
//
|
||||
// progressBar1
|
||||
//
|
||||
this.progressBar1.Location = new System.Drawing.Point(13, 161);
|
||||
this.progressBar1.Name = "progressBar1";
|
||||
this.progressBar1.Size = new System.Drawing.Size(426, 20);
|
||||
this.progressBar1.TabIndex = 7;
|
||||
//
|
||||
// backupbutton
|
||||
//
|
||||
this.backupbutton.Location = new System.Drawing.Point(13, 52);
|
||||
this.backupbutton.Name = "backupbutton";
|
||||
this.backupbutton.Size = new System.Drawing.Size(81, 34);
|
||||
this.backupbutton.TabIndex = 9;
|
||||
this.backupbutton.TabIndex = 5;
|
||||
this.backupbutton.Text = "Backup Gamedata";
|
||||
this.backupbutton.UseVisualStyleBackColor = true;
|
||||
this.backupbutton.Click += new System.EventHandler(this.backupbutton_Click);
|
||||
//
|
||||
// debugbutton
|
||||
//
|
||||
this.debugbutton.Location = new System.Drawing.Point(1, 2);
|
||||
this.debugbutton.Name = "debugbutton";
|
||||
this.debugbutton.Size = new System.Drawing.Size(75, 23);
|
||||
this.debugbutton.TabIndex = 10;
|
||||
this.debugbutton.Text = "button1";
|
||||
this.debugbutton.UseVisualStyleBackColor = true;
|
||||
this.debugbutton.Click += new System.EventHandler(this.debugbutton_Click);
|
||||
//
|
||||
// restorebutton
|
||||
//
|
||||
this.restorebutton.Location = new System.Drawing.Point(100, 52);
|
||||
this.restorebutton.Name = "restorebutton";
|
||||
this.restorebutton.Size = new System.Drawing.Size(87, 34);
|
||||
this.restorebutton.TabIndex = 11;
|
||||
this.restorebutton.TabIndex = 6;
|
||||
this.restorebutton.Text = "Restore Gamedata";
|
||||
this.restorebutton.UseVisualStyleBackColor = true;
|
||||
this.restorebutton.Click += new System.EventHandler(this.restorebutton_Click);
|
||||
@@ -123,8 +116,8 @@
|
||||
//
|
||||
this.customadbcmdbutton.Location = new System.Drawing.Point(193, 52);
|
||||
this.customadbcmdbutton.Name = "customadbcmdbutton";
|
||||
this.customadbcmdbutton.Size = new System.Drawing.Size(82, 34);
|
||||
this.customadbcmdbutton.TabIndex = 12;
|
||||
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);
|
||||
@@ -134,53 +127,96 @@
|
||||
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 = 13;
|
||||
this.ListApps.Text = "List Apps";
|
||||
this.ListApps.TabIndex = 8;
|
||||
this.ListApps.Text = "Refresh Apps";
|
||||
this.ListApps.UseVisualStyleBackColor = true;
|
||||
this.ListApps.Click += new System.EventHandler(this.ListApps_Click);
|
||||
//
|
||||
// comboBox1
|
||||
//
|
||||
this.comboBox1.FormattingEnabled = true;
|
||||
this.comboBox1.Location = new System.Drawing.Point(13, 134);
|
||||
this.comboBox1.Name = "comboBox1";
|
||||
this.comboBox1.Size = new System.Drawing.Size(426, 21);
|
||||
this.comboBox1.TabIndex = 14;
|
||||
this.comboBox1.Text = "Please Press List Apps First";
|
||||
//
|
||||
// getApkButton
|
||||
//
|
||||
this.getApkButton.Location = new System.Drawing.Point(100, 92);
|
||||
this.getApkButton.Name = "getApkButton";
|
||||
this.getApkButton.Size = new System.Drawing.Size(87, 34);
|
||||
this.getApkButton.TabIndex = 15;
|
||||
this.getApkButton.TabIndex = 9;
|
||||
this.getApkButton.Text = "Get Apk";
|
||||
this.getApkButton.UseVisualStyleBackColor = true;
|
||||
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.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.Click += new System.EventHandler(this.uninstallAppButton_Click);
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(447, 193);
|
||||
this.ClientSize = new System.Drawing.Size(650, 411);
|
||||
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.comboBox1);
|
||||
this.Controls.Add(this.ListApps);
|
||||
this.Controls.Add(this.customadbcmdbutton);
|
||||
this.Controls.Add(this.restorebutton);
|
||||
this.Controls.Add(this.debugbutton);
|
||||
this.Controls.Add(this.m_combo);
|
||||
this.Controls.Add(this.backupbutton);
|
||||
this.Controls.Add(this.progressBar1);
|
||||
this.Controls.Add(this.obbcopybutton);
|
||||
this.Controls.Add(this.instructionsbutton);
|
||||
this.Controls.Add(this.devicesbutton);
|
||||
this.Controls.Add(this.startsideloadbutton);
|
||||
this.MaximumSize = new System.Drawing.Size(463, 232);
|
||||
this.MinimumSize = new System.Drawing.Size(463, 232);
|
||||
this.MaximumSize = new System.Drawing.Size(666, 1000);
|
||||
this.MinimumSize = new System.Drawing.Size(466, 450);
|
||||
this.Name = "Form1";
|
||||
this.Text = "Rookie SideLoader";
|
||||
this.Load += new System.EventHandler(this.Form1_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
@@ -189,14 +225,17 @@
|
||||
private System.Windows.Forms.Button devicesbutton;
|
||||
private System.Windows.Forms.Button instructionsbutton;
|
||||
private System.Windows.Forms.Button obbcopybutton;
|
||||
private System.Windows.Forms.ProgressBar progressBar1;
|
||||
private System.Windows.Forms.Button backupbutton;
|
||||
private System.Windows.Forms.Button debugbutton;
|
||||
private System.Windows.Forms.Button restorebutton;
|
||||
private System.Windows.Forms.Button customadbcmdbutton;
|
||||
private System.Windows.Forms.Button ListApps;
|
||||
private System.Windows.Forms.ComboBox comboBox1;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
433
Form1.cs
433
Form1.cs
@@ -4,15 +4,18 @@ using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
using System.Threading.Tasks;
|
||||
using System.Net.Http;
|
||||
using System.Reflection;
|
||||
using System.Net;
|
||||
|
||||
using SergeUtils;
|
||||
|
||||
|
||||
namespace AndroidSideloader
|
||||
{
|
||||
|
||||
|
||||
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
#if DEBUG
|
||||
@@ -34,9 +37,19 @@ namespace AndroidSideloader
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void changeTitle(string txt)
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
this.Invoke(new Action(() => this.Text = txt));
|
||||
else
|
||||
this.Text = txt;
|
||||
}
|
||||
|
||||
public void runAdbCommand(string command)
|
||||
{
|
||||
progressBar1.Value = 0;
|
||||
string oldTitle = this.Text;
|
||||
changeTitle("Rookie's Sideloader | Running command " + command);
|
||||
|
||||
exit = false;
|
||||
|
||||
Process cmd = new Process();
|
||||
@@ -62,27 +75,25 @@ namespace AndroidSideloader
|
||||
sw.Close();
|
||||
line = allText.Split('\n');
|
||||
exit = true;
|
||||
|
||||
changeTitle(oldTitle);
|
||||
}
|
||||
|
||||
|
||||
void runLoadingBar(string filePath)
|
||||
private void sideload(string path)
|
||||
{
|
||||
FileInfo fi = new FileInfo(filePath);
|
||||
//fi.Length file size in bytes
|
||||
PerformanceCounter disk = new PerformanceCounter("PhysicalDisk", "Disk Write Bytes/sec", "_total");
|
||||
|
||||
var bytes = 0f;
|
||||
progressBar1.Maximum = (int)(fi.Length / 128);
|
||||
while (exit == false)
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
bytes += disk.NextValue();
|
||||
try { progressBar1.Value = (int)(bytes); } catch { progressBar1.Maximum *= 2; }
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
progressBar1.Value = progressBar1.Maximum;
|
||||
runAdbCommand("install -r " + '"' + path + '"');
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
t1.Join();
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void startsideloadbutton_Click(object sender, EventArgs e)
|
||||
private async void startsideloadbutton_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
using (OpenFileDialog openFileDialog = new OpenFileDialog())
|
||||
@@ -101,15 +112,8 @@ namespace AndroidSideloader
|
||||
MessageBox.Show("You must select an apk");
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Action Started, may take some time...");
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("install -r " + '"' + path + '"');
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
|
||||
runLoadingBar(path);
|
||||
await Task.Run(() => sideload(path));
|
||||
|
||||
MessageBox.Show(allText);
|
||||
}
|
||||
@@ -118,8 +122,8 @@ namespace AndroidSideloader
|
||||
|
||||
private void devicesbutton_Click(object sender, EventArgs e)
|
||||
{
|
||||
MessageBox.Show("Action Started, may take some time...");
|
||||
runAdbCommand("devices");
|
||||
changeTitlebarToDevice();
|
||||
MessageBox.Show(allText);
|
||||
}
|
||||
|
||||
@@ -145,7 +149,18 @@ namespace AndroidSideloader
|
||||
x.WaitForExit();
|
||||
}
|
||||
|
||||
private void obbcopybutton_Click(object sender, EventArgs e)
|
||||
private void obbcopy(string obbPath)
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("push " + '"' + obbPath + '"' + " /sdcard/Android/obb");
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
t1.Join();
|
||||
}
|
||||
|
||||
private async void obbcopybutton_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (var fbd = new FolderBrowserDialog())
|
||||
{
|
||||
@@ -163,16 +178,8 @@ namespace AndroidSideloader
|
||||
|
||||
if (obbPath.Length>0)
|
||||
{
|
||||
MessageBox.Show("Action Started, may take some time...");
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("push " + '"' + obbPath + '"' + " /sdcard/Android/obb");
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
|
||||
runLoadingBar(obbFile);
|
||||
|
||||
await Task.Run(() => obbcopy(obbPath));
|
||||
|
||||
MessageBox.Show(allText);
|
||||
}
|
||||
else
|
||||
@@ -181,10 +188,23 @@ namespace AndroidSideloader
|
||||
}
|
||||
}
|
||||
|
||||
private void changeTitlebarToDevice()
|
||||
{
|
||||
if (line[1].Length > 1)
|
||||
this.Text = "Rookie Sideloader | Device Connected with ID | " + line[1].Replace("device", "");
|
||||
else
|
||||
this.Text = "Rookie Sideloader | No Device Connected";
|
||||
}
|
||||
|
||||
private void Form1_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (debugMode == false)
|
||||
debugbutton.Visible = false;
|
||||
|
||||
//comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; //can remove if u want to not show the box 2 times
|
||||
|
||||
//comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
|
||||
|
||||
if (File.Exists(debugPath))
|
||||
File.Delete(debugPath);
|
||||
if (Directory.Exists(adbPath)==false)
|
||||
{
|
||||
MessageBox.Show("Please wait for the software to download and install the adb");
|
||||
@@ -196,7 +216,7 @@ namespace AndroidSideloader
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
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");
|
||||
client.DownloadFile("http://github.com/nerdunit/androidsideloader/releases/download/v0.3/adb.7z", "adb.7z");
|
||||
client.DownloadFile("https://github.com/nerdunit/androidsideloader/raw/master/adb.7z", "adb.7z");
|
||||
}
|
||||
ExtractFile(Environment.CurrentDirectory + "\\adb.7z", Environment.CurrentDirectory);
|
||||
File.Delete("adb.7z");
|
||||
@@ -215,9 +235,15 @@ namespace AndroidSideloader
|
||||
}
|
||||
|
||||
}
|
||||
runAdbCommand("devices");
|
||||
changeTitlebarToDevice();
|
||||
|
||||
if (debugMode==false)
|
||||
checkForUpdate();
|
||||
intToolTips();
|
||||
|
||||
listappsBtn();
|
||||
|
||||
}
|
||||
void intToolTips()
|
||||
{
|
||||
@@ -226,23 +252,39 @@ namespace AndroidSideloader
|
||||
}
|
||||
void checkForUpdate()
|
||||
{
|
||||
try
|
||||
string localVersion = "0.8.5";
|
||||
HttpClient client = new HttpClient();
|
||||
string currentVersion = client.GetStringAsync("https://raw.githubusercontent.com/nerdunit/androidsideloader/master/version").Result;
|
||||
currentVersion = currentVersion.Remove(currentVersion.Length - 1);
|
||||
|
||||
if (localVersion != currentVersion)
|
||||
{
|
||||
string localVersion = "0.5";
|
||||
HttpClient client = new HttpClient();
|
||||
string currentVersion = client.GetStringAsync("https://raw.githubusercontent.com/nerdunit/androidsideloader/master/version").Result;
|
||||
currentVersion = currentVersion.Remove(currentVersion.Length - 1);
|
||||
if (localVersion != currentVersion)
|
||||
MessageBox.Show("Your version is outdated, the latest version is " + currentVersion + " you can download it from https://github.com/nerdunit/", "OUTDATED");
|
||||
}
|
||||
catch
|
||||
{
|
||||
//No need for messages, the user has no internet
|
||||
DialogResult dialogResult = MessageBox.Show("There is a new update, do you want to update?", "New version " + currentVersion + " available", MessageBoxButtons.YesNo);
|
||||
if (dialogResult != DialogResult.Yes)
|
||||
return;
|
||||
using (var fileClient = new WebClient())
|
||||
{
|
||||
ServicePointManager.Expect100Continue = true;
|
||||
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
|
||||
fileClient.DownloadFile("https://github.com/nerdunit/androidsideloader/releases/download/v" + currentVersion + "/AndroidSideloader.exe", "Android Sideloader v" + currentVersion + ".exe");
|
||||
}
|
||||
|
||||
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"
|
||||
});
|
||||
|
||||
Process.Start(Environment.CurrentDirectory + "\\Android Sideloader v" + currentVersion + ".exe");
|
||||
|
||||
Environment.Exit(0);
|
||||
//MessageBox.Show("Your version is outdated, the latest version is " + currentVersion + " you can download it from https://github.com/nerdunit/", "OUTDATED");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void backupbutton_Click(object sender, EventArgs e)
|
||||
private void backup()
|
||||
{
|
||||
MessageBox.Show("Action Started, may take some time...");
|
||||
Thread t1 = new Thread(() =>
|
||||
@@ -251,11 +293,27 @@ namespace AndroidSideloader
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
t1.Join();
|
||||
}
|
||||
|
||||
while (exit == false)
|
||||
Thread.Sleep(1000);
|
||||
private async void backupbutton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (exit==false)
|
||||
{
|
||||
MessageBox.Show("Finish Previous action first!");
|
||||
return;
|
||||
}
|
||||
|
||||
Directory.Move(adbPath + "data", Environment.CurrentDirectory + "\\data");
|
||||
await Task.Run(() => backup()); //we use async and await to not freeze the ui
|
||||
|
||||
try
|
||||
{
|
||||
Directory.Move(adbPath + "data", Environment.CurrentDirectory + "\\data");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
File.AppendAllText(debugPath, ex.ToString());
|
||||
}
|
||||
|
||||
MessageBox.Show(allText);
|
||||
}
|
||||
@@ -265,8 +323,25 @@ namespace AndroidSideloader
|
||||
|
||||
}
|
||||
|
||||
private void restorebutton_Click(object sender, EventArgs e)
|
||||
private void restore()
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("push " + '"' + obbPath + '"' + " /sdcard/Android/");
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
t1.Join();
|
||||
}
|
||||
|
||||
private async void restorebutton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (exit == false)
|
||||
{
|
||||
MessageBox.Show("Finish Previous action first!");
|
||||
return;
|
||||
}
|
||||
|
||||
using (var fbd = new FolderBrowserDialog())
|
||||
{
|
||||
DialogResult result = fbd.ShowDialog();
|
||||
@@ -278,16 +353,7 @@ namespace AndroidSideloader
|
||||
}
|
||||
else return;
|
||||
}
|
||||
MessageBox.Show("Action Started, may take some time...");
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("push " + '"' + obbPath + '"' + " /sdcard/Android/");
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
|
||||
while (exit == false)
|
||||
Thread.Sleep(1000);
|
||||
await Task.Run(() => restore());
|
||||
|
||||
MessageBox.Show(allText);
|
||||
}
|
||||
@@ -298,74 +364,231 @@ namespace AndroidSideloader
|
||||
adbCommandForm.Show();
|
||||
}
|
||||
|
||||
private void ListApps_Click(object sender, EventArgs e)
|
||||
private void listapps()
|
||||
{
|
||||
allText = "";
|
||||
|
||||
comboBox1.Items.Clear();
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("shell pm list packages");
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
|
||||
while (exit == false)
|
||||
Thread.Sleep(1000);
|
||||
|
||||
foreach (string obj in line)
|
||||
{
|
||||
comboBox1.Items.Add(obj);
|
||||
}
|
||||
|
||||
if (allText.Length > 0)
|
||||
MessageBox.Show("Fetched apks with success");
|
||||
t1.Join();
|
||||
}
|
||||
|
||||
private void getApkButton_Click(object sender, EventArgs e)
|
||||
private void ListApps_Click(object sender, EventArgs e)
|
||||
{
|
||||
string package;
|
||||
allText = "";
|
||||
try
|
||||
{
|
||||
package = comboBox1.SelectedItem.ToString().Remove(0,8); //remove package:
|
||||
package = package.Remove(package.Length - 1);
|
||||
} catch { MessageBox.Show("You must first run list items"); return; }
|
||||
listappsBtn();
|
||||
}
|
||||
|
||||
//MessageBox.Show(package);
|
||||
exit = false;
|
||||
private async void listappsBtn()
|
||||
{
|
||||
allText = "";
|
||||
|
||||
m_combo.Items.Clear();
|
||||
|
||||
await Task.Run(() => listapps());
|
||||
|
||||
foreach (string obj in line)
|
||||
{
|
||||
if (obj.Length>9)
|
||||
m_combo.Items.Add(obj.Remove(0, 8));
|
||||
}
|
||||
m_combo.MatchingMethod = StringMatchingMethod.NoWildcards;
|
||||
//if (allText.Length > 0)
|
||||
// MessageBox.Show("Fetched apks with success");
|
||||
}
|
||||
|
||||
private void getapk(string package)
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("shell pm path " + package);
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
t1.Join();
|
||||
}
|
||||
|
||||
while (exit == false)
|
||||
Thread.Sleep(1000);
|
||||
allText = allText.Remove(allText.Length - 1);
|
||||
//MessageBox.Show(allText);
|
||||
|
||||
string apkPath = allText.Remove(0, 8); //remove package:
|
||||
apkPath = apkPath.Remove(apkPath.Length - 1);
|
||||
//MessageBox.Show(adbPath);
|
||||
|
||||
private void pullapk(string apkPath)
|
||||
{
|
||||
Thread t2 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("pull " + apkPath);
|
||||
});
|
||||
t2.IsBackground = true;
|
||||
t2.Start();
|
||||
t2.Join();
|
||||
}
|
||||
|
||||
while (exit == false)
|
||||
Thread.Sleep(1000);
|
||||
private async void getApkButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
string package = m_combo.SelectedItem.ToString().Remove(m_combo.SelectedItem.ToString().Length - 1);
|
||||
|
||||
await Task.Run(() => getapk(package));
|
||||
|
||||
allText = allText.Remove(allText.Length - 1);
|
||||
//MessageBox.Show(allText);
|
||||
|
||||
string apkPath = allText.Remove(0, 8); //remove package:
|
||||
apkPath = apkPath.Remove(apkPath.Length - 1);
|
||||
|
||||
await Task.Run(() => pullapk(apkPath));
|
||||
|
||||
string currApkPath = apkPath;
|
||||
while (currApkPath.Contains("/"))
|
||||
currApkPath = currApkPath.Substring(currApkPath.IndexOf("/") + 1);
|
||||
Thread.Sleep(1000);
|
||||
File.Copy(Environment.CurrentDirectory + "\\adb\\" + currApkPath, Environment.CurrentDirectory + "\\" + package + ".apk");
|
||||
File.Delete(Environment.CurrentDirectory + "\\adb\\" + currApkPath);
|
||||
|
||||
if (File.Exists(Environment.CurrentDirectory + "\\" + package + ".apk"))
|
||||
File.Delete(Environment.CurrentDirectory + "\\" + package + ".apk");
|
||||
|
||||
|
||||
File.Move(Environment.CurrentDirectory + "\\adb\\" + currApkPath, Environment.CurrentDirectory + "\\" + package + ".apk");
|
||||
|
||||
MessageBox.Show("Done");
|
||||
}
|
||||
|
||||
private void listappperms(string package)
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("shell dumpsys package " + package);
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
t1.Join();
|
||||
}
|
||||
|
||||
private async void listApkPermsButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
string package = m_combo.SelectedItem.ToString().Remove(m_combo.SelectedItem.ToString().Length - 1);
|
||||
|
||||
await Task.Run(() => listappperms(package));
|
||||
|
||||
var grantedPerms = allText.Substring(allText.LastIndexOf("install permissions:") + 22);
|
||||
grantedPerms.Substring(0, grantedPerms.IndexOf("User 0:"));
|
||||
|
||||
line = grantedPerms.Split('\n');
|
||||
|
||||
int pos1 = 12;
|
||||
int pos2 = 187;
|
||||
|
||||
|
||||
for (int i=0; i< line.Length; i++)
|
||||
{
|
||||
if (line[i].Contains("android.permission."))
|
||||
{
|
||||
CheckBox chk = new CheckBox();
|
||||
if (line[i].Contains("true"))
|
||||
chk.Checked = true;
|
||||
else
|
||||
chk.Checked = false;
|
||||
line[i] = line[i].Substring(0, line[i].IndexOf(": granted"));
|
||||
line[i] = line[i].Substring(line[i].LastIndexOf(" "));
|
||||
|
||||
|
||||
chk.Location = new System.Drawing.Point(pos1, pos2);
|
||||
chk.Width = 420;
|
||||
chk.Height = 17;
|
||||
chk.Text = line[i];
|
||||
chk.CheckedChanged += new EventHandler(CheckBox_Checked);
|
||||
Controls.Add(chk);
|
||||
pos2 += 20;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void CheckBox_Checked(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private async void changePermsBtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
string package = m_combo.SelectedItem.ToString().Remove(m_combo.SelectedItem.ToString().Length - 1);
|
||||
|
||||
foreach (Control c in Controls)
|
||||
{
|
||||
if ((c is CheckBox))
|
||||
{
|
||||
exit = false;
|
||||
if (((CheckBox)c).Checked==true)
|
||||
{
|
||||
await Task.Run(() => changePerms(c, package, "grant"));
|
||||
}
|
||||
else
|
||||
{
|
||||
await Task.Run(() => changePerms(c, package, "revoke"));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
MessageBox.Show("Done!");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void changePerms(Control c, string package, string grant)
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("shell pm " + grant + " " + package + " " + c.Text);
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
t1.Join();
|
||||
}
|
||||
|
||||
private void launchApkButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
exit = false;
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("shell am start -n " + launchPackageTextBox.Text);
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
|
||||
}
|
||||
|
||||
private async void uninstallAppButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
allText = "";
|
||||
string package = m_combo.SelectedItem.ToString().Remove(m_combo.SelectedItem.ToString().Length - 1);
|
||||
|
||||
DialogResult dialogResult = MessageBox.Show("Are you sure you want to uninstall " + package + " this CANNOT be undone!", "WARNING!", MessageBoxButtons.YesNo);
|
||||
if (dialogResult != DialogResult.Yes)
|
||||
return;
|
||||
|
||||
await Task.Run(() => uninstallPackage(package));
|
||||
|
||||
MessageBox.Show(allText);
|
||||
}
|
||||
|
||||
private void uninstallPackage(string package)
|
||||
{
|
||||
Thread t1 = new Thread(() =>
|
||||
{
|
||||
runAdbCommand("shell pm uninstall -k --user 0 " + package);
|
||||
});
|
||||
t1.IsBackground = true;
|
||||
t1.Start();
|
||||
t1.Join();
|
||||
}
|
||||
|
||||
private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
|
||||
{
|
||||
MethodItem mi = (MethodItem)m_combo.SelectedItem;
|
||||
m_combo.MatchingMethod = mi.Value;
|
||||
}
|
||||
}
|
||||
|
||||
public class MethodItem
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public StringMatchingMethod Value { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
18
README.md
18
README.md
@@ -2,6 +2,24 @@
|
||||
|
||||
Changelog
|
||||
|
||||
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
|
||||
|
||||
BIN
SergeUtils.dll
Normal file
BIN
SergeUtils.dll
Normal file
Binary file not shown.
5
packages.config
Normal file
5
packages.config
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Costura.Fody" version="4.1.0" targetFramework="net452" />
|
||||
<package id="Fody" version="6.0.0" targetFramework="net452" developmentDependency="true" />
|
||||
</packages>
|
||||
BIN
packages/Costura.Fody.4.1.0/Costura.Fody.4.1.0.nupkg
vendored
Normal file
BIN
packages/Costura.Fody.4.1.0/Costura.Fody.4.1.0.nupkg
vendored
Normal file
Binary file not shown.
5
packages/Costura.Fody.4.1.0/build/Costura.Fody.props
vendored
Normal file
5
packages/Costura.Fody.4.1.0/build/Costura.Fody.props
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<WeaverFiles Include="$(MsBuildThisFileDirectory)..\weaver\$(MSBuildThisFileName).dll" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
BIN
packages/Costura.Fody.4.1.0/lib/net40/Costura.dll
vendored
Normal file
BIN
packages/Costura.Fody.4.1.0/lib/net40/Costura.dll
vendored
Normal file
Binary file not shown.
18
packages/Costura.Fody.4.1.0/lib/net40/Costura.xml
vendored
Normal file
18
packages/Costura.Fody.4.1.0/lib/net40/Costura.xml
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Costura</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:CosturaUtility">
|
||||
<summary>
|
||||
Contains methods for interacting with the Costura system.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:CosturaUtility.Initialize">
|
||||
<summary>
|
||||
Call this to Initialize the Costura system.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
BIN
packages/Costura.Fody.4.1.0/weaver/Costura.Fody.dll
vendored
Normal file
BIN
packages/Costura.Fody.4.1.0/weaver/Costura.Fody.dll
vendored
Normal file
Binary file not shown.
85
packages/Costura.Fody.4.1.0/weaver/Costura.Fody.xcf
vendored
Normal file
85
packages/Costura.Fody.4.1.0/weaver/Costura.Fody.xcf
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:all>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="ExcludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="IncludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged32Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with line breaks.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="Unmanaged64Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with line breaks.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" maxOccurs="1" name="PreloadOrder" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The order of preloaded assemblies, delimited with line breaks.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
<xs:attribute name="CreateTemporaryAssemblies" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IncludeDebugSymbols" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Controls if .pdbs for reference assemblies are also embedded.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="DisableCompression" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="DisableCleanup" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="LoadAtModuleInit" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IgnoreSatelliteAssemblies" type="xs:boolean">
|
||||
<xs:annotation>
|
||||
<xs:documentation>Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="ExcludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with |</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="IncludeAssemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Unmanaged32Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 32 bit assembly names to include, delimited with |.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="Unmanaged64Assemblies" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A list of unmanaged 64 bit assembly names to include, delimited with |.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="PreloadOrder" type="xs:string">
|
||||
<xs:annotation>
|
||||
<xs:documentation>The order of preloaded assemblies, delimited with |.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
BIN
packages/Fody.6.0.0/Fody.6.0.0.nupkg
vendored
Normal file
BIN
packages/Fody.6.0.0/Fody.6.0.0.nupkg
vendored
Normal file
Binary file not shown.
110
packages/Fody.6.0.0/build/Fody.targets
vendored
Normal file
110
packages/Fody.6.0.0/build/Fody.targets
vendored
Normal file
@@ -0,0 +1,110 @@
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<PropertyGroup>
|
||||
<ProjectWeaverXml Condition="$(ProjectWeaverXml) == ''">$(ProjectDir)FodyWeavers.xml</ProjectWeaverXml>
|
||||
<FodyPath Condition="$(FodyPath) == ''">$(MSBuildThisFileDirectory)..\</FodyPath>
|
||||
<FodyAssemblyDirectory Condition="$(MSBuildRuntimeType) == 'Core'">$(FodyPath)netstandardtask</FodyAssemblyDirectory>
|
||||
<FodyAssemblyDirectory Condition="$(MSBuildRuntimeType) != 'Core'">$(FodyPath)netclassictask</FodyAssemblyDirectory>
|
||||
<FodyAssembly Condition="$(FodyAssembly) == ''">$(FodyAssemblyDirectory)\Fody.dll</FodyAssembly>
|
||||
<DefaultItemExcludes>$(DefaultItemExcludes);FodyWeavers.xsd</DefaultItemExcludes>
|
||||
<FodyGenerateXsd Condition="$(FodyGenerateXsd) == ''">true</FodyGenerateXsd>
|
||||
<MsBuildMajorVersion>15</MsBuildMajorVersion>
|
||||
<MsBuildMajorVersion Condition="'$(MSBuildVersion)' != ''">$([System.Version]::Parse($(MSBuildVersion)).Major)</MsBuildMajorVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="Exists($(ProjectWeaverXml))">
|
||||
<UpToDateCheckInput Include="$(ProjectWeaverXml)" />
|
||||
<CustomAdditionalCompileInputs Include="$(ProjectWeaverXml)" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Support for NCrunch -->
|
||||
<ItemGroup Condition="'$(NCrunch)' == '1' and '$(TargetFramework)' == '' and '$(TargetFrameworks)' == ''">
|
||||
<None Include="$(FodyAssemblyDirectory)\*.*" />
|
||||
<None Include="@(WeaverFiles)" />
|
||||
</ItemGroup>
|
||||
|
||||
<UsingTask TaskName="Fody.WeavingTask" AssemblyFile="$(FodyAssembly)" />
|
||||
<UsingTask TaskName="Fody.UpdateReferenceCopyLocalTask" AssemblyFile="$(FodyAssembly)" />
|
||||
<UsingTask TaskName="Fody.VerifyTask" AssemblyFile="$(FodyAssembly)" />
|
||||
|
||||
<Target
|
||||
Name="FodyTarget"
|
||||
AfterTargets="AfterCompile"
|
||||
Condition="Exists(@(IntermediateAssembly)) And $(DesignTimeBuild) != true And $(DisableFody) != true"
|
||||
DependsOnTargets="$(FodyDependsOnTargets)"
|
||||
Inputs="@(IntermediateAssembly);$(ProjectWeaverXml)"
|
||||
Outputs="$(IntermediateOutputPath)$(MSBuildProjectFile).Fody.CopyLocal.cache">
|
||||
|
||||
<Error Condition="($(MsBuildMajorVersion) < 16)"
|
||||
Text="Fody is only supported on MSBuild 16 and above. Current version: $(MsBuildMajorVersion)." />
|
||||
<Fody.WeavingTask
|
||||
AssemblyFile="@(IntermediateAssembly)"
|
||||
IntermediateDirectory="$(ProjectDir)$(IntermediateOutputPath)"
|
||||
KeyOriginatorFile="$(KeyOriginatorFile)"
|
||||
AssemblyOriginatorKeyFile="$(AssemblyOriginatorKeyFile)"
|
||||
ProjectDirectory="$(MSBuildProjectDirectory)"
|
||||
ProjectFile="$(MSBuildProjectFullPath)"
|
||||
SolutionDirectory="$(SolutionDir)"
|
||||
References="@(ReferencePath)"
|
||||
SignAssembly="$(SignAssembly)"
|
||||
ReferenceCopyLocalFiles="@(ReferenceCopyLocalPaths)"
|
||||
DefineConstants="$(DefineConstants)"
|
||||
DebugType="$(DebugType)"
|
||||
DocumentationFile="@(DocFileItem->'%(FullPath)')"
|
||||
WeaverFiles="@(WeaverFiles)"
|
||||
NCrunchOriginalSolutionDirectory="$(NCrunchOriginalSolutionDir)"
|
||||
IntermediateCopyLocalFilesCache="$(IntermediateOutputPath)$(MSBuildProjectFile).Fody.CopyLocal.cache"
|
||||
GenerateXsd="$(FodyGenerateXsd)"
|
||||
>
|
||||
|
||||
<Output
|
||||
TaskParameter="ExecutedWeavers"
|
||||
PropertyName="FodyExecutedWeavers" />
|
||||
|
||||
</Fody.WeavingTask>
|
||||
|
||||
<ItemGroup>
|
||||
<FileWrites Include="$(IntermediateOutputPath)$(MSBuildProjectFile).Fody.CopyLocal.cache" />
|
||||
</ItemGroup>
|
||||
|
||||
</Target>
|
||||
|
||||
<Target
|
||||
Name="FodyUpdateCopyLocalFilesTarget"
|
||||
AfterTargets="FodyTarget"
|
||||
>
|
||||
|
||||
<Fody.UpdateReferenceCopyLocalTask
|
||||
ReferenceCopyLocalFiles="@(ReferenceCopyLocalPaths)"
|
||||
IntermediateCopyLocalFilesCache="$(IntermediateOutputPath)$(MSBuildProjectFile).Fody.CopyLocal.cache"
|
||||
>
|
||||
|
||||
<Output
|
||||
TaskParameter="UpdatedReferenceCopyLocalFiles"
|
||||
ItemName="FodyUpdatedReferenceCopyLocalPaths" />
|
||||
|
||||
</Fody.UpdateReferenceCopyLocalTask>
|
||||
|
||||
<ItemGroup>
|
||||
<ReferenceCopyLocalPaths Remove="@(ReferenceCopyLocalPaths)" />
|
||||
<ReferenceCopyLocalPaths Include="@(FodyUpdatedReferenceCopyLocalPaths)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Target>
|
||||
|
||||
<Target
|
||||
Name="FodyVerifyTarget"
|
||||
AfterTargets="AfterBuild"
|
||||
Condition="'$(NCrunch)' != '1' And $(FodyExecutedWeavers) != '' And $(DisableFody) != true"
|
||||
DependsOnTargets="$(FodyVerifyDependsOnTargets)">
|
||||
|
||||
<Fody.VerifyTask
|
||||
ProjectDirectory="$(MSBuildProjectDirectory)"
|
||||
TargetPath="$(TargetPath)"
|
||||
SolutionDirectory="$(SolutionDir)"
|
||||
DefineConstants="$(DefineConstants)"
|
||||
NCrunchOriginalSolutionDirectory="$(NCrunchOriginalSolutionDir)"
|
||||
/>
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
BIN
packages/Fody.6.0.0/netclassictask/Fody.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netclassictask/Fody.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netclassictask/FodyCommon.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netclassictask/FodyCommon.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netclassictask/FodyHelpers.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netclassictask/FodyHelpers.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netclassictask/FodyIsolated.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netclassictask/FodyIsolated.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.Pdb.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.Pdb.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.Pdb.pdb
vendored
Normal file
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.Pdb.pdb
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.Rocks.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.Rocks.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.Rocks.pdb
vendored
Normal file
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.Rocks.pdb
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.pdb
vendored
Normal file
BIN
packages/Fody.6.0.0/netclassictask/Mono.Cecil.pdb
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netstandardtask/Fody.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netstandardtask/Fody.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netstandardtask/FodyCommon.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netstandardtask/FodyCommon.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netstandardtask/FodyHelpers.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netstandardtask/FodyHelpers.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netstandardtask/FodyIsolated.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netstandardtask/FodyIsolated.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Pdb.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Pdb.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Pdb.pdb
vendored
Normal file
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Pdb.pdb
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Rocks.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Rocks.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Rocks.pdb
vendored
Normal file
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.Rocks.pdb
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.dll
vendored
Normal file
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.dll
vendored
Normal file
Binary file not shown.
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.pdb
vendored
Normal file
BIN
packages/Fody.6.0.0/netstandardtask/Mono.Cecil.pdb
vendored
Normal file
Binary file not shown.
Reference in New Issue
Block a user