Editing Talk:Downgrading with Hardware flasher

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:
==Quick 'n Dirty prepatched==
==Quick 'n Dirty prepatched==
* http://www.psdevwiki.com/files/firmware/MFW-CEX/Downgrader/315-downgrader.pup (163.88 MB)  (MD5:954C3618BDEC277A546739CDB971C957 | SHA1:C074BD80F9F9AD13773163B69C0008528E6C2E6A | CRC16:C0FD | CRC32:75A740C5)
* http://www.ps3devwiki.com/files/firmware/MFW-CEX/Downgrader/315-downgrader.pup (163.88 MB)  (MD5:954C3618BDEC277A546739CDB971C957 | SHA1:C074BD80F9F9AD13773163B69C0008528E6C2E6A | CRC16:C0FD | CRC32:75A740C5)
* http://www.psdevwiki.com/files/firmware/MFW-CEX/Downgrader/341-downgrader.pup (167.1 MB) [http://www.mirrorcreator.com/files/1OEUY3WR/341-downgrader.pup_links mirror]
* http://www.ps3devwiki.com/files/firmware/MFW-CEX/Downgrader/341-downgrader.pup (167.1 MB)
(MD5:533C668CDB8864442991310481BCF64A | SHA1:C7AA2637BA69C675C2F13C214888D0C42EE4CDAF | CRC16:881B | CRC32:0634A651)
(MD5:533C668CDB8864442991310481BCF64A | SHA1:C7AA2637BA69C675C2F13C214888D0C42EE4CDAF | CRC16:881B | CRC32:0634A651)


* http://www.psdevwiki.com/files/firmware/MFW-CEX/Downgrader/355-downgrader.pup (170.62 MB)
* http://www.ps3devwiki.com/files/firmware/MFW-CEX/Downgrader/355-downgrader.pup (170.62 MB)
(MD5:8415159C72CA4050DF8B940874C52921 | SHA1:703368087CE5BF17319676CE6166CE8CCF5877C4 | CRC16:BD6B | CRC32:549F0348)
(MD5:8415159C72CA4050DF8B940874C52921 | SHA1:703368087CE5BF17319676CE6166CE8CCF5877C4 | CRC16:BD6B | CRC32:549F0348)


Line 35: Line 35:


== 3.41 NOR downgrader patches ==
== 3.41 NOR downgrader patches ==
Use [http://www.psdevwiki.com/files/flash/patches/341-NOR%20downgrade/ 3.41-NOR patches] only on NOR consoles, not on NAND!
Use [http://www.ps3devwiki.com/files/flash/patches/341-NOR%20downgrade/ 3.41-NOR patches] only on NOR consoles, not on NAND!
{|class="wikitable"
{|class="wikitable"
|-
|-
! Target area !! Patchfile !! NOR Offset !! Paste length !! Remarks
! Target area !! Patchfile !! NOR Offset !! Paste length !! Remarks
|-
|-
| ROS0 || [http://www.psdevwiki.com/files/flash/patches/341-NOR%20downgrade/patch1 patch1 (7 MB)] || 0x0C0010 || 0x6FFFE0 || CoreOS (prepatched 3.55)
| ROS0 || [http://www.ps3devwiki.com/files/flash/patches/341-NOR%20downgrade/patch1 patch1 (7 MB)] || 0x0C0010 || 0x6FFFE0 || CoreOS (prepatched 3.55)
|-
|-
| ROS1 || [http://www.psdevwiki.com/files/flash/patches/341-NOR%20downgrade/patch1 patch1 (7 MB)] || 0x7C0010 || 0x6FFFE0 || CoreOS (SAME as ros0)
| ROS1 || [http://www.ps3devwiki.com/files/flash/patches/341-NOR%20downgrade/patch1 patch1 (7 MB)] || 0x7C0010 || 0x6FFFE0 || CoreOS (SAME as ros0)
|-
|-
| trvk_prg0 (0x40000) <br />trvk_prg1 (0x60000)<br />trvk_pkg0 (0x80000) <br />trvk_pkg1 (0xA0000) || [http://www.psdevwiki.com/files/flash/patches/341-NOR%20downgrade/rvk-040000 rvk-040000 (512 KB)] || 0x40000 || 0x80000 || one big patch<br />overlapping several revoke area's
| trvk_prg0 (0x40000) <br />trvk_prg1 (0x60000)<br />trvk_pkg0 (0x80000) <br />trvk_pkg1 (0xA0000) || [http://www.ps3devwiki.com/files/flash/patches/341-NOR%20downgrade/rvk-040000 rvk-040000 (512 KB)] || 0x40000 || 0x80000 || one big patch<br />overlapping several revoke area's
|-
|-
|}
|}
(above patches in a single package + autopatcher file: [http://www.psdevwiki.com/files/flash/patches/341-NOR%20downgrade.rar 341-NOR downgrade.rar] [http://www.mirrorcreator.com/files/QAO9LNID/341-NOR_downgrade.rar_links mirror])
(above patches in a single package + autopatcher file: [http://www.ps3devwiki.com/files/flash/patches/341-NOR%20downgrade.rar 341-NOR downgrade.rar])


=== E3 Flasher ===
=== E3 Flasher ===
Use these instead (already reversed), otherwise you get into a maze of bytereversing: [http://www.psdevwiki.com/files/flash/patches/341-E3%20downgrade.rar 341-E3 downgrade.rar]
Use these instead (already reversed), otherwise you get into a maze of bytereversing: [http://www.ps3devwiki.com/files/flash/patches/341-E3%20downgrade.rar 341-E3 downgrade.rar] [http://www.mirrorcreator.com/files/QAO9LNID/341-NOR_downgrade.rar_links mirror]
 
== PS3 Nor and Nand Auto Patcher by Rogero ==
=== Source ===
{{Boxcode|code=<syntaxhighlight lang="cpp">
///////////////////////////////////////////////////////////////////////////
// PS3 Nor and Nand Auto Patcher v0.05        by Rogero    25/Mar/2013 //
///////////////////////////////////////////////////////////////////////////
 
 
    #include <iostream>
    #include <fstream>
    //#include <string>
    #include <direct.h>
    #include "ConsoleColor.h"
 
using namespace std;
 
void Patch(char*, char*, char*, int, int);
 
int main(int argc, char * argv[])
    {
    cout<<green<<"-----------------------------------------------------------------------"<<endl;
        cout<<"    PS3 Flash Auto Patcher v4.55              by Rogero  15/Feb/2014"<<endl<<endl;
        cout<<"    ( Patch NOR and NAND Dumps with CFW4.55 patches / No FSM needed )"<<endl;
cout<<"-----------------------------------------------------------------------"<<endl<<endl;
 
 
if(argc < 2){
 
  cout <<white<< endl << "Copy your PS3's Flash Dump into the program's folder,\n\n";
  cout << "Then Drag and Drop your Dump File onto the exe to apply the Downgrade Patches.\n";
      cout <<yellow<< endl << endl << endl << "Press any key to exit.";
  cin.get();
      return 0;
  }
 
 
 
    cout <<yellow<< "Processing the file: " <<white<< endl << argv[1] << "\n\n\n";
 
        //WinXP current directory / Files Path Fix /////////////////////////////////
        string path = argv[0];
        //remove the executable file name from the full path to get current working directory
        path.erase(path.rfind("\\")+1, std::string::npos);
 
        //Change to Current working directory
        _chdir(path.c_str());
        ////////////////////////////////////////////////////////////////////////////
 
 
FILE *ifile;
unsigned char *buf = NULL;
buf = (unsigned char *) malloc(1);
int type = 0; // 0 = NOR , 1 = NOR ByteReversed , 2 = Nand Interleaved , 3 = Unknown , 4 = NOR metldr 2
ifile = fopen( (char*) argv[1], "rb+");
 
// Detect Dump type
/////////////////////////////////////////////////////////////////////
if (ifile != NULL) {
fseek(ifile, 0x40220, SEEK_SET);  // read byte at 0x40220
fread( buf, 1, 1, ifile);
 
//printf("%02X",(int)buf[0]);
if (("%02X",(int)buf[0]) == 0x61) // Nand
{
fseek(ifile, 0x40228, SEEK_SET);
fread( buf, 1, 1, ifile);
if (("%02X",(int)buf[0]) == 0x6C) // double check if Nand
    type = 2;  // Nand
else
type = 3;  // Unknown
}
else
{
if (("%02X",(int)buf[0]) == 0x00) // Nor
{
fseek(ifile, 0x420, SEEK_SET);
fread( buf, 1, 1, ifile);
if (("%02X",(int)buf[0]) == 0x73) // check if ByteReversed
    {
fseek(ifile, 0x826, SEEK_SET);
fread( buf, 1, 1, ifile);
if (("%02X",(int)buf[0]) == 0x32) // check if metldr 2
type = 4;  // Nor with metldr 2
else
type = 1;  // Nor ByteReversed
}
else
{
if (("%02X",(int)buf[0]) == 0x61) // check if Normal
    {
fseek(ifile, 0x827, SEEK_SET);
fread( buf, 1, 1, ifile);
if (("%02X",(int)buf[0]) == 0x32) // check if metldr 2
type = 4;  // Nor with metldr 2
else
type = 0;  // Nor Normal
}
else
type = 3;  // Unknown
}
}
else
type = 3;  // Unknown
}
}
/////////////////////////////////////////////////////////////////////
 
cout <<yellow<< "Opening Files...\n\n";
 
 
if (type == 0) // Normal dump = Progskeet
{
cout << "********************************************************\n";
cout << "* This is a Normal NOR Dump (Progskeet/Winskeet style) *\n";
cout << "********************************************************\n\n"<<white;
 
Patch(argv[1], "Data/patch1n.bin", "Temp_1.bin", 786448, 1);
Patch("Temp_1.bin", "Data/patch1n.bin", "NOR_patched.bin", 8126480, 2);
 
//Patch("bkpps3_Temp_2.bin", "Data/patch2n.bin", "bkpps3_patched.bin", 262144, 3);
}
 
if (type == 1) // Byte-swapped dump = E3
{
cout << "*******************************************************\n";
cout << "* This is a byte-reversed NOR Dump (E3 Flasher style) *\n";
cout << "*******************************************************\n\n"<<white;
 
Patch(argv[1], "Data/patch1r.bin", "Temp_1.bin", 786448, 1);
Patch("Temp_1.bin", "Data/patch1r.bin", "bkpps3_NOR_patched.bin", 8126480, 2);
//Patch("bkpps3_Temp_2.bin", "Data/patch2.bin", "bkpps3_patched.bin", 262144, 3);
}
 
if (type == 0 || type == 1)
{
cout <<yellow<< "Deleting Temp Files....\n";
remove("Temp_1.bin");
//remove("bkpps3_Temp_2.bin");
cout << "Done.\n";
cout << green << endl << endl << "Your NOR Dump was successfully patched and is ready to be flashed.";
cout << yellow <<endl << endl << endl << "Press any key to exit.";
cin.get();
return(0);
}
 
if (type == 2) // Nand
{
cout << "*******************************************************\n";
cout << "* This is an Interleaved NAND Dump (by FlowRebuilder) *\n";
cout << "*******************************************************\n\n"<<white;
 
Patch(argv[1], "Data/patch1n.bin", "Temp_1.bin", 786480, 1);
Patch("Temp_1.bin", "Data/patch1n.bin", "NAND_patched.bin", 8126496, 2);
//Patch("bkpps3_Temp_2.bin", "Data/patch2.bin", "bkpps3_patched.bin", 262144, 3);
 
cout <<yellow<< "Deleting Temp Files....\n";
remove("Temp_1.bin");
//remove("bkpps3_Temp_2.bin");
cout << "Done.\n";
cout << green << endl << endl << "Your NAND Dump was successfully patched and is ready to be re-scrambled"<<endl<<"then de-interleaved into 2 flashes using latest version of FlowRebuilder.";
cout << yellow <<endl << endl << endl << "Press any key to exit.";
cin.get();
return(0);
}
 
if (type == 3) // Unknown
{
cout <<red<< "********************************************************\n";
cout << "* This is an Unknown Flash Type or a Bad File Detected *\n";
cout << "********************************************************\n\n\n"<<white;
 
cout << "The Program will exit now, check your Flash Dump then try again...";
cout << yellow <<endl << endl << endl << "Press any key to exit.";
cin.get();
return(0);
}
 
if (type == 4) // Metldr 2
{
cout <<red<< "***********************************************************************\n";
cout << "* This is a NOR Dump with a Non-Downgradable Metldr revision Detected *\n";
cout << "***********************************************************************\n\n\n"<<white;
 
cout << "The Program will exit now...";
cout << yellow <<endl << endl << endl << "Press any key to exit.";
cin.get();
return(0);
}
 
    } // end main
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
void Patch(char* input, char* patch, char* output, int offset, int no)
    {
    ifstream inmain(input,ios::in|ios::binary);
ifstream inpatch(patch,ios::in|ios::binary);
    ofstream patched(output,ios::out|ios::binary);
 
if ( inmain.is_open() )
  {
if (inpatch.is_open())
{
 
if (patched.is_open())
{
 
cout << "Applying Patch Number "<<no<<"...\n";
 
int patchStartOffset = offset ;
    char ioChar;
    for (int i = 0; i < patchStartOffset; i++)
    {
    inmain.get(ioChar);
    patched.put(ioChar);
    }
 
int patchLen = 0;
while (inpatch.get(ioChar))
    {
patched.put(ioChar);
    patchLen++;
}
 
    streampos mainPos = inmain.tellg();
    mainPos += patchLen;
    inmain.seekg(mainPos);
    while (inmain.get(ioChar))
    {
    patched.put(ioChar);
    }
 
patched.close();
inpatch.close();
inmain.close();
}
else
  {
    cout << "Error opening output file !!\n\n";
cout << "Please make sure you have enough free space to run the program...\n\n\n\n";
cout << "Press any key to exit.";
cin.get();
exit(0);
}
}
else
  {
    cout << "Error opening patch file !!\n\n";
cout << "Please make sure to place the Nor Dump inside the Program's folder\n";
cout << "before you Drag and Drop.\n\n\n\n";
cout << "Press any key to exit.";
cin.get();
exit(0);
}
}
else
  {
    cout << "Error opening input file\n";
cout << "Press any key to exit.";
cin.get();
exit(0);
}
}
</syntaxhighlight>}}


== Venix Autopatcher ==
== Venix Autopatcher ==
Line 322: Line 56:
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"  
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"  
|-
|-
! style="background-color:red!important;" | <span style="background-color:lightred; color:white; font-size:200%; ">Warning</span>
! style="background-color:red;" | <span style="background-color:lightred; color:white; font-size:200%; ">Warning</span>
|-
|-
| <span style="white; color:red!important; font-size:150%; text-align:center; ">This tool is known and proven to give false positives on bad dumps that lead to permabricks.  
| style="background-color:white;" | <span style="white; color:red; font-size:150%; text-align:center; ">This tool is known and proven to give false positives on bad dumps that lead to permabricks.  


Use this method: [[Validating flash dumps]] to make sure the dumps are in crisp condition.
Use this method: [[Validating flash dumps]] to make sure the dumps are in crisp condition.
Line 333: Line 67:
|}
|}
=== Intro ===
=== Intro ===
Some portuguese dude (somehow venix name reminds me of a fake bricker CFW and highly hyped and never released manager long time ago) apparently never found wiki guides or used flowrebuilder/winskeet autopatcher or hexeditor with autopatch scripts.
Some portuguese dude (somehow venix name reminds me of a fake bricker CFW and highly hyped and never released manager long time ago) apparently never found ps3devwiki guides or used flowrebuilder/winskeet autopatcher or hexeditor with autopatch scripts.


=== Versions ===
=== Versions ===
Line 347: Line 81:
==== Quick bulletproof test ====
==== Quick bulletproof test ====
does not test:
does not test:
* bad region - <span style="white; color:red!important;">not detected</span>, user not warned -> result = <span style="white; color:red!important;">brick file</span>
* bad region - <span style="white; color:red;">not detected</span>, user not warned -> result = <span style="white; color:red;">brick file</span>
* bad A9 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A9 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A10 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A10 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A11 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A11 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A12 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A12 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A13 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A13 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A14 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A14 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A15 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A15 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A16 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A16 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A17 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A17 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A18 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A18 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A19 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A19 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A20 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A20 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A21 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A21 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad A22 wire - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A22 wire - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad boardID - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad boardID - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad bootldr - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad bootldr - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad cCSD unreferenced area - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad cCSD unreferenced area - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad cISD unreferenced area - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad cISD unreferenced area - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad EID unreferenced area - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad EID unreferenced area - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad header - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad header - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad header asecure loader - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad header asecure loader - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad header cISD - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad header cISD - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad header cvtrm - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad header cvtrm - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad header eEID - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad header eEID - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad header metldr - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad header metldr - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad metldr - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad metldr - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing bootldr - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing bootldr - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing cCSD - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing cCSD - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing cISD0 - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing cISD0 - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing cISD1 - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing cISD1 - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing cISD2 - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing cISD2 - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing EID0 - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing EID0 - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing EID1 - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing EID1 - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing EID2 - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing EID2 - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing EID3 - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing EID3 - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing EID4 - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing EID4 - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing EID5 - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing EID5 - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing metldr - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing metldr - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad/missing PerConsoleNonce - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad/missing PerConsoleNonce - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad patterned non 00's - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad patterned non 00's - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad patterned non FF's - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad patterned non FF's - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>
* bad region - <span style="white; color:red!important;">not detected</span>, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad region - <span style="white; color:red;">not detected</span>, patch file created -> result = <span style="white; color:red;">brick file</span>


partly test (if user flashes that, it will permabrick):
partly test (if user flashes that, it will permabrick):
* bad A0 wire - detected, 00 filled file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A0 wire - detected, 00 filled file created -> result = <span style="white; color:red;">brick file</span>
* bad A1 wire - detected, 00 filled file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A1 wire - detected, 00 filled file created -> result = <span style="white; color:red;">brick file</span>
* bad A2 wire - detected, 00 filled file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A2 wire - detected, 00 filled file created -> result = <span style="white; color:red;">brick file</span>
* bad A3 wire - detected, 00 filled file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A3 wire - detected, 00 filled file created -> result = <span style="white; color:red;">brick file</span>
* bad A4 wire - detected, 00 filled file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A4 wire - detected, 00 filled file created -> result = <span style="white; color:red;">brick file</span>
* bad A5 wire - detected, 00 filled file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A5 wire - detected, 00 filled file created -> result = <span style="white; color:red;">brick file</span>
* bad A6 wire - detected, 00 filled file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A6 wire - detected, 00 filled file created -> result = <span style="white; color:red;">brick file</span>
* bad A7 wire - detected, 00 filled file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A7 wire - detected, 00 filled file created -> result = <span style="white; color:red;">brick file</span>
* bad A8 wire - detected, 00 filled file created -> result = <span style="white; color:red!important;">brick file</span>
* bad A8 wire - detected, 00 filled file created -> result = <span style="white; color:red;">brick file</span>
* bad header IFI - detected, patch file created -> result = <span style="white; color:red!important;">brick file</span>
* bad header IFI - detected, patch file created -> result = <span style="white; color:red;">brick file</span>


does test:
does test:
Line 407: Line 141:


==== Conclusion ====
==== Conclusion ====
Conclusion : '''<span style="white; color:red!important;">USELESS</span>''', brickdumps will still show as 'valid' and corrupt patch files will be generated, not preventing the user from permabricking. <br />
Conclusion : '''<span style="white; color:red;">USELESS</span>''', brickdumps will still show as 'valid' and corrupt patch files will be generated, not preventing the user from permabricking. <br />


==== Recomendation ====
==== Recomendation ====
'''<span style="white; color:red!important;">Recommendation: [[Validating flash dumps|Validate flash dumps]] first and use [http://www.psdevwiki.com/files/flash/Tools/Flowrebuilder/ Flowrebuilder] or [http://www.psdevwiki.com/files/flash/Tools/Progskeet/Winskeet/ Winskeet] with [http://www.psdevwiki.com/files/flash/patches/ autopatcher] instead.'''
'''<span style="white; color:red;">Recommendation: [[Validating flash dumps|Validate flash dumps]] first and use [http://www.ps3devwiki.com/files/flash/Tools/Flowrebuilder/ Flowrebuilder] or [http://www.ps3devwiki.com/files/flash/Tools/Progskeet/Winskeet/ Winskeet] with [http://www.ps3devwiki.com/files/flash/patches/ autopatcher] instead.'''


=== Newssites that news'ed the 'tool' ===
=== Newssites that news'ed the 'tool' ===
Line 418: Line 152:


=== Newssite that refused to news it ===
=== Newssite that refused to news it ===
* http://www.ps3hax.net/2012/04/warning-venix-autopatcher-is-a-dangerous-tool-do-not-use-it/ (they had read above warning on wiki and decided it was best for their users not to frontpage it)
* http://www.ps3hax.net/2012/04/warning-venix-autopatcher-is-a-dangerous-tool-do-not-use-it/ (they had read above warning on ps3devwiki and decided it was best for their users not to frontpage it)


=== Patches contained inside binairy ===
=== Patches contained inside binairy ===
Line 513: Line 247:


==== Note ====
==== Note ====
wiki v2 downgrader contains 2 patchsets, used on 3 offsets. Having 9 sounds like a bit of overkill to bloat the binairy.
ps3devwiki v2 downgrader contains 2 patchsets, used on 3 offsets. Having 9 sounds like a bit of overkill to bloat the binairy.


=== Checks ===
=== Checks ===
Line 554: Line 288:


==== Quick bulletproof test ====
==== Quick bulletproof test ====
<span style="white; color:red!important;">wrongly detected:</span>
<span style="white; color:red;">wrongly detected:</span>
* bad A0 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A0 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A1 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A1 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A2 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A2 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A3 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A3 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A4 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A4 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A5 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A5 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A6 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A6 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A7 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A7 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A8 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A8 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A9 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A9 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A10 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A10 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A11 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A11 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A12 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A12 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A13 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A13 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A14 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A14 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A15 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A15 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A16 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A16 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A17 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A17 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A18 wire -> <span style="white; color:red!important;">Validation Failedff byte count</span>
* bad A18 wire -> <span style="white; color:red;">Validation Failedff byte count</span>
* bad A19 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A19 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A20 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A20 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A21 wire -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad A21 wire -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad A22 wire -> <span style="white; color:red!important;">Validation Failedff byte count</span>
* bad A22 wire -> <span style="white; color:red;">Validation Failedff byte count</span>
* bad bootldr -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad bootldr -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad bootldr -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad bootldr -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad cCSD unreferenced area -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad cCSD unreferenced area -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad cISD unreferenced area -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad cISD unreferenced area -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad EID unreferenced area -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad EID unreferenced area -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad header -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad header -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad header asecure loader -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad header asecure loader -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad header cISD -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad header cISD -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad header cvtrm -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad header cvtrm -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad header eEID -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad header eEID -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad IFI -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad IFI -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad header trvk -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad header trvk -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad metldr -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad metldr -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing bootldr -> <span style="white; color:red!important;">Validation Failedff byte count</span>
* bad/missing bootldr -> <span style="white; color:red;">Validation Failedff byte count</span>
* bad/missing cCSD -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing cCSD -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing cISD0 -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing cISD0 -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing cISD1 -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing cISD1 -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing cISD2 -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing cISD2 -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing EID0 -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing EID0 -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing EID1 -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing EID1 -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing EID2 -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing EID2 -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing EID3 -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing EID3 -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing EID4 -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing EID4 -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing EID5 -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing EID5 -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing metldr -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing metldr -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad/missing PerConsoleNonce -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad/missing PerConsoleNonce -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad patterned non 00's -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad patterned non 00's -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad patterned non FF's -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad patterned non FF's -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad region -> <span style="white; color:red!important;">Validation Failed00 byte count</span>
* bad region -> <span style="white; color:red;">Validation Failed00 byte count</span>
* bad filelength -> <span style="white; color:red!important;">application hangs</span>
* bad filelength -> <span style="white; color:red;">application hangs</span>
* known good reference dumps (184) -> <span style="white; color:red!important;">'''Validation Failed00 byte count'''</span>
* known good reference dumps (184) -> <span style="white; color:red;">'''Validation Failed00 byte count'''</span>


==== Conclusion ====
==== Conclusion ====
<span style="white; color:red!important;">'''USELESS'''</span>, 100% valid files will be failing 00/ff check. Improper files will be failing 00/ff check too, and no detection of the root of the cause. Nothing was patched and gives the user a permanent false sense of having bad dumps without leads of what to solve.
<span style="white; color:red;">'''USELESS'''</span>, 100% valid files will be failing 00/ff check. Improper files will be failing 00/ff check too, and no detection of the root of the cause. Nothing was patched and gives the user a permanent false sense of having bad dumps without leads of what to solve.
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)

Template used on this page: