[ ZIP INSTALLER ] Dynamic Installer Beta [ ALL ANDROID DEVICES ]

BlassGO

Senior Member
Jan 19, 2021
65
74
38
20210222_103348.jpg

ABOUT THIS:

Recovery installer(BETA) compatible with multiple Android devices such as different types of partitions, both traditional and new partitions (Focused on the creation of normal and universal flash files)


GENERAL FEATURES:

- Fully shell script based so its open source (You can examine its operating code)
- Mount main partitions for most Android devices
- Supports all existing actions package_extract_dir, set_metadata, is_substring, assert, ....
- Detects main partitions and saves them as dynamic variables $system $vendor $product $boot $param
- It runs by default in BASH + Busybox, it has no limitations to work with shell code
- Support for addons, you can add new scripts that will auto-execute (only if you want) when flashing the zip




EXTRA FUNCTIONS:

  • auto_mount_partitions
It will mount the main partitions automatically ( system, vendor, product)

  • checkvar "variable" "variable" "..."
Check infinite variables and return the value of those that are defined

  • filtervar "variable" "variable" "..." "pattern"
Check infinite variables and look for a matching pattern, the value of those variables is returned

  • savestate "variable" "file"
Makes a record of the current state of the file and is saved in the variable, any minor editing will change the value

  • setdefault "variable" "string or $(command)"
Its equivalent to defining a normal variable (a = b) but doesnt omit anything, useful to save the result of complex actions

  • get_file_prop "file" "prop to extract"
Extract props (a = b) from external files

  • update "file .img / .bin /..." "partition"
Try different installation types for img or bin files (boot.img optics.img prism.img param.bin ...)

  • update_file "file with new parameters" "file"
Updates lines of .prop or .xml files without changing the original structure (the format is autodetected, only readable files)

  • add_lines "file with new lines" "file"
Add new lines to an existing file

  • flash "zip file"
Try to install a new zip file within the current installation

  • run "variable" "file"
Try to run a file (like a sh, binary ..) and save the result in the variable

  • dynamic_install "path" "path"
Similar to package_extract_dir but only works with existing paths outside the zip and performs an installation using the native linux "install"

  • fprint "file"
Print the contents of a file in the recovery

  • split_string "pattern separator" "line"
Separate text based on a delimiter

  • split_cut "separator pattern" "number" "line"
Separates the text like split_string but only returns the content up to the number of the indicated result

  • split_extract "separator pattern" "number" "line"
Separates the text like split_string but only returns a single value that is in the number of the indicated result

  • filetype "file"
Provide the file type, if it is a zip, ASCII txt, tar and more, without the need for the file to have a specific extension

  • getblocks
It will result in all existing main partitions on the device

  • if defined "variable" ( Equivalent to if [ -n variable )
Check that a variable is defined

  • if undefined "variable" ( Equivalent to if [ -z variable )
Check that a variable isnt defined



CLARIFICATIONS

Some of these commands support specific cases as follows:

Actions: update, update_file, flash, add_lines, run, fprint

  • _addon >> Specify that it should work from META-INF/addon folder
  • _zip >> This specifies that it should work from the zip in general
  • If this extension isnt included, it will work as an external command to the zip

Examples:

update_file_addon new.prop /system/build.prop
( new.prop will be taken from META-INF/addons)

fprint_zip "main/huh.txt"
( It will try to take huh.txt from an existing folder inside the zip called "main"

flash "/sdcard/test.zip"
(It will try to install an external file to the current zip inside /sdcard)



HOW DOES IT WORK?
  • update-binary is the one that executes the entire zip and creates the necessary symlinks for operation
  • zbin contains all the necessary plugins and extra functionalities
  • updater-script is the workspace where each dev can configure the installer actions


CREDITS:

  • @osm0sis ( For his great work with dynamic partitions and recreation of traditional installer functionalities in shell code)
  • Me @BlassGO ( Creator of Dynamic Installer)



MORE EXPLANATIONS AND DOWNLOADS IN THE NEXT POSTS
 
Last edited:

BlassGO

Senior Member
Jan 19, 2021
65
74
38
Dynamic Installer Configs

The installer supports some additional settings
If this is included in the updater-script:

  • setdefault results ( on or off)
If it is activated, the results of some actions in the recovery will be shown, if it is deactivated, nothing preconfigured will be displayed

  • setdefault run_addons (on or off)
If it is activated, the addons with ending .sh will be auto-executed after the main script (updater-script)

  • setdefault devices (code name of supported devices or off)
If you want to do an installation only for some devices, you can include the code name of those devices here, otherwise simply leave it off




How do dynamic variables work?

In the case of partitions, they are defined according to the name of the partition, for example:

If ur boot partition is /dev/block/platform/13520000.ufs/by-name/BOOT

It will be assigned as $BOOT variable


But if its /dev/block/platform/13520000.ufs/by-name/boot

It will be assigned as $boot variable



This allows even new partitions to be assigned in a variable, the checkvar and filtervar utilities are focused on facilitating the use of these dynamic variables
 
Last edited:

BlassGO

Senior Member
Jan 19, 2021
65
74
38
DOWNLOADS

Dynamic_Installer_Beta1:
It is the first template and includes some preconfigured things so that you can review how it works

GOOGLE DRIVE
 
Last edited: