0% found this document useful (0 votes)
25 views2 pages

Updater Script

The document outlines a script for updating and patching various partitions on a Xiaomi device running Android 10. It includes steps for extracting installation files, setting metadata, and updating dynamic partitions such as system, vendor, product, odm, and system_ext. The script also handles the restoration of backups and the patching of boot, dtbo, and vbmeta images.

Uploaded by

anujworktube
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views2 pages

Updater Script

The document outlines a script for updating and patching various partitions on a Xiaomi device running Android 10. It includes steps for extracting installation files, setting metadata, and updating dynamic partitions such as system, vendor, product, odm, and system_ext. The script also handles the restoration of backups and the patching of boot, dtbo, and vbmeta images.

Uploaded by

anujworktube
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

ui_print("Target:

xiaomi/violet/violet:10/QKQ1.190915.002/V12.5.1.0.QFHINXM:user/release-keys");
package_extract_dir("install", "/tmp/install");
set_metadata_recursive("/tmp/install", "uid", 0, "gid", 0, "dmode", 0755, "fmode",
0644);
set_metadata_recursive("/tmp/install/bin", "uid", 0, "gid", 0, "dmode", 0755,
"fmode", 0755);
map_partition("vendor");
map_partition("product");
map_partition("system_ext");
run_program("/tmp/install/bin/backuptool.sh", "backup", map_partition("system"),
"ext4");

# --- Start patching dynamic partitions ---

# Update dynamic partition metadata

assert(update_dynamic_partitions(package_extract_file("dynamic_partitions_op_list")
, package_extract_file("unsparse_super_empty.img")));

# Patch partition system

ui_print("Patching system image unconditionally...");


show_progress(0.500000, 0);
block_image_update(map_partition("system"),
package_extract_file("system.transfer.list"), "system.new.dat.br",
"system.patch.dat") ||
abort("E1001: Failed to update system image.");

# Patch partition vendor

ui_print("Patching vendor image unconditionally...");


show_progress(0.100000, 0);
block_image_update(map_partition("vendor"),
package_extract_file("vendor.transfer.list"), "vendor.new.dat.br",
"vendor.patch.dat") ||
abort("E2001: Failed to update vendor image.");

# Patch partition product

ui_print("Patching product image unconditionally...");


show_progress(0.100000, 0);
block_image_update(map_partition("product"),
package_extract_file("product.transfer.list"), "product.new.dat.br",
"product.patch.dat") ||
abort("E2001: Failed to update product image.");

# Patch partition odm

ui_print("Patching odm image unconditionally...");


show_progress(0.100000, 0);
block_image_update(map_partition("odm"), package_extract_file("odm.transfer.list"),
"odm.new.dat.br", "odm.patch.dat") ||
abort("E2001: Failed to update odm image.");

# Patch partition system_ext

ui_print("Patching system_ext image unconditionally...");


show_progress(0.100000, 0);
block_image_update(map_partition("system_ext"),
package_extract_file("system_ext.transfer.list"), "system_ext.new.dat.br",
"system_ext.patch.dat") ||
abort("E2001: Failed to update system_ext image.");

# --- End patching dynamic partitions ---

show_progress(0.020000, 10);
map_partition("vendor");
map_partition("product");
map_partition("system_ext");
run_program("/tmp/install/bin/backuptool.sh", "restore", map_partition("system"),
"ext4");
package_extract_file("boot.img", "/dev/block/bootdevice/by-name/boot");
show_progress(0.100000, 10);
ui_print("Patching dtbo image unconditionally...");
package_extract_file("dtbo.img", "/dev/block/bootdevice/by-name/dtbo");
ui_print("Patching vbmeta image unconditionally...");
package_extract_file("vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta");
set_progress(1.000000);

You might also like