๐ 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 " "
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 " "
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 " "
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 " "
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 " "
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 " "
$CUSTOM_SETUP
is 0
for Magisk, 1
for Test Mode, or 2
for external methods like KernelSU. See Native Variables.