From 9c2ef235f166989d96903d196dfe30fe47461f52 Mon Sep 17 00:00:00 2001 From: Alexey 'Cluster' Avdyukhin Date: Sat, 14 Oct 2017 15:58:04 +0300 Subject: NAND-C partition dump feature, autoupdate moved --- MainForm.Designer.cs | 9 + MainForm.bg-BG.resx | 3 + MainForm.ca-ES.resx | 3 + MainForm.cs | 20 ++ MainForm.da-DK.resx | 3 + MainForm.de-DE.resx | 3 + MainForm.el-GR.resx | 3 + MainForm.en-GB.resx | 3 + MainForm.es-AR.resx | 3 + MainForm.es-ES.resx | 3 + MainForm.fi-FI.resx | 3 + MainForm.fr-FR.resx | 3 + MainForm.hu-HU.resx | 3 + MainForm.id-ID.resx | 3 + MainForm.it-IT.resx | 3 + MainForm.ja-JP.resx | 3 + MainForm.nl.resx | 3 + MainForm.pl-PL.resx | 3 + MainForm.pt-BR.resx | 3 + MainForm.pt-PT.resx | 3 + MainForm.resx | 732 +++++++++++++++++++++++++++++++-------------- MainForm.ro-RO.resx | 3 + MainForm.ru-RU.resx | 3 + MainForm.sk-SK.resx | 3 + MainForm.sv-SE.resx | 3 + MainForm.uk-UA.resx | 3 + MainForm.zh-CHS.resx | 3 + MainForm.zh-CHT.resx | 3 + MainForm.zh-TW.resx | 3 + Properties/AssemblyInfo.cs | 4 +- WorkerForm.cs | 34 ++- hakchi_gui.csproj | 6 +- 32 files changed, 648 insertions(+), 235 deletions(-) diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index d49a4f47..0fadb102 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -163,6 +163,7 @@ this.openDumpFileDialog = new System.Windows.Forms.OpenFileDialog(); this.listViewGames = new System.Windows.Forms.ListView(); this.gameName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.dumpNANDCPartitionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.menuStrip.SuspendLayout(); this.groupBoxOptions.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBoxArt)).BeginInit(); @@ -262,6 +263,7 @@ this.dumpTheWholeNANDToolStripMenuItem, this.toolFlashTheWholeNANDStripMenuItem, this.dumpNANDBToolStripMenuItem, + this.dumpNANDCPartitionToolStripMenuItem, this.toolStripMenuItem9, this.uninstallToolStripMenuItem}); this.kernelToolStripMenuItem.Name = "kernelToolStripMenuItem"; @@ -1115,6 +1117,12 @@ // resources.ApplyResources(this.gameName, "gameName"); // + // dumpNANDCPartitionToolStripMenuItem + // + this.dumpNANDCPartitionToolStripMenuItem.Name = "dumpNANDCPartitionToolStripMenuItem"; + resources.ApplyResources(this.dumpNANDCPartitionToolStripMenuItem, "dumpNANDCPartitionToolStripMenuItem"); + this.dumpNANDCPartitionToolStripMenuItem.Click += new System.EventHandler(this.dumpNANDCPartitionToolStripMenuItem_Click); + // // MainForm // this.AllowDrop = true; @@ -1288,6 +1296,7 @@ private System.Windows.Forms.ToolStripMenuItem decompressSelectedGamesToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem downloadBoxArtForSelectedGamesToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem donateToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem dumpNANDCPartitionToolStripMenuItem; } } diff --git a/MainForm.bg-BG.resx b/MainForm.bg-BG.resx index 5f8673be..4c55b82b 100644 --- a/MainForm.bg-BG.resx +++ b/MainForm.bg-BG.resx @@ -307,6 +307,9 @@ Dump decrypted NAND-B partition + + Dump NAND-C partition + Dump the whole NAND flash diff --git a/MainForm.ca-ES.resx b/MainForm.ca-ES.resx index d25b8334..2060f5ee 100644 --- a/MainForm.ca-ES.resx +++ b/MainForm.ca-ES.resx @@ -136,6 +136,9 @@ Bolcar la partició NAND-B desencriptada + + Bolcar la partició NAND-C desencriptada + Bolcar tota la NAND diff --git a/MainForm.cs b/MainForm.cs index e96dd007..48afef65 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -926,6 +926,20 @@ namespace com.clusterrr.hakchi_gui return workerForm.DialogResult == DialogResult.OK; } + bool DoNandCDump() + { + saveDumpFileDialog.FileName = "nandc.hsqs"; + saveDumpFileDialog.DefaultExt = "hsqs"; + if (saveDumpFileDialog.ShowDialog() != DialogResult.OK) + return false; + var workerForm = new WorkerForm(this); + workerForm.Text = Resources.DumpingNand; + workerForm.Task = WorkerForm.Tasks.DumpNandC; + workerForm.NandDump = saveDumpFileDialog.FileName; + workerForm.Start(); + return workerForm.DialogResult == DialogResult.OK; + } + bool FlashCustomKernel() { var workerForm = new WorkerForm(this); @@ -1122,6 +1136,12 @@ namespace com.clusterrr.hakchi_gui if (DoNandBDump()) MessageBox.Show(Resources.NandDumped, Resources.Done, MessageBoxButtons.OK, MessageBoxIcon.Information); } + private void dumpNANDCPartitionToolStripMenuItem_Click(object sender, EventArgs e) + { + if (RequirePatchedKernel() == DialogResult.No) return; + if (DoNandCDump()) MessageBox.Show(Resources.NandDumped, Resources.Done, MessageBoxButtons.OK, MessageBoxIcon.Information); + } + private void flashCustomKernelToolStripMenuItem_Click(object sender, EventArgs e) { if (MessageBox.Show(Resources.CustomKernelQ, Resources.AreYouSure, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) diff --git a/MainForm.da-DK.resx b/MainForm.da-DK.resx index acd4eb57..26d7e2d1 100644 --- a/MainForm.da-DK.resx +++ b/MainForm.da-DK.resx @@ -277,6 +277,9 @@ Dump decrypted NAND-B partition + + Dump NAND-C partition + Dump the whole NAND flash diff --git a/MainForm.de-DE.resx b/MainForm.de-DE.resx index d54093f7..65dd3936 100644 --- a/MainForm.de-DE.resx +++ b/MainForm.de-DE.resx @@ -136,6 +136,9 @@ Verschlüsselten NAND-B Bereich lesen + + Verschlüsselten NAND-C Bereich lesen + Die ganze NAND-Speicher auslesen. diff --git a/MainForm.el-GR.resx b/MainForm.el-GR.resx index e9e1e207..1554622b 100644 --- a/MainForm.el-GR.resx +++ b/MainForm.el-GR.resx @@ -136,6 +136,9 @@ Αποθήκευση αποκρυπτογραφημένου NAND-B partition + + Αποθήκευση αποκρυπτογραφημένου NAND-C partition + Αποθήκευση ολόκληρης της NAND flash diff --git a/MainForm.en-GB.resx b/MainForm.en-GB.resx index e46199bb..632981a2 100644 --- a/MainForm.en-GB.resx +++ b/MainForm.en-GB.resx @@ -136,6 +136,9 @@ Dump decrypted NAND-B partition + + Dump NAND-C partition + Dump the whole NAND flash diff --git a/MainForm.es-AR.resx b/MainForm.es-AR.resx index e668bf14..6b2f9bdb 100644 --- a/MainForm.es-AR.resx +++ b/MainForm.es-AR.resx @@ -136,6 +136,9 @@ Volcar partición decifrada NAND-B + + Volcar partición decifrada NAND-C + Volcar toda la flash NAND diff --git a/MainForm.es-ES.resx b/MainForm.es-ES.resx index 238e55f9..0c9b8687 100644 --- a/MainForm.es-ES.resx +++ b/MainForm.es-ES.resx @@ -136,6 +136,9 @@ Volcar la partición NAND-B desencriptada + + Volcar la partición NAND-C desencriptada + Volcar toda la memoria flash NAND diff --git a/MainForm.fi-FI.resx b/MainForm.fi-FI.resx index b1e2024e..4d47ce0a 100644 --- a/MainForm.fi-FI.resx +++ b/MainForm.fi-FI.resx @@ -136,6 +136,9 @@ Dumppaa purettu NAND-B-osio + + Dumppaa purettu NAND-C-osio + Dumppaa koko NAND-muisti diff --git a/MainForm.fr-FR.resx b/MainForm.fr-FR.resx index d986a19a..3094ddd9 100644 --- a/MainForm.fr-FR.resx +++ b/MainForm.fr-FR.resx @@ -136,6 +136,9 @@ Décoder la partition NAND-B + + Décoder la partition NAND-C + Sauvegarde complète de la mémoire flash NAND diff --git a/MainForm.hu-HU.resx b/MainForm.hu-HU.resx index f76e6fcf..0257398b 100644 --- a/MainForm.hu-HU.resx +++ b/MainForm.hu-HU.resx @@ -265,6 +265,9 @@ Dump decrypted NAND-B partition + + Dump NAND-C partition + Dump the whole NAND flash diff --git a/MainForm.id-ID.resx b/MainForm.id-ID.resx index ea3a915d..e57b9217 100644 --- a/MainForm.id-ID.resx +++ b/MainForm.id-ID.resx @@ -136,6 +136,9 @@ Dump terdekripsi partisi NAND-B + + Dump terdekripsi partisi NAND-C + Dump seluruh flash NAND diff --git a/MainForm.it-IT.resx b/MainForm.it-IT.resx index dfc54310..6badd53a 100644 --- a/MainForm.it-IT.resx +++ b/MainForm.it-IT.resx @@ -136,6 +136,9 @@ Dump della partizione NAND-B decriptata + + Dump della partizione NAND-C decriptata + Dump dell'intera memoria flash NAND diff --git a/MainForm.ja-JP.resx b/MainForm.ja-JP.resx index bbd226f4..ae379566 100644 --- a/MainForm.ja-JP.resx +++ b/MainForm.ja-JP.resx @@ -133,6 +133,9 @@ 復号化されたNAND-Bパーティションをダンプ + + 復号化されたNAND-Cパーティションをダンプ + NAND型フラッシュメモリ全体をダンプする diff --git a/MainForm.nl.resx b/MainForm.nl.resx index cce75c9d..925dea38 100644 --- a/MainForm.nl.resx +++ b/MainForm.nl.resx @@ -136,6 +136,9 @@ Dump de gedecodeerde NAND-B partitie + + Dump de gedecodeerde NAND-C partitie + Dump de gehele NAND flash diff --git a/MainForm.pl-PL.resx b/MainForm.pl-PL.resx index b164c7db..c0a3ffd7 100644 --- a/MainForm.pl-PL.resx +++ b/MainForm.pl-PL.resx @@ -136,6 +136,9 @@ Zgraj odszyfrowaną partycję NAND-B + + Zgraj odszyfrowaną partycję NAND-C + Zgraj całość pamięci NAND diff --git a/MainForm.pt-BR.resx b/MainForm.pt-BR.resx index 7bed5389..854948a6 100644 --- a/MainForm.pt-BR.resx +++ b/MainForm.pt-BR.resx @@ -133,6 +133,9 @@ Obter a partição NAND-B descriptografada + + Obter a partição NAND-C descriptografada + Obter toda a NAND flash diff --git a/MainForm.pt-PT.resx b/MainForm.pt-PT.resx index 41dfcb3c..010503f8 100644 --- a/MainForm.pt-PT.resx +++ b/MainForm.pt-PT.resx @@ -307,6 +307,9 @@ Dump decrypted NAND-B partition + + Dump NAND-C partition + Dump the whole NAND flash diff --git a/MainForm.resx b/MainForm.resx index c3bbcb89..e3f8a96f 100644 --- a/MainForm.resx +++ b/MainForm.resx @@ -120,65 +120,7 @@ 315, 17 - - - Ctrl+O - - - 208, 22 - - - Add more &games - - - 139, 6 - - - 142, 22 - - - Add preset - - - 142, 22 - - - Delete preset - - - 208, 22 - - - Selection presets - - - F5 - - - 208, 22 - - - Synchronize - - - Ctrl+F - - - 208, 22 - - - Search - - - 205, 6 - - - 208, 22 - - - &Exit - 37, 20 @@ -243,6 +185,12 @@ Dump decrypted NAND-B partition + + 270, 22 + + + Dump NAND-C partition + 267, 6 @@ -258,6 +206,112 @@ &Kernel + + 65, 20 + + + &Modules + + + 61, 20 + + + &Settings + + + 47, 20 + + + &Tools + + + 44, 20 + + + &Help + + + 0, 0 + + + 609, 24 + + + 1 + + + menuStrip + + + menuStrip + + + System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 5 + + + + Ctrl+O + + + 208, 22 + + + Add more &games + + + 208, 22 + + + Selection presets + + + 139, 6 + + + 142, 22 + + + Add preset + + + 142, 22 + + + Delete preset + + + F5 + + + 208, 22 + + + Synchronize + + + Ctrl+F + + + 208, 22 + + + Search + + + 205, 6 + + + 208, 22 + + + &Exit + 197, 22 @@ -270,12 +324,6 @@ Uninstall extra modules - - 65, 20 - - - &Modules - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAA0BJREFUOE91 @@ -302,6 +350,12 @@ Language + + 327, 22 + + + Console type + 184, 22 @@ -326,11 +380,11 @@ Super Famicom Mini - + 327, 22 - - Console type + + Pages/folders structure 356, 22 @@ -395,6 +449,12 @@ Original games in root -> Folders, split by first letter + + 356, 22 + + + Maximum games per page/folder + 92, 22 @@ -467,12 +527,6 @@ 100 - - 356, 22 - - - Maximum games per page/folder - 353, 6 @@ -482,11 +536,11 @@ Custom - show Folders Manager every time - + 327, 22 - - Pages/folders structure + + Controller hacks 308, 22 @@ -518,12 +572,6 @@ "Up+A+B = Start" on 2nd controller - - 327, 22 - - - Controller hacks - 327, 22 @@ -560,12 +608,6 @@ Save settings to NES/SNES Mini now - - 61, 20 - - - &Settings - 331, 22 @@ -587,98 +629,350 @@ 331, 22 - - Open FTP client + + Open FTP client + + + 328, 6 + + + 331, 22 + + + Shell server on telnet://127.0.0.1:1023 (login:root) + + + False + + + 331, 22 + + + Open Telnet client + + + 328, 6 + + + 331, 22 + + + Take screenshot + + + 246, 22 + + + GitHub page with actual releases + + + 246, 22 + + + FAQ + + + 246, 22 + + + Donate + + + 246, 22 + + + About... + + + None + + + labelSize + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 0 + + + checkBoxCompressed + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 1 + + + buttonShowGameGenieDatabase + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 2 + + + maskedTextBoxReleaseDate + + + System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 3 + + + label1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 4 + + + textBoxGameGenie + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 5 + + + label7 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 6 + + + label6 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 7 + + + radioButtonTwoSim + + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 8 + + + buttonGoogle + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 9 + + + buttonBrowseImage + + + System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 10 + + + pictureBoxArt + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 11 + + + label4 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 12 + + + textBoxArguments + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 13 + + + label3 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 14 + + + textBoxPublisher + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions + + + 15 + + + label2 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxOptions - - 328, 6 + + 16 - - 331, 22 + + radioButtonTwo - - Shell server on telnet://127.0.0.1:1023 (login:root) + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - False + + groupBoxOptions - - 331, 22 + + 17 - - Open Telnet client + + radioButtonOne - - 328, 6 + + System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 331, 22 + + groupBoxOptions - - Take screenshot + + 18 - - 47, 20 + + textBoxName - - &Tools + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 246, 22 + + groupBoxOptions - - GitHub page with actual releases + + 19 - - 246, 22 + + labelName - - FAQ + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 246, 22 + + groupBoxOptions - - Donate + + 20 - - 246, 22 + + labelID - - About... + + System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 44, 20 + + groupBoxOptions - - &Help + + 21 - - 0, 0 + + 306, 27 - - 609, 24 + + 293, 529 - - 1 + + 4 - - menuStrip + + Game options - - menuStrip + + groupBoxOptions - - System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + $this - - 5 - - - None + + 6 NoControl @@ -1244,30 +1538,6 @@ 21 - - 306, 27 - - - 293, 529 - - - 4 - - - Game options - - - groupBoxOptions - - - System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 6 - None @@ -1328,27 +1598,6 @@ 407, 17 - - False - - - 16, 17 - - - False - - - 195, 17 - - - False - - - 195, 17 - - - 195, 16 - 0, 614 @@ -1373,6 +1622,27 @@ 2 + + False + + + 16, 17 + + + False + + + 195, 17 + + + False + + + 195, 17 + + + 195, 16 + 500, 17 @@ -1382,6 +1652,15 @@ 638, 17 + + 270, 92 + + + contextMenuStrip + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 269, 22 @@ -1409,15 +1688,6 @@ Delete selected games - - 270, 92 - - - contextMenuStrip - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - 17, 98 @@ -1457,18 +1727,6 @@ None - - Top, Bottom, Left, Right - - - 5, 49 - - - 282, 454 - - - 3 - checkedListBoxDefaultGames @@ -1508,6 +1766,30 @@ 7 + + Top, Bottom, Left, Right + + + 5, 49 + + + 282, 454 + + + 3 + + + checkedListBoxDefaultGames + + + System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + groupBoxDefaultGames + + + 0 + 771, 17 @@ -1526,12 +1808,6 @@ None - - Game name - - - 253 - 12, 57 @@ -1553,6 +1829,12 @@ 8 + + Game name + + + 253 + True @@ -3318,6 +3600,12 @@ System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + dumpNANDCPartitionToolStripMenuItem + + + System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + MainForm diff --git a/MainForm.ro-RO.resx b/MainForm.ro-RO.resx index 4a476e81..3b9b989a 100644 --- a/MainForm.ro-RO.resx +++ b/MainForm.ro-RO.resx @@ -169,6 +169,9 @@ Dump decrypted NAND-B partition + + Dump NAND-C partition + Dump the whole NAND flash diff --git a/MainForm.ru-RU.resx b/MainForm.ru-RU.resx index 26fdb0a5..4d59af04 100644 --- a/MainForm.ru-RU.resx +++ b/MainForm.ru-RU.resx @@ -136,6 +136,9 @@ Прочитать расшифрованный NAND-B раздел + + Прочитать NAND-C раздел + Прочитать всю NAND память diff --git a/MainForm.sk-SK.resx b/MainForm.sk-SK.resx index 2e04f162..7fceeaf6 100644 --- a/MainForm.sk-SK.resx +++ b/MainForm.sk-SK.resx @@ -307,6 +307,9 @@ Dump decrypted NAND-B partition + + Dump NAND-C partition + Dump the whole NAND flash diff --git a/MainForm.sv-SE.resx b/MainForm.sv-SE.resx index a1d6a903..a48f88b3 100644 --- a/MainForm.sv-SE.resx +++ b/MainForm.sv-SE.resx @@ -307,6 +307,9 @@ Dump decrypted NAND-B partition + + Dump NAND-C partition + Dump the whole NAND flash diff --git a/MainForm.uk-UA.resx b/MainForm.uk-UA.resx index 56eceae8..cd604a52 100644 --- a/MainForm.uk-UA.resx +++ b/MainForm.uk-UA.resx @@ -307,6 +307,9 @@ Dump decrypted NAND-B partition + + Dump NAND-C partition + Dump the whole NAND flash diff --git a/MainForm.zh-CHS.resx b/MainForm.zh-CHS.resx index 8c919ae4..96bf48c2 100644 --- a/MainForm.zh-CHS.resx +++ b/MainForm.zh-CHS.resx @@ -136,6 +136,9 @@ 导出解密的NAND-B分区 + + 导出解密的NAND-C分区 + 导出完整的NAND闪存... diff --git a/MainForm.zh-CHT.resx b/MainForm.zh-CHT.resx index f7a267e9..852e0177 100644 --- a/MainForm.zh-CHT.resx +++ b/MainForm.zh-CHT.resx @@ -307,6 +307,9 @@ Dump decrypted NAND-B partition + + Dump NAND-C partition + Dump the whole NAND flash diff --git a/MainForm.zh-TW.resx b/MainForm.zh-TW.resx index f7a267e9..852e0177 100644 --- a/MainForm.zh-TW.resx +++ b/MainForm.zh-TW.resx @@ -307,6 +307,9 @@ Dump decrypted NAND-B partition + + Dump NAND-C partition + Dump the whole NAND flash diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 0cb7823a..905e639f 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.21.43")] -[assembly: AssemblyFileVersion("2.0.21.43")] +[assembly: AssemblyVersion("2.0.21.50")] +[assembly: AssemblyFileVersion("2.0.21.50")] [assembly: NeutralResourcesLanguageAttribute("en-US")] diff --git a/WorkerForm.cs b/WorkerForm.cs index 25006c32..06311acf 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, FlashNand, DumpNandB, Memboot, UploadGames, DownloadCovers, AddGames, CompressGames, DecompressGames, DeleteGames }; + public enum Tasks { DumpKernel, FlashKernel, DumpNand, FlashNand, DumpNandB, DumpNandC, Memboot, UploadGames, DownloadCovers, AddGames, CompressGames, DecompressGames, DeleteGames }; public Tasks Task; //public string UBootDump; public static string KernelDumpPath @@ -287,7 +287,8 @@ namespace com.clusterrr.hakchi_gui DoNandFlash(); break; case Tasks.DumpNandB: - DoNandBDump(); + case Tasks.DumpNandC: + DoPartitionDump(Task); break; case Tasks.UploadGames: UploadGames(); @@ -693,10 +694,10 @@ namespace com.clusterrr.hakchi_gui SetProgress(maxProgress, maxProgress); } - public void DoNandBDump() + public void DoPartitionDump(Tasks task) { int progress = 0; - int maxProgress = 30; + int maxProgress = 500; var clovershell = MainForm.Clovershell; try { @@ -710,8 +711,17 @@ namespace com.clusterrr.hakchi_gui ShowSplashScreen(); - var nandbSize = int.Parse(clovershell.ExecuteSimple("df / | tail -n 1 | awk '{ print $2 }'")); - maxProgress = 5 + nandbSize / 1024; + var partitionSize = 0; + switch (task) + { + case Tasks.DumpNandB: + partitionSize = int.Parse(clovershell.ExecuteSimple("df /dev/mapper/root-crypt | tail -n 1 | awk '{ print $2 }'")); + break; + case Tasks.DumpNandC: + partitionSize = int.Parse(clovershell.ExecuteSimple("df /dev/nandc | tail -n 1 | awk '{ print $2 }'")); + break; + } + maxProgress = 5 + (int)Math.Ceiling(partitionSize / 1024.0 * 1.05); SetProgress(progress, maxProgress); SetStatus(Resources.DumpingNand); @@ -719,10 +729,18 @@ namespace com.clusterrr.hakchi_gui { file.OnProgress += delegate (long Position, long Length) { - progress = (int)(5 + Position / 1024); + progress = (int)(5 + Position / 1024 / 1024); SetProgress(progress, maxProgress); }; - clovershell.Execute("dd if=/dev/mapper/root-crypt", null, file); + switch (task) + { + case Tasks.DumpNandB: + clovershell.Execute("dd if=/dev/mapper/root-crypt", null, file); + break; + case Tasks.DumpNandC: + clovershell.Execute("dd if=/dev/nandc", null, file); + break; + } file.Close(); } diff --git a/hakchi_gui.csproj b/hakchi_gui.csproj index b291eb79..2b90373a 100644 --- a/hakchi_gui.csproj +++ b/hakchi_gui.csproj @@ -25,14 +25,14 @@ false false false - http://clusterrr.com/soft/hakchi2/ + http://software.clusterrr.com/hakchi2/ http://clusterrr.com hakchi2 Alexey %27Cluster%27 Avdyukhin true index.html - 43 - 2.0.21.43 + 50 + 2.0.21.50 false true true -- cgit v1.2.3