Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/hakchi2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2017-09-28 00:10:24 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2017-09-28 00:10:24 +0300
commit0a82a5ec4240ac836c4186f517c8b49013ae889c (patch)
tree496cdff1252cc06f8d651926138a6b3a01529454
parentfe8cd0fc4e716b1bef4aff1fc4ff7b6b5180474b (diff)
NAND write feature (not working yet, it WILL BRICK YOUR CONSOLE, so it's hidden), some fixes
-rw-r--r--FelLib/Fel.cs11
-rw-r--r--MainForm.Designer.cs23
-rw-r--r--MainForm.cs27
-rw-r--r--MainForm.resx64
-rw-r--r--Properties/AssemblyInfo.cs4
-rw-r--r--WorkerForm.cs48
-rw-r--r--hakchi_gui.csproj4
7 files changed, 146 insertions, 35 deletions
diff --git a/FelLib/Fel.cs b/FelLib/Fel.cs
index 1aeff89c..ca44c35a 100644
--- a/FelLib/Fel.cs
+++ b/FelLib/Fel.cs
@@ -269,7 +269,7 @@ namespace com.clusterrr.FelLib
int pos = 0;
while (pos < buffer.Length)
{
- if (callback != null) callback(CurrentAction.WritingMemory, null);
+ callback?.Invoke(CurrentAction.WritingMemory, null);
var buf = new byte[Math.Min(buffer.Length - pos, MaxBulkSize)];
Array.Copy(buffer, pos, buf, 0, buf.Length);
FelRequest(AWFELStandardRequest.RequestType.FEL_DOWNLOAD, (UInt32)(address + pos), (uint)buf.Length);
@@ -334,7 +334,7 @@ namespace com.clusterrr.FelLib
while (length > 0)
{
var reqLen = Math.Min(length, transfer_max_size);
- command = string.Format("sunxi_flash phy_read {0:x} {1:x} {2:x};{3}", transfer_base_m, address / sector_size, reqLen / sector_size, fastboot);
+ command = string.Format("sunxi_flash phy_read {0:x} {1:x} {2:x};{3}", transfer_base_m, address / sector_size, (int)Math.Floor((double)reqLen / (double)sector_size), fastboot);
RunUbootCmd(command, false, callback);
var buf = ReadMemory(transfer_base_m + address % sector_size, reqLen, callback);
result.AddRange(buf);
@@ -347,19 +347,20 @@ namespace com.clusterrr.FelLib
public void WriteFlash(UInt32 address, byte[] buffer, OnFelProgress callback = null)
{
var length = (uint)buffer.Length;
- int pos = 0;
+ uint pos = 0;
if ((address % sector_size) != 0)
throw new FelException(string.Format("Invalid flash address : 0x{0:X8}", address));
if ((length % sector_size) != 0)
throw new FelException(string.Format("Invalid flash length: 0x{0:X8}", length));
while (length > 0)
{
- var wrLength = Math.Min(length, transfer_max_size);
+ var wrLength = Math.Min(length, transfer_max_size / 8);
var newBuf = new byte[wrLength];
Array.Copy(buffer, pos, newBuf, 0, wrLength);
WriteMemory(transfer_base_m, newBuf, callback);
- var command = string.Format("sunxi_flash phy_write {0:x} {1:x} {2:x};{3}", transfer_base_m, address / sector_size, length / sector_size, fastboot);
+ var command = string.Format("sunxi_flash phy_write {0:x} {1:x} {2:x};{3}", transfer_base_m, address / sector_size, (int)Math.Floor((double)wrLength / (double)sector_size), fastboot);
RunUbootCmd(command, false, callback);
+ pos += (uint)wrLength;
address += (uint)wrLength;
length -= (uint)wrLength;
}
diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs
index dfa1b124..ae76ae6a 100644
--- a/MainForm.Designer.cs
+++ b/MainForm.Designer.cs
@@ -46,10 +46,12 @@
this.dumpKernelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.flashOriginalKernelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.flashCustomKernelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripSeparator();
this.dumpTheWholeNANDToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.dumpNANDBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripSeparator();
this.uninstallToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolFlashTheWholeNANDStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.modulesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.installModulesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.uninstallModulesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -153,7 +155,7 @@
this.timerCalculateGames = new System.Windows.Forms.Timer(this.components);
this.timerConnectionCheck = new System.Windows.Forms.Timer(this.components);
this.saveDumpFileDialog = new System.Windows.Forms.SaveFileDialog();
- this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripSeparator();
+ this.openDumpFileDialog = new System.Windows.Forms.OpenFileDialog();
this.menuStrip.SuspendLayout();
this.groupBoxOptions.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxArt)).BeginInit();
@@ -255,6 +257,7 @@
this.flashCustomKernelToolStripMenuItem,
this.toolStripMenuItem10,
this.dumpTheWholeNANDToolStripMenuItem,
+ this.toolFlashTheWholeNANDStripMenuItem,
this.dumpNANDBToolStripMenuItem,
this.toolStripMenuItem9,
this.uninstallToolStripMenuItem});
@@ -279,6 +282,11 @@
resources.ApplyResources(this.flashCustomKernelToolStripMenuItem, "flashCustomKernelToolStripMenuItem");
this.flashCustomKernelToolStripMenuItem.Click += new System.EventHandler(this.flashCustomKernelToolStripMenuItem_Click);
//
+ // toolStripMenuItem10
+ //
+ this.toolStripMenuItem10.Name = "toolStripMenuItem10";
+ resources.ApplyResources(this.toolStripMenuItem10, "toolStripMenuItem10");
+ //
// dumpTheWholeNANDToolStripMenuItem
//
this.dumpTheWholeNANDToolStripMenuItem.Name = "dumpTheWholeNANDToolStripMenuItem";
@@ -302,6 +310,12 @@
resources.ApplyResources(this.uninstallToolStripMenuItem, "uninstallToolStripMenuItem");
this.uninstallToolStripMenuItem.Click += new System.EventHandler(this.uninstallToolStripMenuItem_Click);
//
+ // toolFlashTheWholeNANDStripMenuItem
+ //
+ this.toolFlashTheWholeNANDStripMenuItem.Name = "toolFlashTheWholeNANDStripMenuItem";
+ resources.ApplyResources(this.toolFlashTheWholeNANDStripMenuItem, "toolFlashTheWholeNANDStripMenuItem");
+ this.toolFlashTheWholeNANDStripMenuItem.Click += new System.EventHandler(this.toolFlashTheWholeNANDStripMenuItem_Click);
+ //
// modulesToolStripMenuItem
//
this.modulesToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -1036,10 +1050,9 @@
this.saveDumpFileDialog.FileName = "nand.bin";
resources.ApplyResources(this.saveDumpFileDialog, "saveDumpFileDialog");
//
- // toolStripMenuItem10
+ // openDumpFileDialog
//
- this.toolStripMenuItem10.Name = "toolStripMenuItem10";
- resources.ApplyResources(this.toolStripMenuItem10, "toolStripMenuItem10");
+ this.openDumpFileDialog.FileName = "...";
//
// MainForm
//
@@ -1205,6 +1218,8 @@
private System.Windows.Forms.ToolStripMenuItem sNESMiniToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem superFamicomMiniToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem10;
+ private System.Windows.Forms.ToolStripMenuItem toolFlashTheWholeNANDStripMenuItem;
+ private System.Windows.Forms.OpenFileDialog openDumpFileDialog;
}
}
diff --git a/MainForm.cs b/MainForm.cs
index f93b107b..08f0058b 100644
--- a/MainForm.cs
+++ b/MainForm.cs
@@ -229,6 +229,7 @@ namespace com.clusterrr.hakchi_gui
WorkerForm.GetMemoryStats();
new Thread(RecalculateSelectedGamesThread).Start();
+ /*
// It's good idea to sync time... or not?
// Requesting autoshutdown state
var autoshutdown = Clovershell.ExecuteSimple("cat /var/lib/clover/profiles/0/shutdown.txt");
@@ -243,6 +244,8 @@ namespace com.clusterrr.hakchi_gui
// Restoring automatic shutdown
if (autoshutdown != "0")
Clovershell.ExecuteSimple(string.Format("echo -n {0} > /var/lib/clover/profiles/0/shutdown.txt", autoshutdown));
+ */
+ // It was bad idea
}
catch (Exception ex)
{
@@ -780,6 +783,20 @@ namespace com.clusterrr.hakchi_gui
return workerForm.DialogResult == DialogResult.OK;
}
+ bool DoNandFlash()
+ {
+ openDumpFileDialog.FileName = "nand.bin";
+ openDumpFileDialog.DefaultExt = "bin";
+ if (openDumpFileDialog.ShowDialog() != DialogResult.OK)
+ return false;
+ var workerForm = new WorkerForm();
+ workerForm.Text = "...";
+ workerForm.Task = WorkerForm.Tasks.FlashNand;
+ workerForm.NandDump = openDumpFileDialog.FileName;
+ workerForm.Start();
+ return workerForm.DialogResult == DialogResult.OK;
+ }
+
bool DoNandBDump()
{
saveDumpFileDialog.FileName = "nandb.hsqs";
@@ -985,6 +1002,15 @@ namespace com.clusterrr.hakchi_gui
{
if (DoNandDump()) MessageBox.Show(Resources.NandDumped, Resources.Done, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
+
+ private void toolFlashTheWholeNANDStripMenuItem_Click(object sender, EventArgs e)
+ {
+ if (MessageBox.Show("...", Resources.AreYouSure, MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
+ == System.Windows.Forms.DialogResult.Yes)
+ {
+ DoNandFlash();
+ }
+ }
private void dumpNANDBToolStripMenuItem_Click(object sender, EventArgs e)
{
@@ -1576,5 +1602,6 @@ namespace com.clusterrr.hakchi_gui
MessageBox.Show(this, ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
+
}
}
diff --git a/MainForm.resx b/MainForm.resx
index 96a36186..23c9accb 100644
--- a/MainForm.resx
+++ b/MainForm.resx
@@ -118,7 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>164, 17</value>
+ <value>315, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="fileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
@@ -128,43 +128,53 @@
<value>&amp;File</value>
</data>
<data name="dumpKernelToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>260, 22</value>
+ <value>270, 22</value>
</data>
<data name="dumpKernelToolStripMenuItem.Text" xml:space="preserve">
<value>Dump kernel</value>
</data>
<data name="flashOriginalKernelToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>260, 22</value>
+ <value>270, 22</value>
</data>
<data name="flashOriginalKernelToolStripMenuItem.Text" xml:space="preserve">
<value>Flash original kernel</value>
</data>
<data name="flashCustomKernelToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>260, 22</value>
+ <value>270, 22</value>
</data>
<data name="flashCustomKernelToolStripMenuItem.Text" xml:space="preserve">
<value>Flash custom kernel</value>
</data>
<data name="toolStripMenuItem10.Size" type="System.Drawing.Size, System.Drawing">
- <value>257, 6</value>
+ <value>267, 6</value>
</data>
<data name="dumpTheWholeNANDToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>260, 22</value>
+ <value>270, 22</value>
</data>
<data name="dumpTheWholeNANDToolStripMenuItem.Text" xml:space="preserve">
<value>Dump the whole NAND flash</value>
</data>
+ <data name="toolFlashTheWholeNANDStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+ <value>270, 22</value>
+ </data>
+ <data name="toolFlashTheWholeNANDStripMenuItem.Text" xml:space="preserve">
+ <value>Flash the whole NAND (experts only!)</value>
+ </data>
+ <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="toolFlashTheWholeNANDStripMenuItem.Visible" type="System.Boolean, mscorlib">
+ <value>False</value>
+ </data>
<data name="dumpNANDBToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>260, 22</value>
+ <value>270, 22</value>
</data>
<data name="dumpNANDBToolStripMenuItem.Text" xml:space="preserve">
<value>Dump decrypted NAND-B partition</value>
</data>
<data name="toolStripMenuItem9.Size" type="System.Drawing.Size, System.Drawing">
- <value>257, 6</value>
+ <value>267, 6</value>
</data>
<data name="uninstallToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
- <value>260, 22</value>
+ <value>270, 22</value>
</data>
<data name="uninstallToolStripMenuItem.Text" xml:space="preserve">
<value>Uninstall</value>
@@ -205,7 +215,6 @@
<data name="menuStrip.Size" type="System.Drawing.Size, System.Drawing">
<value>609, 24</value>
</data>
- <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="menuStrip.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
@@ -1515,7 +1524,7 @@
<value>3</value>
</data>
<metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>256, 17</value>
+ <value>407, 17</value>
</metadata>
<data name="statusStrip.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 614</value>
@@ -1563,13 +1572,13 @@
<value>195, 16</value>
</data>
<metadata name="openFileDialogNes.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>349, 17</value>
+ <value>500, 17</value>
</metadata>
<data name="openFileDialogNes.Title" xml:space="preserve">
<value>Select NES file(s)</value>
</data>
<metadata name="contextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>487, 17</value>
+ <value>638, 17</value>
</metadata>
<data name="contextMenuStrip.Size" type="System.Drawing.Size, System.Drawing">
<value>141, 70</value>
@@ -1599,7 +1608,7 @@
<value>Delete game</value>
</data>
<metadata name="openFileDialogImage.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>771, 17</value>
+ <value>17, 98</value>
</metadata>
<data name="openFileDialogImage.Filter" xml:space="preserve">
<value>Images (*.bmp;*.png;*.jpg;*.jpeg;*.gif)|*.bmp;*.png;*.jpg;*.jpeg;*.gif|All files|*.*</value>
@@ -1701,10 +1710,10 @@
<value>0</value>
</data>
<metadata name="timerCalculateGames.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>620, 17</value>
+ <value>771, 17</value>
</metadata>
<metadata name="timerConnectionCheck.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
- <value>17, 98</value>
+ <value>168, 98</value>
</metadata>
<metadata name="saveDumpFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
@@ -1712,6 +1721,9 @@
<data name="saveDumpFileDialog.Title" xml:space="preserve">
<value>Select dump filename</value>
</data>
+ <metadata name="openDumpFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>164, 17</value>
+ </metadata>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@@ -2961,6 +2973,12 @@
<data name="&gt;&gt;flashCustomKernelToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
+ <data name="&gt;&gt;toolStripMenuItem10.Name" xml:space="preserve">
+ <value>toolStripMenuItem10</value>
+ </data>
+ <data name="&gt;&gt;toolStripMenuItem10.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
<data name="&gt;&gt;dumpTheWholeNANDToolStripMenuItem.Name" xml:space="preserve">
<value>dumpTheWholeNANDToolStripMenuItem</value>
</data>
@@ -2985,6 +3003,12 @@
<data name="&gt;&gt;uninstallToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
+ <data name="&gt;&gt;toolFlashTheWholeNANDStripMenuItem.Name" xml:space="preserve">
+ <value>toolFlashTheWholeNANDStripMenuItem</value>
+ </data>
+ <data name="&gt;&gt;toolFlashTheWholeNANDStripMenuItem.Type" xml:space="preserve">
+ <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </data>
<data name="&gt;&gt;modulesToolStripMenuItem.Name" xml:space="preserve">
<value>modulesToolStripMenuItem</value>
</data>
@@ -3429,11 +3453,11 @@
<data name="&gt;&gt;saveDumpFileDialog.Type" xml:space="preserve">
<value>System.Windows.Forms.SaveFileDialog, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
- <data name="&gt;&gt;toolStripMenuItem10.Name" xml:space="preserve">
- <value>toolStripMenuItem10</value>
+ <data name="&gt;&gt;openDumpFileDialog.Name" xml:space="preserve">
+ <value>openDumpFileDialog</value>
</data>
- <data name="&gt;&gt;toolStripMenuItem10.Type" xml:space="preserve">
- <value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ <data name="&gt;&gt;openDumpFileDialog.Type" xml:space="preserve">
+ <value>System.Windows.Forms.OpenFileDialog, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>MainForm</value>
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
index b14d0616..3ef96b86 100644
--- a/Properties/AssemblyInfo.cs
+++ b/Properties/AssemblyInfo.cs
@@ -33,6 +33,6 @@ using System.Resources;
// 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("2.0.18.10")]
-[assembly: AssemblyFileVersion("2.0.18.10")]
+[assembly: AssemblyVersion("2.0.18.11")]
+[assembly: AssemblyFileVersion("2.0.18.11")]
[assembly: NeutralResourcesLanguageAttribute("en-US")]
diff --git a/WorkerForm.cs b/WorkerForm.cs
index 67541eb0..11840c20 100644
--- a/WorkerForm.cs
+++ b/WorkerForm.cs
@@ -19,7 +19,7 @@ namespace com.clusterrr.hakchi_gui
{
public partial class WorkerForm : Form
{
- public enum Tasks { DumpKernel, FlashKernel, DumpNand, DumpNandB, Memboot, UploadGames, DownloadAllCovers, AddGames };
+ public enum Tasks { DumpKernel, FlashKernel, DumpNand, FlashNand, DumpNandB, Memboot, UploadGames, DownloadAllCovers, AddGames };
public Tasks Task;
//public string UBootDump;
public string KernelDump;
@@ -226,6 +226,9 @@ namespace com.clusterrr.hakchi_gui
case Tasks.DumpNand:
DoNandDump();
break;
+ case Tasks.FlashNand:
+ DoNandFlash();
+ break;
case Tasks.DumpNandB:
DoNandBDump();
break;
@@ -530,6 +533,47 @@ namespace com.clusterrr.hakchi_gui
File.WriteAllBytes(NandDump, kernel);
}
+ public void DoNandFlash()
+ {
+ int progress = 0;
+ const int maxProgress = 9605;
+ if (WaitForFelFromThread() != DialogResult.OK)
+ {
+ DialogResult = DialogResult.Abort;
+ return;
+ }
+ progress += 5;
+ SetProgress(progress, maxProgress);
+
+ var nand = File.ReadAllBytes(NandDump);
+ if (nand.Length != 512 *1024*1024)
+ throw new Exception("Invalid NAND size");
+
+ SetStatus("...");
+ fel.WriteFlash(0, nand,
+ delegate (Fel.CurrentAction action, string command)
+ {
+ switch (action)
+ {
+ case Fel.CurrentAction.RunningCommand:
+ SetStatus(Resources.ExecutingCommand + " " + command);
+ break;
+ case Fel.CurrentAction.WritingMemory:
+ SetStatus("...");
+ break;
+ }
+ progress++;
+ SetProgress(progress, maxProgress);
+ }
+ );
+
+ var shutdownCommand = "shutdown";
+ SetStatus(Resources.ExecutingCommand + " " + shutdownCommand);
+ fel.RunUbootCmd(shutdownCommand, true);
+ SetStatus(Resources.Done);
+ SetProgress(maxProgress, maxProgress);
+ }
+
public void DoNandBDump()
{
int progress = 0;
@@ -804,7 +848,7 @@ namespace com.clusterrr.hakchi_gui
else
kernel = File.ReadAllBytes(KernelDump);
var size = CalcKernelSize(kernel);
- if (size > kernel.Length || size > Fel.kernel_max_size)
+ if (size > kernel.Length || size > Fel.transfer_max_size)
throw new Exception(Resources.InvalidKernelSize + " " + size);
size = (size + Fel.sector_size - 1) / Fel.sector_size;
size = size * Fel.sector_size;
diff --git a/hakchi_gui.csproj b/hakchi_gui.csproj
index 0497fdb4..ad399156 100644
--- a/hakchi_gui.csproj
+++ b/hakchi_gui.csproj
@@ -31,8 +31,8 @@
<PublisherName>Alexey %27Cluster%27 Avdyukhin</PublisherName>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>index.html</WebPage>
- <ApplicationRevision>50</ApplicationRevision>
- <ApplicationVersion>2.0.17.50</ApplicationVersion>
+ <ApplicationRevision>11</ApplicationRevision>
+ <ApplicationVersion>2.0.18.11</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>
<PublishWizardCompleted>true</PublishWizardCompleted>