Analysing Assets.car file in iOS
Solution 1:
This tool can extract a .car archive: https://github.com/steventroughtonsmith/cartool
Steps to extract archive:
Once you've downloaded the zip from github, compile it in Xcode to generate the command line tool. Then expand the Products
group and right click on the cartool
file and locate it in finder. You can then run the tool like so:
- open terminal
cd /path/to/cartool
./cartool /path/to/Assets.car /path/to/outputDirectory
Solution 2:
Run Apple’s assetutil:
xcrun --sdk iphoneos assetutil --info Assets.car
you’ll get a JSON description of each item in the file. Something like this:
{
"Height" : 60,
"Scale" : 1,
"RenditionName" : "D3801CE9-19F1-4CE9-97C6-7E1EFFFCAE89",
"AssetType" : "Vector",
"SizeOnDisk" : 10822,
"Name" : "mailbox",
"Idiom" : "universal",
"Width" : 99
},
Note the line "SizeOnDisk" : 10822
.
This tool performs limited .car manipulation, run man assetutil
for details.
The Assets.car seems to be a proprietary Apple’s archive that first appeared in iOS 7. A few utilities are able to extract its contents using the private class CUICatalog
of the CoreUI framework:
- acextract
- ThemeEngine
- iOS Asset Extractor
- Asset Catalog Tinkerer
There is also an app that reads .car files: crunch 9$, 15 day trial
Running strings Assets.car
returned
@(#)PROGRAM:CoreUI PROJECT:CoreUI-475.1.1
IBCocoaTouchImageCatalogTool-9.0
Running find
inside Xcode-beta returned /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Overlays/IBCocoaTouchImageCatalogTool
, which is a simulator executable (i386 + x86_64). Didn’t investigate any further but I bet that this tool could open .car archives if you run it inside the simulator.
Solution 3:
If you want to browse and extract asset catalogs, you can also use my app Asset Catalog Tinkerer
Solution 4:
Open Assets.car
[Assets.car file]
You can try an online tool(Assets.car Asset Extractor Online), or a QLCARFiles QuickLook plugin for Mac
and to double check it use assetutil tool
xcrun --sdk iphoneos assetutil --info <path_to_Assets.car>