ma1co / Sony-PMCA-RE

Reverse Engineering Sony Digital Cameras
MIT License
2k stars 222 forks source link

Here you can get PMCA 18.22 GUI and console with a HowTo video #429

Open masterflai opened 10 months ago

masterflai commented 10 months ago

After the Development Branch was deleted, there are only a few sources for the last version 18.22 of the PMCA tools. I have found a current video on Youtube, which on the one hand shows exactly how to proceed in order to be able to use the service mode. But at the same time the Youtuber has also provided the two files in the latest version 18.22. Have fun and success modding the camera.

Note: The changes can cause irreparable damage to the camera. Please consider very carefully what you want to achieve and what risks you take. I am neither the creator of the video, nor the linked files. Please always check downloaded files for viruses before using them, as the content could change at any time.

HowToVideo

PMCA GUI and console 18.22

dreambold commented 10 months ago

I managed to run the script in Ubuntu 22.04 and it works perfectly from the console. Might need to install some dependencies, of course.

Just run ./pmca-console.py serviceshell and it will prompt options to configure for the mod.

foreigncarnut commented 3 weeks ago

This does not support the DSC-R1. Is there a way to add this support? Trying to unlock languages

masterflai commented 3 weeks ago

This does not support the DSC-R1. Is there a way to add this support? Trying to unlock languages

The project is no longer being developed. Unless the R1 is natively supported, there is no real chance of a future fix. However, the camera itself is so old that the old mechanism without encryption should still be available. I would still advise against trying this out. The risk of permanent damage is unfortunately very high.

foreigncarnut commented 3 weeks ago

Thank You for your response. I thought as much but the Sony policy is very disappointing. The arbitrary marketing decision to limit languages just makes customers mad. It really serves no real purpose.

What did you mean by the old mechanism without encryption still being available? What is this and where would it be? I saw a solution for other cameras by a person named Vitaliy Keselev but it was over my head and you need to download a Linux kernel and package from the sony distribution site but was not able to find them for my DSC-R1 camera. So I do not think I will ever be able to get English on the camera. Not sure why the firmware could not be extracted from an english camera and loaded into a japanese camera, but that is also over my head.

masterflai commented 3 weeks ago

Thank You for your response. I thought as much but the Sony policy is very disappointing. The arbitrary marketing decision to limit languages just makes customers mad. It really serves no real purpose.

What did you mean by the old mechanism without encryption still being available? What is this and where would it be? I saw a solution for other cameras by a person named Vitaliy Keselev but it was over my head and you need to download a Linux kernel and package from the sony distribution site but was not able to find them for my DSC-R1 camera. So I do not think I will ever be able to get English on the camera. Not sure why the firmware could not be extracted from an english camera and loaded into a japanese camera, but that is also over my head.

Sony began to encrypt the memory areas of the later cameras to prevent investigations and manipulation. One reason for the non-existence of the DSC-R1 could simply be its exclusivity. The model was extremely expensive by the standards of the time and consequently very rare to find. Those who owned one rarely had the willingness to examine it.

So how should you proceed? It's best to use the last build package linked above. You should then use the console version if you can, as this version has the greatest functional scope. Then there are two approaches via updatershell or serviceshell. While the updatershell did not work for all models, the serviceshell always worked for all linked models. Your model dates from this time and could well work perfectly with the serviceshell. Just try reading out and accessing it first. Remember, however, that you will need to install the appropriate USB drivers for this to work.

foreigncarnut commented 3 weeks ago

Thanks once more for your reply. This gives me a little hope even though my camera is not listed.

Let me explain what I have done so far.

  1. Ran Zadig to install alternative USB drivers.
  2. Ran pmca-console-v0.18-22-ga82f5ba-win.exe to put camera into service mode
  3. Ran pmca-gui-v0.18-22-ga82f5ba-win.exe to try and install and run program

The results I get are: Using drivers Windows-MSC, Windows-MIP, Windows-vendor-specific, libusb-M5C, libusb-MIP, libusb-vendor-specific Looking for Sony devices Querying mass storage device No devices found. Please make sure that camera is connected.

I will view the video to see if maybe I can try something different. I will see if I can figure out how to use the serviceshell. I did not see any serviceshell but maybe missed it

masterflai commented 3 weeks ago

I would definitely use the console version. Make sure you install the correct drivers beforehand and check them in the device manager if necessary. It is true that the mass storage device is no longer recognized if the alternative drivers are used. It is therefore essential to remove this driver when you are finished. If you receive the message that the mass storage device was not found, it is possible that you have already installed the driver correctly. Then try using Console. There were also videos, but I no longer have them in front of me.

foreigncarnut commented 3 weeks ago

I tried again with no success. I did notice one thing though In Zadig, I can install either libusb-win32 (v1.4.0.0) and libusbK (v3.1.0.0) and they both install successfully but the WCID still always has a red X next to it instead of a green check. I have tried to install either one and then run pmca-console-v0.18-22-ga82f5ba-win.exe with either one and the red X never goes away. Maybe it is a USB issue?

masterflai commented 3 weeks ago

The issue with the USB drivers also bothered me a bit, but eventually it worked. I would assume that the drivers are not installed correctly if they are not marked green.

foreigncarnut commented 3 weeks ago

The thing is that the camera does appear in device manager under the device driver that was just installed. Installing the device driver does move it out of the USB section and the driver does show correctly. Also Zadig does show that it was installed correctly. The arrow does also show green. Only the WCID shows a red X. Do you have any ideas or suggestions for this?

masterflai commented 3 weeks ago

Unfortunately, I'm no longer entirely familiar with Zadig. I last used it months ago and there is now a newer version. Maybe the Zadig help section will help you here.

foreigncarnut commented 3 weeks ago

Thank you. I do not know how to use the console correctly. When I run it, it just flashes and then goes away. I think it is changing the mode on the camera but it gives me no opportunity to enter commands

From: masterflai @.> Sent: Wednesday, June 26, 2024 2:49 PM To: ma1co/Sony-PMCA-RE @.> Cc: foreigncarnut @.>; Comment @.> Subject: Re: [ma1co/Sony-PMCA-RE] Here you can get PMCA 18.22 GUI and console with a HowTo video (Issue #429)

I would definitely use the console version. Make sure you install the correct drivers beforehand and check them in the device manager if necessary. It is true that the mass storage device is no longer recognized if the alternative drivers are used. It is therefore essential to remove this driver when you are finished. If you receive the message that the mass storage device was not found, it is possible that you have already installed the driver correctly. Then try using Console. There were also videos, but I no longer have them in front of me.

— Reply to this email directly, view it on GitHub https://github.com/ma1co/Sony-PMCA-RE/issues/429#issuecomment-2192509143 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AHPAHRYNBW63QZVN4OQCXXDZJMLK7AVCNFSM6AAAAABJ4ZOY2OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJSGUYDSMJUGM . You are receiving this because you commented. https://github.com/notifications/beacon/AHPAHR2PJ77HCDMBX7AUNOLZJMLK7A5CNFSM6AAAAABJ4ZOY2OWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTUCV4ENO.gif Message ID: @. @.> >

foreigncarnut commented 3 weeks ago

Still not working but when I try to run serviceshell in console, at least I get some kind of tracing

Maybe someone that knows the driver can address it?

D:\Browser Downloads>pmca-console-v0.18-22-ga82f5ba-win serviceshell

Using drivers Windows-MSC, Windows-MTP, Windows-vendor-specific, libusb-MSC, libusb-MTP, libusb-vendor-specific

Looking for Sony devices

Querying mass storage device

Traceback (most recent call last):

File "pmca\usb\driver\generic\libusb.py", line 91, in classInterfaceRequestOut

File "usb\core.py", line 1089, in ctrl_transfer

File "usb\backend\libusb0.py", line 609, in ctrl_transfer

File "usb\backend\libusb0.py", line 447, in _check

usb.core.USBError: [Errno None] b'libusb0-dll:err [control_msg] sending control message failed, win error: The semaphore timeout period has expired.\r\n\n'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "pmca-console.py", line 104, in

File "pmca-console.py", line 88, in main

File "pmca\commands\usb.py", line 660, in senserShellCommand

File "pmca\commands\usb.py", line 222, in getDevice

File "pmca\commands\usb.py", line 184, in listDevices

File "pmca\usb__init.py", line 26, in init__

File "pmca\usb__init__.py", line 50, in reset

File "pmca\usb\driver\generic__init__.py", line 180, in sendCommand

File "pmca\usb\driver\generic__init__.py", line 177, in _writeCommand

File "pmca\usb\driver\generic\libusb.py", line 93, in classInterfaceRequestOut

pmca.usb.driver.generic.GenericUsbException

From: masterflai @.> Sent: Wednesday, June 26, 2024 3:03 PM To: ma1co/Sony-PMCA-RE @.> Cc: foreigncarnut @.>; Comment @.> Subject: Re: [ma1co/Sony-PMCA-RE] Here you can get PMCA 18.22 GUI and console with a HowTo video (Issue #429)

Unfortunately, I'm no longer entirely familiar with Zadig. I last used it months ago and there is now a newer version. Maybe the Zadig help section https://github.com/pbatard/libwdi/wiki/Zadig will help you here.

— Reply to this email directly, view it on GitHub https://github.com/ma1co/Sony-PMCA-RE/issues/429#issuecomment-2192529110 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AHPAHRYGEQAF36JD6WSNUCDZJMM5RAVCNFSM6AAAAABJ4ZOY2OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJSGUZDSMJRGA . You are receiving this because you commented. https://github.com/notifications/beacon/AHPAHRZJ2IGMO3URQBF4A5LZJMM5RA5CNFSM6AAAAABJ4ZOY2OWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTUCV5LNM.gif Message ID: @. @.> >

foreigncarnut commented 3 weeks ago

In running the info command, I get

D:\Browser Downloads>pmca-console-v0.18-22-ga82f5ba-win info

Using drivers Windows-MSC, Windows-MTP, Windows-vendor-specific, libusb-MSC, libusb-MTP, libusb-vendor-specific

Looking for Sony devices

Querying mass storage device

Traceback (most recent call last):

File "pmca\usb\driver\generic\libusb.py", line 91, in classInterfaceRequestOut

File "usb\core.py", line 1089, in ctrl_transfer

File "usb\backend\libusb0.py", line 609, in ctrl_transfer

File "usb\backend\libusb0.py", line 447, in _check

usb.core.USBError: [Errno None] b'libusb0-dll:err [control_msg] sending control message failed, win error: The semaphore timeout period has expired.\r\n\n'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "pmca-console.py", line 104, in

File "pmca-console.py", line 68, in main

File "pmca\commands\usb.py", line 234, in infoCommand

File "pmca\commands\usb.py", line 222, in getDevice

File "pmca\commands\usb.py", line 184, in listDevices

File "pmca\usb__init.py", line 26, in init__

File "pmca\usb__init__.py", line 50, in reset

File "pmca\usb\driver\generic__init__.py", line 180, in sendCommand

File "pmca\usb\driver\generic__init__.py", line 177, in _writeCommand

File "pmca\usb\driver\generic\libusb.py", line 93, in classInterfaceRequestOut

pmca.usb.driver.generic.GenericUsbException

[41912] Failed to execute script 'pmca-console' due to unhandled exception!

From: masterflai @.> Sent: Wednesday, June 26, 2024 3:03 PM To: ma1co/Sony-PMCA-RE @.> Cc: foreigncarnut @.>; Comment @.> Subject: Re: [ma1co/Sony-PMCA-RE] Here you can get PMCA 18.22 GUI and console with a HowTo video (Issue #429)

Unfortunately, I'm no longer entirely familiar with Zadig. I last used it months ago and there is now a newer version. Maybe the Zadig help section https://github.com/pbatard/libwdi/wiki/Zadig will help you here.

— Reply to this email directly, view it on GitHub https://github.com/ma1co/Sony-PMCA-RE/issues/429#issuecomment-2192529110 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AHPAHRYGEQAF36JD6WSNUCDZJMM5RAVCNFSM6AAAAABJ4ZOY2OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJSGUZDSMJRGA . You are receiving this because you commented. https://github.com/notifications/beacon/AHPAHRZJ2IGMO3URQBF4A5LZJMM5RA5CNFSM6AAAAABJ4ZOY2OWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTUCV5LNM.gif Message ID: @. @.> >

foreigncarnut commented 3 weeks ago

This is what happens when I run the info command with the original windows USB driver

D:\Browser Downloads>pmca-console-v0.18-22-ga82f5ba-win info

Using drivers Windows-MSC, Windows-MTP, Windows-vendor-specific, libusb-MSC, libusb-MTP, libusb-vendor-specific

Looking for Sony devices

Querying mass storage device

No devices found. Please make sure that the camera is connected.

As you can see, it fails immediately. So that means the ZADIG driver is partially working.

From: masterflai @.> Sent: Wednesday, June 26, 2024 3:03 PM To: ma1co/Sony-PMCA-RE @.> Cc: foreigncarnut @.>; Comment @.> Subject: Re: [ma1co/Sony-PMCA-RE] Here you can get PMCA 18.22 GUI and console with a HowTo video (Issue #429)

Unfortunately, I'm no longer entirely familiar with Zadig. I last used it months ago and there is now a newer version. Maybe the Zadig help section https://github.com/pbatard/libwdi/wiki/Zadig will help you here.

— Reply to this email directly, view it on GitHub https://github.com/ma1co/Sony-PMCA-RE/issues/429#issuecomment-2192529110 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AHPAHRYGEQAF36JD6WSNUCDZJMM5RAVCNFSM6AAAAABJ4ZOY2OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJSGUZDSMJRGA . You are receiving this because you commented. https://github.com/notifications/beacon/AHPAHRZJ2IGMO3URQBF4A5LZJMM5RA5CNFSM6AAAAABJ4ZOY2OWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTUCV5LNM.gif Message ID: @. @.> >

masterflai commented 3 weeks ago

I would recommend organizing one of the listed compatible cameras for a first try. Many entry-level models are now available for just a few euros. Then you can try everything out at your leisure and gain experience, and you will also know that it should theoretically work. With your model, you just don't know yet. Everything I can see suggests a problem with the USB cable, the driver or a lack of basics.

masterflai commented 3 weeks ago

2023-09-03 11_06_10

This is how it should look like.