Skip to main content

πŸš€ Welcome to Dynamic Installer

Dynamic Installer is an open-source framework that simplifies Android customization. It’s a collection of utilities and functions built into a flexible ZIP-based installer. With DI, you can handle everything from basic file installation to advanced APK/JAR patching.

tip

It supports installations by Recovery or by Magisk/KSU (click me). In addition, it provides a dual installation mode that allows the same ZIP to be installed in both environments.


Advantages​

Key Benefits
  • Fully open-source and shell-script based.
  • Mounts main partitions as RW (e.g., /system, /vendor, /product).
  • Supports /apex mounting for advanced tasks.
  • Compatible with old and new partition types.
  • Dual installation support (Recovery or Magisk).
  • Rich set of actions for file editing, APK patching, and ROM installation.
  • Runs with Bash instead of ASH or DASH.
  • Extensible with addons and more!

Compatibility​

Supported Devices
  • Architectures: arm64-v8a (64-bit), armeabi-v7a (32-bit).
  • Partition Types: Dynamic, virtual dynamic, and traditional partitions.

How Does It Work?​

DI uses a simple ZIP structure to package its scripts and tools. Here’s a basic layout:

dynamic_installer.zip
β”œβ”€β”€ META-INF
β”‚ β”œβ”€β”€ com
β”‚ β”‚ └── google
β”‚ β”‚ └── android
β”‚ β”‚ β”œβ”€β”€ updater-script # Your Recovery script
β”‚ β”‚ β”œβ”€β”€ update-binary # Sets up the environment
β”‚ β”‚ └── magisk # Magisk space
β”‚ β”‚ β”œβ”€β”€ customize.sh # Your Module script
β”‚ β”‚ └── module.prop # Your Module info
β”‚ β”œβ”€β”€ addons # Optional plugins
β”‚ β”‚ └── extra.zip # Extra binaries
β”‚ └── zbin # Internal tools and binaries
β”‚ └── (tools)
|
β”œβ”€β”€ customize.sh # It is only provisional for modules
β”œβ”€β”€ module.prop # KSU / Magisk v28+ module info
|
└── (your custom files/folders)

Try It Now!​

Ready to get started? Let’s create a simple "Hello World" installer in a few steps:

Simple Recovery ZIP​

  1. Download the Framework
    1.1. Get the latest Dynamic Installer ZIP from here.

    1.2. Extract it to your computer or Android device.

  2. Create Your Script
    Open META-INF/com/google/android/updater-script in a text editor and add to the end of the content:

    ui_print "Hello World!"
  3. Zip It Up
    Recompress the folder into a .zip file. Ensuring that META-INF always remains in the ZIP root, otherwise it will fail.

  4. Flash It
    Boot into a custom recovery, select "Install," choose your ZIP, and flash it.

    You’ll see "Hello World!" on the screen.

Simple Module ZIP​

note

To learn more about functionality as a Module, click here

  1. Download the Framework
    1.1. Get the latest Dynamic Installer ZIP from here.

    1.2. Extract it to your computer or Android device.

  2. Create Your Script
    Open META-INF/com/google/android/magisk/customize.sh in a text editor and add to the end of the content:

    ui_print "Hello World!"
  3. Zip It Up
    Recompress the folder into a .zip file. Ensuring that META-INF always remains in the ZIP root, otherwise it will fail.

  4. Flash It
    Open the Magisk or KSU app and install the ZIP.

    You’ll see "Hello World!" on the screen.

tip

And if I want both installation cases?

Simply make the two previous cases (Recovery and Magisk). By default, DI will switch between the scripts depending on the installation context (Dual Mode). That is, if the ZIP is installed from Recovery (or similar), the first case will be executed, but if the same ZIP is installed from a manager like the Magisk / KSU app, it will use the second installation case. This allows each case to have its own well-defined script according to the rules of each environment.

The installation cases are configurable, see more information here.


Bugs​

warning

The functions to decompile/compile APKs use an experimental apktool build that CANNOT process images, so don't try to process a full complex APKs! Only smali editions

Credits​

  • BlassGO: Creator of Dynamic Installer.
  • osm0sis: Traditional installer functionalities in shell code.
  • topjohnwu: Cool shell script functions.
  • munjeni: superrepack and superunpack tools.
  • xenosaur: 7zip binaries for Z variants.
  • Community: Thanks to all supporters on Telegram!