From c5a8ab84bb9f80e2fa05f2270750ea1fdc5bf291 Mon Sep 17 00:00:00 2001 From: dosomder Date: Sat, 6 Dec 2014 12:33:36 +0100 Subject: [PATCH] Release v0.8 * Add the ability to include additional flashable zip files * Display information when clicking on version number --- PrerootedCreator/ExtraFiles.cs | 22 ++++- PrerootedCreator/Form1.Designer.cs | 78 ++++++++++++++++-- PrerootedCreator/Form1.cs | 40 ++++++++- PrerootedCreator/Job.cs | 14 +++- PrerootedCreator/Resources/flashable.zip | Bin 1225185 -> 1225223 bytes .../com/google/android/updater-script-names | 3 + .../com/google/android/updater-script-uuid | 3 + 7 files changed, 150 insertions(+), 10 deletions(-) diff --git a/PrerootedCreator/ExtraFiles.cs b/PrerootedCreator/ExtraFiles.cs index 4fb9e4f..ec2be06 100644 --- a/PrerootedCreator/ExtraFiles.cs +++ b/PrerootedCreator/ExtraFiles.cs @@ -27,6 +27,27 @@ public static void AddExtraFiles(BackgroundWorker worker, string name, string ft } } + public static void AddExtraFlashable(BackgroundWorker worker, string filename, string ftffile) + { + Logger.WriteLog("Adding flashable zip: " + Path.GetFileName(filename)); + string fixedname = Path.GetFileName(filename).Replace(' ', '_'); + + string cmd = "\n# " + fixedname + "\n" + + "if\n" + + "\tpackage_extract_file(\"" + fixedname + "\", \"/tmp/" + fixedname + "\") == \"t\"\n" + + "then\n" + + "\trun_program(\"/tmp/busybox\", \"mkdir\", \"/tmp/" + Path.GetFileNameWithoutExtension(fixedname) + "_extracted" + "\");\n" + + "\trun_program(\"/tmp/busybox\", \"unzip\", \"-d\", \"/tmp/" + Path.GetFileNameWithoutExtension(fixedname) + "_extracted" + "\", \"/tmp/" + fixedname + "\");\n" + + "\tset_perm(0, 0, 0755, \"/tmp/" + Path.GetFileNameWithoutExtension(fixedname) + "_extracted" + "/META-INF/com/google/android/update-binary\");\n" + + "\trun_program(\"/tmp/" + Path.GetFileNameWithoutExtension(fixedname) + "_extracted" + "/META-INF/com/google/android/update-binary\", file_getprop(\"/tmp/prfargs\", \"version\"), file_getprop(\"/tmp/prfargs\", \"outfile\"), \"/tmp/" + fixedname + "\");\n" + + "\tdelete_recursive(\"/tmp/" + Path.GetFileNameWithoutExtension(fixedname) + "_extracted" + "\");\n" + + "\tdelete(\"/tmp/" + fixedname + "\");\n" + + "endif;\n" + + "#InsertExtra\n"; + Utility.EditScript(worker, "#InsertExtra", cmd); + Zipping.AddToZip(worker, "flashable.zip", filename, fixedname, false); + } + private static void AddKernel(BackgroundWorker worker, string ftffile) { ExtractAndAdd(worker, "kernel", ".elf", ftffile, "boot"); @@ -76,7 +97,6 @@ private static void ExtractAndAdd(BackgroundWorker worker, string name, string e Zipping.UnzipFile(worker, ftffile, name + ".sin", string.Empty, System.IO.Path.GetTempPath(), false); if (File.Exists(System.IO.Path.GetTempPath() + "\\" + name + ".sin")) { - //Logger.WriteLog("Adding " + name + " to zip"); Logger.WriteLog(" " + name); SinExtract.ExtractSin(worker, System.IO.Path.GetTempPath() + "\\" + name + ".sin", System.IO.Path.GetTempPath() + "\\" + name + extension, false); diff --git a/PrerootedCreator/Form1.Designer.cs b/PrerootedCreator/Form1.Designer.cs index 57a780b..36a7568 100644 --- a/PrerootedCreator/Form1.Designer.cs +++ b/PrerootedCreator/Form1.Designer.cs @@ -49,11 +49,17 @@ private void InitializeComponent() this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.add_extra_button = new System.Windows.Forms.Button(); + this.remove_extra_button = new System.Windows.Forms.Button(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.extra_listbox = new System.Windows.Forms.ListBox(); + this.extra_lbl = new System.Windows.Forms.Label(); this.include_checklist = new PRFCreator.CustomCheckedListBox(); this.options_checklist = new PRFCreator.CustomCheckedListBox(); this.groupBox1.SuspendLayout(); this.groupBox2.SuspendLayout(); this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); this.SuspendLayout(); // // ftf_label @@ -117,7 +123,7 @@ private void InitializeComponent() // // create_button // - this.create_button.Location = new System.Drawing.Point(518, 294); + this.create_button.Location = new System.Drawing.Point(518, 394); this.create_button.Name = "create_button"; this.create_button.Size = new System.Drawing.Size(79, 23); this.create_button.TabIndex = 8; @@ -129,7 +135,7 @@ private void InitializeComponent() // this.status_textbox.BackColor = System.Drawing.SystemColors.ControlLightLight; this.status_textbox.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.status_textbox.Location = new System.Drawing.Point(15, 162); + this.status_textbox.Location = new System.Drawing.Point(15, 262); this.status_textbox.Name = "status_textbox"; this.status_textbox.ReadOnly = true; this.status_textbox.Size = new System.Drawing.Size(582, 129); @@ -138,7 +144,7 @@ private void InitializeComponent() // // progressBar // - this.progressBar.Location = new System.Drawing.Point(15, 297); + this.progressBar.Location = new System.Drawing.Point(15, 397); this.progressBar.Name = "progressBar"; this.progressBar.Size = new System.Drawing.Size(435, 16); this.progressBar.TabIndex = 10; @@ -151,6 +157,7 @@ private void InitializeComponent() this.version_label.Name = "version_label"; this.version_label.Size = new System.Drawing.Size(0, 12); this.version_label.TabIndex = 11; + this.version_label.Click += new System.EventHandler(this.versionlbl_Click); // // rec_textbox // @@ -184,7 +191,7 @@ private void InitializeComponent() // this.job_label.AutoSize = true; this.job_label.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.job_label.Location = new System.Drawing.Point(457, 297); + this.job_label.Location = new System.Drawing.Point(457, 397); this.job_label.Name = "job_label"; this.job_label.Size = new System.Drawing.Size(30, 15); this.job_label.TabIndex = 15; @@ -194,7 +201,7 @@ private void InitializeComponent() // this.jobnum_label.AutoSize = true; this.jobnum_label.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.jobnum_label.Location = new System.Drawing.Point(485, 297); + this.jobnum_label.Location = new System.Drawing.Point(485, 397); this.jobnum_label.Name = "jobnum_label"; this.jobnum_label.Size = new System.Drawing.Size(0, 15); this.jobnum_label.TabIndex = 16; @@ -246,6 +253,56 @@ private void InitializeComponent() this.groupBox3.TabIndex = 23; this.groupBox3.TabStop = false; // + // add_extra_button + // + this.add_extra_button.Location = new System.Drawing.Point(495, 30); + this.add_extra_button.Name = "add_extra_button"; + this.add_extra_button.Size = new System.Drawing.Size(75, 23); + this.add_extra_button.TabIndex = 25; + this.add_extra_button.Text = "Add"; + this.add_extra_button.UseVisualStyleBackColor = true; + this.add_extra_button.Click += new System.EventHandler(this.add_extra_button_Click); + // + // remove_extra_button + // + this.remove_extra_button.Location = new System.Drawing.Point(495, 63); + this.remove_extra_button.Name = "remove_extra_button"; + this.remove_extra_button.Size = new System.Drawing.Size(75, 23); + this.remove_extra_button.TabIndex = 26; + this.remove_extra_button.Text = "Remove"; + this.remove_extra_button.UseVisualStyleBackColor = true; + this.remove_extra_button.Click += new System.EventHandler(this.remove_extra_button_Click); + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.extra_listbox); + this.groupBox4.Controls.Add(this.extra_lbl); + this.groupBox4.Controls.Add(this.remove_extra_button); + this.groupBox4.Controls.Add(this.add_extra_button); + this.groupBox4.Location = new System.Drawing.Point(15, 157); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(582, 94); + this.groupBox4.TabIndex = 27; + this.groupBox4.TabStop = false; + // + // extra_listbox + // + this.extra_listbox.FormattingEnabled = true; + this.extra_listbox.Location = new System.Drawing.Point(6, 30); + this.extra_listbox.Name = "extra_listbox"; + this.extra_listbox.Size = new System.Drawing.Size(474, 56); + this.extra_listbox.TabIndex = 28; + // + // extra_lbl + // + this.extra_lbl.AutoSize = true; + this.extra_lbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.75F); + this.extra_lbl.Location = new System.Drawing.Point(6, 10); + this.extra_lbl.Name = "extra_lbl"; + this.extra_lbl.Size = new System.Drawing.Size(55, 15); + this.extra_lbl.TabIndex = 15; + this.extra_lbl.Text = "Extra Zip"; + // // include_checklist // this.include_checklist.AccessibleDescription = ""; @@ -283,7 +340,8 @@ private void InitializeComponent() // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(611, 326); + this.ClientSize = new System.Drawing.Size(611, 426); + this.Controls.Add(this.groupBox4); this.Controls.Add(this.version_label); this.Controls.Add(this.groupBox2); this.Controls.Add(this.groupBox3); @@ -295,7 +353,6 @@ private void InitializeComponent() this.Controls.Add(this.job_label); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(627, 365); this.MinimumSize = new System.Drawing.Size(627, 365); this.Name = "Form1"; this.Text = "PRFCreator"; @@ -305,6 +362,8 @@ private void InitializeComponent() this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); this.groupBox3.ResumeLayout(false); + this.groupBox4.ResumeLayout(false); + this.groupBox4.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -334,6 +393,11 @@ private void InitializeComponent() private System.Windows.Forms.GroupBox groupBox2; public CustomCheckedListBox options_checklist; private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Button add_extra_button; + private System.Windows.Forms.Button remove_extra_button; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Label extra_lbl; + public System.Windows.Forms.ListBox extra_listbox; } } diff --git a/PrerootedCreator/Form1.cs b/PrerootedCreator/Form1.cs index 7ced3be..075a458 100644 --- a/PrerootedCreator/Form1.cs +++ b/PrerootedCreator/Form1.cs @@ -18,7 +18,7 @@ public Form1() private void Form1_Load(object sender, EventArgs e) { - version_label.Text = "v0.7"; + version_label.Text = "v0.8"; openFileDialog1.FileName = string.Empty; openFileDialog1.Multiselect = false; @@ -53,6 +53,12 @@ private void su_button_Click(object sender, EventArgs e) openFileDialog1.FileName = string.Empty; } + private void versionlbl_Click(object sender, EventArgs e) + { + MessageBox.Show("PRFCreator " + version_label.Text + "\n\nCreated by zxz0O0\nThanks to Androxyde, [NUT], E:V:A and dotnetzip developers\n" + + "See xda-developers.com for more informations", "PRFCreator"); + } + private void create_button_Click(object sender, EventArgs e) { if (isWorking) @@ -116,6 +122,14 @@ public void ControlsEnabled(bool Enabled) options_checklist.Invoke(new MethodInvoker(delegate { options_checklist.Enabled = Enabled; })); else options_checklist.Enabled = Enabled; + if (add_extra_button.InvokeRequired) + add_extra_button.Invoke(new MethodInvoker(delegate { add_extra_button.Enabled = Enabled; })); + else + add_extra_button.Enabled = Enabled; + if (remove_extra_button.InvokeRequired) + remove_extra_button.Invoke(new MethodInvoker(delegate { remove_extra_button.Enabled = Enabled; })); + else + remove_extra_button.Enabled = Enabled; } private void dr_button_Click(object sender, EventArgs e) @@ -131,5 +145,29 @@ private void dr_button_Click(object sender, EventArgs e) rec_textbox.Text = openFileDialog1.FileName; openFileDialog1.FileName = string.Empty; } + + private void add_extra_button_Click(object sender, EventArgs e) + { + if (isWorking) + return; + + openFileDialog1.Filter = "Zip Files|*.zip|All files|*"; + DialogResult result = openFileDialog1.ShowDialog(); + if (result != DialogResult.OK) + return; + + if (!extra_listbox.Items.Contains(openFileDialog1.FileName)) + extra_listbox.Items.Add(openFileDialog1.FileName); + + openFileDialog1.FileName = string.Empty; + } + + private void remove_extra_button_Click(object sender, EventArgs e) + { + if (isWorking) + return; + + extra_listbox.Items.Remove(extra_listbox.SelectedItem); + } } } diff --git a/PrerootedCreator/Job.cs b/PrerootedCreator/Job.cs index 6b496ab..4e1c773 100644 --- a/PrerootedCreator/Job.cs +++ b/PrerootedCreator/Job.cs @@ -29,11 +29,13 @@ private static int GetJobCount() count--; if (!File.Exists(form.rec_textbox.Text)) //if recovery is not included count--; + if (form.extra_listbox.Items.Count < 1) //no additional zip files + count--; return count; } - private static Action[] jobs = { UnpackSystem, UnpackSystemEXT4, EditScript, AddSystem, AddExtras, AddSuperSU, AddRecovery, SignZip, Complete }; + private static Action[] jobs = { UnpackSystem, UnpackSystemEXT4, EditScript, AddSystem, AddExtras, AddSuperSU, AddRecovery, AddExtraFlashable, SignZip, Complete }; public static void Worker() { JobNum = 0; @@ -130,6 +132,16 @@ private static void AddExtras(BackgroundWorker worker) ExtraFiles.AddExtraFiles(worker, item.ToLower(), form.ftf_textbox.Text); } + private static void AddExtraFlashable(BackgroundWorker worker) + { + if (form.extra_listbox.Items.Count < 1) + return; + + SetJobNum(++JobNum); + foreach (string file in form.extra_listbox.Items) + ExtraFiles.AddExtraFlashable(worker, file, form.ftf_textbox.Text); + } + private static void AddSuperSU(BackgroundWorker worker) { SetJobNum(++JobNum); diff --git a/PrerootedCreator/Resources/flashable.zip b/PrerootedCreator/Resources/flashable.zip index bb751af4640d6b317fb8cf25cf653c93efed7b95..aa05f3b255018352503b00fa89b20de1ddcc68a4 100644 GIT binary patch delta 2946 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 bXf4{oXn(9))|+Ti$qj5mwDEinUTzlj?T=^ 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 diff --git a/flashable.zip-files/META-INF/com/google/android/updater-script-names b/flashable.zip-files/META-INF/com/google/android/updater-script-names index 5e383c3..8ee032d 100644 --- a/flashable.zip-files/META-INF/com/google/android/updater-script-names +++ b/flashable.zip-files/META-INF/com/google/android/updater-script-names @@ -142,3 +142,6 @@ then delete_recursive("/tmp/dualrecovery_extracted"); delete("/tmp/dualrecovery.zip"); endif; + +# ===================== Extra Flashable ===================== +#InsertExtra diff --git a/flashable.zip-files/META-INF/com/google/android/updater-script-uuid b/flashable.zip-files/META-INF/com/google/android/updater-script-uuid index c0786a5..cf97500 100644 --- a/flashable.zip-files/META-INF/com/google/android/updater-script-uuid +++ b/flashable.zip-files/META-INF/com/google/android/updater-script-uuid @@ -141,3 +141,6 @@ then delete_recursive("/tmp/dualrecovery_extracted"); delete("/tmp/dualrecovery.zip"); endif; + +# ===================== Extra Flashable ===================== +#InsertExtra