emcp expansion

Here we only record the expansion process under linux. Windows should be similar. Use the backup tool in 9008 mode to back up the entire emcp content (including the partition table). Qualcomm's 9008 mode will automatically expand the userdata partition to all available space when restoring, so in theory, the Android system is also suitable for this method of backup (according to some users, the Android system cannot be used in the expanded machine).

  • Note: The method is for reference only and does not mean that it is 100% available in your environment.

hardware

According to the emcp of the original machine, it can be determined that the emcp must meet the following conditions.

  • The built-in memory must be lpddr2 (I am not sure that most of my machines are equipped with lpddr2 msm8916 supports lpddr3 but may need different voltages to drive, even if the voltage is the same, you may need to use a different loader to initialize the memory)
  • The bga package must be bga162
  • Chips that meet the specifications will be powered on and enter 9008 (edl) mode after soldering in place, otherwise there will be no response.

After testing, the following chips can be compatible with UFI001B/C models

  • 08emcp08-nl2cv100 (bga162 lpddr2 1g + 8g emmc)
  • kmk8x000vm-b412 (bga162 lpddr2 1g + 16g emmc)

software

It is recommended to use the edl tool under linux. Before installation, there are python3 and yay in your environment by default.

$ yay -S edl-git
  • For distributions that are not Arch-based, it is recommended to install directly according to the official method of edl .

Then press and hold the machine to power on, enter 9008 mode, and enter the following command to backup the content in emcp.

$ edl rl dumps --skip=userdata --genxml
  • If stuck for a long time, it is recommended to ctrl+c to try again later.
  • If your edl reports an error such as no suitable loader found, you can try other loaders to initialize the memory. EDL provides many loaders. Here we take the loader of Redmi 2 as an example (Linux environments with different loader paths may have differences. for reference only).
$ edl rl dumps --skip=userdata --genxml  \
--loader /usr/lib/python3.10/site-packages/edlclient-3.53-py3.10.egg/edlclient/../Loaders/xiaomi/007050e100000000_50838757eab7c632_fhprg_peek_wt88047.bin

After replacing the new emcp, the 9008 device will appear. At this time, enter the following command in the backup folder

$ edl qfil rawprogram0.xml patch0.xml
  • If there is an error, as above, just add the loader parameter.

Restart the machine, when the light is on, it means the expansion is successful.

$ edl reset

References

Here are some common emcp&emmc models, for reference only
(thanks to Kuan @Zy143L for sorting out)