Editing PS3MFW Builder

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

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:
<div style="float:right">[[File:Mfwbuilder.png|200px|thumb|left|PS3MFW Builder v0.2]]</div>
== Main description ==
<div style="float:right">[[File:Mfw-otherosplusplus.png|200px|thumb|left|PS3MFW Builder v0.2 OtherOS++]]</div>
<div style="float:right">[[File:Mfw-rebug.png|200px|thumb|left|PS3MFW Builder v0.2 Rebug OtherOS++]]</div>


== 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” (Currently not working for me maybe it‘s getting fixed in the future).
**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|code=<syntaxhighlight lang="tcl">
{{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|code=<syntaxhighlight lang="tcl">
{{Boxcode|content=<syntaxhighlight lang="tcl">
#!/usr/bin/tclsh
#!/usr/bin/tclsh
#
#
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|code=<syntaxhighlight lang="tcl">
{{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|code=<syntaxhighlight lang="tcl">
{{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|code=<syntaxhighlight lang="tcl">
{{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|code=<syntaxhighlight lang="tcl">
{{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" "Z:/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
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 ==
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)