[ TOOL - Python2/3 ] UPDATE.APP Img Extractor - splituapp

SuperR.

Recognized Developer
Mar 23, 2014
2,522
8,410
203
Invisible
Disclaimer: I am not responsible for anything bad that may occur from the use of this tool, but I will take all the credit you can give me if it works for you


splituapp is similar to splitupdate.pl and split_updata.pl for unpacking/splitting/extracting img files from an UPDATE.APP file. The main difference being this one is written for Python2/3 instead of Perl. Additionally, splituapp allows you to extract specified img files where the others will only extract all img files at once. This saves a lot of time if you know which img files you want.

Assuming splituapp and UPDATE.APP are in the same directory and you have a command prompt open in that directory, here are some examples.

To extract all img files:
Code:
splituapp -f UPDATE.APP
To extract only system.img and boot.img:
Code:
splituapp -f UPDATE.APP -l system boot
You can run "./splituapp -h" (Linux) or "python splituapp -h" (Windows) to get usage instructions.

Like splitupdate.pl and split_updata.pl, splituapp will do crc checksum verification on the img files after extraction if the crc binary is in the same directory the script is run from. Unfortunately I do not have the source for the binary so it is only available for Linux at this time. As a result, the crc verification will be disabled in Windows for now.

This program does not extract the images it splits from UPDATE.APP. Once the img files are split from UPDATE.APP the job is complete. If you are looking for a tool to handle system.img extraction you can check out SuperR's Kitchen.

splituapp Download/Source

Enjoy :)

Credits:
I am not sure who did what, but thanks :)
McSpoon, JoeyJiao, ZeBadger - for the data_structure file in splitupdate.pl and the crc binary for Linux
 
Last edited:

Blümchen Blau

Senior Member
Dec 18, 2006
109
17
48
Wien
CRC errors

Hi,
when extracting the UPDATE.APP of BKL-L09C432-9.0.0.178(C432E4R1P12) I have CRC errors like:
Code:
$ ./splituapp -f UPDATE.APP -l recovery_ramdisk
Extracting recovery_ramdisk.img ...
Calculating crc value for recovery_ramdisk.img ...

ERROR: crc value for recovery_ramdisk.img does not match
Doing all this on Ubuntu 18.04.2 (Kernel 4.20).
Can I trust the extracted images?

Update: After a crosscheck with the use of "split_updata" and hashing both extracted recovery_ramdisk and following use of the extracted .img with Magisk to root my Honor V10, I can confirm that the image was correct even with the CRC-error.
 
Last edited:
  • Like
Reactions: SuperR.

SuperR.

Recognized Developer
Mar 23, 2014
2,522
8,410
203
Invisible
Updated.

Changes:
  • Check for files with duplicate names in UPDATE.APP and append file names with _2 to avoid overwriting the first.
  • Do not read entire file into ram before writing it. This will help PCs with less ram to extract large files.
  • General code cleanup.
 
Last edited:
  • Like
Reactions: marto2013