Link Search Menu Expand Document

Themes

Havoc supports both .zip and .deb file formats for themes.

When a theme is uploaded, our system automatically makes it available to both unjailbroken and jailbroken users. This allows you to work with the format you’re comfortable with while also reaching a wider audience.

.deb

This is the standard format for jailbroken packages. For instructions on creating jailbroken themes, we highly recommend the iOS Theming Guide by PINPAL.

Supporting Rootless Jailbreaks

You do not need to take any additional steps to support “rootless” jailbreaks. Our system is built to handle this automatically and will generate a rootless version of your theme upon upload. You may continue using the standard format you’re familiar with and we’ll take care of the rest.

.zip

This format is typically used for icon packs. You may be familiar with it already if you’ve created or used themes via the Shortcuts app.

Zip files uploaded to Havoc should be structured like so:

📁 Theme
├─ 📄 control
├─ 🖼️ com.apple.calculator-large.png
├─ 🖼️ com.apple.camera-large.png
├─ 🖼️ com.apple.Maps-large.png
├─ 🖼️ com.apple.mobiletimer-large.png
└─ 🖼️ ...

Or, to provide multiple variants of an icon, use multiple folders:

📁 Theme
├─ 📄 control
├─ 📁 Theme (Dark)
│  ├─ 🖼️ com.apple.calculator-large.png
│  ├─ 🖼️ com.apple.camera-large.png
│  └─ 🖼️ ...
├─ 📁 Theme (Light)
│  ├─ 🖼️ com.apple.calculator-large.png
│  ├─ 🖼️ com.apple.camera-large.png
│  └─ 🖼️ ...
└─ 📁 ...

Be sure to change the name of the folder(s) to match the name of your theme.

Some examples to get you started:

Theme.zip ThemeWithVariants.zip


Bundle Identifiers

Icons must be named using their bundle identifier. A bundle identifier or “bundle ID” is simply the unique ID of an app.

For example, the Calculator app’s bundle ID is com.apple.calculator. The icon file would then be named com.apple.calculator-large.png.

You can find bundle IDs for your apps using a tool like this one: https://offcornerdev.com/bundleid.html


Control File

The control file is where the metadata for your theme is stored. This file will tell Havoc details about your theme.

Here’s an example:

Package: com.username.theme
Name: Theme
Version: 1.0
Architecture: iphoneos-arm
Description: A theme with beautiful icons!
Author: username
Maintainer: username
Section: Themes
Depends: com.anemonetheming.anemone | com.spark.snowboard

You’ll need to update the following fields:

  • Package: The unique ID of your theme (create your own bundle ID)

  • Name: The name of your theme

  • Version: The current version of your theme (will need to be incremented with each version you release)

The following fields are optional:

  • Description: A short description for your theme

  • Author: This field will be overwritten with your Havoc username

  • Maintainer: This field will be overwritten with your Havoc username

The rest of the fields (Architecture, Section, and Depends) should be left alone.