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 35: Line 33:
**patch_xmb_plugin.tcl
**patch_xmb_plugin.tcl
**spoof_version.tcl (0.2) – Allows changing the firmware version the PS3 appears to be on, similar to the rebug spoofer.
**spoof_version.tcl (0.2) – Allows changing the firmware version the PS3 appears to be on, similar to the rebug spoofer.


=== Gitbrew OtherOS++ ===
=== Gitbrew OtherOS++ ===
Line 73: Line 74:




=== Alternate XMB Languages ===
=== PSheb project ===
* Hebrew (PSheb project 0.1)
* PSheb project 0.1 (Hebrew translation of PS3 XMB)
** Task: [https://github.com/DanyL/PS3MFW-Builder/blob/master/tasks/language_pack.tcl language_pack.tcl]
** Task: [https://github.com/DanyL/PS3MFW-Builder/blob/master/tasks/language_pack.tcl language_pack.tcl]
** Language Pack: [https://github.com/DanyL/PSheb]
** Languagepack: [https://github.com/DanyL/PSheb]
** Newsitem including screenshots for reference: http://www.ps3hax.net/2011/08/psheb-project-v0-1-hebrew-language-on-ps3/
** Newsitem including screenshots for reference: http://www.ps3hax.net/2011/08/psheb-project-v0-1-hebrew-language-on-ps3/
* Greek (ErMaK86's Translation for 4.80/4.81)
** Language Pack: [http://www.mediafire.com/file/5ya93a6duvu7wo7/Greek-ErMaK86.LP]


==== Guide for adding other translations / building languagepacks ====
==== Guide for adding other translations / building languagepacks ====
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 769: Line 767:
# Description: [4.xx] Patch to disable epilepsy message
# Description: [4.xx] Patch to disable epilepsy message


# Option --patch-epilepsy-cex: [4.xx] Patch to disable the epilepsy message on cex cfw!
# Option --patch-disable-epilepsy-message-on-cex: [4.xx] Patch to disable the epilepsy message on cex cfw!
# Option --patch-epilepsy-dex: [4.xx] Patch to disable the epilepsy message on dex cfw!
# Option --patch-disable-epilepsy-message-on-dex: [4.xx] Patch to disable the epilepsy message on dex cfw!
# Option --patch-epilepsy-rebug: [4.xx] Patch to disable the epilepsy message on rebug cfw!
# Option --patch-disable-epilepsy-message-on-rebug: [4.xx] Patch to disable the epilepsy message on rebug cfw!


# Type --patch-epilepsy-cex: boolean
# Type --patch-disable-epilepsy-message-on-cex: boolean
# Type --patch-epilepsy-dex: boolean
# Type --patch-disable-epilepsy-message-on-dex: boolean
# Type --patch-epilepsy-rebug: boolean
# Type --patch-disable-epilepsy-message-on-rebug: boolean


namespace eval ::patch_epilepsy {
namespace eval ::patch_epilepsy {


     array set ::patch_epilepsy::options {
     array set ::patch_epilepsy::options {
         --patch-epilepsy-cex true
         --patch-disable-epilepsy-message-on-cex true
--patch-epilepsy-dex false
--patch-disable-epilepsy-message-on-dex false
--patch-epilepsy-rebug false
--patch-disable-epilepsy-message-on-rebug false
     }
     }


     proc main { } {
     proc main {} {
variable options
    set self [file join dev_flash vsh module vsh.self]
set ::SELF "vsh.self"
        if { ${::OLDROUTINE} == "1" } {
::modify_devflash_file $self ::patch_epilepsy::patch_self
} elseif { ${::OLDROUTINE} == "0" } {
::modify_devflash_file2 $self ::patch_epilepsy::patch_self
}
}


        if {$::patch_epilepsy::options(--patch-epilepsy-cex)} {
    proc patch_self { self } {
            set selfs {vsh.self}
             if { ${::OLDROUTINE} == "1" } {
             if { ${::OLDROUTINE} == "1" } {
::modify_devflash_files [file join dev_flash vsh module] $selfs ::patch_epilepsy::patch_epilepsy_cex_self
::modify_self_file $self ::patch_epilepsy::patch_elf
            } elseif { ${::OLDROUTINE} == "0" } {
} elseif { ${::OLDROUTINE} == "0" } {
::modify_devflash_files2 [file join dev_flash vsh module] $selfs ::patch_epilepsy::patch_epilepsy_cex_self
::modify_self_file2 $self ::patch_epilepsy::patch_elf
}
}
        if {$::patch_epilepsy::options(--patch-epilepsy-dex)} {
            set selfs {vsh.self}
            if { ${::OLDROUTINE} == "1" } {
::modify_devflash_files [file join dev_flash vsh module] $selfs ::patch_epilepsy::patch_epilepsy_dex_self
            } elseif { ${::OLDROUTINE} == "0" } {
::modify_devflash_files2 [file join dev_flash vsh module] $selfs ::patch_epilepsy::patch_epilepsy_dex_self
}
}
}
if {$::patch_epilepsy::options(--patch-epilepsy-rebug)} {
            set selfs1 {vsh.self vsh.self.swp}
            if { ${::OLDROUTINE} == "1" } {
::modify_devflash_files [file join dev_flash vsh module] $selfs1 ::patch_epilepsy::patch1_epilepsy_rebug_self
            } elseif { ${::OLDROUTINE} == "0" } {
::modify_devflash_files2 [file join dev_flash vsh module] $selfs1 ::patch_epilepsy::patch1_epilepsy_rebug_self
}
set selfs2 {vsh.self.cexsp}
            if { ${::OLDROUTINE} == "1" } {
::modify_devflash_files [file join dev_flash vsh module] $selfs2 ::patch_epilepsy::patch2_epilepsy_rebug_self
            } elseif { ${::OLDROUTINE} == "0" } {
::modify_devflash_files2 [file join dev_flash vsh module] $selfs2 ::patch_epilepsy::patch2_epilepsy_rebug_self
}
}
     }
     }
 
proc patch_epilepsy_cex_self {self} {
     proc patch_elf { elf } {
if { ${::OLDROUTINE} == "1" } {
         if {$::patch_epilepsy::options(--patch-disable-epilepsy-message-on-cex) } {
::modify_self_file $self ::patch_epilepsy::patch_epilepsy_cex_elf
} elseif { ${::OLDROUTINE} == "0" } {
::modify_self_file2 $self ::patch_epilepsy::patch_epilepsy_cex_elf
}
    }
     proc patch_epilepsy_cex_elf {elf} {
         if {$::patch_epilepsy::options(--patch-epilepsy-cex)} {
             log "Patching [file tail $elf] to disable epilepsy message on cex cfw"
             log "Patching [file tail $elf] to disable epilepsy message on cex cfw"
log "Added by Ezio"
log "Added by Ezio"
             set search  "\x00\x00\x00\x02\x00\x00\x00\x01\x02\x01\x01\x01\xff\xff\xff\xff"
             set search  "\x00\x00\x00\x02\x00\x00\x00\x01\x02\x01\x01\x01\xff\xff\xff\xff"
set replace "\x00\x00\x00\x02\x00\x00\x00\x01\x02\x00\x01\x01\xff\xff\xff\xff"
set replace "\x00\x00\x00\x02\x00\x00\x00\x01\x02\x00\x01\x01\xff\xff\xff\xff"
             catch_die {::patch_file_multi $elf $search 0 $replace} \
 
                "Unable to patch self [file tail $elf]"
             catch_die {::patch_elf $elf $search 0 $replace} \
"Unable to patch self [file tail $elf]"
         }
         }
    }
 
if {$::patch_epilepsy::options(--patch-disable-epilepsy-message-on-dex) } {
proc patch_epilepsy_dex_self {self} {
    log "Patching [file tail $elf] to disable epilepsy message on dex cfw"
if { ${::OLDROUTINE} == "1" } {
::modify_self_file $self ::patch_epilepsy::patch_epilepsy_dex_elf
} elseif { ${::OLDROUTINE} == "0" } {
::modify_self_file2 $self ::patch_epilepsy::patch_epilepsy_dex_elf
}
    }
    proc patch_epilepsy_dex_elf {elf} {
        if {$::patch_epilepsy::options(--patch-epilepsy-dex)} {
            log "Patching [file tail $elf] to disable epilepsy message on dex cfw"
log "Added by Ezio"
log "Added by Ezio"
set search  "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x00\xff\xff\xff\xff"
set search  "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x00\xff\xff\xff\xff"
set replace "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xff\xff\xff\xff"
set replace "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xff\xff\xff\xff"
            catch_die {::patch_elf $elf $search 0 $replace} \
                "Unable to patch self [file tail $elf]"
catch_die {::patch_elf $elf $search 2 $replace} \
        }
"Unable to patch self [file tail $elf]"
    }
}
 
proc patch1_epilepsy_rebug_self {self} {
if {$::patch_epilepsy::options(--patch-disable-epilepsy-message-on-rebug) } {
if { ${::OLDROUTINE} == "1" } {
    log "Patching [file tail $elf] to disable epilepsy message on rebug cfw"
::modify_self_file $self ::patch_epilepsy::patch1_epilepsy_rebug_elf
} elseif { ${::OLDROUTINE} == "0" } {
::modify_self_file2 $self ::patch_epilepsy::patch1_epilepsy_rebug_elf
}
    }
    proc patch1_epilepsy_rebug_elf {elf} {
        if {$::patch_epilepsy::options(--patch-epilepsy-rebug)} {
            log "Patching [file tail $elf] to disable epilepsy message on rebug cfw"
log "Added by Ezio"
log "Added by Ezio"
set search  "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x00\xff\xff\xff\xff"
            set search  "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x01\x00\xff\xff\xff\xff"
set replace "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xff\xff\xff\xff"
set replace "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\xff\xff\xff\xff"
            catch_die {::patch_elf $elf $search 0 $replace} \
                "Unable to patch self [file tail $elf]"
catch_die {::patch_elf $elf $search 0 $replace} \
        }
"Unable to patch self [file tail $elf]"
    }
}
proc patch2_epilepsy_rebug_self {self} {
if { ${::OLDROUTINE} == "1" } {
::modify_self_file $self ::patch_epilepsy::patch2_epilepsy_rebug_elf
} elseif { ${::OLDROUTINE} == "0" } {
::modify_self_file2 $self ::patch_epilepsy::patch2_epilepsy_rebug_elf
}
    }
    proc patch2_epilepsy_rebug_elf {elf} {
        if {$::patch_epilepsy::options(--patch-epilepsy-rebug)} {
            log "Patching [file tail $elf] to disable epilepsy message on rebug cfw"
log "Added by Ezio"
set search  "\x00\x00\x00\x02\x00\x00\x00\x01\x02\x01\x01\x01\xff\xff\xff\xff"
set replace "\x00\x00\x00\x02\x00\x00\x00\x01\x02\x00\x01\x01\xff\xff\xff\xff"
            catch_die {::patch_elf $elf $search 0 $replace} \
                "Unable to patch self [file tail $elf]"
        }
     }
     }
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
http://www.psdevwiki.com/ps3/Patches#disable_epilepsy_message
http://www.psdevwiki.com/ps3/Patches#disable_epilepsy_message
Line 905: Line 848:
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,535: Line 1,478:
===Example of PS3MFW Builder 0.2.3 tasks===
===Example of PS3MFW Builder 0.2.3 tasks===
{{Keyboard|content=<syntaxhighlight lang="bash">
{{Keyboard|content=<syntaxhighlight lang="bash">
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 "PS3DEVWIKI" --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>}}


Line 1,590: Line 1,533:




{{Custom Firmware}}<noinclude>[[Category:Main]]</noinclude>
{{System Firmware}}<noinclude>[[Category:Main]]</noinclude>
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)