Below is a list of all known to me Cutom Firmwares (checksums for OFW CEX You will find here). Unfortunaletly, list is not complete because i don't have all of them (PUPs/diffpatches), and i cannot find reliable source to validate missing ones. I hope there's no errors and it will be handy for any scene enthusiasts. All checksums are for *.pup, NOT patches and NOT release archives.
The Bricker
CFW which bricks (syscon/coreos) Your PS3 on some models in some cases. Be ware of him. ;)
PSX/PS2/PSP
CFW which support PSX, PS2 and PSP games playing from *.iso files.
Debug feathures
CFW which offer some options from debug firmwares like Unlock Trophy, Fake Save Data Owner etc.
Safe to install
CFW which is very well tested by community. None of bricks reported.
MFW
CFW which is common CFW build in MFW with various tasks. Most of the are simple clones of existing CFWs.
OFW Patch
CFW in update patch form.
CFW Update
Update in *.pkg for specific CFW, instalable from XMB Insatall Packages option.
CFW installable only from 3.55
CFW which can be installed only from 3.55.
Compatible with downgrade from 3.60+
CFW which is "compatible" with downgrade from 3.60+ (LV1.self file patched to disable all checks).
Dongle
CFW which work only with dedicated dongle and/or payload.
noob stuff:
This is not keys or something leading for heavenly CFW 3.60+. Just file checksums and they are for validate files in MD5 algo, (you can caltulate it by i.e HashTab (Win32-64/OSX)). I'm not an author of any of these firmwares and I'm not sharing any of them.
In theory, You can install (from XMB or Recovery Mode) any newest CFW on older OFW (except g.e.o.h.o.t CFW which is only patch package updater) but to avoid risk of bricks i strongly recommending to write CFW on the same OFW version (i.e 3.55 CFW on 3.55 OFW). If you want downgrade You have two solutions. First and easy is for firmware up to 3.55 via Service Mode or XMB on QA flagged PS3. Second is for all fw above 3.55 via hardware flasher.
Don't ask which CFW is the best. There is no the best CFW - there are just different for different purposes and this topic is only for catalogues all of them. For help you, i have maked an icons.
for Service Mode:
3.41
5C3B09C7FB0655D3F8852D3AAD778025
3.55
?
* * *
Acid
3.41 Acid v1
CFWs from times when we cannot write files on NANDs/NOR and which can only be launch from dev_usb. They was not CFW in really mean, just some XML mods. Don't bother with this.
Also, I have maked few icons for more fancy look. ;P But I cannot setup [IMG] from attachment for all fw because there is image limit (30) for one post. It's possible to increase it? Well, at least twice.
Also, I have maked few icons for more fancy look. ;P But I cannot setup [IMG] from attachment for all fw because there is image limit (30) for one post. It's possible to increase it? Well, at least twice.
The fine people Grimm and Berion (the original starter of this thread) developed a nice Windows application for verifying the check sums of PS3 CFWs that I have no doubt will be very very useful for mainstream OS users. It has a beautifully designed GUI and lots of contextual information about the CFW being verified. Nice work all round, for more information please click here.
I have very simple tool for doing the same that I thought someone might find useful. My little script is no where near as glamorous, sexy or well designed but what it is is simple and specifically for *nux systems (WINE blows).
The script itself is very simple and I have used a variant of it for awhile to verify that uploads have been successful and the created download has the correct MD5 checksum when pulled back down and re-combined. I gave it a GUI a year or so ago when a friend created a little website to share his created content with family and friends. Now I have compiled ~260 PS3 related archives (.zip/.rar etc) and their contents (~2,800 files) into a chksum reference for this tool.
It was crappy weather this weekend, OK?
Pre-Requisites
- *nux OS
- Gnome DE
- Zenity(*1)
Installation and use
Download the attached .zip (site admin, please allow the upload of tar.gz) and unpack it wherever is convenient to you and run the script "CHKSUM Validation Script V1.00 (zenity)" from a GUI file explorer. Read the relevent dialogues and select the file you want to check and then select the file where-ever-you-unpacked-it\CHKSUM Validation Script V1.00 (zenity)\ps-md5-chksums\ps3-md5-v1.0.txt as your check sum list.
The MD5 checksum for the first file chosen will then be calculated and then checked against the list of checksums chosen as the second file. A result of this match will then be shown.
Easy.
Notes
Please feel free to edit the script to your needs, it is shown in the next post fully annotated. Please note this is not a sophisticated script and it is done like it is so it is easy to allow users to understand entirely how it works. It is NOT an exercise in best practise.
The MD5 checksum list is compiled from a variety of sources, Grimm & Berions .xml file for CFW details (source), GitBrew's repository for "the Glevand collection" (source), Senaxx's ps3scenefiles website for EBOOT and homebrew related files (source) and a few other bits and pieces from a variety of sources.
Again, please feel free to edit and amend the MD5 checksum list or report and inaccurate entries. Please note the list inclues .rar and .zip files as well as the contents of the archives. If an archive itself fails a check please check the contents, particularly any .pup or .pkg files.
Equally, please feel free to compile your own archives of alternative content if it fits your needs.
The script itself can be found below:
Code:
#!/bin/bash
# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
# ' Checksum validation - shabang's simple script
# '
# ' (\ /)
# ' (O.o)
# ' (> <)
# '
# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
# Checks MD5 checksum against a pre-compiled list of valid checksums and files. Zenity semi-GUI version.
# Prerequisites:
# - Linux distro running a GNOME DE
# - zenity
# This script is released as is with no responsibilty assumed by the writer and with no support supplied.
# Any user accepts full responsibility for usage and any consequences of usage.
# Please feel free to amend and append as required.
# Log version changes below (Vn.nn - Note, user, date):
# V0.10 - Creation, pip/shabang, 02/09/2011
# V0.20 - Added cancel and error handlers, pip/shabang, 05/09/2011
# V1.00 - Added annotation and expanded header for web posting, pip/shabang, 08/04/2012
#Script pre-amble.
# Functions are defined once and can be used multiple times in a script.
# This is an exit function that exits the script when instructed to by the user.
function error_exit
{
zenity --error --title="Checksum Script Terminated :(" --width=450 --text="Game over. :)\n\nThe simple checksum verification script has been terminated."
exit 1
}
#Script body
# Set $another_file variable so looped while will work
another_file=Restart
# Put entire get and check md5 sum in a "while" statement, this means the script the will loop while the variable $another_file is set to Restart
# At the end of the script the user is given the opportunity to change this variable.
while [ $another_file = Restart ]; do
# Introduction dialogue displayed.
zenity --info --title="Hello $USER :)" --width=450 --text="On the next screen please select the file you want to validate."
# User selects file to be checked, this is saved as variable $userfile, exit code is saved as variable $ecode.
userfile=$(zenity --file-selection --title="Select the file to be validated"); ecode1=$?
#Quick error handler to exit or reselect where no $userfile selected (cancel pressed) or an invalid/unreadable file is selected.
# Tests if exit code (stored here as $ecode1) is 0, i.e. no file or invalid file selected.
if [ "$ecode1" -ne 0 ] ; then
# If the exit code above ($ecode1) does not equal 0 (1 = no file selected, invalid file selected) then ask the user if they wish to exit or reselect a file.
# Store the user answer as $ans1.
ans1=$(zenity --list --title "Select Action" --text "No file to be verified has been selected, you can now exit the script or reselect a file" --radiolist --column "Select" --column "Option" TRUE "Exit" FALSE "Reselect")
# If user selects "Reselect" in previous choice ($ans1)...
if [ "$ans1" == "Reselect" ] ; then
# ...then show file select dialogue and store filename/path as $userfile and exit code as $ecode2.
userfile=$(zenity --file-selection --title="Select the file to be validated"); ecode2=$?
# If exit code is not 0, user has cancelled the dialogue or selected an invalid file AGAIN.
if [ "$ecode2" -ne 0 ] ; then
# Tell them...
zenity --info --title="ERROR - No File Selected" --width=450 --text="No file selected...\n..again.\n\nExiting script and calling a doctor."
# ....and exit.
error_exit
# End this if statement.
fi
# If user selects "Exit" in previous choice ($ans1)...
else
# ... then exit the script.
error_exit
# End this if statement.
fi
# End this if statement.
fi
# Instructs user to select list of verified checksums.
zenity --info --title="Select MD5 Checksum List" --width=450 --text="On the next screen please select your list of verified MD5 check sums."
# User selects list of verified checksums, this is saved as variable $userDB.
userDB=$(zenity --file-selection --title="Select MD5 Checksum List"); ecode3=$?
#Quick error handler to exit or reselect where no $userfile selected (cancel pressed) or an invalid/unreadable file is selected.
# Tests if exit code (stored here as $ecode3) is 0, i.e. no file or invalid file selected.
if [ "$ecode3" -ne 0 ] ; then
# If the exit code above ($ecode3) does not equal 0 (1 = no file selected, invalid file selected) then ask the user if they wish to exit or reselect a file.
# Store the user answer as $ans2.
ans2=$(zenity --list --title "Select Action" --text "No MD5 checksum list has been selected, you can now exit the script or reselect a file" --radiolist --column "Select" --column "Option" TRUE "Exit" FALSE "Reselect")
# If user selects "Reselect" in previous choice ($ans1)...
if [ "$ans2" == "Reselect" ] ; then
# ...then show file select dialogue and store filename/path as $userDB and exit code as $ecode4.
userDB=$(zenity --file-selection --title="Select MD5 Checksum List"); ecode4=$?
# If exit code is not 0, user has cancelled the dialogue or selected an invalid file AGAIN.
if [ "$ecode4" -ne 0 ] ; then
# Tell them...
zenity --info --title="ERROR - No MD5 Checksum List Selected" --width=450 --text="No file selected...\n..again.\n\nExiting script and calling a doctor."
# ....and exit.
error_exit
# End this if statement.
fi
# If user selects "Exit" in previous choice ($ans1)...
else
# ... then exit the script.
error_exit
# End this if statement.
fi
# End this if statement.
fi
zenity --info --title="File Verifier" --width=450 --text="Your md5 checksum will now be calclated and compared against your selected list of verified MD5 check sums.\n\n\This may take some time."
# The md5sum function is run on selected file (held as variable $userfile) and the output is saved as variable $userfilemd5
# The cut function is used to extract the first "field" where the output is delimited with a " ". The d attribute selects the delimiter and the f attribute selects which field, in this case the first so it includes only the md5.
# Note the "" around the file/filepath reference (variable $userfile) this is to ensur folder/files with spaces in will be acccounted for correctly.
userfilemd5=$(md5sum "$userfile" | cut -d" " -f1)
# grep searches for the stored string ($userfilemd5) in the MD string DB ($userDB) and stores the result as $result
# $ecode5 variable stores the exit code of grep (which will be 0 if a match is found)
result=$(grep -i $userfilemd5 "$userDB"); ecode5=$?
# If grep exit code does not equal 0 (i.e. no match or error), then...
if [ "$ecode5" -ne 0 ] ; then
# tell the user and exit
zenity --error --title="No Match" --width=450 --text="NO MATCH!\n\n$userfile\n\n$userfilemd5\n\nNo match was found in:\n\n$userDB"
else
# zenity displays $result (note: DB file pre-formatted with \n for correct break spaces in dialogue)
zenity --info --title="File Verified: Results Below" --width=450 --text="The file you selected:\n \n$userfile \n \nHas this MD5 checksum: \n \n$userfilemd5 \n\nThis has been compared to the MD5 datasheet you selected: \n\n$userDB \n\n The following results have been determined: \n\n$result"
# End this if.
fi
# User sets $another_file variable to either chack another file or exit the script.
another_file=$(zenity --list --title "Select Action" --text "You can now exit the script or restart and check another file" --radiolist --column "Select" --column "Option" TRUE Exit FALSE Restart)
# End of while do statement
done
# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
# ' END OF SCRIPT
# '
# ' (\ /)
# ' (O.o)
# ' (> <)
# '
# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If it of use to anyone, I hope it does what you need.
___________________________________
(*1)Zenity is a basic GUI dialogue control system that makes getting user input fairly easy for simple tasks in simple scripts as it allows you to display GTK+ dialogs from shell scripts. If it is not installed out-of-the-box on your Gnome system then apt-get (or equivalent) the packages zentiy an zenity-common.