I'm gonna get to my laptop in an hour or so to try this out. I've never worked with pri files either. I work lots more with dlls
I'm so lost with this I don't get how we would edit a xml file so we can insert new wallpaper. I'm trying to interpret the syntaxes for makepri right now and it's really confusing
Okay, after looking quickly over the documentation and the file layout, it's not going to be so easy. 1) The pri file format is undocumented, so one would need to reverse engineer it to work with it directly. It's dumped as XML, but you cannot create a new pri out of it as far as I can tell. 2) makepri is obviously designed to be run when an app is compiled, it's indexing all the resources within a Visual Studio project and compiles them into the binary pri package. Maybe it's possible to fake this folder structure to create a matching pri, I don't know.
I think what we need to do is edit the XML and replace the Base64 Images with our own - Shouldn't be too hard. I'm already writing a program to do it no less. Aaaand nope.
If you are able to open the file try to locate the links in the NameResource tags. That would help you see where the images are hidden.
So basically your saying it's possible to open it in visual studio... How's the program coming along... What's the timeframe for release
I have no idea for time frame. At the moment it dumps the xml using makepri, then parses and extracts the images, converts them back to images from base64, and saves them. So far it hasn't made it through parsing
Well, you could open the pri in hex format no, what we'd need is the Windows Logon UI project, replace the resources, and recompile it to change the pri.
I have been acting lazy with the process of finding a way to change the logon screen image. I will download the visual studio and try my best. We aren't doing it right from what have been posted so far because it is data-only file as the resource format for Windows.
Okay, so I converted the XML to json because json is usually easier to work with, but it leaves me with variable names I can't use :/
You can dump with makepri but it's of little use here as you want to edit the existing pri without creating a completely new file. What you can do is replace the known contents of the logon images in the file directly by new images. This should work as long as your new images are not bigger than the ones in the file. If you want to replace them with bigger images it gets harder but not impossible. Problem is there are no tools yet to edit pri files in any way and the format itself isn't even documented. Edit: In this case it's actually pretty easy as there is no data after the wallpaper in the file. So one can include arbitrary big files at the end.
I'm not sure if it's so easy. For example, if you read through the XML dump, you'll find that there are checksum values reported, so I guess you'd have to figure out how they are calculated and where they are stored; otherwise, I guess it won't load the images or even reject the PRI as invalid at runtime. Another point is the actual file size, if the exact size of the source image file (number of bytes) is stored within the PRI (I assume it is), you'd have to adjust that too, at least for files that are bigger than the original.
thanks for all you hard work just to make it possible for users to change the login screen image makes you wonder if those MS developers are just stupid or assholes on purpose
i just had a look into the systemresources folder of 10147. could it be possible to overwrite the contents of the pri by placing resources in folders like when modding some games? because some of the resource folders like windows.ui.shell have a subfolder "images". i'm just guessing here, but maybe it is possible even if doubt that MS would make it so easy for us
i replaced the pri file and the language file for it with versions from 10147 and 9926 could not log on i guess the resources don't match with the corresponding exe or dll, or whatever loads the logon screen switching to the older logon screen via the testhooks threshold:0 registry edit did not work either i' be fine with restoring an older version of the logon screen, that didnt have a background image
I was right. System32/logonui.exe, system32/windows.ui.logon.dll and the .pri (plus en-us.pri) need to be the same version. I replaced them with the 10074 versions and I could log on. 10147 worked too. When I only replaced the pri files and the dll file i was surprised to see that logonui.exe presented me a fallback logon window which looked like a command prompt window where I could select a UserAccount and enter a password
No, because you could append your new image at the end of the data section ("[mrm_dataitem]") and then simply adjust the offset and length in the file to the new position. It would be harder if there were other sections after the data section, but there aren't. You're right about the checksums. But I could imagine that they are not verified because of performance reasons (there do not seem to be individual checksums for each resource, so in order to verify it, the entire file would need to be processed, even if you load only one single resource). Resource length and offset are stored in the file, but it should be possible to simply adjust them.