uOFW, the alternate Firmware project for the PSP
Some of you might have heard of uOFW, a project that aims at fully reverse-engineering OFW 6.60 on the PSP with the goal of writing an open source Firmware for our beloved device. Others might remember the Utopia project with a similar goal. Finally, most of you might wonder what the point of such a project would be, since we all have CFW on our PSPs… Today, in the hope of answering some of these questions, I’m interviewing Felix and Artart, the leads of one of the most ambitious projects on the PSP.
Wololo: Hi guys, could you describe the uOFW project in noob-friendly words? If I am a regular PSP user, what does this project do for me? What is its ultimate goal?
Felix & Artart: It’s quite a tough question, but although the project is very technical and not noob-friendly, its goals are very simple to understand.
uOFW is a project of reverse engineering the PSP firmware: in short, it means we are discovering how the PSP operating system works. In other words, it means we are looking into all the software which is used to make your PSP work as it does. From the binaries of this operating system (like a computer executable), we take its source code: it means we discover the way it works in a both human-readable and machine-readable way, in a conventional programming language (here, the C language).
As an end user, the project does nothing for now… we are “just” making a new PSP firmware, identical to the original one, but free of rights (it can be modified freely), and in a way which lets us modify it how we want. This means alternative firmwares may appear, opening your PSP to more opportunities and functionality… of course that part depends on what people will do with uOFW, not on uOFW itself. Still, with the documented source codes of the modules (and the working modules) we make adding new features to the firmware easier than ever before!
In addition, uOFW can also lead to progresses in emulators. As an example, the audio.prx module reverse engineering is heavily used in PCSP (practically untouched from what I heard), and it’s working perfectly.
A major part of the uOFW project is the documentation about the PSP modules and the PSP hardware itself. We intend to create the first compact archive of PSP hardware/kernel information. For now, a lot of information about it can already be found on the Internet, however, unfortunately, they cannot be found at a single place. Examples are the websites wololo.net and ps2dev, both being places where major information about the PSP can be found, but in many cases only in the form of bits and pieces, leaving much valuable information unfound (or can only be found after some search time). We want to change that with uOFW, adding module specific information right into the module’s source code. And it doesn’t end with that; we have setup a PSP wiki for the uOFW project as well, adding all information we find during reverse engineering which don’t get included into the source code.
Some information included in the uOFW documentations is very technical and thus aimed at hackers (people who would want to make low-level software for PSP or even, why not, a new firmware from scratch? Or porting linux? Bottom line: Everything is possible!) Even if you are not such a developer, but nonetheless interested in the PSPs inner works and want to know more about it, you should definitely check out the documentations added inside of a module’s source code, as they are aimed at explaining what is really going on. That means, not only C experts can get a grasp of what is going on but even every day PSP users.
Its final goal, shall we say, would be to completely reverse engineer the PSP firmware, resulting in having a completely open-source and modifiable firmware. However, we are aware of the fact that this objective is probably too high to be realistic (that is one reason why we are looking for more new contributors). Consequently, our goal is to reverse engineer all the most important modules (kernel ones, as opposed to VSH and utilities). This is a very long term project though… but the awesomeness of the project shall not stop us!
Wololo: What is the current status of the project? What can it do in its current state?
Felix & Artart: As for now, a few modules were reverse engineered. In its very basic form, as we said previously, it can’t do anything more than the original firmware; that is, you can use our “uOFW installer” to run our modules which work (only five are really working for now), and you won’t see any difference with the original firmware. However, it only seems to be the original firmware: actually, you’re partly running uOFW! (Let me just add that it is an awesome feeling to see “your” module running which you reverse engineered from scratch.)
The current five working modules are the controller module, the system timer module, the syscon module, the me_wrapper module and the LED module (although we still have to upload its working version). As you can see, we already finished some big numbers and we are looking forward to add more powerful modules to that list as time goes by.
These five modules are ready to be fully modified by anyone who wants to add new futures to the PSP’s kernel right away! Want some new, cool controller features? Just add them to the module, compile it and there you go! By this method, we can even continue releasing updates for the PSP and implement features, we, the users, really want; a point Sony did not always take into consideration.
We are hard at work to add more modules to the list of working modules and to provide even deeper looks inside the PSP kernel, however, we also have to emphasize that we (uOFW’s current main contributors) are very busy with real life for the foreseeable future and we would welcome every new contributor on board, bringing uOFW even further than it is right now! In other words: We need YOU! And don’t worry, if you have questions about reverse engineering or need help with a specific code block, we will happily help you out.
Wololo: That’s a nice transition to my next question: How many developers are actively working on this?
Felix & Artart: Currently, we are only four people actively working on it: Felix, Almost, artart78 and Omega2058. Some people just joined us, whereas others did a few libraries/modules for us but most likely won’t do anything more in a short time (Draan, jigsaw, mowglisanu, some1). While this list seems to be rather short, let us note that we have ongoing discussions with people (they are all excited to help uOFW coming together!) on IRC about PSP kernel details and specifications.
Wololo: How is uOFW different from an official firmware? How is it different from a CFW like Pro CFW? How is it different from a project like Utopia?
Felix & Artart: For its usage, uOFW is exactly like the official firmware; the only difference is that it’s understandable, modifiable, freely redistributable, etc….
A CFW is a modified official firmware… instead of reverse engineering the official firmware, its developers just understood SOME parts of the official firmware and replaced them by different ways, depending on what was needed.
For Utopia, you’ll need to search for long before finding a difference with uOFW, simply because there is none. The objective is the same! We just wanted to start again from scratch because Utopia was made on an old firmware (we are reverse engineering the latest firmware) and only a small part of it was code written in a way that would let us reuse it.
Furthermore, all its developers had abandoned the project; Mathieulh even had set the Utopia repository down for some time when there were legal issues with Sony. Considering all this, we found it easier to restart everything again from scratch, with a new team, new objectives, and with an improved organization. As the founders of the uOFW project, we are in full control of it and can listen to any suggestion made by you in order to make it even better!
To make a conclusion, uOFW is probably one of the most ambitious and interesting projects the PSP scene ever had!
Wololo: This does sound exciting indeed, if more devs want to participate, how can they contribute to uOFW?
By now, I hope we have already made you interested in uOFW, and, even better, interested in contributing to it. You will need some MIPS ASM/C knowledge in order to reverse engineer PSP modules and, of course, reverse engineering skills are needed as well. Now, if you don’t have the latter, don’t panic! Artart wrote an excellent guide about reverse engineering for the PSP and you should definitely check that out! It can be found at: http://psnpt.com/joomla/index.php/articles/39-tutorials.
Furthermore, we will add links (on the Github repository page) to MIPS online resources which you can use to improve your MIPS ASM skills.
If you want to take a look at uOFW’s current project status, check out its Github repository at: https://github.com/uofw/uofw
uOFW’s project page can be found at: http://dev.psnpt.com/redmine/projects/uofw
The doxygen documentation is located at: http://uofw.psnpt.com/sdkdoc/
uOFW’s wiki can be found at: http://dev.psnpt.com/redmine/projects/uofw/wiki/Wiki
If you want to join uOFW, you can always contact us through our emails:
Felix91’s email: FelixDev91@gmail.com
Artart78’s email: arthur.blot78@gmail.com
In addition, you can always contact us via IRC on the FreeNode server (irc.freenode.net) (join the channel #uofw).
First
You are an idiot
I second that
I fourth that
Amen
I’m in for that to Looney tunes, please go away from the internet Ftbs.
Ftbs=first to be shot?
Yes. Please use hollow points when you shoot me.
Sorry to *** you guys off, its just that I have no life so being first on an internet posting is all I have to live for :'(
I was thinking about it, there is no way to extract the psvita firmware and then change the psp firmware to the ecfw and then flash it on a psvita?
AAAAAAHHHHHH!!! I can’t believe in what i’m seeing! IT’S A DREAM COMING TRUE!!! PSP´s becoming free of shackles! It´s even more and more valuable buy a PSP, even nowadays! It´s really the best portable device which exists…
This sounds amazing! If only I knew how to program… Thinking of starting now, but it’ll be a very long time before I’d be at the level required for this. 🙁
sounds fun dough ….uofw. sounds good must have been fun on the reversenginering.. thks guys would be nice to have a psp go now sounds like emulations would be better last i heard windows on the psp still took a while to load lol.. would be cool to just have it on boot or jus *** an app..
the possibilities are only limited to hardware capabilities
i long time thought of that when i first herd about how much ram the psp had i always wanted to add more to it.. hope this helps.. thinking it can…
imagine if one day psp’s would run linux and in the same time play psp games… and imagine if something like that happened to the psvita… psvita 3G would emediatly be the best selling device ever because the first thing to hack on it would be to make it a mobile phone – the thing that everybody expected before it got out… PSVITA 3G MOBILE PHONE – THE TRUE iPHONE KILLER
PSVITA 3G – SonyOS+AndroidOS… bye bye apple
a vita n an htc nice combo.. apple got there retina display.. nintendo got controllers thats an ipad with buttons…
That is amazing. I hope the project reaches completion.
I hope the same thing to happen with psvita in 3 years
PSP is dead, post vita news
but even sony has psp on the vita
except in Japan
Linux on psp, we can dream can we ? Its nice they try, but it really looks like a un-do-able job. Howmuch developers have worked on OFW6.60 ? Howmany hours in just coding, now they wanne reverse it with <10 man ? Its a very nice idea, if i'd had the knowledge & time I'd contribute, but i fear it will end up as utopia, an empty 2 topic forum.
Nevertheless, goodluck !
The PSP will only ever run ucLinux due to it’s lack of MMU and ucLinux is rather limited for a non-embedded device.
well in one movie i watch a team of 4 coders got in to a computer system in five minutes…(good movie)..but yea would be sumtime since alot diferent firmware from 1.xx….
but i think if i had time with psp sdk it would be fun n i seen utube videos wit psp with huge umd dive..
It, will not end as utopia did at all.. If, i do remember correctly they have been doing this for a LONG time. I would dig up the topic on the form but i am lazy at the moment… This idea is beast so let’s keep it that way!
You put the last question asked by Wololo. But you didn’t put their names before the last answer. It just appears as though the question is asked and answered by Wololo.
This is an awesome project, good luck guys. 😉
FBA full,yes
So if the source code is released, China can make knock offs with complete firmware functionality…25 dollar PSP anyone?
even those knockoffs would presumably be dependent upon the pricing of the components… so more like 50 or 70 dollar PSP’s that are ever so slightly more likely to break. hardly a bargain when compared to the enormous number of used PSPs that are available and probably would be more dependable.
I may be wrong though, it just seems absurd that all the components of a PSP would cost less than 50 bucks. (though I’m not accounting for quantity discounts and the scale of whichever counterfeiting operation does it, so maybe they could get their components for that little if they planned to make tons of fake PSPs)
Who knows really? I was just thinking that with all of this knowledge of how the system is operating they could make the most complete clone we have ever seen. Look at the clones of Nintendo systems! Im sure they could find cheap manufacturing.
is it possible that we can run android ios like gingerbread or ics some alike it will be awesome but just impossible think so any thought about this
i would say don’t go with an already made OS. create your own. even though android said to be open source, I would consider a totally new OS completely.
utopia firmware comes up again xD
I was just wondering where this project went… good that its still going strong 🙂
S
What does the “u” mean in “uOFW” ?
I assume “unOfficial Firmware.”
WOW! I thought this was dead…
Cantcha make a Software Flasher for ps3 without using those flashers?,im just wondering
this is cool, but couldn’t they RE the vita and put a cfw on it.
I don’t understand. I don’t see a use for this on 7 year old system.
I wonder, could this possibly be ran on a PSP with the newer motherboard that has the newer IPL? If so, then this could be what late PSP 2000, PSP 3000, and PSP GO owners have been waiting for.
I think for newer motherboards this would need an exploit first, just like LCFWs do
Ah, I see. Understood sir! 🙂 Let the waiting begin. This could unlock many new possibilities for the PSP from what I read. I’m interested in this project and I fully support the motive these guys have! From what I gathered from the information provided here, this could allow us to do things from a simple rearrangement of the PSP XMB icons, all the way to an entirely fully custom menu coded from scratch! There would be more possibilities than that as well. It’s almost unbelievable. 🙂 Well, looks like I have something I can look forward to messing around with after my college degrees in engineering and computer programming are all taken care of. 🙂
Well, it is essentially just overwriting the current firmware files. So we could just reuse the 6.60 exploit to update it with this Firmware.
By the looks of it the code hasn’t been updated in 2 months what a shame
A not-updated GIT repository does not necessarily mean that nothing is going on behind the lines. We are working on a few modules right now, however, we are very busy with real life as well (as pointed out in the interview). Our aim is to upload “high-quality” source codes of modules (best case: the reversed engineered module runs on your PSP without any flaws) and this takes some time. We could commit some new code files right now, but they wouldn’t be of much use as they are in-complete and missing a lot of important information, making them hard to understand. More contributors definitely would speed up the uOFW project and thus could result in more repository updates then right now.
Nice article indeed. Thanks.
Hi, I’m a person who knows a lot of programming (C, C++, Python and a bit of Assembly) and I want to get into decryption (basically cryptography). Could someone point in the right direction to learn the basics and then the more advanced stuff (I know stuff like Caesar Cipher, A1Z26 Cipher, etc).