yashsingh1/xdaforums huggingface dataset:
[Wing, P4350 ROM development] gullum:
Bad news :(

My son spilled coffie on all my phones but furtunatly only my Herald got damaged... not even badly though.

I can still carge the phone but the usb port wan't regonice the headset or connect to pc... so my only option now is SD flashing.

I thing I have a final version of my Manila 2D rom to upload now. I've been using this version for several days and it works perfect for me.
[Wing, P4350 ROM development] kidnamedAlbert:
awh that sucks.

i hope you get it fixed though.

you know all the herald cooks are leaving?
[Wing, P4350 ROM development] ghostnj:
why are they leaving?????
[Android Software/Hacking General [Developers Only]] BlassGO:
View attachment 6116716

SUPPORT: TELEGRAM CHANNEL - TELEGRAM GROUP - SUPPORT ME

ABOUT THIS:
​

With this you can make Automatic Installers (.ZIP flash files) for All Android devices without limitations (Supports an installation from Recovery or can be used to create a Magisk module)

By default the installer mounts the partitions as RW (Read/Write) and creates its own environment (Busybox + Bash) to work even if your installation environment is not the most suitable

Although the name "Dynamic Installer" can be confusing, the installer is not exclusive for devices with Dynamic Partitions, it supports devices with old and new partitions.

​

Compatibility:

ARM/ARM64​

General Features:

Spoiler content hidden.

Default Variables:

Spoiler content hidden.

Updater-Script configs

Spoiler content hidden.

Pre-introduction to Addons

Spoiler content hidden.

Pre-introduction to Actions

Spoiler content hidden.

​

How does it work?

Spoiler content hidden.

Test MODE

Spoiler content hidden.

Magisk SPACE

Spoiler content hidden.

KernelSU Support

Spoiler content hidden.

REPLACE NATIVE FUNCTIONS

Spoiler content hidden.

TMP2

Spoiler content hidden.

BUGS:

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

CREDITS TO:​

Me @BlassGO ( Creator of Dynamic Installer)

@osm0sis ( Traditional installer functionalities in shell code)

@topjohnwu ( Some very cool functions in shell code)

@munjeni for superrepack and superunpack (Best tools to manipulate SUPER images)

@lebigmac cuz I used his project systemrw as a base to made my super_rw function for Dynamic Installer

3arthur6 for the 7zip binary used in Z variant, v4.8-bZ

@xenosaur for the 7zip binary used in Z variants, v4.8-bZ2+

MORE EXPLANATIONS

AND DOWNLOADS

IN THE NEXT POSTS​
[Android Software/Hacking General [Developers Only]] BlassGO:
ALL ACTIONS​

-----------------------------------

ABORT / END:

Spoiler content hidden.

-----------------------------------

VARIABLES / SUB-PROCESSES:

How to play with variables and sub-processes

Spoiler content hidden.

-----------------------------------

LOGIC OF EXPRESSIONS:

As in many programming languages, the use of logical connectors is supported

Spoiler content hidden.

-----------------------------------

MOUNT:

Spoiler content hidden.

-----------------------------------

EXTRACT:

Spoiler content hidden.

-----------------------------------

WIPES:

Spoiler content hidden.

-----------------------------------

USER SELECTION:

Spoiler content hidden.

-----------------------------------

SOME EXTRA EDIFY REFERENCES:

To make the environment a bit easier for users who have used traditional installation scripts (Edify Scripts), these are some additional simulated Edify actions.

Spoiler content hidden.

-----------------------------------

GET VALUES:

Spoiler content hidden.

-----------------------------------

SET PERMISSIONS:

Spoiler content hidden.

-----------------------------------

GET/SET CONTEXTS:

Contexts in Android (Linux) are properties of all files or folders that determine the type of file or folder and allow the system to know how to treat or catalog that file/folder

NOTE: As Magisk modules work as a layer on top of the system, when you include files within your module they will be installed without any defined context and without a context you could have unwanted results.

Spoiler content hidden.

-----------------------------------

EDITING FILES:

Spoiler content hidden.

-----------------------------------

EXECUTION:

Spoiler content hidden.

-----------------------------------

MANIPULATION OF STRINGS:

Spoiler content hidden.

-----------------------------------

CONVERSION:

Spoiler content hidden.

-----------------------------------

CHECKING:

Spoiler content hidden.

-----------------------------------

APK/JAR TOOLS:

Spoiler content hidden.

-----------------------------------

APK/JAR ADVANCED TOOL KITS:

Spoiler content hidden.

-----------------------------------

EXTRA TOOLS:

Spoiler content hidden.

-----------------------------------

LOGGING:

Spoiler content hidden.

-----------------------------------

DYNAMIC VARIABLES:

Spoiler content hidden.

-----------------------------------

CREATE FILES/FOLDERS:

Spoiler content hidden.

-----------------------------------

INSTALL FILES:

Spoiler content hidden.

-----------------------------------

HEXADECIMAL PATCH:

Spoiler content hidden.

-----------------------------------

DYNAMIC PARTITIONS (SUPER):

Spoiler content hidden.

-----------------------------------

PROTECT YOUR CODE:

Spoiler content hidden.

-----------------------------------

OTHER STUFF:

Spoiler content hidden.
[Android Software/Hacking General [Developers Only]] BlassGO:
SCRIPT EXAMPLES:​

ROM Installation (RAW + XZ)

NOTE: Due to the size of RAW IMGs they can be compressed in XZ. This method is a little slower than using Sparse. Supports 32 and 64 bit devices.

META-INF/com/google/android/updater-script

Spoiler content hidden.

ROM Installation (Sparse)

NOTE: Exclusive for 64-bit devices. Requires META-INF/addons/extra.zip for the simg2img plugin.

META-INF/com/google/android/updater-script

Spoiler content hidden.

ROM Installation (From Internal Memory)

NOTE: In case you experience problems with the previous methods, especially on very large IMGs like SUPER. Sometimes the temporary space used by the update_zip action is limited. However, you can redirect the extraction to the internal memory (/sdcard) to have free space without worries.

META-INF/com/google/android/updater-script

Spoiler content hidden.

Only Extraction

META-INF/com/google/android/updater-script

Spoiler content hidden.

Magisk Module

NOTE: You can add folders directly in META-INF/com/google/android/magisk and they will be added automatically in your module

META-INF/com/google/android/magisk/customize.sh

Spoiler content hidden.

Magisk Module (APKTOOL)

NOTE: The dynamic_apktool only decodes ALL classes.dex, no content of "res" is directly editable (Check the BUGS of the Dynamic Installer)

META-INF/com/google/android/magisk/customize.sh

Spoiler content hidden.

Magisk and KernelSU Module

NOTE: You can add folders directly in META-INF/com/google/android/magisk and they will be added automatically in your module (for KernelSU and Magisk)

META-INF/com/google/android/magisk/customize.sh

Spoiler content hidden.
[Android Software/Hacking General [Developers Only]] BlassGO:
CHANGELOG:
​

Spoiler content hidden.

[CHANGELOG 5.0-b]

Fixed minor BUGs from the previous version, especially in functions that were completely restructured

Fixed issue with some devices showing a warning/aborting installation when using mount_all. This was an implementation from many versions ago that made sure that there was free space in the root (/) before trying to start the mount. Currently it still exists, but it uses another more aggressive but more reliable method.

The Z variant is back with all the accumulated changes. It also supports multi-architecture even for the 7z embedded binary.

Changed the setdefault "ensure_root" to "ensure_rw" which is more appropriate
[Android Software/Hacking General [Developers Only]] BlassGO:
DOWNLOADS:

STABLE V5.0-b:​

Standard version of the DI. Use the native "unzip" command to handle extractions, this can give better compatibility since it is an existing command in all custom Recoverys, but implies a dependency on the capacity of the size of ZIP files that it natively supports (4GB at best of the cases). If your final compressed project will not exceed 3.5GB, you can use this version without worries.

MEDIAFIRE

STABLE V5.0-bZ:​

Experimental variant of DI (does not imply that it is unstable). Instead of using the native "unzip" command, it includes a 7zip binary embedded from quite early points in the installation to handle extractions, allowing processing of large ZIPs. Requires either the "base64" command or the "awk" command to exist. If your final compressed project exceeds 3.5GB, consider trying this version.

NOTE: To ensure compatibility, you can simply flash this blank template and if you don't receive any warning, it is supported!

MEDIAFIRE

(7z - v17.01)

MEDIAFIRE

(7z - v24.06)​
[Android Software/Hacking General [Developers Only]] josephpatrick:
can this method be used to patch systemui.apk to possibly replace resources.arsc or change specific colors under values\res\colors.xml
[Android Software/Hacking General [Developers Only]] BlassGO:
For compatibility reasons you can only directly make smali edits (classes.dex), check the BUGs section with the apktool, although you could do is an overlays (As its a simple apk it can be decompiled and compiled)

But if you just want to replace the resources.arsc without previously decompiling it you can use the patch_apk function
[Android Software/Hacking General [Developers Only]] blaze2051:
this looks so confusing, but can this be used to make a recovery partition to install twrp to a A/B dynamic partition device that only has boot partition?
[Android Software/Hacking General [Developers Only]] BlassGO:
The Dynamic Installer focuses on general installations for mods, roms or patchs, but it has an open space for plugins, you can contact me from the support group that is at the beginning of the thread to develop/test a plugin that allows that installation

Btw the previous message was probably confusing cuz it also supports code patching in APKs, its a very multi-use installer.
[Android Software/Hacking General [Developers Only]] dataghost2014:
Beautifully done. This is so useful for many things. Good work on this.
[Android Software/Hacking General [Developers Only]] Subodh.993435:
Thank you for this amazing installer
[Android Software/Hacking General [Developers Only]] Techguy777:
There are tons of things on xda now that I have absolutely no clue as to what the use would be. This is one of them if you can install a recovery than you install the recovery with adb or Odin or whatever. If you need to install magisk module you install it in manager. Apk install normally. I don't understand what this gave us that wasn't able to do before?

Same with sim number setter xposed module it doesn't do anything. It changes some arbitrary number that has no bearing on anything It's completely pointless.
[Android Software/Hacking General [Developers Only]] BlassGO:
That is a superficial view, the installation of ROMs / MODs and others only put it on a par with traditional installers (Edify Scripts), the objective of Dynamic Installer is to shorten / facilitate actions for complex projects and in fact, there are projects to patch the Secure Folder / Samsung Theme Store, create bootanimations using any video, all directly from Magisk using this installer, and more, in short, it is a very well equipped, free and easy to write work environment, which even expands to the Magisk Modules space ( Also I think there is a confusion, it is not intended to replace the Magisk Manager, it is a ZIP, it works like any magisk module for the user)
[Android Software/Hacking General [Developers Only]] Techguy777:
Now when you there are projects to patch secure folder are any of the projects successful and is it for Android 12 aka one ui 4.1? That would be a good use. The boot animation with any video would be cool to but the secure folder is more practical or useful. Where can I find this project at?
[Android Software/Hacking General [Developers Only]] Techguy777:
So there's really no secure folder patch available it's just talked about or working on it? That's what I mean if there is something of use that only this can do it makes it great but if there's nothing I fail to see the point.
[Android Software/Hacking General [Developers Only]] BlassGO:
@skyflyteam

In the support tg channel you will find some projects, one of them for the SecureFolder OneUI 4.1
[Android Software/Hacking General [Developers Only]] Der_Googler:
It didn't work over the magisk install command...
[Android Software/Hacking General [Developers Only]] BlassGO:
Could u give more info about the problem?
[Android Software/Hacking General [Developers Only]] Der_Googler:
it says failed to unpack zip
[Android Software/Hacking General [Developers Only]] BlassGO:
In that case it isnt a problem of the installer, check the compression, the most common error is to compress the unziped folder that contains everything, instead of each specific element like META-INF, META-INF must always be in the root of the ZIP, to check it you can open your current ZIP and verify that the first thing you see is the META-INF
[Android Software/Hacking General [Developers Only]] Liaisonish:
Can you update Telegram group link?

(It was expired)
[Android Software/Hacking General [Developers Only]] CrazyBytesVE:
Thank you very much. Truly an excellent tutorial, grateful to the dev for taking the time and patience to do all the post and necessary files. @BlassGO
[Android Software/Hacking General [Developers Only]] nashinnnn:
Such an amazing tool, sad to see almost no activity on this thread 🥲
[Android Software/Hacking General [Developers Only]] lebigmac:
Yes I agree it's a little bit sad :(

@BlassGO put so much effort into his sophisticated dynamic installer tool.

Keep up the great work @BlassGO :D(y)

@BlassGO if you could please help me with new version of my script then I can write you in my credits and that should give you and your dynamic installer some additional exposure ;)(y)
[Android Software/Hacking General [Developers Only]] Cyberavater:
@BlassGO Can I repack system, vendor, product, odm and then flash it to super using BlassGO Dynamic Installer?
[Android Software/Hacking General [Developers Only]] Cyberavater:
It's also okay if you show me how I can flash all those partitions inside the super-partition.

An example is appreciated.
[Android Software/Hacking General [Developers Only]] oldman20:
Agree!
[Android Software/Hacking General [Developers Only]] sevsman:
Good afternoon all. Has anyoymanaged to set this script to delete system files etc after the rom finishes flashing?

I can see how to add files into the system, product partitions but I've not been able to get it to delete files successfully.

New devices being SD means there's no aroma support in twrp at present.

Many thanks,

Nathan
[Android Software/Hacking General [Developers Only]] ShaDisNX255:
Yeah, I use

delete_recursive /system/priv-app/...

You can check out my whole updater-script here:

NcX_Stock/META-INF/com/google/android/updater-script at Android13 · ShaDisNX255/NcX_Stock

Contribute to ShaDisNX255/NcX_Stock development by creating an account on GitHub.

github.com
[Android Software/Hacking General [Developers Only]] sevsman:
You my friend are a life saver!! I've been talking with a couple of friends that use this installer but they didn't know how to get it set up either.

Thanks a million mate :)
[Android Software/Hacking General [Developers Only]] BlassGO:
Hi, all traditional Edify Scripts actions are supported, this includes "delete" and "delete_recursive".

delete "file" "file" "..."

delete_recursive "folder" "folder" "..."

However, usually in "new devices" with dynamic partitions, a recovery reboot is needed after updating partitions such as system, vendor, product, odm (or the entire SUPER) to mount the partitions successfully, but you can try and check the recovery LOG.
[Android Software/Hacking General [Developers Only]] oldman20:
How about "move file/ folder" from there to sdcard (for backup) instead delete?
[Android Software/Hacking General [Developers Only]] oldman20:
Is it can be use on Samsung note 9 exynos A10? Or A12 13
[Android Software/Hacking General [Developers Only]] BlassGO:
move "file or folder" /sdcard/backup
[Android Software/Hacking General [Developers Only]] BlassGO:
The only requirement is an ARM architect (most Android processors like exynos, kirin, snap, unisoc use it).

I have also maintained updates to improve adaptability to new versions, especially in mounting partitions, the only problem you may experience is NOT being able to edit contents in special cases such as partitions with EROFS.
[Android Software/Hacking General [Developers Only]] sevsman:
Good morning and thanks for your reply!

On the S23U we are now building ROMs to be flashed in Odin as the base fw has to be up to date for each new ROM release and as we're having to use Odin anyway, then why not have it flash a modified set of files :)

In doing it that way, we then boot to twrp directly after the fw flash process has completed, in order to make any further changes.

Would flashing the fw in Odin and then booting into twrp be an acceptable environment for the dynamic installer do its job of running an elected set of debloat commands?

Many thanks,

Nathan
[Android Software/Hacking General [Developers Only]] oldman20:
I mean can be replace "delete" command with other like same "move" in script?
[Android Software/Hacking General [Developers Only]] BlassGO:
Updated, thx for the report
[Android Software/Hacking General [Developers Only]] changhuapeng:
Not sure if this is still beng maintained but a big thank you for this useful installer!

I'm using this installer for my module and one of my user is encountering an issue with "unzip" binary not being defined on Magisk 27.0 which I'm unable to reproduce on my device. I've tried forcing the script to use the "unzip" binary from the built-in busybox binary that comes with Magisk instead but that seem to not work on Magisk.

if [ -f /data/adb/magisk/busybox ]; then
unzip() { /data/adb/magisk/busybox unzip "$@"; }
elif [ -f /data/adb/ksu/bin/busybox ]; then
unzip() { /data/adb/ksu/bin/busybox unzip "$@"; }
elif [ -f /data/adb/ap/bin/busybox ]; then
unzip() { /data/adb/ap/bin/busybox unzip "$@"; }
fi;

Similarly, I have also face problem with the "unzip" binary on APatch, a newer root system, where files in archives are not extracting until I used the "unzip" from the built-in busybox.

Is there any way to make the installer use these built-in busybox instead?
[Android Software/Hacking General [Developers Only]] Vision:
About BusyBox, this user with problem, if can change in your module the inside BusyBox in zbin with Magisk BusyBox ?

EDIT: I try some test on emulator, one say BusyBox can load on this device, but when change it with Magisk BusyBox from where Magisk is install and replace the BusyBox inside in zbin, no more say this, after say about bash the same, but not about BusyBox.
[Android Software/Hacking General [Developers Only]] BlassGO:
Can you send me the installation log and on what device?

Also maybe you tried the Z variant? This includes a 7z binary that replaces the use of "unzip" in all functions
[Android Software/Hacking General [Developers Only]] changhuapeng:
I haven't try the Z variant installer.

There are various different errors encountered by my users and I am unable to reproduce any of these issues.

Samsung S7 - Magisk 27.0

magisk_install_log_2024-06-01T19.44.22.log (Log is bare of any useful info)

OnePlus 12 - KernelSU

KernelSU_install_log_2024-06-10-15-07-43.log

User fix the problem after replacing the aapt, bash, busybox, xz, zip, zipalign binaries in META-INF/zbin

Redmi K40 Gaming(aras) - R65C33E4F-kitsune mask(27001)

magisk_install_log_2024-06-06T07.20.17.log

Unknown device - Magisk Alpha 27002

magisk_install_log_2024-06-14T16.26.16.log

Error with apktool. I will update to 4.8-b2 with apktool 2.9.0 and get him to test that.

Thank you for your time!
[Android Software/Hacking General [Developers Only]] BlassGO:
Thanks for the detailed reports! They will be helpful, the problem with unzip could be solved with variant Z, it is curious that this binary is not available, externally, it is usually common. One approach could be in the binary_paths variable of the update-binary to also establish conventional paths by default in Magisk/KSU/... allowing everything necessary to be searched from there:

binary_paths=$(echo -e "/sbin\n/system/bin\n/data/adb/magisk\n/data/adb/ksu/bin\n/data/adb/ap/bin")

Unfortunately, if the busybox included in the DI is not supported, probably neither are additional binaries like BASH. Architecture may be incompatible (ARM) or stricter SELinux
[Android Software/Hacking General [Developers Only]] changhuapeng:
Thanks for the information!

I'm bewildered by the unzip issue too, since most Android devices should have that binary and it is certainly also included in the Magisk busybox that all major rooting systems are using. Would it be possible to include different architectures' binaries so DI can serve up the suitable one after detecting the device arch?
[Xiaomi Poco X3 NFC Questions & Answers] ramnoob:
Hi,

So i have been on arrow os for maybe 6 months now, i wanted to update to the latest build but it told me that i had to factory reset the phone to do so, so i thought lets try some other rom on the way, i flashed the pixel experience rom, then switched to the latest build of Arrow os.

Now since i am on arrow os OSS Vendor A11, i wanted to move back to pixel experience, i tried flashing it but it would not. I flashed evolution X and rebooted the system but i was back in recovery (bootloop), i cleaned data and flashed pixel experience (successfully this time) but i was again greeted by a bootloop.

I flashed arrow os back and it turned on the device into arrow os. How can i switch to any other non OSS rom? Is it possible without adb protocol or mi flash tool? What would be the way to do so?

Thanks
[Xiaomi Poco X3 NFC Questions & Answers] RogueBanana:
Download and flash any full MIUI recovery ROM. They include stock vendor and firmware.

Some custom ROMs require A10 firmware+vendor, some others need A11, so pick accordingly.

perform format data if you're encrypted, reboot to recovery, then flash any ROM of your choice.
[Xiaomi Poco X3 NFC Questions & Answers] ramnoob:
Thanks for your answer. Last night i flashed dots rom on my phone after format data and my phone went into a bootloop and i was unable to flash back arrow os because recovery would say "unable to mount system/root" and 2 more errors like this. Anyways it took me like an hour to flash arrow back and boot up.

Can you give me link to the MIUI recovery rom?
[Xiaomi Poco X3 NFC Questions & Answers] RogueBanana:
Of course, here you go:

Xiaomi Firmware Updater

The ultimate script that provides firmware packages for Xiaomi devices.

xiaomifirmwareupdater.com

I had the same issue back then (system mount error), I also have no idea what caused it.

Good luck!
[Xiaomi Poco X3 NFC Questions & Answers] ramnoob:
Thanks again, please check that

https://xiaomifirmwareupdater.com/firmware/surya/stable/V12.0.9.0.QJGMIXM/

Flashing this before flashing the rom would work?

Also for you, how did you make it mount again? Just in case i fall in that loop again haha
[Xiaomi Poco X3 NFC Questions & Answers] RogueBanana:
Check your ROM requirements, for different ROMs need different firmware versions(see "Android" column on the website)

Usually the required firmware is written in the ROM description.

If you're not sure, you can always ask the ROM developer.

For the dot-OS ROM you are about to flash, I think it needs A10 firmware. CMIIW