PS3 [RESEARCH] Downloading all unknown file types to HDD and Flash

O was thinking, If i remap " dev_ntfsX/PS2ISO to dev_hdd0/PS2ISO " could it load my PS2 games from USB in NTFS ?

because of the way ps2 loading works, it's not currently possible. the mounting of one location to another works with game data tool, but that's for ps3 games. plus, you can't mount two locations at the same time.
 
Btw, the <Pair key="logical_sceme"> that appears in the xmbml files (with available values Photo/Music/Video) is related with the XMB databases
Actually, there is a XMB database file named "scheme" that seems to work as an index of the other database files

It seems when you indicate a logical_sceme in the xmbml files you are telling the firmware how to "navigate" the internal structure of the databases, where the content is already indexed (incase of uploads)... or needs to be indexed (incase of downloads)


So... have you tryed to remove that line in the xmbml ?
Im guessing the problem you have when download stops at 99% could be caused because the firmware is trying to "index" the file in the databases
To me it looks the "install packages" is scanning contents of the device everytime you enter in it, so i think the PKGs are not indexed in the databases
 
It seems there is a way using Silk to trigger bg download of any file type as img, audio or video but without needing to actually rehost the files renamed with one of the accepted extensions. File still has to be saved as either img, audio or video. Testing.
 
Just a clarification of what i mentioned about databases
Inmediatly when the download is completed the firmware needs to perform some checks to the file, and every filetype needs to use his specific checks

As example, if you download an image, there are some firmware functions that needs to read all metadata info about the image, like dunno, width x lenght, bitdepth, and stuff like that
Some of that info is stored in the hdd database

I think this is the point where the error happens (displayed on screen as an incomplete 99% download), because you are trying to search for "video metadata" info in a PKG
The firmware doesnt crashes because is not a critical error... but i bet if you enter in recovery menu and "rebuild database" the downloaded file is going to be deleted because is not correctly indexed in the database, and is not posible to index it so either is going to be identifyed by the "database manteinance service" as corrupted or orphan... and as a consequence of that is going to be deleted
 
Last edited:
So... have you tryed to remove that line in the xmbml ?
Yeah, seems to make no difference. Also seems to make no difference as it downloads to other partitions 100%.
To me it looks the "install packages" is scanning contents of the device everytime you enter in it, so i think the PKGs are not indexed in the databases
Yeah, the tests where i could copy pkgs on the xmb was not just specific to pkgs, same test would work with any file type I wanted. Also when i was doing that mod, it was actually adding the file to the database as a video, regardless of file type.
 
Take a look at the filenames at: /dev_flash/vsh/module/mms_minimdimp_*.sprx
There is one .sprx for each filetype, i guess this ones are doing the metadata checks ;)
 
Those checks do not seem very thorough whatever they are, because just by adding extensions to download_plugin allows it to download any filetype to 100% completion and add them to the XMB database for copying, deleting etc. The only issue was thumbnail and title on XMB, which is to be expected. In every other aspect the files worked 100% after downloading as videos.
 
That might sounds a stupid question but well : are you sure that device_path means the complete location where the file will be downloaded (full path) ? Because if we look at the original file, music, photos and videos has all the same "device_path" (/dev_hdd0). Could it just mean the device on which the file will be downloaded ? (BTW, this could be related : what does "logical_sceme" means ?)

I will explain a little more about this as i have half an understanding of this now. :)

The reason you see the same path for photo/music/video type in the download_list.xml is, that is just the prefix to the path.

So for video, "/video/xx/xx/" gets added, for music "/music/xx/xx" gets added etc. This is different per logical scheme. Also, if you just add dev_hdd0 for unknown file types, guess what gets added.... "/tmp/downloader/" , so all of this is listed in the sprx. I can change those paths in both places, I can add "../" to either of those paths to go up a level, either in the xmls or in the sprx, I can also add a NULL , either in the xml, or in the sprx, this stops any more of the path from reading at any point I want, which is useful. It allows me to get to root without modifying the sprx.

Here is one of those paths, tested and confirmed and changeable.
upload_2019-4-12_2-47-53.png


Here are some other paths in the sprx:
upload_2019-4-12_2-49-18.png
 
Last edited:
I just tested the files for OFW and I drew the following conclusions, I think you should know this but I will say it anyway.

1- HAN and DEBUG influence the download, when DEBUG is activated it is not possible to download signed packages and vice versa.

2 - Possible extension check for dev_hdd0, I noticed that when downloading to this partition when finished it does a check, but it is strange because on the pendrive it seems to do a check but the full 100% download.

3 - wanted to know if the downloads made from PSN have some different treatment from the general donations made by the browser and if it would be possible to take that same treatment to the browser.

sorry my english I'm using google translator
 
I just tested the files for OFW and I drew the following conclusions, I think you should know this but I will say it anyway.

1- HAN and DEBUG influence the download, when DEBUG is activated it is not possible to download signed packages and vice versa.
I did not know that, as im on CFW which is patched for both, thankyou for testing, I need more feedback from HAN users as its not something i use myself. So any info there is fine especially if it behaves differently to CFW.

I did notice that pkgs get a different icon when downloading, so i knew it was recognizing them, but the error is the same when downloading to dev_hdd0 paths. They download perfectly to usb on CFW.

2 - Possible extension check for dev_hdd0, I noticed that when downloading to this partition when finished it does a check, but it is strange because on the pendrive it seems to do a check but the full 100% download.
Yes, could be, but then why do dev_flash2 and dev_blind work, ok i can understand dev_blind, as its a custom name. That actually gives me an idea, @aldostools, can you add mounting to webman if possible, It would be great if i could mount dev_hdd1 (multiman only seems to mount it when its open, unmounts when it closes). Also can we then mount dev_hdd0 with a different name, as that might get around this check that is deleting files. If we could mount as different name, and then i change all the paths in download_list.xml, we might have solved this already, with minimal effort, and it would work on HAN too as i think they can mount dev_blind too.


3 - wanted to know if the downloads made from PSN have some different treatment from the general donations made by the browser and if it would be possible to take that same treatment to the browser.

So yes, you are correct, certain file types are treated differently. and that is interesting that pkg signing effects your downloads on HAN. So that means pkgs are not treated like normal downloads even when downloaded like this with custom paths. I can patch that check out of the sprx on CFW no problem. Not sure if HAN can have that patch in RAM though. You will have to wait and see what is possible on CFW first, maybe some stuff will make its way to HAN later once its perfected.

@everyone : Actually there are some interesting patches to be done in this area with the special files. Not sure exactly how to do it yet, any suggestions welcome.

I have a bit of a list of some of the unusual ones that can be used to our advantage. One issue is that we get an error if the path does not exist, 80023320. So the folders added in the download_list.xml need to exist to be used. There are exceptions.

sbk and sb2 files:
These DO give the option of a file path although it creates sub folders, but these do not allow you to browse USB for folder like normal. These would only normally be allowed onto PSPs which took me a while to figure out, mostly because i had to find my PSP charger that took ages. :)

Anyway with the modified download_list.xml sbk and sb2 are allowed everywhere including USB/HDD/Flash. but when you download one of these, it automatically creates a MSSSJ/GUIDE folder on your selected path. This is set up for the PSP x-radar thingy (@thanks @kozarovv) . We can exploit this to our advantage, as this is one of the only ones that creates its own folder. This means we can use this for PS3/UPDATE/ for example if we select the root of a drive as path, so when downloading a PUP, we can have it automatically create a PS3/UPDATE folder under that, OR we can have it automatically create a dev_hdd0/updater/01 folder by selection the root of dev_hdd0 maybe. This is a really useful hack IMO, and will be in my Rebug REX MOD :)

p3t files:
These automatically get downloaded to dev_hdd0/theme/ (you get no options for path or background downloading even though they are going to dev_hdd0, this is unusual because unknown file types to dev_hdd0/theme/ can have background downloads. So .p3t is treated differently. So we can exploit this, by hard coding one specific file type to be handled in a special way with no options. There is no point having that wasted on themes, when we can download themes like standard unknown file types and download them to dev_hdd0/theme manaully from the list of locations. I am not sure how i am going to exploit this yet but its definitely useful to have.

mnv files:
These are special too, See here https://fileinfo.com/extension/mnv . These are special because I think these can be set up to use videodownloader_plugin.sprx (does not exist in new FW normally), so we can maybe exploit this by having one special file type of our choosing, that is handled by a completely separate patched download plugin. This would be handled by mimetypes.xml most likely, more research needed, @lmn has done some.

pkg files
I did not know these had special checks until now, but i could see they were on the list of special extensions here, so i suspected there was something.
upload_2019-4-12_5-56-1.png


There are more areas with special extensions, but these ones are all together, and extra special for the reasons above.

XML files and text files:
These are treated differently becuase they are rendered by the browser normally. It seems it has support for downloading xmls somewhere, but the PS3 is giving the error that indicates the path does not exist. More research needed here.

PSP and PS3 Updates:
These seem to have support for being treated differently, with hard coded paths, BUT they seem to be treated just exactly like unknown files, they do not have folder created, and they do not go into the referenced folder if it exists. So i suspect this was somethign that had support, but has been disabled. Maybe its possible to enable these, having it so PUP got renamed and put into correct folder automatically would not be a bad idea if its possible. Maybe they have to have the correct name already, I don't know as its not working.

upload_2019-4-12_6-2-33.png


Media file types:
These have their own list of file types, and are treated differently completely as we know. These get added to the database etc, but it seems the checks are not very good, as we can fool the PS3 into treating other file types like videos for example, with FULL copy support to and from the dev_hdd0.

upload_2019-4-12_6-9-20.png
 
Last edited:
Yes, could be, but then why do dev_flash2 and dev_blind work, ok i can understand dev_blind, as its a custom name. That actually gives me an idea, @aldostools, can you add mounting to webman if possible, It would be great if i could mount dev_hdd1 (multiman only seems to mount it when its open, unmounts when it closes). Also can we then mount dev_hdd0 with a different name, as that might get around this check that is deleting files. If we could mount as different name, and then i change all the paths in download_list.xml, we might have solved this already, with minimal effort, and it would work on HAN too as i think they can mount dev_blind too.
I liked this idea, I did not test with dev_blind but if the file goes down normally, then if we mount dev_hdd0 on dev_hdd01 maybe it will work I do not know, unfortunately I understand very little of these things but I understand enough to test them.
 
another thing I forgot to mention, I was able to put the downloads and packages folders in dev_hdd0 using make_package_custom to see if something was changed, well it did the downloads but they had failed to reach 100%. In other words, it is necessary to work around this error, about perfecting first for CFW without problems. I even prefer it. But any progress to OFW is very welcome.
 
I liked this idea, I did not test with dev_blind but if the file goes down normally, then if we mount dev_hdd0 on dev_hdd01 maybe it will work I do not know, unfortunately I understand very little of these things but I understand enough to test them.
Well there is already a dev_hdd1 we just cant see it, that is what I want to mount, as its a 2GB FAT32 partition that is only really used for updating FW and stuff, so its perfect for this. I think downloading to dev_hdd1 will work 100% already. We can have a plugin like webman then scan the folder on demand. I prefer it to not happen automatically as that requires polling all the time and can have issues with incomplete files being moved.

Then mounting dev_hdd0 as different partition might solve this too 100%, it is strange that downloads work every where else.


OFW related test:
I just did a test that I had hoped would work, it would have helped OFW users download pkgs without HAN or Debug pkgs enabled, they would be treated like normal files.

I added this "suffix=.package" to package manager instead of "suffix=.pkg", and downloaded a "test.pkg" as "test.package". Thought it would work, but it wont install. dam :(

You can try if you want. http://www.xmbmods.co/files.php?file=test.package
Code:
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_hostx" src="host://localhost/q?path=/app_home/packages/&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_bdvdx" src="host://localhost/q?path=/dev_bdvd/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_msx" src="host://localhost/q?path=/dev_ms/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb0x" src="host://localhost/q?path=/dev_usb000/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb1x" src="host://localhost/q?path=/dev_usb001/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb2x" src="host://localhost/q?path=/dev_usb002/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb3x" src="host://localhost/q?path=/dev_usb003/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb4x" src="host://localhost/q?path=/dev_usb004/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb5x" src="host://localhost/q?path=/dev_usb005/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb6x" src="host://localhost/q?path=/dev_usb006/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb7x" src="host://localhost/q?path=/dev_usb007/packages&suffix=.package&subclass=x-host/package" />

screenshot_2019_03_30_03_03_55.jpg
 
Last edited:
Well there is already a dev_hdd1 we just cant see it, that is what I want to mount, as its a 2GB FAT32 partition that is only really used for updating FW and stuff, so its perfect for this. I think downloading to dev_hdd1 will work 100% already. We can have a plugin like webman then scan the folder on demand. I prefer it to not happen automatically as that requires polling all the time and can have issues with incomplete files being moved.

Then mounting dev_hdd0 as different partition might solve this too 100%, it is strange that downloads work every where else.


OFW related test:
I just did a test that I had hoped would work, it would have helped OFW users download pkgs without HAN or Debug pkgs enabled, they would be treated like normal files.

I added this to package manager, and down loaded a "test.pkg" as "test.package". Thought it would work, but it wont install. dam :(

You can try if you want. http://www.xmbmods.co/files.php?file=test.package
Code:
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_hostx" src="host://localhost/q?path=/app_home/packages/&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_bdvdx" src="host://localhost/q?path=/dev_bdvd/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_msx" src="host://localhost/q?path=/dev_ms/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb0x" src="host://localhost/q?path=/dev_usb000/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb1x" src="host://localhost/q?path=/dev_usb001/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb2x" src="host://localhost/q?path=/dev_usb002/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb3x" src="host://localhost/q?path=/dev_usb003/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb4x" src="host://localhost/q?path=/dev_usb004/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb5x" src="host://localhost/q?path=/dev_usb005/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb6x" src="host://localhost/q?path=/dev_usb006/packages&suffix=.package&subclass=x-host/package" />
<Query class="type:x-xmb/xmlpackagefolder" key="host_provider_usb7x" src="host://localhost/q?path=/dev_usb007/packages&suffix=.package&subclass=x-host/package" />

View attachment 16530
Yes, I'll try, thank you!
 
Files in /dev_bdvd are encrypted, maybe it's treating them the same way... I bypass that encrypt calling this syscall in webMAN:
{system_call_1(36, (u64) "/dev_bdvd");} // decrypt dev_bdvd files

Why do you want to redirect bdvd if you already redirected a folder to bdvd with the mount?

Additionally to dummy, have you tried passing other file systems? Like the CELL_FS_UDF for files stored in /dev_hdd0?
Nah didn't try other filesystem.
Btw what is syscall 36? It's not in cfw... I thought ps3 already mounted bdvd unencrypted.
Is sc36 multimans?
 
Nah didn't try other filesystem.
Btw what is syscall 36? It's not in cfw... I thought ps3 already mounted bdvd unencrypted.
Is sc36 multimans?

psdevwiki lists syscall 36 as "Remapper - Hermes, PSJailbreak / (4.2x BD-Emulator); hardcoded /dev_bdvd & /app_home remapping"

I found it in use in early Open Managers of 2010.
https://github.com/moh-sakhaii/Moh-s-Open-manager/blob/master/main.cpp#L540

If I don't use syscall 36, the files in /dev_bdvd are scrambled (except the SFO and images in PS3_GAME).

BTW Last night I implemented a couple of web commands that allow to mount/unmount devices easily.
https://github.com/aldostools/webMAN-MOD/commit/ec208b9796e3caae7882549af7b496cf730dd6bb
The compiled binaries are available in: https://github.com/aldostools/webman-mod/releases/tag/1.47.15

The syntax of the new commands are like this:
http://127.0.0.1/mount.ps3/dev_hdd1&name=CELL_FS_UTILITY:HDD1&fs=CELL_FS_FAT
http://127.0.0.1/mount.ps3/unmount/dev_hdd1

There is an internal shortcut that auto-mounts /dev_hdd1 just accessing it like this:
http://127.0.0.1/unmount/dev_hdd1

In my tests I could mount /dev_hdd01, unmount /dev_usb000, mount again /dev_usb000.

But for some reason I couldn't mount /dev_habib but /dev_blind works.
The example in psdevwiki.com using: /mount.ps3/dev_bdvd&name=CELL_FS_PATH:/dev_hdd0/game&fs=dummy didn't work either.
 
Nice work. Just what i need.

Can we double mount dev_hdd0 as something else too, and what command would i use for that I wonder.

http://127.0.0.1/mount.ps3/dev_hdd00&name=CELL_FS_UTILITY:HDD0&fs=CELL_FS_UFS ??

Yes that syntax is correct.

As I commented above, some mount commands worked, others didn't work for some reason.
I expended various hours testing, but I couldn't figure out the issue. Also it was late... I suggest that try them yourself ;)
 
Last edited:
Back
Top