♞ Vasu's Journal

Hibreak Pro Guide 3: An Extremely Rubbish Way to Upgrade Your Hibreak Pro to the Latest Firmware

1. Motivation (In Decreasing Order of Importance)

2. Requirements

Both mtkclient and payload dumper are written in Python. Make sure you have Python installed on your machine.

  1. mtkclient: Following the instructions on the repo page, set up mtkclient on your PC.
  2. Stock OTA for 1.9.6: I was able to capture the OTA download link and download the stock firmware from Bigme's servers. I won't be including the link to Bigme's servers, in case Bigme decide to ban me from the subreddit.
  3. Payload Dumper: Follow the instructions to set this up on your PC.

3. Instructions

3.1 Extracting the OTA

  1. After downloading the OTA from Section 2, extract the zip file.
  2. Inside the extracted contents, you will find a payload.bin file. Using payload dumper, extract the payload.bin file. To do this, run the following command from the root of your payload dumper directory:

python payload_dumper.py <path to payload.bin>

This will extract all the partitions we need to flash onto the phone in a folder called output in the root of your payload_dumper folder.

3.2 Flashing the Partitions Using mtkclient

  1. Turn off your phone and leave it unconnected with the PC.
  2. Assuming you've correctly set up mtkclient following the instructions in the repository, open a terminal in the root of your mtkclient directory.
  3. NOTE THAT THIS IS THE MOST IMPORTANT STEP. Run one of the following commands based on your preference: a. Backup the entire flash: python mtk.py rf flash.bin This will take some time since this will, well, dump the entire flash including the userdata partition and will create a 256GB file on your disk. b. Backup all the individual partitions (except userdata): python mtk.py rl --skip=userdata out
  4. Plug in your phone now and mtkclient should now start backing up your phone.
  5. Once backup is finished, run the command:

python mtk.py printgpt

This will print the list of all the partitions on the phone's flash memory.

  1. Now, with the partitions we extracted in step 2 in section 3.2, tally the partitions from the partitions you printed in the previous step. Let's take the example of the vbmeta.img partition you extracted. The partition table mentions 2 partitions: vbmeta_a and vbmeta_b, hence, we'd be flashing the vbmeta.img file to both the a and b partitions using mtkclient with the following commands:

python mtk.py w vbmeta_a <path to vbmeta.img>
python mtk.py w vbmeta_b <path to vbmeta.img>

Note: It was at this point that I realised that some of the partitions in the OTA are actually part of the super partition i.e. you would be seeing the super partition in the mtkclient. The following partitions are part of the super partition (and hence you would not be able to flash them directly through mtkclient): product, system, system_ext, vendor. You would need to flash the super.bin file(attached in the link I provided in section 2) using the command:

python mtk.py w super <path to super.bin>

And that should be it. Unplug your phone and hold your power button till the screen flashes and hopefully you should be on 1.9.6

If something goes wrong during the process, read the title of the post and question why you followed this process in the first place.