Editing PS3MFW Builder
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
== Main description == | |||
== Tasks == | == Tasks == | ||
<div style="float:right">[[File:Mfwbuilder.png|200px|thumb|left|PS3MFW Builder v0.2]]<br />[[File:Mfw-otherosplusplus.png|200px|thumb|left|PS3MFW Builder v0.2 OtherOS++]]<br />[[File:Mfw-rebug.png|200px|thumb|left|PS3MFW Builder v0.2 Rebug OtherOS++]]</div> | |||
=== PS3MFW === | === PS3MFW === | ||
Line 11: | Line 9: | ||
**add_license_msg.tcl (0.1) - Add a custom message to the 'New Features' installation screen. Modifies PUP license.xml --license-auto-add-features : Automatically generate the enabled features of PS3MFW --license-features-message : Prefix message to the generated features list --license-message : New Features message (Appears after the license agreement) | **add_license_msg.tcl (0.1) - Add a custom message to the 'New Features' installation screen. Modifies PUP license.xml --license-auto-add-features : Automatically generate the enabled features of PS3MFW --license-features-message : Prefix message to the generated features list --license-message : New Features message (Appears after the license agreement) | ||
**broken_bluray.tcl (0.2) – Allows you to remove Blu-Ray firmware installation so that the MFW can be installed without a working Blu-Ray drive. This is potentially dangerous if used on a PS3 with a working drive, and should only be used if the drive is broken. | **broken_bluray.tcl (0.2) – Allows you to remove Blu-Ray firmware installation so that the MFW can be installed without a working Blu-Ray drive. This is potentially dangerous if used on a PS3 with a working drive, and should only be used if the drive is broken. | ||
**change_coldboot_files.tcl (0.2) – Advanced users only: Allows changing the sound played and image shown during the boot process. Caution: If improper files are used, this can cause a “brick” | **change_coldboot_files.tcl (0.2) – Advanced users only: Allows changing the sound played and image shown during the boot process. Caution: If improper files are used, this can cause a “brick”. | ||
**change_devflash_files.tcl | **change_devflash_files.tcl | ||
**change_ssl_cer.tcl (0.2) – Allows changing of SSL certificates. | **change_ssl_cer.tcl (0.2) – Allows changing of SSL certificates. | ||
Line 129: | Line 127: | ||
=== more Spoof === | === more Spoof === | ||
Copypaste and save as spoof_version.tcl in tasks folder (make sure you use proper ps3mfw_base.tcl from 0.2 or [http://pastie.org/private/1u5p6jfd5mhxeleiibadg unofficial v0.2.1 OtherOS++] and not the glevand or rebug version that reduced/castrated the spoof method): | Copypaste and save as spoof_version.tcl in tasks folder (make sure you use proper ps3mfw_base.tcl from 0.2 or [http://pastie.org/private/1u5p6jfd5mhxeleiibadg unofficial v0.2.1 OtherOS++] and not the glevand or rebug version that reduced/castrated the spoof method): | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="tcl"> | ||
Line 338: | Line 336: | ||
=== more GameOS/OtherOS++ sizes === | === more GameOS/OtherOS++ sizes === | ||
Copypaste and save as patch_emer_init.tcl in tasks folder: | Copypaste and save as patch_emer_init.tcl in tasks folder: | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="tcl"> | ||
#!/usr/bin/tclsh | #!/usr/bin/tclsh | ||
# | # | ||
Line 353: | Line 351: | ||
# Description: Patch emergency init application | # Description: Patch emergency init application | ||
# Option --patch-pup-search-in-game-disc: | # Option --patch-pup-search-in-game-disc: Enable searching for update packages in GAME disc | ||
# Option --patch-gameos-hdd-region-size: Create GameOS HDD region smaller than default | # Option --patch-gameos-hdd-region-size: Create GameOS HDD region smaller than default | ||
Line 619: | Line 617: | ||
Allows you to remove Bluetooth firmware installation so that the MFW can be installed without a working Bluetooth board (circumventing errorcode 0x8002F1F9). This is potentially dangerous if used on a PS3 with a working BT/Wifi board, and should only be used if the BT/Wifi is broken (or abcent, like on Arcade consoles). | Allows you to remove Bluetooth firmware installation so that the MFW can be installed without a working Bluetooth board (circumventing errorcode 0x8002F1F9). This is potentially dangerous if used on a PS3 with a working BT/Wifi board, and should only be used if the BT/Wifi is broken (or abcent, like on Arcade consoles). | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="tcl"> | ||
#!/usr/bin/tclsh | #!/usr/bin/tclsh | ||
# | # | ||
Line 667: | Line 665: | ||
=== Patch package installer for older (2.70) version support === | === Patch package installer for older (2.70) version support === | ||
save as patch_nas_plugin.tcl in task folder and only select 1 allow-debug-pkg or allow-debug-pkg-270 subtask at the same time, depending on target firmware. | save as patch_nas_plugin.tcl in task folder and only select 1 allow-debug-pkg or allow-debug-pkg-270 subtask at the same time, depending on target firmware. | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="tcl"> | ||
#!/usr/bin/tclsh | #!/usr/bin/tclsh | ||
# | # | ||
Line 753: | Line 751: | ||
Copypaste and save as patch_epilepsy.tcl | Copypaste and save as patch_epilepsy.tcl | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="tcl"> | ||
#!/usr/bin/tclsh | #!/usr/bin/tclsh | ||
# | # | ||
Line 905: | Line 903: | ||
Copypaste and save as patch_privacy_all.tcl | Copypaste and save as patch_privacy_all.tcl | ||
{{Boxcode| | {{Boxcode|content=<syntaxhighlight lang="tcl"> | ||
#!/usr/bin/tclsh | #!/usr/bin/tclsh | ||
# | # | ||
Line 1,521: | Line 1,519: | ||
===Example of PS3MFW Builder 0.2 tasks=== | ===Example of PS3MFW Builder 0.2 tasks=== | ||
{{Keyboard|content=<syntaxhighlight lang="bash"> | {{Keyboard|content=<syntaxhighlight lang="bash"> | ||
ps3mfw.exe %1 "Y:\PS3-Firmwares" " | ps3mfw.exe %1 "Y:\PS3-Firmwares" "x:/PS3MFW-out/test.pup" --change_version --add_license_msg --patch_lv1 --patch_lv2 --patch_nas_plugin --patch_privacy --patch_vsh --patch_category_game --spoof_version --debug true | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
Line 1,537: | Line 1,535: | ||
ps3mfw.exe %1 "Y:\PS3-Firmwares\OFW430.PUP" ""Z:/MFWOtherOS-out/MFW430.PUP" --gui false --debug true --patch_pup --pup-build "" --version-string "" --version-suffix "PSDEVWIKI" --patch_lv1 --patch-lv1-peek-poke true --patch-lv1-remove-lv2-protection true --patch-lv1-sysmgr-disable-integrity-check-4x true --patch-lv1-coreos-hash-check true --patch_cos --patch-lv0-coreos-ecdsa-check true --patch-spkg-ecdsa-check true --patch-pup-search-in-game-disc true --patch-lv2-peek-poke-4x true --patch-lv2-lv1-peek-poke-4x true --patch-lv2-npdrm-ecdsa-check true --patch-lv2-payload-hermes-4x true --patch-lv2-SC36-4x true --patch_xmb --add-install-pkg true --patch-act-pkg true --add-hb-seg true --patch-app-home true --patch-ren-apphome true --patch-alpha-sort true --patch-rape-sfo true --patch_vsh --allow-pseudoretail-pkg true --allow-debug-pkg true --patch-vsh-react-psn-v2-4x true | ps3mfw.exe %1 "Y:\PS3-Firmwares\OFW430.PUP" ""Z:/MFWOtherOS-out/MFW430.PUP" --gui false --debug true --patch_pup --pup-build "" --version-string "" --version-suffix "PSDEVWIKI" --patch_lv1 --patch-lv1-peek-poke true --patch-lv1-remove-lv2-protection true --patch-lv1-sysmgr-disable-integrity-check-4x true --patch-lv1-coreos-hash-check true --patch_cos --patch-lv0-coreos-ecdsa-check true --patch-spkg-ecdsa-check true --patch-pup-search-in-game-disc true --patch-lv2-peek-poke-4x true --patch-lv2-lv1-peek-poke-4x true --patch-lv2-npdrm-ecdsa-check true --patch-lv2-payload-hermes-4x true --patch-lv2-SC36-4x true --patch_xmb --add-install-pkg true --patch-act-pkg true --add-hb-seg true --patch-app-home true --patch-ren-apphome true --patch-alpha-sort true --patch-rape-sfo true --patch_vsh --allow-pseudoretail-pkg true --allow-debug-pkg true --patch-vsh-react-psn-v2-4x true | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
Why GitHub? | |||
Team | |||
Enterprise | |||
Explore | |||
Marketplace | |||
Pricing | |||
Sign in Sign up | |||
Code Issues 0 Pull requests 1 Actions Projects 0 Security Insights | |||
Branch: master | |||
mfw/xml.tcl | |||
Find file Copy path | |||
Fetching contributors… | |||
360 lines (332 sloc) 9.78 KB | |||
RawBlameHistory | |||
#!/usr/bin/tclsh | |||
# | |||
# ps3mfw -- PS3 MFW creator | |||
# | |||
# Copyright (C) Anonymous Developers (Code Monkeys) | |||
# | |||
# This software is distributed under the terms of the GNU General Public | |||
# License ("GPL") version 3, as published by the Free Software Foundation. | |||
# | |||
namespace eval ::xml { | |||
proc LoadFile {filename} { | |||
set fd [open $filename r] | |||
set data [read $fd] | |||
close $fd | |||
return [Load $data] | |||
} | |||
proc Load {xml} { | |||
# Remove any unwanted characters that could appear before/after the xml | |||
regsub {^.*?<} $xml {<} xml | |||
regsub {>[^>]*?$} $xml {>} xml | |||
if { $xml == "" } { return "" } | |||
# Remove xml file header and comments | |||
# Here the ".*?" in the regexp means a non greedy matching, | |||
# which means match as little characters as possible.. the reason, here's an example : | |||
# <!-- comment --> <tag/> <!-- comment2 --> <tag2/> | |||
# the regsub {<!--.*-->} would remove from the first <!-- to the last --> | |||
# which means we end up with <tag2/> and we loose <tag/>.. | |||
# if it's greedy, it will match all possible chars, with non-greedy, | |||
# it will match only the smallest number: only the comment... | |||
regsub -all {<\?xml.*?\?>} $xml "" xml | |||
regsub -all {<!--.*?-->} $xml "" xml | |||
# Avoid unmatched braces in list, in case we have a left or right accolade in the xml data | |||
set xml [string map {"\{" "&right_accolade;" "\}" "&left_accolade;" "\\" "&escape_char;"} $xml] | |||
regsub -all {>\s*<} [string trim $xml " \r\n\t<>"] "\} \{" xml | |||
set xml [string map {> "\} \{#text \{" < "\}\} \{" } $xml] | |||
set res "" ;# string to collect the result | |||
set stack {} ;# track open tags | |||
set rest {} | |||
foreach item "{$xml}" { | |||
switch -regexp -- $item { | |||
^# { | |||
append res "{[lrange $item 0 end]} " ; #text item | |||
} | |||
^/ { | |||
regexp {/(.+)} $item -> tagname ;# end tag | |||
== FAQ == | == FAQ == |