Closed frankschlegel closed 1 year ago
Some images are linked to a frameworks outside the cache, but these usually don't affect the output. What kinds of issues are you facing when generating the runtime headers? What program are you using?
I'm using ktool for generating the headers. cxnder put together a script that could do the whole process of IPSW download, extraction (using dyldex_all
), and header generation via GitHub actions. This worked nicely for iOS 16, but fails for iOS 17, and I'm now trying to find out why.
I already filed an issue for ktool, but it seems the problem lies with binary extraction from the dyld_shared_cache
. They fixed some error handling so that the generation runs through now, but the generated headers are still missing some essential type information.
For instance, when running this for the CoreImage.framework
, the essential base classes CIImage
and CIFilter
and their headers are completely missing.
Unfortunately, I'm very much a rookie in this territory, so I can't tell if this is an issue with extraction or with header generation. But it seems the class information is really not in the binary I extracted with dyldex -e CoreImage.framework/CoreImage dyld_shared_cache_arm64e
. At least I can't find them in the symbol dump (objdump --syms CoreImage
) either.
Thanks for looking into this!
I believe this is fixed with 808a5ad. I was incorrectly getting the image index which is used to lookup the specific method list to use. CIImage and CIFilter now have methods, and I was able to open them with ktool in GUI mode.
Please let me know if there is anything else.
Yes, it works perfectly now. Thank you so much!
Describe the bug When trying to extract the frameworks from the iOS 17 beta shared cache, I noticed that
dyldex
fails to fully extractlibobjc.A.dylib
, which causes issues down the line when trying to generate runtime headers later.It seems
dyldex
can't find the dependencylibobjc-env.dylib
inside the shared cache:To Reproduce
dyldex -e libobjc.A.dylib dyld_shared_cache_arm64e