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.
This is the standard format for jailbroken packages. For instructions on creating jailbroken themes, we highly recommend the iOS Theming Guide by PINPAL.
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 │ └─ 🖼️ ... └─ 📁 ...
Some examples to get you started:
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
You can find bundle IDs for your apps using a tool like this one: https://offcornerdev.com/bundleid.html
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.