Post Reply 
[Roundup] All the 5.55 and 6.00 Fake Releases
Author Message
ZiNgA BuRgA
Smart Alternative

Posts: 17,022.2988
Threads: 1,174
Joined: 19th Jan 2007
Reputation: -1.71391
E-Pigs: 446.1274
Offline
Post: #59
RE: [Roundup] All the 5.55 and 6.00 Fake Releases
Mr. Shizzy Wrote:Back around the PSP launch, I actually was using HarleyG's 0.2 cfw for a long time.  It was based off DA's 1.50 POC.   But it was a great cfw.  It even allowed you to dual boot custom firmwares.    Also, it should be noted that HarleyG was the one who created the very first recovery menu system.   He later worked with DAX on the SE cfw series, where his recovery menu became famous.  (M33 and GEN base their recovery systems on it till this day)   And if you want proof that HarleyG coded the first recovery menu - Google 1.50 POC source code, and look through the source code and read the commenting at the top of the recovery.c file   ;)
Spoiler for recovery source:

C Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include <pspsdk.h>
#include <pspkernel.h>
#include <pspctrl.h>
#include <pspusb.h>
#include <pspusbstor.h>
#include "pspvshbridge.h"

#include <string.h>

PSP_MODULE_INFO("daxRecovery_app", 0x1000, 1, 0);

PSP_MAIN_THREAD_ATTR(0);

#define printf pspDebugScreenPrintf

char buf[16384];

#define PROGRAM "ms0:/PSP/GAME/UPDATE/EBOOT.PBP"

int copy_file(char *input, char *output)
{
	SceUID i = sceIoOpen(input, PSP_O_RDONLY, 0777);	

	if (i < 0)
		return -1;

	sceIoRemove(output);

	SceUID o = sceIoOpen(output, PSP_O_WRONLY | PSP_O_CREAT | PSP_O_TRUNC, 0777);

	if (o < 0)
		return -1;

	int read;

	while ((read = sceIoRead(i, buf, 16384)) > 0)
	{
		sceIoWrite(o, buf, read);
	}

	sceIoClose(i);
	sceIoClose(o);

	return 0;
}

int usbStarted=0;

void start_usb()
{
	pspSdkLoadStartModule("flash0:/kd/semawm.prx", PSP_MEMORY_PARTITION_KERNEL);
	pspSdkLoadStartModule("flash0:/kd/usbstor.prx", PSP_MEMORY_PARTITION_KERNEL);
	pspSdkLoadStartModule("flash0:/kd/usbstormgr.prx", PSP_MEMORY_PARTITION_KERNEL);
	pspSdkLoadStartModule("flash0:/kd/usbstorms.prx", PSP_MEMORY_PARTITION_KERNEL);
	pspSdkLoadStartModule("flash0:/kd/usbstorboot.prx", PSP_MEMORY_PARTITION_KERNEL);

	sceUsbStart(PSP_USBBUS_DRIVERNAME, 0, 0);
	sceUsbStart(PSP_USBSTOR_DRIVERNAME, 0, 0);
	sceUsbstorBootSetCapacity(0x800000);

	sceUsbActivate(0x1c8);

	usbStarted = 1;
}

void stop_usb()
{
	if (usbStarted)
	{
		sceUsbDeactivate(0);
		sceUsbStop(PSP_USBSTOR_DRIVERNAME, 0, 0);
		sceUsbStop(PSP_USBBUS_DRIVERNAME, 0, 0);

		usbStarted = 0;
	}
}

int main()
{
	pspDebugScreenInit();
	
	pspDebugScreenSetBackColor(0xFF0000);
	pspDebugScreenSetTextColor(0x00FFFF);
	pspDebugScreenClear();

	printf("Recovery Mode.\n\n\n\n");
	printf("Press start to activate USB Mass.\n");
	printf("Press triangle to flash ms0:/index.dat to flash0.\n");
	printf("Press cross to start the program under ms0:/PSP/GAME/UPDATE/EBOOT.PBP\n");
	printf("Press home to exit.\n\n\n\n");

	sceIoUnassign("flash0:");
	sceIoAssign("flash0:", "lflash0:0,0", "flashfat0:", IOASSIGN_RDWR, NULL, 0);

	while (1)
	{
		SceCtrlData pad;

		int keyprocessed = 0;

		sceCtrlReadBufferPositive(&pad, 1);

		if (pad.Buttons & PSP_CTRL_START)
		{
			start_usb();
			printf("Usb started.\n");
			keyprocessed = 1;
		}
		else if (pad.Buttons & PSP_CTRL_TRIANGLE)
		{
			if (copy_file("ms0:/index.dat", "flash0:/vsh/etc/index.dat") < 0)
				printf("Cannot copy file. (file missing?).\n");
			else
				printf("File copied succesfully.\n");

			keyprocessed = 1;
		}
		else if (pad.Buttons & PSP_CTRL_CROSS)
		{
			struct SceKernelLoadExecVSHParam param;

			memset(&param, 0, sizeof(param));

			param.size = sizeof(param);
			param.args = strlen(PROGRAM)+1;
			param.argp = PROGRAM;
			param.key = "updater";

			printf("Starting program...\n");
			vshKernelLoadExecVSHMs1(PROGRAM, &param);

			keyprocessed = 1;
		}
		else if (pad.Buttons & PSP_CTRL_HOME)
		{
			break;
		}

		sceKernelDelayThread((keyprocessed) ? 200000 : 50000);
	}

	vshKernelExitVSHVSH(NULL);

	return 0;
}

So no comment, plus there's no recovery.c in the official 1.50 PoC source code (above is src/recovery/main.c).  It was written by Dark_AleX, HarleyG just grabbed the source code and performed some modifications to it.  The dual boot thing was just launching DevHook on startup.
(This post was last modified: 22/09/2009 04:10 PM by ZiNgA BuRgA.)
22/09/2009 04:08 PM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply 


Messages In This Thread
Possible 5.55 PSL today! - SchmilK - 11/09/2009, 10:21 AM
RE: Possible 5.55 PSL today! - Vegetano1 - 11/09/2009, 10:29 AM
RE: Possible 5.55 PSL today! - SchmilK - 11/09/2009, 10:30 AM
RE: Possible 5.55 PSL today! - trademark91 - 11/09/2009, 10:35 AM
RE: Possible 5.55 PSL today! - SchmilK - 11/09/2009, 12:12 PM
6.00 SA-1 confirmed fake - SchmilK - 18/09/2009, 05:30 AM
RE: [Roundup] All the 5.55 and 6.00 Fake Releases - ZiNgA BuRgA - 22/09/2009 04:08 PM
5.55 LDX-2 found...and well... - SchmilK - 25/09/2009, 03:30 PM
LDX 5.03 Hen - SchmilK - 07/10/2009, 06:06 AM

Forum Jump:


User(s) browsing this thread: 9 Guest(s)

 Quick Theme: