Retroactive
Retroactive copied to clipboard
[Aperture] Unspported System Configuration
it show 'The version of ImageIO installed on your computer is not supported by Aperture' when I start the Aperture,
then I got 'Unsupported Image Format' if I try to view my Pentax RAW file in Aperture
MacOs Ventura 13.3.1
I get the same error and Canon 5D MKIII raw files do not process correctly. Mac Mini M2 Pro w/ Ventura 13.3.1
I also encountered the same error since the last security update was applied. My mac is MacBook Pro (2020) w/ Big Sur 11.7.7.
After I updated the OS ofMacBook Pro(2020) to BigSur 11.7.8, the error stopped occurring for some reason.
me too. the error message disappeared after os updated, but the Aperture still can't handle the RAW files after that, Now I believe it is actually due to issues with imageio that RAW files cannot be supported."
Is there a version of MacOS that works with Aperture and Retroactive? I get the imageIO error message on Sonoma 14.3. I might get an old M1 mac just to run Aperture. It would be great to know which version of MacOS to install. I see the above message that says 11.7.8. Is that the latest version that will work?
I ran this on Contents/MacOS/Aperture if anyone wants to carry on with the patching.
strings Aperture | grep -i imageio
which returned:
ImageIO version=%@
unsupportedImageIOTitle
unsupportedImageIOMessage
RKImageIOMethodVersion
imageIOMethodVersionForMaster:
updateExtendedFileAttributesWithImageIOMethodVersion:
imageIOAllMethodVersionsForMaster:
initWithPath:cgImageSource:imageIOMethodVersion:includeFileAttributes:includeRaw:sidecarFile:movie:
The output from the strings command that you've shown suggests several key strings in the Aperture binary related to the ImageIO framework. These strings give clues about how Aperture might be checking the ImageIO version and handling compatibility issues. Here's a breakdown of what each string might represent and how you could explore further:
Key Strings and Their Potential Significance
-
ImageIO version=%@
- This string format looks like it's used to format a message or log that includes the version of ImageIO. The
%@is a placeholder for an object or string in Objective-C, indicating dynamic data insertion, likely the version number fetched at runtime.
- This string format looks like it's used to format a message or log that includes the version of ImageIO. The
-
unsupportedImageIOTitle and unsupportedImageIOMessage
- These strings are likely used in the user interface to display warnings or errors when the ImageIO version is not supported. This indicates there's a specific check for the ImageIO version that, if failed, triggers these messages.
-
RKImageIOMethodVersion, imageIOMethodVersionForMaster:
- These suggest that Aperture uses a specific "method version" associated with ImageIO operations, possibly encapsulated in a method or function that determines or checks the ImageIO version used for processing images.
-
updateExtendedFileAttributesWithImageIOMethodVersion:
- This function might be used to update metadata or file attributes based on the ImageIO version, which could be part of how Aperture manages compatibility or optimizes performance based on the ImageIO framework capabilities.
-
imageIOAllMethodVersionsForMaster:
- This implies that Aperture might maintain a record or array of all ImageIO versions that are compatible with a particular image or set of images, possibly used for handling different image formats or versions.
-
initWithPath:cgImageSource:imageIOMethodVersion:includeFileAttributes:includeRaw:sidecarFile:movie:
- This looks like an initialization method that includes a parameter for ImageIO method version, indicating that different parts of the program might initialize image handling differently based on the version of ImageIO available.
Next Steps for Modifying Behavior
Given these findings, here are some approaches you might consider if you're trying to modify how Aperture interacts with ImageIO:
-
Modify the Binary: If you're familiar with binary patching, you could potentially modify the binary to bypass or change the version check. Tools like Hopper Disassembler or Hex Fiend can help with this, but proceed with caution as binary modifications can easily corrupt the application.
-
Debug and Intercept: Using debugging tools like lldb or GDB, you might be able to intercept runtime checks and modify the returned version dynamically. This requires some expertise in debugging macOS applications.
-
High-Level Patching: Instead of modifying the binary directly, consider whether it's possible to intercept these methods at a higher level, perhaps by using method swizzling in Objective-C if you can inject code into Aperture.
-
Mock the Framework Version: In some cases, it might be possible to mock the responses from the ImageIO framework itself, though this is complex and might require creating a proxy or shim framework that intercepts calls to the real ImageIO framework.
If you're not comfortable with these advanced techniques, using a tool like Retroactive, which is designed to make older versions of applications work on newer macOS versions, could be a safer and easier solution.
Retroactive has been discontinued, and does not support macOS Sequoia or later. You should transition from Retroactive to a wide range of supported apps, many of which are built into macOS or free to download. Learn how to transition from Retroactive to supported apps.