Skip to main content

๐Ÿ“ Examples

Practical examples of scripts using Dynamic Installer for various use cases. Each example includes a brief description and the corresponding updater-script or customize.sh code.


ROM Installation (RAW + XZ)โ€‹

Installs a ROM using RAW images compressed in XZ format. Suitable for both 32-bit and 64-bit devices.

#-----------Dynamic Installer Configs-----------#
#The #MAGISK tag is required, dont remove it
#MAGISK
setdefault magisk_support on
setdefault ensure_rw on
setdefault import_addons off
setdefault apex_mount off
setdefault overwrite_symlinks off
setdefault devices off
setdefault devices_alert on
setdefault dalvik_memory 800M
setdefault extraction_speed 4M
setdefault off_readonly ""
setdefault permissions "0:0:0755:0644"
#-----------------------------------------------#

ui_print "--------------------------------"
ui_print " ElementaryOS "
ui_print " OneUI 3.1 "
ui_print "--------------------------------"
ui_print " by BlassGO "
ui_print "--------------------------------"
ui_print " "

ui_print "-------------------"
ui_print " UNMOUNT "
ui_print "-------------------"
ui_print " "
umount_all

ui_print "-------------------"
ui_print " INSTALLING PARAM "
ui_print "-------------------"
ui_print " "
update_zip param.bin $(find_block up_param)

ui_print "-------------------"
ui_print " INSTALLING KERNEL "
ui_print "-------------------"
ui_print " "
update_zip boot.img $(find_block boot)

ui_print "-------------------"
ui_print " INSTALLING OMC "
ui_print "-------------------"
ui_print " "
update_zip optics.img $(find_block optics)
update_zip prism.img $(find_block prism)

ui_print "-------------------"
ui_print " INSTALLING SUPER "
ui_print "-------------------"
ui_print " "
update_zip -xz super.img.xz $(find_block super)

ui_print "-------------------"
ui_print " DONE "
ui_print "-------------------"
ui_print " "
note

The -xz flag decompresses the XZ-compressed super.img.xz before flashing. This method is ideal for large RAW images but takes longer than Sparse.


ROM Installation (Sparse)โ€‹

Installs a ROM using Sparse images, exclusive to 64-bit devices.

#-----------Dynamic Installer Configs-----------#
#The #MAGISK tag is required, dont remove it
#MAGISK
setdefault magisk_support on
setdefault ensure_rw on
setdefault import_addons off
setdefault apex_mount off
setdefault overwrite_symlinks off
setdefault devices off
setdefault devices_alert on
setdefault dalvik_memory 800M
setdefault extraction_speed 4M
setdefault off_readonly ""
setdefault permissions "0:0:0755:0644"
#-----------------------------------------------#

ui_print "--------------------------------"
ui_print " ElementaryOS "
ui_print " OneUI 3.1 "
ui_print "--------------------------------"
ui_print " by BlassGO "
ui_print "--------------------------------"
ui_print " "

ui_print "-------------------"
ui_print " UNMOUNT "
ui_print "-------------------"
ui_print " "
umount_all

ui_print "-------------------"
ui_print " INSTALLING PARAM "
ui_print "-------------------"
ui_print " "
update_zip param.bin $(find_block up_param)

ui_print "-------------------"
ui_print " INSTALLING KERNEL "
ui_print "-------------------"
ui_print " "
update_zip boot.img $(find_block boot)

ui_print "-------------------"
ui_print " INSTALLING OMC "
ui_print "-------------------"
ui_print " "
update_zip -sparse optics.img $(find_block optics)
update_zip -sparse prism.img $(find_block prism)

ui_print "-------------------"
ui_print " INSTALLING SUPER "
ui_print "-------------------"
ui_print " "
update_zip -sparse super.img $(find_block super)

ui_print "-------------------"
ui_print " DONE "
ui_print "-------------------"
ui_print " "
note

The -sparse flag converts Sparse images to RAW during installation, requiring the simg2img plugin in META-INF/addons/extra.zip.


ROM Installation (From Internal Memory)โ€‹

Installs a ROM using Sparse images from internal memory (/sdcard), useful for large images like SUPER when other methods fail.

#-----------Dynamic Installer Configs-----------#
#The #MAGISK tag is required, dont remove it
#MAGISK
setdefault magisk_support on
setdefault ensure_rw on
setdefault import_addons off
setdefault apex_mount off
setdefault overwrite_symlinks off
setdefault devices off
setdefault devices_alert on
setdefault dalvik_memory 800M
setdefault extraction_speed 4M
setdefault off_readonly ""
setdefault permissions "0:0:0755:0644"
#-----------------------------------------------#

ui_print "--------------------------------"
ui_print " ElementaryOS "
ui_print " OneUI 3.1 "
ui_print "--------------------------------"
ui_print " by BlassGO "
ui_print "--------------------------------"
ui_print " "

ui_print "-------------------"
ui_print " UNMOUNT "
ui_print "-------------------"
ui_print " "
umount_all

ui_print "-------------------"
ui_print " INSTALLING PARAM "
ui_print "-------------------"
ui_print " "
update_zip param.bin $(find_block up_param)

ui_print "-------------------"
ui_print " INSTALLING KERNEL "
ui_print "-------------------"
ui_print " "
update_zip boot.img $(find_block boot)

ui_print "-------------------"
ui_print " INSTALLING SUPER "
ui_print "-------------------"
ui_print " "
update_zip -tmp /sdcard -sparse super.img $(find_block super)

ui_print "-------------------"
ui_print " DONE "
ui_print "-------------------"
ui_print " "
tip

The -tmp /sdcard flag uses internal storage as a temporary space, reducing memory pressure for large Sparse images.


Only Extractionโ€‹

Extracts files to system partitions without flashing images, useful for simple modifications.

#-----------Dynamic Installer Configs-----------#
#The #MAGISK tag is required, dont remove it
#MAGISK
setdefault magisk_support on
setdefault ensure_rw on
setdefault import_addons off
setdefault apex_mount off
setdefault overwrite_symlinks off
setdefault devices off
setdefault devices_alert on
setdefault dalvik_memory 800M
setdefault extraction_speed 4M
setdefault off_readonly ""
setdefault permissions "0:0:0755:0644"
#-----------------------------------------------#

ui_print " "
ui_print " -- Mounting partitions..."
mount_all

ui_print " -- Extracting mods..."
package_extract_dir system /system
package_extract_dir vendor /vendor
package_extract_dir system_ext /system_ext

ui_print " -- Unmounting ALL"
umount_all

ui_print " "
ui_print " -- Done"
ui_print " "

Kernel Installation (Multiple Devices)โ€‹

Installs a kernel for specific device models using conditional logic.

#-----------Dynamic Installer Configs-----------#
#The #MAGISK tag is required, dont remove it
#MAGISK
setdefault magisk_support on
setdefault ensure_rw on
setdefault import_addons off
setdefault apex_mount off
setdefault overwrite_symlinks off
setdefault devices "SM-A515F:SM-A515FN:m14x"
setdefault devices_alert on
setdefault dalvik_memory 800M
setdefault extraction_speed 4M
setdefault off_readonly ""
setdefault permissions "0:0:0755:0644"
#-----------------------------------------------#

ui_print "--------------------------------"
ui_print " Something Kernel "
ui_print " OneUI 3.1 "
ui_print "--------------------------------"
ui_print " by BlassGO "
ui_print "--------------------------------"
ui_print " "

ui_print "------------------------------------"
ui_print " Installing Kernel for: $DEVICE "
ui_print "------------------------------------"
ui_print " "

if is_equal "$DEVICE" "SM-A515F"; then
FOLDER="__A515F__"
elif is_equal "$DEVICE" "SM-A515FN"; then
FOLDER="__A515FN__"
elif is_equal "$DEVICE" "m14x"; then
FOLDER="__m14x__"
fi

update_zip "$FOLDER/boot.img" $(find_block boot)
update_zip "$FOLDER/dtbo.img" $(find_block dtbo)

ui_print "-------------------"
ui_print " Done "
ui_print "-------------------"
ui_print " "
note

The setdefault devices lists supported models, and $DEVICE is set automatically. Check device-specific guidelines in Configs.


Magisk Moduleโ€‹

Installs a Magisk module by extracting files to $MODPATH.

# Magisk modules use $MODPATH as main path

ui_print "-------------------------------------------------- "
ui_print " MODS for Android "
ui_print "-------------------------------------------------- "
ui_print " by @BlassGO | Version: 1.0 "
ui_print "-------------------------------------------------- "
ui_print " "

ui_print " -- Installing MODS in /system"
package_extract_dir system "$MODPATH/system"

ui_print " -- Installing MODS in /vendor"
package_extract_dir vendor "$MODPATH/system/vendor"

ui_print " -- Installing MODS in /product"
package_extract_dir product "$MODPATH/system/product"

ui_print " -- Fixing Contexts"
set_context /system "$MODPATH/system"

ui_print " "
ui_print " -- Done"
ui_print " "

Magisk Module (APKTOOL)โ€‹

Modifies an APK using dynamic_apktool and installs it as a Magisk module.

# Magisk modules use $MODPATH as main path

enable='
.locals 1
const/4 v0, 0x1
return v0
'

ui_print " -- Finding SystemUI.apk"
APK=$(find_installed_apk com.android.systemui)

ui_print " -- Checking results"
if undefined APK; then
abort " CANT FIND: SystemUI.apk"
fi

ui_print " -- Decompiling SystemUI.apk"
dynamic_apktool -decompile "$APK" -output "$TMP/decompiled"

ui_print " -- Patching SystemUI.apk"
smali_kit -check -method "isUnlockingWithBiometricAllowed" -remake "$enable" -dir "$TMP/decompiled"

ui_print " -- Recompiling SystemUI.apk"
dynamic_apktool -no-api -preserve-signature -recompile "$TMP/decompiled" -output "$MODPATH$APK"

ui_print " -- Checking results"
if ! is_valid "$MODPATH$APK"; then
abort "Some error in the APK recompilation"
fi

ui_print " -- Fixing Context "
set_context "$APK" "$MODPATH$APK"

ui_print " "
ui_print " -- Done "
ui_print " "
warning

dynamic_apktool only decompiles classes.dex, not res content. See known bugs for details.


Magisk and KernelSU Moduleโ€‹

Installs a module compatible with both Magisk and KernelSU, detecting the installation method.

# Magisk modules use $MODPATH as main path

ui_print "-------------------------------------------------- "
ui_print " MODS for Android "
ui_print "-------------------------------------------------- "
ui_print " by @BlassGO | Version: 1.0 "
ui_print "-------------------------------------------------- "
ui_print " "

if is_equal $CUSTOM_SETUP 0; then
ui_print " - Installation by MAGISK "
else
ui_print " - Installation by KernelSU (or something else)"
fi

ui_print " -- Installing MODS in /system"
package_extract_dir system "$MODPATH/system"

ui_print " -- Installing MODS in /vendor"
package_extract_dir vendor "$MODPATH/system/vendor"

ui_print " -- Installing MODS in /product"
package_extract_dir product "$MODPATH/system/product"

ui_print " -- Fixing Contexts"
set_context /system "$MODPATH/system"

ui_print " "
ui_print " -- Done"
ui_print " "
tip

$CUSTOM_SETUP is 0 for Magisk, 1 for Test Mode, or 2 for external methods like KernelSU. See Native Variables.