Skip to content

ToolKit for Compiled Asset Catalogs (.car file) written in Swift.

License

Notifications You must be signed in to change notification settings

showxu/cartools

Repository files navigation

cartools

cartools is a series of reverse tools for Compiled Asset Catalogs (.car file) written in pure Swift.

Products Contains

  • macOS Application. Written in pure Swift, let you browse renditions and export resources in Asset.car file.
  • Command Line Tools. Extracting Asset.car file in terminal.
  • QuickLook Preview Extension. Inspector for Asset.car file without open it.
  • Framework. The underlying infrastructure called CartoolKit. which is based on PrivateFramework CoreUI, CoreThemeDefinition.

macOS App Previews and Screenshots

Final Car Pro

Final Car Pro is a macOS Application which give you the ability to browse, classify, filter renditions in compiled asset catalog and export resource files.

Features

  • Document based car file browser.
  • Filter renditions by rendition type.
  • Search renditions by file name and rendition name.
  • Group renditions by rendition name for exported resources.
  • Drag to export.
  • Vector resource annotation.
  • SVG resource display and export.
  • PDF resource display and export.
  • Dark mode support.

How To Install

Download directly

Download latest binary release from release page.

Command Line Tools

cartool is a swift Command Line Tools which allow you extract the resource of car file in terminal.

How To Install

Homebrew

Install the tap:

brew tap 0xxd0/tap

Install Command Line Tool:

brew install cartool

Usage

USAGE: cartool <file-path> <output>

ARGUMENTS:
  <file-path>             The .car file path to parse. 
  <output>                Output dir to place extracted car file resources. 

OPTIONS:
  -h, --help              Show help information.

Framework

CartoolKit is the underlying framework which empowered macOS Application and Command Line Tool.

Usage

The simplest use-case is setting a url to Reader.

import CartoolKit

let fileURL = URL(fileURLWithPath: filePath)
let reader: Reader<LazyRendition> = try Reader(.init(fileURL))
let renditions = try reader.read()

License

This project is released under the MIT License.