Creating backup images
- After unlocking bootloader you can flash a semi working TWRP written for EMUI 8.0 instead of EMUI 9.1.
- twrp_cornell (Backup)
- twrp_cornell (Original)
- Mounting the
/system
and/vendor
partitions doesn’t work automatically since the filesystem was changed fromext4
toerofs
between EMUI 8.0 and EMUI 9.1. - You can manually mount it via a root shell by running:
mount -t erofs /dev/block/by-name/system /system
. - Building a custom TWRP recovery might be possible but the build environment is very annoying to setup and the custom Honor Play TWRP recovery does not have a github repository which we can fork.
- Enter a root shell through TWRP by running:
./adb.exe shell sh
while booted inside TWRP recovery. - Show the mapping between blocks and partition by running:
ls -la /dev/block/by-name
. - For each mapping clone it to your SD card (which should be mounted) using
dd
.dd if=/dev/block/[block] of=/sdcard/[name].img
- Avoid cloning
userdata
since it is probably going to be larger than the 4GB limit of the FAT32 filesystem used for external SD cards. It might be possible to use./adb.exe
or./fastboot.exe
directly to pull this block if you want to backup your user data.
- You can write back these images using:
./fastboot.exe flash [partition_name] [image_name].img
.- Link (COR-L29 9.1.0.399 C636E3R1P12)
- Created by me using above method with TWRP and root ADB shell.
- Link (COR-L29 9.1.0.405 C432E1R1P9T8)
- Downloaded from third party website.
- Requires using split_image.py to unpack the
UPDATE.APP
file into the component images.
- Link (COR-L29 9.1.0.399 C636E3R1P12)
Block mapping table
Taken from device with COR-L29 9.1.0.399 C636E3R1P12 firmware.
Name | Block |
---|---|
bootfail_info | /dev/block/sdd18 |
cache | /dev/block/sdd58 |
certification | /dev/block/sdd5 |
cust | /dev/block/sdd56 |
ddr_para | /dev/block/sdd15 |
dfx | /dev/block/sdd20 |
dto | /dev/block/sdd43 |
dts | /dev/block/sdd42 |
eng_system | /dev/block/sdd39 |
eng_vendor | /dev/block/sdd46 |
erecovery_kernel | /dev/block/sdd35 |
erecovery_ramdisk | /dev/block/sdd36 |
erecovery_vbmeta | /dev/block/sdd48 |
erecovery_vendor | /dev/block/sdd37 |
fastboot | /dev/block/sdd28 |
frp | /dev/block/sdc1 |
fw_hifi | /dev/block/sdd32 |
fw_lpm3 | /dev/block/sdd22 |
hdcp | /dev/block/sdd24 |
hhee | /dev/block/sdd26 |
hisee_encos | /dev/block/sdd13 |
hisee_fs | /dev/block/sdd27 |
hisee_img | /dev/block/sdd25 |
isp_boot | /dev/block/sdd30 |
isp_firmware | /dev/block/sdd31 |
kernel | /dev/block/sdd38 |
misc | /dev/block/sdd19 |
modem_fw | /dev/block/sdd45 |
modem_om | /dev/block/sdd8 |
modem_secure | /dev/block/sdd3 |
modemnvm_backup | /dev/block/sdd10 |
modemnvm_cust | /dev/block/sdd51 |
modemnvm_factory | /dev/block/sdd9 |
modemnvm_img | /dev/block/sdd11 |
modemnvm_system | /dev/block/sdd12 |
modemnvm_update | /dev/block/sdd50 |
nvme | /dev/block/sdd4 |
odm | /dev/block/sdd57 |
oeminfo | /dev/block/sdd6 |
patch | /dev/block/sdd65 |
persist | /dev/block/sdc2 |
preas | /dev/block/sdd59 |
preavs | /dev/block/sdd60 |
preload | /dev/block/sdd55 |
prets | /dev/block/sdd63 |
pretvs | /dev/block/sdd64 |
product | /dev/block/sdd61 |
recovery_ramdisk | /dev/block/sdd40 |
recovery_vbmeta | /dev/block/sdd47 |
recovery_vendor | /dev/block/sdd41 |
reserved1 | /dev/block/sdc3 |
reserved2 | /dev/block/sdd16 |
reserved3 | /dev/block/sdd23 |
reserved7 | /dev/block/sdd52 |
rrecord | /dev/block/sdd21 |
secure_storage | /dev/block/sdd7 |
sensorhub | /dev/block/sdd34 |
splash2 | /dev/block/sdd17 |
system | /dev/block/sdd62 |
teeos | /dev/block/sdd33 |
trustfirmware | /dev/block/sdd44 |
userdata | /dev/block/sdd66 |
vbmeta | /dev/block/sdd49 |
vector | /dev/block/sdd29 |
vendor | /dev/block/sdd54 |
veritykey | /dev/block/sdd14 |
version | /dev/block/sdd53 |
vrl | /dev/block/sdd1 |
vrl_backup | /dev/block/sdd2 |