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.