How To Guide Backup GN200 firmware. - OnePlus Nord N20 5G
line by line i wrote the commands to pull each img file from the device
GSI -> https://sourceforge.net/projects/andyyan-gsi/files/
Load Andy Yan lineage GSi using Dsu Sideloader
Dsu sideloader -> https://github.com/VegaBobo/DSU-Sideloader/releases/tag/1.03
make sure to set user data to 20gb in the dsu app menu
When gsi is running Enable developer options and root debugging.
Cmd into the adb folder of your pc. Then
Type adb shell
Su
Then use commands below to get the img
note when the dd gets to userdata you will run out of space,. you have to adb pull what u have and then re-gsi and continue the DD from userdata
before you dd type cd /storage/emulated/0
Spoiler: COMMANDS
Code:
dd if=/dev/block/sdd1 of=ALIGN_TO_128K_1.img
dd if=/dev/block/sdf1 of=ALIGN_TO_128K_2.img
dd if=/dev/block/sdf18 of=DRIVER.img
dd if=/dev/block/sde6 of=abl_a.img
dd if=/dev/block/sde27 of=abl_b.img
dd if=/dev/block/sde42 of=apdp.img
dd if= /dev/block/sde43 of=apdp_full.img
dd if=/dev/block/sde5 of=bluetooth_a.img
dd if=/dev/block/sde26 of=bluetooth_a.img
dd if=/dev/block/sde9 of=boot_a.img
dd if=/dev/block/sde30 of=boot_b.img
dd if=/dev/block/sde55 of=catecontentfv.img
dd if=/dev/block/sde54 of=catefv.img
dd if=/dev/block/sde46 of=cateloader.img
dd if=/dev/block/sdd2 of=cdt.img
dd if=/dev/block/sde15 of=core_nhlos_a.img
dd if= /dev/block/sde37 of=core_nhlos_b.img
dd if=/dev/block/sdd3 of=ddr.img
dd if=/dev/block/sde10 of=devcfg_a.img
dd if=/dev/block/sde31 of=devcfg_b.img
dd if=/dev/block/sde41 of=devinfo.img
dd if=/dev/block/sdd6 of=dinfo.img
dd if=/dev/block/sde7 of=dsp_a.img
dd if=/dev/block/sde28 of=dsp_b.img
dd if=/dev/block/sde13 of=dtbo_a.img
dd if=/dev/block/sde34 of=dtbo_b.img
dd if=/dev/block/sdd4 of=engineering_cdt_a.img
dd if=/dev/block/sdd7 of=engineering_cdt_b.img
dd if=/dev/block/sde17 of=featenabler_a.img
dd if=/dev/block/sde18 of=featenabler_b.img
dd if=/dev/block/sda5 of=frp.img
dd if=/dev/block/sdf7 of=fsc.img
dd if=/dev/block/sdf6 of=fsg.img
dd if=/dev/block/sde3 of=hyp_a.img
dd if=/dev/block/sde24 of=hyp_b.img
dd if=/dev/block/sde14 of=imagefv_a.img
dd if=/dev/block/sde35 of=imagefv_b.img
dd if=/dev/block/sde8 of=keymaster_a.img
dd if=/dev/block/sde29 of=keymaster_b.img
dd if=/dev/block/sda4 of=keystore.img
dd if=/dev/block/sde47 of=logdump.img
dd if=/dev/block/sde45 of=logfs.img
dd if=/dev/block/sdf9 of=mdm1m9kefs1.img
dd if=/dev/block/sdf10 of=mdm1m9kefs2.img
dd if=/dev/block/sdf8 of=mdm1m9kefs3.img
dd if=/dev/block/sdf11 of=mdm1m9kefsc.img
dd if=/dev/block/sdf12 of=mdm1oemnvbktmp.img
dd if=/dev/block/sda12 of=metadata.img
dd if=/dev/block/sda3 of=misc.img
dd if=/dev/block/sde4 of=modem_a.img
dd if=/dev/block/sde25 of=modem_b.img
dd if=/dev/block/sde48 of=modemdump.img
dd if=/dev/block/sdf4 of=modemst1.img
dd if=/dev/block/sdf5 of=modemst2.img
dd if=/dev/block/sde50 of=multiimgoem_a.img
dd if=/dev/block/sde51 of=multiimgoem_b.img
dd if=/dev/block/sdd5 of=ocdt.img
dd if=/dev/block/sde21 of=oplus_sec_a.img
dd if=/dev/block/sde40 of=oplus_sec_b.img
dd if=/dev/block/sdf2 of=oplusdycnvbk.img
dd if=/dev/block/sdf13 of=oplusreserve1.img
dd if=/dev/block/sdf14 of=oplusreserve2.img
dd if=/dev/block/sdf15 of=oplusreserve3.img
dd if=/dev/block/sdf16 of=oplusreserve4.img
dd if=/dev/block/sdf17 of=oplusreserve5.img
dd if=/dev/block/sdf3 of=oplusstanvbk_a.img
dd if=/dev/block/sdf19 of=oplusstanvbk_b.img
dd if=/dev/block/sda2 of=persist.img
dd if=/dev/block/sde11 of=qupfw_a.img
dd if=/dev/block/sde32 of=qupfw_b.img
dd if=/dev/block/sda13 of=rawdump.img
dd if=dev/block/sde1 of=rpm_a.img
dd if=/dev/block/sde22 of=rpm_b.img
dd if=/dev/block/sde53 of=secdata.img
dd if=/dev/block/sde20 of=splash_a.img
dd if=/dev/block/sde39 of=splash_b.img
dd if=/dev/block/sda14 of=splash_odm.img
dd if=/dev/block/sda1 of=ssd.img
dd if=/dev/block/sde49 of=storsec.img
dd if=/dev/block/sda15 of=super.im
dd if=/dev/block/sde44 of=toolsfv.img
dd if=/dev/block/sde2 of=tz_a.img
dd if=/dev/block/sde23 of=tz_b.img
dd if=/dev/block/sde16 of=uefisecapp_a.img
dd if=/dev/block/sde36 of=uefisecapp_b.img
dd if=/dev/block/sde52 of=uefivarstore.img
dd if=/dev/block/sda16 of=userdata.img
dd if=/dev/block/sde12 of=vbmeta_a.img
dd if=/dev/block/sde33 of=vbmeta_b.img
dd if=/dev/block/sda6 of=vbmeta_system_a
dd if=/dev/block/sda7 of=vbmeta_system_b.img
dd if=/dev/block/sda8 of=vbmeta_vendor_a.img
dd if=/dev/block/sda9 of=vbmeta_vendor_b.img
dd if=/dev/block/sde19 of=vendor_boot_a.img
dd if=/dev/block/sde38 of=vendor_boot_b.img
dd if=/dev/block/sde57 of=vm-data.img
dd if=/dev/block/sde56 of=vm-keystore.img
dd if=/dev/block/sda10 of=vm-system_a.img
dd if=/dev/block/sda11 of=vm-system_b.img
dd if=/dev/block/sdb1 of=xbl_a.img
dd if=/dev/block/sdc1 of=xbl_b.img
dd if=/dev/block/sdb2 of=xbl_config_a.img
dd if=/dev/block/sdc2 of=xbl_config_b.img
[/ICODE][/SPOILER]
Spoiler: adb pull command
Code:
adb pull ALIGN_TO_128K_1.img c:\Documents
adb pull DRIVER.img c:\Documents
adb pull abl_a.img c:\Documents
adb pull abl_b.img c:\Documents
adb pull apdp.img c:\Documents
adb pull apdp_full.img c:\Documents
adb pull bluetooth_a.img c:\Documents
adb pull bluetooth_a.img c:\Documents
adb pull boot_a.img c:\Documents
adb pull boot_b.img c:\Documents
adb pull catecontentfv.img c:\Documents
adb pull catefv.img c:\Documents
adb pull cateloader.img c:\Documents
adb pull cdt.img c:\Documents
adb pull core_nhlos_a.img c:\Documents
adb pull core_nhlos_b.img c:\Documents
adb pull ddr.img c:\Documents
adb pull devcfg_a.img c:\Documents
adb pull devcfg_b.img c:\Documents
adb pull devinfo.img c:\Documents
adb pull dinfo.img c:\Documents
adb pull dsp_a.img c:\Documents
adb pull dsp_b.img c:\Documents
adb pull dtbo_a.img c:\Documents
adb pull dtbo_b.img c:\Documents
adb pull engineering_cdt_a.img c:\Documents
adb pull engineering_cdt_b.img c:\Documents
adb pull featenabler_a.img c:\Documents
adb pull featenabler_b.img c:\Documents
adb pull frp.img c:\Documents
adb pull fsc.img c:\Documents
adb pull fsg.img c:\Documents
adb pull hyp_a.img c:\Documents
adb pull hyp_b.img c:\Documents
adb pull imagefv_a.img c:\Documents
adb pull imagefv_b.img c:\Documents
adb pull keymaster_a.img c:\Documents
adb pull keymaster_b.img c:\Documents
adb pull keystore.img c:\Documents
adb pull logdump.img c:\Documents
adb pull logfs.img c:\Documents
adb pull mdm1m9kefs1.img c:\Documents
adb pull mdm1m9kefs2.img c:\Documents
adb pull mdm1m9kefs3.img c:\Documents
adb pull mdm1m9kefsc.img c:\Documents
adb pull mdm1oemnvbktmp.img c:\Documents
adb pull metadata.img c:\Documents
adb pull misc.img c:\Documents
adb pull modem_a.img c:\Documents
adb pull modem_b.img c:\Documents
adb pull modemdump.img c:\Documents
adb pull modemst1.img c:\Documents
adb pull modemst2.img c:\Documents
adb pull multiimgoem_a.img c:\Documents
adb pull multiimgoem_b.img c:\Documents
adb pull ocdt.img c:\Documents
adb pull oplus_sec_a.img c:\Documents
adb pull oplus_sec_b.img c:\Documents
adb pull oplusdycnvbk.img c:\Documents
adb pull oplusreserve1.img c:\Documents
adb pull oplusreserve2.img c:\Documents
adb pull oplusreserve3.img c:\Documents
adb pull oplusreserve4.img c:\Documents
adb pull oplusreserve5.img c:\Documents
adb pull oplusstanvbk_a.img c:\Documents
adb pull oplusstanvbk_b.img c:\Documents
adb pull persist.img c:\Documents
adb pull qupfw_a.img c:\Documents
adb pull qupfw_b.img c:\Documents
adb pull rawdump.img c:\Documents
adb pull rpm_a.img c:\Documents
adb pull rpm_b.img c:\Documents
adb pull secdata.img c:\Documents
adb pull splash_a.img c:\Documents
adb pull splash_b.img c:\Documents
adb pull splash_odm.img c:\Documents
adb pull ssd.img c:\Documents
adb pull storsec.img c:\Documents
adb pull super.img c:\Documents
adb pull toolsfv.img c:\Documents
adb pull tz_a.img c:\Documents
adb pull tz_b.img c:\Documents
adb pull uefisecapp_a.img c:\Documents
adb pull uefisecapp_b.img c:\Documents
adb pull uefivarstore.img c:\Documents
adb pull userdata.img c:\Documents
adb pull vbmeta_a.img c:\Documents
adb pull vbmeta_b.img c:\Documents
adb pull vbmeta_system_a c:\Documents
adb pull vbmeta_system_b.img c:\Documents
adb pull vbmeta_vendor_a.img c:\Documents
adb pull vbmeta_vendor_b.img c:\Documents
adb pull vendor_boot_a.img c:\Documents
adb pull vendor_boot_b.img c:\Documents
adb pull vm-data.img c:\Documents
adb pull vm-keystore.img c:\Documents
adb pull vm-system_a.img c:\Documents
adb pull vm-system_b.img c:\Documents
adb pull xbl_a.img c:\Documents
adb pull xbl_b.img c:\Documents
adb pull xbl_config_a.img c:\Documents
adb pull xbl_config_b.img c:\Documents
Man
bricklife4me said:
line by line i wrote the commands to pull each img file from the device
GSI -> https://sourceforge.net/projects/andyyan-gsi/files/
Load Andy Yan lineage GSi using Dsu Sideloader
Dsu sideloader -> https://github.com/VegaBobo/DSU-Sideloader/releases/tag/1.03
make sure to set user data to 20gb in the dsu app menu
When gsi is running Enable developer options and root debugging.
Cmd into the adb folder of your pc. Then
Type adb shell
Su
Then use commands below to get the img
Spoiler: COMMANDS
Code:
dd if=/dev/block/sdd1 of=ALIGN_TO_128K_1.img
dd if=/dev/block/sdf1 of=ALIGN_TO_128K_2.img
dd if=/dev/block/sdf18 of=DRIVER.img
dd if=/dev/block/sde6 of=abl_a.img
dd if=/dev/block/sde27 of=abl_b.img
dd if=/dev/block/sde42 of=apdp.img
dd if= /dev/block/sde43 of=apdp_full.img
dd if=/dev/block/sde5 of=bluetooth_a.img
dd if=/dev/block/sde26 of=bluetooth_a.img
dd if=/dev/block/sde9 of=boot_a.img
dd if=/dev/block/sde30 of=boot_b.img
dd if=/dev/block/sde55 of=catecontentfv.img
dd if=/dev/block/sde54 of=catefv.img
dd if=/dev/block/sde46 of=cateloader.img
dd if=/dev/block/sdd2 of=cdt.img
dd if=/dev/block/sde15 of=core_nhlos_a.img
dd if= /dev/block/sde37 of=core_nhlos_b.img
dd if=/dev/block/sdd3 of=ddr.img
dd if=/dev/block/sde10 of=devcfg_a.img
dd if=/dev/block/sde31 of=devcfg_b.img
dd if=/dev/block/sde41 of=devinfo.img
dd if=/dev/block/sdd6 of=dinfo.img
dd if=/dev/block/sde7 of=dsp_a.img
dd if=/dev/block/sde28 of=dsp_b.img
dd if=/dev/block/sde13 of=dtbo_a.img
dd if=/dev/block/sde34 of=dtbo_b.img
dd if=/dev/block/sdd4 of=engineering_cdt_a.img
dd if=/dev/block/sdd7 of=engineering_cdt_b.img
dd if=/dev/block/sde17 of=featenabler_a.img
dd if=/dev/block/sde18 of=featenabler_b.img
dd if=/dev/block/sda5 of=frp.img
dd if=/dev/block/sdf7 of=fsc.img
dd if=/dev/block/sdf6 of=fsg.img
dd if=/dev/block/sde3 of=hyp_a.img
dd if=/dev/block/sde24 of=hyp_b.img
dd if=/dev/block/sde14 of=imagefv_a.img
dd if=/dev/block/sde35 of=imagefv_b.img
dd if=/dev/block/sde8 of=keymaster_a.img
dd if=/dev/block/sde29 of=keymaster_b.img
dd if=/dev/block/sda4 of=keystore.img
dd if=/dev/block/sde47 of=logdump.img
dd if=/dev/block/sde45 of=logfs.img
dd if=/dev/block/sdf9 of=mdm1m9kefs1.img
dd if=/dev/block/sdf10 of=mdm1m9kefs2.img
dd if=/dev/block/sdf8 of=mdm1m9kefs3.img
dd if=/dev/block/sdf11 of=mdm1m9kefsc.img
dd if=/dev/block/sdf12 of=mdm1oemnvbktmp.img
dd if=/dev/block/sda12 of=metadata.img
dd if=/dev/block/sda3 of=misc.img
dd if=/dev/block/sde4 of=modem_a.img
dd if=/dev/block/sde25 of=modem_b.img
dd if=/dev/block/sde48 of=modemdump.img
dd if=/dev/block/sdf4 of=modemst1.img
dd if=/dev/block/sdf5 of=modemst2.img
dd if=/dev/block/sde50 of=multiimgoem_a.img
dd if=/dev/block/sde51 of=multiimgoem_b.img
dd if=/dev/block/sdd5 of=ocdt.img
dd if=/dev/block/sde21 of=oplus_sec_a.img
dd if=/dev/block/sde40 of=oplus_sec_b.img
dd if=/dev/block/sdf2 of=oplusdycnvbk.img
dd if=/dev/block/sdf13 of=oplusreserve1.img
dd if=/dev/block/sdf14 of=oplusreserve2.img
dd if=/dev/block/sdf15 of=oplusreserve3.img
dd if=/dev/block/sdf16 of=oplusreserve4.img
dd if=/dev/block/sdf17 of=oplusreserve5.img
dd if=/dev/block/sdf3 of=oplusstanvbk_a.img
dd if=/dev/block/sdf19 of=oplusstanvbk_b.img
dd if=/dev/block/sda2 of=persist.img
dd if=/dev/block/sde11 of=qupfw_a.img
dd if=/dev/block/sde32 of=qupfw_b.img
dd if=/dev/block/sda13 of=rawdump.img
dd if=dev/block/sde1 of=rpm_a.img
dd if=/dev/block/sde22 of=rpm_b.img
dd if=/dev/block/sde53 of=secdata.img
dd if=/dev/block/sde20 of=splash_a.img
dd if=/dev/block/sde39 of=splash_b.img
dd if=/dev/block/sda14 of=splash_odm.img
dd if=/dev/block/sda1 of=ssd.img
dd if=/dev/block/sde49 of=storsec.img
dd if=/dev/block/sda15 of=super.im
dd if=/dev/block/sde44 of=toolsfv.img
dd if=/dev/block/sde2 of=tz_a.img
dd if=/dev/block/sde23 of=tz_b.img
dd if=/dev/block/sde16 of=uefisecapp_a.img
dd if=/dev/block/sde36 of=uefisecapp_b.img
dd if=/dev/block/sde52 of=uefivarstore.img
dd if=/dev/block/sda16 of=userdata.img
dd if=/dev/block/sde12 of=vbmeta_a.img
dd if=/dev/block/sde33 of=vbmeta_b.img
dd if=/dev/block/sda6 of=vbmeta_system_a
dd if=/dev/block/sda7 of=vbmeta_system_b.img
dd if=/dev/block/sda8 of=vbmeta_vendor_a.img
dd if=/dev/block/sda9 of=vbmeta_vendor_b.img
dd if=/dev/block/sde19 of=vendor_boot_a.img
dd if=/dev/block/sde38 of=vendor_boot_b.img
dd if=/dev/block/sde57 of=vm-data.img
dd if=/dev/block/sde56 of=vm-keystore.img
dd if=/dev/block/sda10 of=vm-system_a.img
dd if=/dev/block/sda11 of=vm-system_b.img
dd if=/dev/block/sdb1 of=xbl_a.img
dd if=/dev/block/sdc1 of=xbl_b.img
dd if=/dev/block/sdb2 of=xbl_config_a.img
dd if=/dev/block/sdc2 of=xbl_config_b.img
[/ICODE][/SPOILER]
Spoiler: adb pull command
Code:
adb pull ALIGN_TO_128K_1.img c:\Documents
adb pull DRIVER.img c:\Documents
adb pull abl_a.img c:\Documents
adb pull abl_b.img c:\Documents
adb pull apdp.img c:\Documents
adb pull apdp_full.img c:\Documents
adb pull bluetooth_a.img c:\Documents
adb pull bluetooth_a.img c:\Documents
adb pull boot_a.img c:\Documents
adb pull boot_b.img c:\Documents
adb pull catecontentfv.img c:\Documents
adb pull catefv.img c:\Documents
adb pull cateloader.img c:\Documents
adb pull cdt.img c:\Documents
adb pull core_nhlos_a.img c:\Documents
adb pull core_nhlos_b.img c:\Documents
adb pull ddr.img c:\Documents
adb pull devcfg_a.img c:\Documents
adb pull devcfg_b.img c:\Documents
adb pull devinfo.img c:\Documents
adb pull dinfo.img c:\Documents
adb pull dsp_a.img c:\Documents
adb pull dsp_b.img c:\Documents
adb pull dtbo_a.img c:\Documents
adb pull dtbo_b.img c:\Documents
adb pull engineering_cdt_a.img c:\Documents
adb pull engineering_cdt_b.img c:\Documents
adb pull featenabler_a.img c:\Documents
adb pull featenabler_b.img c:\Documents
adb pull frp.img c:\Documents
adb pull fsc.img c:\Documents
adb pull fsg.img c:\Documents
adb pull hyp_a.img c:\Documents
adb pull hyp_b.img c:\Documents
adb pull imagefv_a.img c:\Documents
adb pull imagefv_b.img c:\Documents
adb pull keymaster_a.img c:\Documents
adb pull keymaster_b.img c:\Documents
adb pull keystore.img c:\Documents
adb pull logdump.img c:\Documents
adb pull logfs.img c:\Documents
adb pull mdm1m9kefs1.img c:\Documents
adb pull mdm1m9kefs2.img c:\Documents
adb pull mdm1m9kefs3.img c:\Documents
adb pull mdm1m9kefsc.img c:\Documents
adb pull mdm1oemnvbktmp.img c:\Documents
adb pull metadata.img c:\Documents
adb pull misc.img c:\Documents
adb pull modem_a.img c:\Documents
adb pull modem_b.img c:\Documents
adb pull modemdump.img c:\Documents
adb pull modemst1.img c:\Documents
adb pull modemst2.img c:\Documents
adb pull multiimgoem_a.img c:\Documents
adb pull multiimgoem_b.img c:\Documents
adb pull ocdt.img c:\Documents
adb pull oplus_sec_a.img c:\Documents
adb pull oplus_sec_b.img c:\Documents
adb pull oplusdycnvbk.img c:\Documents
adb pull oplusreserve1.img c:\Documents
adb pull oplusreserve2.img c:\Documents
adb pull oplusreserve3.img c:\Documents
adb pull oplusreserve4.img c:\Documents
adb pull oplusreserve5.img c:\Documents
adb pull oplusstanvbk_a.img c:\Documents
adb pull oplusstanvbk_b.img c:\Documents
adb pull persist.img c:\Documents
adb pull qupfw_a.img c:\Documents
adb pull qupfw_b.img c:\Documents
adb pull rawdump.img c:\Documents
adb pull rpm_a.img c:\Documents
adb pull rpm_b.img c:\Documents
adb pull secdata.img c:\Documents
adb pull splash_a.img c:\Documents
adb pull splash_b.img c:\Documents
adb pull splash_odm.img c:\Documents
adb pull ssd.img c:\Documents
adb pull storsec.img c:\Documents
adb pull super.img c:\Documents
adb pull toolsfv.img c:\Documents
adb pull tz_a.img c:\Documents
adb pull tz_b.img c:\Documents
adb pull uefisecapp_a.img c:\Documents
adb pull uefisecapp_b.img c:\Documents
adb pull uefivarstore.img c:\Documents
adb pull userdata.img c:\Documents
adb pull vbmeta_a.img c:\Documents
adb pull vbmeta_b.img c:\Documents
adb pull vbmeta_system_a c:\Documents
adb pull vbmeta_system_b.img c:\Documents
adb pull vbmeta_vendor_a.img c:\Documents
adb pull vbmeta_vendor_b.img c:\Documents
adb pull vendor_boot_a.img c:\Documents
adb pull vendor_boot_b.img c:\Documents
adb pull vm-data.img c:\Documents
adb pull vm-keystore.img c:\Documents
adb pull vm-system_a.img c:\Documents
adb pull vm-system_b.img c:\Documents
adb pull xbl_a.img c:\Documents
adb pull xbl_b.img c:\Documents
adb pull xbl_config_a.img c:\Documents
adb pull xbl_config_b.img c:\Documents
Click to expand...
Click to collapse
Man If only you could share the dump. That would be the most amazing thing ever.
alecstoner said:
Man
Man If only you could share the dump. That would be the most amazing thing ever.
Click to expand...
Click to collapse
I created a dump using a partition backup tool and i flashed it unsuccessfully. Therfore its not suited for recovery
Im testing a different one now
bricklife4me said:
Im testing a different one now
Click to expand...
Click to collapse
Thanks, I currently bricked my GN2200 out of stupidity.
alecstoner said:
Thanks, I currently bricked my GN2200 out of stupidity.
Click to expand...
Click to collapse
I know a good man that charges $10 for remote flash firmware. I use his service all the time. Pm and I give u info
If you bricked because of a bad boot.img. just reflash a working boot.img that's current with your version number
bricklife4me said:
If you bricked because of a bad boot.img. just reflash a working boot.img that's current with your version number
Click to expand...
Click to collapse
It's okay I don't use the phone much it was mostly for testing purposes.
alecstoner said:
It's okay I don't use the phone much it was mostly for testing purposes.
Click to expand...
Click to collapse
Im almost done with creating a backups
give this a try fastboot flash boot boot_a,img
if this dont work then wait for me to upload the vbmetas then you disable verity and flash the boot
edit hold o n
so far i had to gsi the n20 to pull partitions.
the gsi doesnt ALLOCATE SUFFIUENT storage space toi dump the partitiuon
MAKE SURE TOO DISABLE VERITY IN ALL THREE METAS
Related
Extracting Rogers images
I'm trying to extract boot, recovery, system from my Rogers Notes, and need some clarification. Do I need to be rooted first? When I try now, I cannot access /dev/block to extract any image. It seems all the root methods available somehow modifies the kernel or recovery or system, which kinda makes it impossible to extract stock images? Help please
I have used adb to shell into the Note and extracted the various images. I'm looking for stock Rogers images. The ones DAGr8 posted still has the Telus brand on them. c:\> adb shell $ su # dd if=/dev/block/mmcblk0p24 of=/sdcard/system.img # dd if=/dev/block/mmcblk0p22 of=/sdcard/recovery.img # dd if=/dev/block/mmcblk0p8 of=/sdcard/boot.img # exit c:\> adb pull /sdcard/system.img c:\> adb pull /sdcard/recovery.img c:\> adb pull /sdcard/boot.img
ha! i'm on the boat, i'm trying to extract all the original stuff before going crazy on it just a few min ago i PMed DAGr8 for details seems like you beat him to it i know the radio was already done so i'll just do those 3 mentioned above firefly9 said: c:\> adb shell $ su # dd if=/dev/block/mmcblk0p24 of=/sdcard/system.img # dd if=/dev/block/mmcblk0p22 of=/sdcard/recovery.img # dd if=/dev/block/mmcblk0p8 of=/sdcard/boot.img # exit c:\> adb pull /sdcard/system.img c:\> adb pull /sdcard/recovery.img c:\> adb pull /sdcard/boot.img Click to expand... Click to collapse
firefly9 said: I have used adb to shell into the Note and extracted the various images. I'm looking for stock Rogers images. The ones DAGr8 posted still has the Telus brand on them. c:\> adb shell $ su # dd if=/dev/block/mmcblk0p24 of=/sdcard/system.img # dd if=/dev/block/mmcblk0p22 of=/sdcard/recovery.img # dd if=/dev/block/mmcblk0p8 of=/sdcard/boot.img # exit c:\> adb pull /sdcard/system.img c:\> adb pull /sdcard/recovery.img c:\> adb pull /sdcard/boot.img Click to expand... Click to collapse Once I get adb running do I just input the above commands into the command prompt? Does the "adb pull" command just copy the images from the device or does it remove them? Sorry for the basic adb questions. I've always had Nexus phones so I'm not sure if things work differently on other phones.
Once in the shell on the device, denoted by the "$" prompt, enter the commands outlined. After the "dd" commands have been completed, enter "exit" (twice, actually) and then the "adb pull" commands to copy the images from the device to you local computer. The images are copied so they will remain on the device until you delete them.
i find this easier... adb shell dd if=/dev/block/mmcblk0p13 of=/sdcard/amss.bin adb shell dd if=/dev/block/mmcblk0p17 of=/sdcard/mdm.bin adb shell dd if=/dev/block/mmcblk0p24 of=/sdcard/system.img adb shell dd if=/dev/block/mmcblk0p22 of=/sdcard/recovery.img adb shell dd if=/dev/block/mmcblk0p8 of=/sdcard/boot.img adb pull /sdcard/amss.bin adb pull /sdcard/mdm.bin adb pull /sdcard/system.img adb pull /sdcard/recovery.img adb pull /sdcard/boot.img
commands in file .bat change framework
Hi, I want create a file .bat in windows hat change framework-res.apk I write this Code: adb push frameworks-res.apk /sdcard/frameworks-res.apk adb shell su adb shell su adb shell mount -r remount,rw /system adb shell cp /sdcard/framework-res.apk /system/framework/framework-res.apk adb reboot after push file i see windows shell stops in adb shell and don't go next command how can i exec all command?
Pulling build.prop with ADB
Hi, Finally I can enter recovery mode after messing up with build.prop on Xperia Tablet S tablet is visible in ADB as C:\Users\Amiga\Desktop\adb>adb devices List of devices attached 0123456789ABCDEF recovery but rest of the commands doesn't work C:\Users\Amiga\Desktop\adb>adb shell * daemon not running. starting it now on port 5037 * * daemon started successfully * error: closed So I don't know how to pull out build.prop from Tablet
Amiga4ever123 said: Hi, Finally I can enter recovery mode after messing up with build.prop on Xperia Tablet S tablet is visible in ADB as C:\Users\Amiga\Desktop\adb>adb devices List of devices attached 0123456789ABCDEF recovery but rest of the commands doesn't work C:\Users\Amiga\Desktop\adb>adb shell * daemon not running. starting it now on port 5037 * * daemon started successfully * error: closed So I don't know how to pull out build.prop from Tablet Click to expand... Click to collapse The reason you are getting the "error: closed" message is because the version of System Recovery installed on your tablet inhibits ADB from accessing the tablet's file system. You are not going to be able to pull or push the build.prop file.
Ok I can't use ADb so how can I replace faulty build.prop file or make recovery? Any ZIP file that I can put on SD card?
Amiga4ever123 said: Ok I can't use ADb so how can I replace faulty build.prop file or make recovery? Any ZIP file that I can put on SD card? Click to expand... Click to collapse You can try copying an OTA update file to an SD card and using System Recovery to install it, but I do not believe doing that will work. I believe you have bricked your tablet to the point where you have to send your tablet to Sony for repair.
Cat McGowan said: You can try copying an OTA update file to an SD card and using System Recovery to install it, but I do not believe doing that will work. I believe you have bricked your tablet to the point where you have to send your tablet to Sony for repair. Click to expand... Click to collapse So its very easy to brick this amazing sony device
Cat McGowan said: The reason you are getting the "error: closed" message is because the version of System Recovery installed on your tablet inhibits ADB from accessing the tablet's file system. You are not going to be able to pull or push the build.prop file. Click to expand... Click to collapse Hi cat tried to PM you but can?t do it... Can you teach me how to copy/restore (pull and or push) the original build.prop in my cell (now bricked) i had the original file (buil.prop) inside it... i am learning about adb commands. thanksss. The main problem I have: An issue with ADB VCOM drivers (in windows) (tried in a couple of PCS, the device manager "see" the vcom preloader only a little moment (when connect the cell with usb cable) and then dissapear... then with command adb devices: no devices found... can you help me?
federimau said: Hi cat tried to PM you but can?t do it... Can you teach me how to copy/restore (pull and or push) the original build.prop in my cell (now bricked) i had the original file (buil.prop) inside it... i am learning about adb commands. thanksss. The main problem I have: An issue with ADB VCOM drivers (in windows) (tried in a couple of PCS, the device manager "see" the vcom preloader only a little moment (when connect the cell with usb cable) and then dissapear... then with command adb devices: no devices found... can you help me? Click to expand... Click to collapse The reason ADB is reporting no devices are found may be because (1) your device is bricked, which probably means you are not going to be able to pull/push files from/to your device, (2) you do not have ADB drivers for your device properly installed on your PC, and/or (3) you do not have USB debugging enabled in your tablet's Developer options settings. It's good you are learning how to use ADB and there are plenty of ADB tutorials to be found via Google, etc.; e.g., HERE. Here is what you specifically ask for. Pulling the build.prop file from your tablet to your PC is easy, just use these commands. Code: adb wait-for-device adb pull /system/build.prop adb kill-server Pushing the build.prop file from your PC to your tablet is more complicated. (1) Your tablet must have root access. If it doesn't, attempts at pushing the file to your tablet's /system directory will fail. (2) Along with having root access, you must have SuperSU or Superuser, and Busybox installed on the tablet. (3) You have to temporarily set your tablet's /system directory's properties from RO to RW, which must be done quickly because your tablet's OS monitors the /system directory's properties and will reboot the tablet if it detects the directory's properties have been changed from RO. (4) To issue the ADB commands as quickly as possible, the commands must be put into a DOS batch command script file. For example, create and run a batch file named doit.bat containing the following commands. Code: adb wait-for-device adb push build.prop /build.prop adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /'" adb shell "su -c 'chmod 0440 /sbin/ric'" adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /system'" adb shell "su -c 'busybox cp -af /build.prop /system/build.prop'" adb shell "su -c 'chmod 0744 /system/build.prop'" adb shell "su -c 'rm /build.prop'" adb shell "exit" adb kill-server Good luck.
Cat McGowan said: The reason ADB is reporting no devices are found may be because (1) your device is bricked, which probably means you are not going to be able to pull/push files from/to your device, (2) you do not have ADB drivers for your device properly installed on your PC, and/or (3) you do not have USB debugging enabled in your tablet's Developer options settings. It's good you are learning how to use ADB and there are plenty of ADB tutorials to be found via Google, etc.; e.g., HERE. Here is what you specifically ask for. Pulling the build.prop file from your tablet to your PC is easy, just use these commands. Code: adb wait-for-device adb pull /system/build.prop adb kill-server Pushing the build.prop file from your PC to your tablet is more complicated. (1) Your tablet must have root access. If it doesn't, attempts at pushing the file to your tablet's /system directory will fail. (2) Along with having root access, you must have SuperSU or Superuser, and Busybox installed on the tablet. (3) You have to temporarily set your tablet's /system directory's properties from RO to RW, which must be done quickly because your tablet's OS monitors the /system directory's properties and will reboot the tablet if it detects the directory's properties have been changed from RO. (4) To issue the ADB commands as quickly as possible, the commands must be put into a DOS batch command script file. For example, create and run a batch file named doit.bat containing the following commands. Code: adb wait-for-device adb push build.prop /build.prop adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /'" adb shell "su -c 'chmod 0440 /sbin/ric'" adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /system'" adb shell "su -c 'busybox cp -af /build.prop /system/build.prop'" adb shell "su -c 'chmod 0744 /system/build.prop'" adb shell "su -c 'rm /build.prop'" adb shell "exit" adb kill-server Good luck. Click to expand... Click to collapse Wowww Cat, you are the one!! Thanks in Advance The main problem I have: An issue with device recognition in windows PC... driver ADB VCOM MTK 6592 (tried in different PCS windows Xp and 8) (the device manager "see" the vcom preloader but only a little moment (in the first instant when connect the cell (cell off) with usb cable) and then dissapear (disconnect) the vcom preloader... I think If I can reach the way to get this connection running ok I can progress with this... will fight hard... When I type the command adb devices, result: no devices found... Tried to upgrade the vcom drivers (when i can catch it in the active state in device manager)... nothing Tried to "on" the phone... nothing Tried to flash a new ROM from Recovery (MIUI or Feelingme 078)... ERROR installation aborted I can see this effect (with usbview): the usb is recognized in the PC (but just for a little moment at the instant when plug it), then disconnect... I need to recover the original build.prop.bak from coolpad memory, rename it to build.prop and send it to coolpad again... I think i can flash (from recovery) an original build. prop (packed as update.zip) doing the wipes and apply update from sdcard)... anyone can assist me on this? This new 9976A item comes to me with 048 version, custom buid version 265 and rooted from factory... Anyone can please help me?
Cat McGowan said: The reason ADB is reporting no devices are found may be because (1) your device is bricked, which probably means you are not going to be able to pull/push files from/to your device, (2) you do not have ADB drivers for your device properly installed on your PC, and/or (3) you do not have USB debugging enabled in your tablet's Developer options settings. It's good you are learning how to use ADB and there are plenty of ADB tutorials to be found via Google, etc.; e.g., HERE. Here is what you specifically ask for. Pulling the build.prop file from your tablet to your PC is easy, just use these commands. Code: adb wait-for-device adb pull /system/build.prop adb kill-server Pushing the build.prop file from your PC to your tablet is more complicated. (1) Your tablet must have root access. If it doesn't, attempts at pushing the file to your tablet's /system directory will fail. (2) Along with having root access, you must have SuperSU or Superuser, and Busybox installed on the tablet. (3) You have to temporarily set your tablet's /system directory's properties from RO to RW, which must be done quickly because your tablet's OS monitors the /system directory's properties and will reboot the tablet if it detects the directory's properties have been changed from RO. (4) To issue the ADB commands as quickly as possible, the commands must be put into a DOS batch command script file. For example, create and run a batch file named doit.bat containing the following commands. Code: adb wait-for-device adb push build.prop /build.prop adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /'" adb shell "su -c 'chmod 0440 /sbin/ric'" adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /system'" adb shell "su -c 'busybox cp -af /build.prop /system/build.prop'" adb shell "su -c 'chmod 0744 /system/build.prop'" adb shell "su -c 'rm /build.prop'" adb shell "exit" adb kill-server Good luck. Click to expand... Click to collapse Cat i will need to pull the backup file... then the code i need is... (please monitor it for me) adb wait-for-device adb pull /system/build.prop.bak adb kill-server and... when you push the correct and original file adb wait-for-device adb push build.prop /build.prop is it ok? or the path is this? adb push build.prop /system/build.prop (if there are a build.prop in the device this will overwrite it?
federimau said: Cat i will need to pull the backup file... then the code i need is... (please monitor it for me) adb wait-for-device adb pull /system/build.prop.bak adb kill-server and... when you push the correct and original file adb wait-for-device adb push build.prop /build.prop is it ok? or the path is this? adb push build.prop /system/build.prop (if there are a build.prop in the device this will overwrite it? Click to expand... Click to collapse adb push build.prop /system/build.prop
Cat McGowan said: adb push build.prop /system/build.prop Click to expand... Click to collapse Thanks cat, as i say, the main problem in this case is: i have a short window of time when the windows PC see the driver in the device manager... then disconnects... do you have any idea what can i do to establish this connection betweeen the android device and the computer without interruption? ---------- Post added at 05:22 PM ---------- Previous post was at 05:12 PM ---------- Cat McGowan said: adb push build.prop /system/build.prop Click to expand... Click to collapse cat, i´m doing 2 bat files (edited with notepad, is this correct?) one file: pull.bat with code adb wait-for-device adb pull /system/build.prop.bak adb kill-server another file: push.bat with code adb wait-for-device adb push build.prop /system/build.prop adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /'" adb shell "su -c 'chmod 0440 /sbin/ric'" adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /system'" adb shell "su -c 'busybox cp -af /build.prop /system/build.prop'" adb shell "su -c 'chmod 0744 /system/build.prop'" adb shell "su -c 'rm /build.prop'" adb shell "exit" adb kill-server what do you think? ---------- Post added at 05:51 PM ---------- Previous post was at 05:22 PM ---------- federimau said: Thanks cat, as i say, the main problem in this case is: i have a short window of time when the windows PC see the driver in the device manager... then disconnects... do you have any idea what can i do to establish this connection betweeen the android device and the computer without interruption? ---------- Post added at 05:22 PM ---------- Previous post was at 05:12 PM ---------- cat, i´m doing 2 bat files (edited with notepad, is this correct?) one file: pull.bat with code adb wait-for-device adb pull /system/build.prop.bak adb kill-server another file: push.bat with code adb wait-for-device adb push build.prop /system/build.prop adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /'" adb shell "su -c 'chmod 0440 /sbin/ric'" adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /system'" adb shell "su -c 'busybox cp -af /build.prop /system/build.prop'" adb shell "su -c 'chmod 0744 /system/build.prop'" adb shell "su -c 'rm /build.prop'" adb shell "exit" adb kill-server what do you think? Click to expand... Click to collapse I think need to remove the first line? adb wait-for-device
federimau said: Thanks cat, as i say, the main problem in this case is: i have a short window of time when the windows PC see the driver in the device manager... then disconnects... do you have any idea what can i do to establish this connection betweeen the android device and the computer without interruption? Click to expand... Click to collapse You need to solve that problem before you can do anything else. Find an xda-developers forum that deals with your device and look there for fixes for your device's drivers. I am confident I can help you with Sony tablet drivers, but not your device's drivers. I don't even know the model of your device. Create and use the following CheckDriver.bat file to help you troubleshoot the drivers. The script simply opens a DOS command window, starts the adb server, then lists the devices the adb server finds. The DOS command window will stay open until you press any key. If the script hangs, press ctrl+c to abort the script and close the DOS command window, then open another DOS command window and issue the "adb kill-server" command to stop the adb server. Code: @echo off echo Starting ADB server and waiting for device. echo. adb wait-for-device adb devices pause adb kill-server federimau said: cat, i´m doing 2 bat files (edited with notepad, is this correct?) one file: pull.bat with code adb wait-for-device adb pull /system/build.prop.bak adb kill-server another file: push.bat with code adb wait-for-device adb push build.prop /system/build.prop adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /'" adb shell "su -c 'chmod 0440 /sbin/ric'" adb shell "su -c 'stop ric'" adb shell "su -c 'busybox pkill -f /sbin/ric'" adb shell "su -c 'mount -ro remount,rw /system'" adb shell "su -c 'busybox cp -af /build.prop /system/build.prop'" adb shell "su -c 'chmod 0744 /system/build.prop'" adb shell "su -c 'rm /build.prop'" adb shell "exit" adb kill-server what do you think? Click to expand... Click to collapse Looks okay. Just keep in mind that the scripts are based on what is required for Sony tablets. Your device may require something a little different. federimau said: I think need to remove the first line? adb wait-for-device Click to expand... Click to collapse No. The "adb wait-for-device" command is what starts the adb server and causes the script to wait until the adb server detects a device before the next command in the script is issued. Similar to the CheckDevice.bat file, you can insert the "@echo off" command at the beginning of your .bat files and the "pause" command just before the "adb kill-server" to cause the DOS command window stay open so you can see what is going on and the DOS command window will stay open until you press any key. Again, if the script hangs, press ctrl+c to abort the script and close the DOS command window, then open another DOS command window and issue the "adb kill-server" command to stop the adb server.
Cat McGowan said: You need to solve that problem before you can do anything else. Find an xda-developers forum that deals with your device and look there for fixes for your device's drivers. I am confident I can help you with Sony tablet drivers, but not your device's drivers. I don't even know the model of your device. Create and use the following CheckDriver.bat file to help you troubleshoot the drivers. The script simply opens a DOS command window, starts the adb server, then lists the devices the adb server finds. The DOS command window will stay open until you press any key. If the script hangs, press ctrl+c to abort the script and close the DOS command window, then open another DOS command window and issue the "adb kill-server" command to stop the adb server. Code: @echo off echo Starting ADB server and waiting for device. echo. adb wait-for-device adb devices pause adb kill-server Looks okay. Just keep in mind that the scripts are based on what is required for Sony tablets. Your device may require something a little different. No. The "adb wait-for-device" command is what starts the adb server and causes the script to wait until the adb server detects a device before the next command in the script is issued. Similar to the CheckDevice.bat file, you can insert the "@echo off" command at the beginning of your .bat files and the "pause" command just before the "adb kill-server" to cause the DOS command window stay open so you can see what is going on and the DOS command window will stay open until you press any key. Again, if the script hangs, press ctrl+c to abort the script and close the DOS command window, then open another DOS command window and issue the "adb kill-server" command to stop the adb server. Click to expand... Click to collapse I am working with all of you advices... i owe you a drink (if you agree!!!) Thanks
Cat McGowan said: You need to solve that problem before you can do anything else. Find an xda-developers forum that deals with your device and look there for fixes for your device's drivers. I am confident I can help you with Sony tablet drivers, but not your device's drivers. I don't even know the model of your device. Create and use the following CheckDriver.bat file to help you troubleshoot the drivers. The script simply opens a DOS command window, starts the adb server, then lists the devices the adb server finds. The DOS command window will stay open until you press any key. If the script hangs, press ctrl+c to abort the script and close the DOS command window, then open another DOS command window and issue the "adb kill-server" command to stop the adb server. Code: @echo off echo Starting ADB server and waiting for device. echo. adb wait-for-device adb devices pause adb kill-server Looks okay. Just keep in mind that the scripts are based on what is required for Sony tablets. Your device may require something a little different. No. The "adb wait-for-device" command is what starts the adb server and causes the script to wait until the adb server detects a device before the next command in the script is issued. Similar to the CheckDevice.bat file, you can insert the "@echo off" command at the beginning of your .bat files and the "pause" command just before the "adb kill-server" to cause the DOS command window stay open so you can see what is going on and the DOS command window will stay open until you press any key. Again, if the script hangs, press ctrl+c to abort the script and close the DOS command window, then open another DOS command window and issue the "adb kill-server" command to stop the adb server. Click to expand... Click to collapse Cat, i can not establish a stable and in-time connection between cell and PC... type adb wait-for-device and never "see" the cell i have the drivers upgraded with usbview software i see the PC "see" the cell a short amount of time, then disconnects... any advice??
federimau said: Cat, i can not establish a stable and in-time connection between cell and PC... type adb wait-for-device and never "see" the cell i have the drivers upgraded with usbview software i see the PC "see" the cell a short amount of time, then disconnects... any advice?? Click to expand... Click to collapse Sounds to me your device simply is not responding to the adb server's attempt to connect. Again, my advice is for you to find an xda-developers forum that deals specifically with your device and look there for fixes for your device.
@Cat McGowan Thank you for the info, but it's not working on Recovery mode! I try to backup and restore the build.prop file on cmd in recovery & in bootloop case. working: adb wait-for-device adb pull /system/build.prop.bak or adb pull /system/build.prop adb kill-server not working push to the system: (even the cmd showing the opposite) adb wait-for-device adb push build.prop /system/build.prop adb kill-server I'm tring to resotre from PC or SD card... (after changing the permission to system folder (instead only build.prop file) to 00644 the device keep get to Recovery mode! (with root browser app) only flashing again the rom fix it.) I got an error too: - exec '/system/bin/sh' failed: Permission denied (13) - by the way what Should to be on? SuperSU or Superuser (ADB shell allow ?) Developer Mode (Enable ADB ) +USB Debugging on i'm worng what else? I want to add some info: I know the best way to edit this file only by : Notepad++ or EditPlus editor to preserve UNIX encoding or Turbo Editor ( File Editor ) app. read here: http://forum.xda-developers.com/showpost.php?p=54970011&postcount=171 http://forum.xda-developers.com/showpost.php?p=55094822&postcount=203 and great script from user. http://forum.xda-developers.com/showpost.php?p=55113422&postcount=208 will this work too on recovery or bootloops mode? backup: adb shell su mount -o remount,rw /system cp /system/build.prop /system/build.prop.bak mount -o ro,remount /system/ /system ---- restore: adb shell su mount -o remount,rw /system cp system/build.prop system/build.prop.bootloop cp system/build.prop.bak system/build.prop chmod 00644 system/build.prop reboot
Asus Zenfone Max M2 - Need ABOOT image
Hi! Who can provid me ABOOT image, please!? with root: download terminal emulator and type: Code: shell su dd if=/dev/block/mmcblk0p23 of=/storage/emulated/0/ABOOT.img bs=4096 Then use ADB and type: Code: adb pull /storage/emulated/0/ABOOT.img %cd% It will pull aboot.img to your adb folder Or in TWRP: Use ADB and type: Code: adb shell "/dev/block/mmcblk0p23 of=/sdcard/ABOOT.img bs=4096" Then use ADB and type: Code: adb pull /sdcard/ABOOT.img %cd% It will pull aboot.img to your adb folder Then upload please. Thanks!
"dd" versus "adb pull"?
Hi there, I tried both dd and adb pull to extract userdata partition (mmcblk0p57) from device. The results were different. For dd Code: adb shell dd if=/dev/block/mmcblk0p57 of=data.img it returned Code: dd: data.img: Read-only file system For adb pull, it created a NDIF disk image of userdata partition. Why dd command failed? What would be the differences between ddand adb pull commands? Thanks in advance.
cross-posted https://forum.xda-developers.com/t/4132813/post-87922879