Permalink
Browse files

v2

  • Loading branch information...
1 parent e086f7d commit eb5f18b38703faba48beb88e4a160aa431964d14 @euss committed Sep 23, 2011
Showing with 4,514 additions and 1,083 deletions.
  1. +4 −47 README
  2. BIN images/ps3mfw-icon.icns
  3. +101 −103 ps3mfw
  4. +551 −280 ps3mfw_base.tcl
  5. +621 −539 ps3mfw_gui.tcl
  6. +81 −98 ps3mfw_tasks.tcl
  7. +40 −0 tasks/README
  8. +4 −1 tasks/add_license_msg.tcl
  9. +50 −0 tasks/broken_bluray.tcl
  10. +70 −0 tasks/change_coldboot_files.tcl
  11. +46 −0 tasks/change_devflash_files.tcl
  12. +66 −0 tasks/change_ssl_cer.tcl
  13. +51 −0 tasks/change_theme.tcl
  14. +50 −0 tasks/change_version.tcl
  15. +6 −1 tasks/clean_friends.tcl
  16. +9 −1 tasks/clean_game.tcl
  17. +11 −1 tasks/clean_music.tcl
  18. +7 −1 tasks/clean_network.tcl
  19. +12 −1 tasks/clean_photo.tcl
  20. +6 −1 tasks/clean_psn.tcl
  21. +60 −0 tasks/clean_sysconf.tcl
  22. +55 −0 tasks/clean_tv.tcl
  23. +8 −1 tasks/clean_video.tcl
  24. +4 −1 tasks/patch_category_game.tcl
  25. +3 −1 tasks/patch_lv1.tcl
  26. +3 −1 tasks/patch_lv2.tcl
  27. +4 −1 tasks/patch_nas_plugin.tcl
  28. +339 −0 tasks/patch_privacy.tcl
  29. +47 −0 tasks/patch_shop.tcl
  30. +41 −0 tasks/patch_translations.tcl
  31. +5 −3 tasks/patch_vsh.tcl
  32. +165 −0 tasks/patch_xmb_plugin.tcl
  33. +201 −0 tasks/spoof_version.tcl
  34. +70 −0 tools/animattribdef-ps3.ini
  35. +66 −0 tools/animattribdef-psp.ini
  36. BIN tools/cospkg.exe
  37. BIN tools/cosunpack.exe
  38. BIN tools/cosunpkg.exe
  39. BIN tools/cygwin1.dll
  40. BIN tools/cygz.dll
  41. BIN tools/dat.exe
  42. BIN tools/eidsplitr.exe
  43. BIN tools/makeself.exe
  44. +46 −0 tools/miscmap.ini
  45. BIN tools/norunpack.exe
  46. +836 −0 tools/objattribdef-ps3.ini
  47. +558 −0 tools/objattribdef-psp.ini
  48. BIN tools/pkg.exe
  49. +62 −0 tools/pupexplode.bat
  50. +62 −0 tools/pupexplode.sh
  51. BIN tools/puppack.exe
  52. BIN tools/pupunpack.exe
  53. BIN tools/rcomage.exe
  54. BIN tools/readself.exe
  55. BIN tools/readself2.exe
  56. BIN tools/scekrit.exe
  57. BIN tools/sceverify.exe
  58. BIN tools/self_rebuilder.exe
  59. BIN tools/spp.exe
  60. +92 −0 tools/tagmap.ini
  61. BIN tools/undat.exe
  62. BIN tools/ungpkg.exe
  63. BIN tools/unpkg.exe
  64. BIN tools/unself.exe
  65. BIN tools/unself2.exe
  66. BIN tools/unself_gnpdrm.exe
  67. BIN tools/unspp.exe
  68. +1 −1 xml.tcl
View
51 README
@@ -5,67 +5,24 @@
/ ____/\____ \ __(__ < / \ / __)\ \/\/ /
/ / / \/ \ /\/\ Y / \ /
/___/ /________/_________/__/ \___|__/ \__/\__/
- PS3MFW Builder v0.1
+ PS3MFW Builder v0.2
==============================================================
------------
INTRODUCTION
------------
-For years, the security system of PS3 remained unbreached because Sony had a
-very good defense mechanism: Consumers could use it for more than just gaming
-by installing Linux via the "Other OS" feature. Therefore there was little
-motivation for security researchers to investigate the PS3. However, then Sony
-(or SCE, SCEA, SCEE or whatever, we aren't exactly sure what is going on there
-anymore) made an unprecedented move: Not only did they introduce a new PS3
-model that no longer allowed the installation of an Other OS, but with a
-firmware "upgrade" they removed the capability from previously sold consoles.
-While removing advertised features from a product (several years after its
-purchase!) is blatantly unlawful, having highly paid lawyers apparently allows
-you to get away with it- in a legal sense.
+Today we are proud to present our second official release, PS3MFW Builder v0.2. Just as the previous release, v0.2 is intended for firmwares 3.10 and above. Extensive testing of the framework and tasks has been successful with all versions above 3.10, the majority of tasks are also successful below 3.10. PS3MFW Builder v0.2 contains many new features that further improve usability. For this new version, PS3MFW Builder and the tasks have been moved to seperate repositories on git-hacks.com. Builder 0.2 adds new functions to aid in the creation of tasks, with 2 bug fixes. For programmers, the new core offers more flexibility for tasks and allows to manipulate the user interface better.
-
-But when the law fails to protect the people, then some of those people, being
-clever and resourceful, help themselves. And that is what happened here. Sony
-sunk its own battleship.
-
-PS3MFW is the next step in the process of returning to consumers control over
-their own hardware. Your PS3 belongs to you. You didn't lease it, and you
-signed no contract when you purchased it. It is your right to use it however
-you choose. It is your responsibility to do so within the legal boundaries.
-
-PS3MFW allows you to tailor your PS3's firmware to your specific needs, giving
-you a level of control you previously lacked. PS3MFW is open source. That
-means it is completely transparent, and anyone with the necessary programming
-knowledge can help to improve it and create new plugin tasks.
-
-It is with great pleasure and joy that we are now able to present you with the
-first public release of PS3MFW Builder. A lot of hard work went into this
-during the past five weeks, by some incredibly dedicated and inspired people.
-We would like to thank everyone who contributed, the people who got this
-project underway, and those who did all the programming and testing.
-
-PS3MFW Builder v0.1 has been successfully tested on all major PS3 hardware
-revisions, and in conjunction with OFW 3.10 - 3.55. It is NOT compatible with
-OFW 3.56.
-
-Remember that this is only the very first release of PS3MFW Builder, version
-0.1. With your support and feedback, we intend to create the definitive PS3
-firmware solution that makes all other closed-source custom firmwares obsolete.
-
-PS3MFW Builder is not distributed with any program code copyrighted by third
-parties.
-
-PS.
-KevinButler, you sunk your own battleship.
+The new PS3MFW Builder v0.2 and tasks can be found at www.git-hacks.com/ps3mfw
------------
REQUIREMENTS
------------
To use PS3MFW Builder, the following is needed:
--The latest version of the f0 tools
+-The latest version of ps3tools (not older than 25 March 2011), found on git-hacks.com
-Tcl/Tk 8.5 ( http://www.tcl.tk/software/tcltk/8.5.tml )
View
Binary file not shown.
View
204 ps3mfw
@@ -8,23 +8,16 @@
# License ("GPL") version 3, as published by the Free Software Foundation.
#
-set ::PS3MFW_VERSION "0.1"
+set ::PS3MFW_VERSION "0.2"
# Option --debug: Show verbose debugging information
# Option --silent: Disable log output
-# Option --custom-pup-version: Custom PUP build version
-# Option --custom-version-string: If set, overrides the entire PUP version string
-# Option --version-prefix: Prefix to add to the PUP version string
-# Option --version-suffix: Suffix to add to the PUP version string
# Option --build-dir: Build directory for temporary files
# Option --gui: Launch the Graphical User Interface
-array set options {
+
+array set ::options {
--debug false
--silent false
- --custom-pup-version ""
- --custom-version-string ""
- --version-prefix ""
- --version-suffix "-PS3MFW"
--build-dir ""
--gui true
}
@@ -34,167 +27,172 @@ array set options {
# End of configuration section.
#
-set PUP "pup"
-set PUPPACK "puppack"
-set PUPUNPACK "pupunpack"
-set COSPKG "cospkg"
-set COSUNPKG "cosunpkg"
-set PKG "pkg"
-set UNPKG "unpkg"
-set UNSELF "unself"
-set MAKESELF "self_rebuilder"
-
-set PS3MFW_DIR [file dirname [info script]]
-set program [file tail [info script]]
-
-while {[catch {file readlink [file join $PS3MFW_DIR $program]} program] == 0} {
- if {[file pathtype $program] == "absolute"} {
- set PS3MFW_DIR [file dirname $program]
+set ::PUP "pup"
+set ::PUPPACK "puppack"
+set ::PUPUNPACK "pupunpack"
+set ::COSPKG "cospkg"
+set ::COSUNPKG "cosunpkg"
+set ::PKG "pkg"
+set ::UNPKG "unpkg"
+set ::UNSELF "unself"
+set ::MAKESELF "self_rebuilder"
+set ::RCOMAGE "rcomage"
+
+set ::PS3MFW_DIR [file dirname [info script]]
+set ::program [file tail [info script]]
+
+while {[catch {file readlink [file join ${::PS3MFW_DIR} ${::program}]} program] == 0} {
+ if {[file pathtype ${::program}] == "absolute"} {
+ set ::PS3MFW_DIR [file dirname ${::program}]
} else {
- set PS3MFW_DIR [file join $PS3MFW_DIR [file dirname $program]]
+ set ::PS3MFW_DIR [file join ${::PS3MFW_DIR} [file dirname ${::program}]]
}
- set program [file tail $program]
+ set ::program [file tail ${::program}]
}
-set ::auto_path [linsert $::auto_path 0 $PS3MFW_DIR]
+set ::auto_path [linsert ${::auto_path} 0 ${::PS3MFW_DIR}]
if { $::tcl_platform(platform) == "windows"} {
- append ::env(PATH) ";[file nativename [file join $PS3MFW_DIR tools]]"
+ append ::env(PATH) ";[file nativename [file join ${::PS3MFW_DIR} tools]]"
} else {
- append ::env(PATH) ":[file join $PS3MFW_DIR tools]"
+ append ::env(PATH) ":[file join ${::PS3MFW_DIR} tools]"
}
-source [file join $PS3MFW_DIR xml.tcl]
-source [file join $PS3MFW_DIR tar.tcl]
-source [file join $PS3MFW_DIR ps3mfw_base.tcl]
-source [file join $PS3MFW_DIR ps3mfw_tasks.tcl]
+source [file join ${::PS3MFW_DIR} xml.tcl]
+source [file join ${::PS3MFW_DIR} tar.tcl]
+source [file join ${::PS3MFW_DIR} ps3mfw_base.tcl]
+source [file join ${::PS3MFW_DIR} ps3mfw_tasks.tcl]
-set TASKS_DIR [file join $PS3MFW_DIR tasks]
+set ::TASKS_DIR [file join ${::PS3MFW_DIR} tasks]
-set taskfiles [get_sorted_task_files]
-set tasks [list]
-set taskname ""
-set arguments [list]
-set current_opt ""
-set current_task_opt ""
+set ::taskfiles [get_sorted_task_files]
+set ::tasks [list]
+set ::taskname ""
+set ::arguments [list]
+set ::current_opt ""
+set ::current_task_opt ""
-foreach taskfile $taskfiles {
- source $taskfile
+foreach taskfile ${::taskfiles} {
+ source ${::taskfile}
}
-foreach arg $argv {
- if {$current_opt != ""} {
- if {![string match "--*" $arg]} {
- set ::options($current_opt) $arg
- set current_opt ""
+foreach arg ${::argv} {
+ if {${::current_opt} != ""} {
+ if {![string match "--*" ${::arg}]} {
+ set ::options(${::current_opt}) ${::arg}
+ set ::current_opt ""
} else {
- usage "Invalid option: $arg, expected value.\n"
+ usage "Invalid option: ${::arg}, expected value.\n"
}
- } elseif {$current_task_opt != ""} {
- if {![string match "--*" $arg]} {
- set ::${taskname}::options($current_task_opt) $arg
- set current_task_opt ""
+ } elseif {${::current_task_opt} != ""} {
+ if {![string match "--*" ${::arg}]} {
+ set ::${::taskname}::options(${::current_task_opt}) ${::arg}
+ set ::current_task_opt ""
} else {
- usage "Invalid option: $arg, expected value.\n"
+ usage "Invalid option: ${::arg}, expected value.\n"
}
} else {
- if {[string match "--*" $arg]} {
- if {[info exists ::options($arg)]} {
- set current_opt $arg
+ if {[string match "--*" ${::arg}]} {
+ if {[info exists ::options(${::arg})]} {
+ set ::current_opt ${::arg}
} else {
- set task [string map {- _} [string range $arg 2 end]]
- if {[namespace exists ${task}]} {
- lappend tasks "$task"
- set taskname $task
- } elseif {[info exists ::${taskname}::options($arg)]} {
- set current_task_opt $arg
+ set ::task [string map {- _} [string range ${::arg} 2 end]]
+ if {[namespace exists ${::task}]} {
+ lappend tasks "${::task}"
+ set ::taskname ${::task}
+ } elseif {[info exists ::${::taskname}::options(${::arg})]} {
+ set ::current_task_opt ${::arg}
} else {
- usage "Invalid option: $arg, expected task.\n"
+ usage "Invalid option: ${::arg}, expected task.\n"
}
}
} else {
- lappend arguments $arg
+ lappend arguments ${::arg}
}
}
}
-if {$current_opt != ""} {
- usage "Option $current_opt needs a value\n"
-} elseif {$current_task_opt != ""} {
- usage "Option $current_task_opt needs a value\n"
+if {${::current_opt} != ""} {
+ usage "Option ${::current_opt} needs a value\n"
+} elseif {${::current_task_opt} != ""} {
+ usage "Option ${::current_task_opt} needs a value\n"
}
-if {[llength $tasks] == 0 } {
- set tasks [list patch_category_game patch_lv1 patch_lv2 patch_nas_plugin patch_vsh add_license_msg]
- foreach task $tasks {
- source [file join $TASKS_DIR $task.tcl]
+if {[llength ${::tasks}] == 0 } {
+ set ::tasks [list change_version patch_category_game add_license_msg]
+ foreach task ${::tasks} {
+ source [file join ${::TASKS_DIR} ${::task}.tcl]
}
}
if {$::options(--build-dir) != ""} {
set ::BUILD_DIR $::options(--build-dir)
} else {
if { $::tcl_platform(platform) == "windows" && [info exists ::env(TEMP)]} {
- set BUILD_DIR [file join $::env(TEMP) PS3MFW]
- if {[catch {file mkdir $BUILD_DIR}]} {
- set BUILD_DIR [pwd]
+ set ::BUILD_DIR [file join $::env(TEMP) PS3MFW]
+ if {[catch {file mkdir ${::BUILD_DIR}}]} {
+ set ::BUILD_DIR [pwd]
}
} elseif {$::tcl_platform(platform) == "unix"} {
- set BUILD_DIR [file join /tmp PS3MFW]
- if {[catch {file mkdir $BUILD_DIR}]} {
- set BUILD_DIR [pwd]
+ set ::BUILD_DIR [file join /tmp PS3MFW]
+ if {[catch {file mkdir ${::BUILD_DIR}}]} {
+ set ::BUILD_DIR [pwd]
}
} else {
- set BUILD_DIR [pwd]
+ set ::BUILD_DIR [pwd]
}
}
unset ::options(--build-dir)
-set ORIGINAL_PUP_DIR [file join ${BUILD_DIR} PS3MFW-OFW]
-set CUSTOM_PUP_DIR [file join ${BUILD_DIR} PS3MFW-MFW]
-set LOG_FILE [file join ${BUILD_DIR} "[file rootname [file tail $argv0]].log"]
+set ::ORIGINAL_PUP_DIR [file join ${::BUILD_DIR} PS3MFW-OFW]
+set ::CUSTOM_PUP_DIR [file join ${::BUILD_DIR} PS3MFW-MFW]
+set ::LOG_FILE [file join ${::BUILD_DIR} "[file rootname [file tail ${::argv0}]].log"]
# update base files
-set CUSTOM_VERSION_TXT [file join ${CUSTOM_PUP_DIR} version.txt]
-set CUSTOM_LICENSE_XML [file join ${CUSTOM_PUP_DIR} license.xml]
-set CUSTOM_UPDATE_FLAGS [file join ${CUSTOM_PUP_DIR} update_flags.txt]
-set CUSTOM_PS3SWU_SELF [file join ${CUSTOM_PUP_DIR} ps3swu.self]
-set CUSTOM_UPDATE_TAR [file join ${CUSTOM_PUP_DIR} update_files.tar]
-set CUSTOM_UPDATE_DIR [file join ${CUSTOM_PUP_DIR} update_files]
+set ::CUSTOM_VERSION_TXT [file join ${::CUSTOM_PUP_DIR} version.txt]
+set ::CUSTOM_LICENSE_XML [file join ${::CUSTOM_PUP_DIR} license.xml]
+set ::CUSTOM_PROMO_FLAGS_TXT [file join ${::CUSTOM_PUP_DIR} promo_flags.txt]
+set ::CUSTOM_UPDATE_FLAGS_TXT [file join ${::CUSTOM_PUP_DIR} update_flags.txt]
+set ::CUSTOM_PS3SWU_SELF [file join ${::CUSTOM_PUP_DIR} ps3swu.self]
+set ::CUSTOM_UPDATE_TAR [file join ${::CUSTOM_PUP_DIR} update_files.tar]
+set ::CUSTOM_UPDATE_DIR [file join ${::CUSTOM_PUP_DIR} update_files]
# update_files.tar pkg files
-set CUSTOM_DEVFLASH_DIR [file join ${CUSTOM_UPDATE_DIR} dev_flash]
-set CUSTOM_UPLXML_DIR [file join ${CUSTOM_UPDATE_DIR} UPL.xml]
+set ::CUSTOM_DEVFLASH_DIR [file join ${::CUSTOM_UPDATE_DIR} dev_flash]
+set ::CUSTOM_UPLXML_DIR [file join ${::CUSTOM_UPDATE_DIR} UPL.xml]
# modification files
-set CUSTOM_UPL_XML [file join ${CUSTOM_UPLXML_DIR} UPL.xml]
+set ::CUSTOM_UPL_XML [file join ${::CUSTOM_UPLXML_DIR} UPL.xml]
+
+# version info
+set ::PUP_BUILD ""
if {$options(--gui)} {
package require Tk 8.5
foreach font [font names] {
- font configure $font -family Helvetica
+ font configure ${::font} -family Helvetica
}
if { [info proc console] == "" && [info command console] == "" } {
- source [file join $PS3MFW_DIR console.tcl]
+ source [file join ${::PS3MFW_DIR} console.tcl]
console hide
}
if {$::options(--debug)} {
console show
}
- source [file join $PS3MFW_DIR ps3mfw_gui.tcl]
- source [file join $PS3MFW_DIR scrolledframe.tcl]
- source [file join $PS3MFW_DIR tracedtext.tcl]
- ::gui::create_gui $arguments $tasks
+ source [file join ${::PS3MFW_DIR} ps3mfw_gui.tcl]
+ source [file join ${::PS3MFW_DIR} scrolledframe.tcl]
+ source [file join ${::PS3MFW_DIR} tracedtext.tcl]
+ ::gui::create_gui ${::arguments} ${::tasks}
} else {
- if {[llength $arguments] != 2} {
+ if {[llength ${::arguments}] != 2} {
# exits
usage
}
- set IN_FILE [lindex $arguments 0]
- set OUT_FILE [lindex $arguments 1]
+ set ::IN_FILE [lindex ${::arguments} 0]
+ set ::OUT_FILE [lindex ${::arguments} 1]
- build_mfw $IN_FILE $OUT_FILE $tasks
+ build_mfw ${::IN_FILE} ${::OUT_FILE} ${::tasks}
exit
}
Oops, something went wrong.

0 comments on commit eb5f18b

Please sign in to comment.