Hey there, so I got a Surface Duo 1 (128GB, AT&T) that was bricked by its previous owner. It would get to the bootloader and boot to TWRP but not anything else. According to them, they messed it up while flashing a ROM. From what I've seen, they hosed it by flashing the system.img from an unpacked stock Microsoft recovery image to super - the super on the device started with that image byte-for-byte. I do have a backup of this if need be.
I managed to cook my own super with this incantation:
lpmake \
--super-name super \
--device super:15032385536 \
--metadata-size 65536 \
--metadata-slots 2 \
--group slot_a:7516192768 \
--group slot_b:7516192768 \
\
--partition=odm_a:readonly:1253376:slot_a \
--partition=odm_b:readonly:1253376:slot_b \
--image=odm_a=odm.simg --image=odm_b=odm.simg \
\
--partition=product_a:readonly:4036599808:slot_a \
--partition=product_b:readonly:4036599808:slot_b \
--image=product_a=product.simg --image=product_b=product.simg \
\
--partition=system_a:readonly:1212825600:slot_a \
--partition=system_b:readonly:1212825600:slot_b \
--image=system_a=system.simg --image=system_b=system.simg \
\
--partition=system_ext_a:readonly:545341440:slot_a \
--partition=system_ext_b:readonly:545341440:slot_b \
--image=system_ext_a=system_ext.simg --image=system_ext_b=system_ext.simg \
\
--partition=vendor_a:readonly:723410944:slot_a \
--partition=vendor_b:readonly:723410944:slot_b \
--image=vendor_a=vendor.simg --image=vendor_b=vendor.simg \
\
--sparse \
--output _super.simg
(I was getting errors like "Invalid sparse file format at header magic" when running lpmake, converting the input images to sparse ones with img2simg helped.)
Then I flashed this in the bootloader (fastboot flash super) and wiped userdata with fastboot -w, and now this went from being a full on brick to at least letting me do a tethered boot - I can get to Android after running:
fastboot set_active other
fastboot set_active other
fastboot continue
However, I'm still unable to get to recovery or fastbootd, and every reboot throws me back to the bootloader, with fastboot reporting that both slots are unbootable and the current slot is set to b.
Output of fastboot getvar all
(bootloader) parallel-download-flash:yes
(bootloader) battery-level:95
(bootloader) hw-revision:20002
(bootloader) unlocked:yes
(bootloader) off-mode-charge:0
(bootloader) charger-screen-enabled:0
(bootloader) battery-soc-ok:yes
(bootloader) battery-voltage:4321
(bootloader) version-baseband:
(bootloader) version-bootloader:2022.815.527
(bootloader) erase-block-size: 0x1000
(bootloader) logical-block-size: 0x1000
(bootloader) variant:SDM UFS
(bootloader) partition-type:vbmeta_system_b:raw
(bootloader) partition-size:vbmeta_system_b: 0x3E5000
(bootloader) partition-type:vbmeta_system_a:raw
(bootloader) partition-size:vbmeta_system_a: 0x10000
(bootloader) partition-type:super:raw
(bootloader) partition-size:super: 0x380000000
(bootloader) partition-type:fsc:raw
(bootloader) partition-size:fsc: 0x1DB000
(bootloader) partition-type:fsg:raw
(bootloader) partition-size:fsg: 0x200000
(bootloader) partition-type:modemst2:raw
(bootloader) partition-size:modemst2: 0x200000
(bootloader) partition-type:modemst1:raw
(bootloader) partition-size:modemst1: 0x200000
(bootloader) partition-type:ALIGN_TO_128K_2:raw
(bootloader) partition-size:ALIGN_TO_128K_2: 0x1A000
(bootloader) partition-type:secdata:raw
(bootloader) partition-size:secdata: 0x8000
(bootloader) partition-type:logfs:raw
(bootloader) partition-size:logfs: 0x100000
(bootloader) partition-type:uefivarstore:raw
(bootloader) partition-size:uefivarstore: 0x80000
(bootloader) partition-type:apdp:raw
(bootloader) partition-size:apdp: 0x20000
(bootloader) partition-type:devinfo:raw
(bootloader) partition-size:devinfo: 0x1000
(bootloader) partition-type:sftpfw_b:raw
(bootloader) partition-size:sftpfw_b: 0x2000000
(bootloader) partition-type:uefisecapp_b:raw
(bootloader) partition-size:uefisecapp_b: 0x40000
(bootloader) partition-type:dtbo_b:raw
(bootloader) partition-size:dtbo_b: 0x1000000
(bootloader) partition-type:vbmeta_b:raw
(bootloader) partition-size:vbmeta_b: 0x10000
(bootloader) partition-type:qupfw_b:raw
(bootloader) partition-size:qupfw_b: 0x20000
(bootloader) partition-type:devcfg_b:raw
(bootloader) partition-size:devcfg_b: 0x10000
(bootloader) partition-type:cmnlib64_b:raw
(bootloader) partition-size:cmnlib64_b: 0xC0000
(bootloader) partition-type:cmnlib_b:raw
(bootloader) partition-size:cmnlib_b: 0x80000
(bootloader) partition-type:boot_b:raw
(bootloader) partition-size:boot_b: 0x6000000
(bootloader) partition-type:keymaster_b:raw
(bootloader) partition-size:keymaster_b: 0x80000
(bootloader) partition-type:dsp_b:raw
(bootloader) partition-size:dsp_b: 0x4000000
(bootloader) partition-type:abl_b:raw
(bootloader) partition-size:abl_b: 0x100000
(bootloader) partition-type:bluetooth_b:raw
(bootloader) partition-size:bluetooth_b: 0x100000
(bootloader) partition-type:modem_b:raw
(bootloader) partition-size:modem_b: 0xB400000
(bootloader) partition-type:hyp_b:raw
(bootloader) partition-size:hyp_b: 0x800000
(bootloader) partition-type:tz_b:raw
(bootloader) partition-size:tz_b: 0x600000
(bootloader) partition-type:aop_b:raw
(bootloader) partition-size:aop_b: 0x80000
(bootloader) partition-type:sftpfw_a:raw
(bootloader) partition-size:sftpfw_a: 0x2000000
(bootloader) partition-type:uefisecapp_a:raw
(bootloader) partition-size:uefisecapp_a: 0x40000
(bootloader) partition-type:dtbo_a:raw
(bootloader) partition-size:dtbo_a: 0x1000000
(bootloader) partition-type:vbmeta_a:raw
(bootloader) partition-size:vbmeta_a: 0x10000
(bootloader) partition-type:qupfw_a:raw
(bootloader) partition-size:qupfw_a: 0x20000
(bootloader) partition-type:devcfg_a:raw
(bootloader) partition-size:devcfg_a: 0x10000
(bootloader) partition-type:cmnlib64_a:raw
(bootloader) partition-size:cmnlib64_a: 0xC0000
(bootloader) partition-type:cmnlib_a:raw
(bootloader) partition-size:cmnlib_a: 0x80000
(bootloader) partition-type:boot_a:raw
(bootloader) partition-size:boot_a: 0x6000000
(bootloader) partition-type:keymaster_a:raw
(bootloader) partition-size:keymaster_a: 0x80000
(bootloader) partition-type:dsp_a:raw
(bootloader) partition-size:dsp_a: 0x4000000
(bootloader) partition-type:abl_a:raw
(bootloader) partition-size:abl_a: 0x100000
(bootloader) partition-type:bluetooth_a:raw
(bootloader) partition-size:bluetooth_a: 0x100000
(bootloader) partition-type:modem_a:raw
(bootloader) partition-size:modem_a: 0xB400000
(bootloader) partition-type:hyp_a:raw
(bootloader) partition-size:hyp_a: 0x800000
(bootloader) partition-type:tz_a:raw
(bootloader) partition-size:tz_a: 0x600000
(bootloader) partition-type:aop_a:raw
(bootloader) partition-size:aop_a: 0x80000
(bootloader) partition-type:sfpd:raw
(bootloader) partition-size:sfpd: 0x1800000
(bootloader) partition-type:ddr:raw
(bootloader) partition-size:ddr: 0x100000
(bootloader) partition-type:ALIGN_TO_128K_1:raw
(bootloader) partition-size:ALIGN_TO_128K_1: 0x1A000
(bootloader) partition-type:xbl_config_b:raw
(bootloader) partition-size:xbl_config_b: 0x3F5000
(bootloader) partition-type:xbl_b:raw
(bootloader) partition-size:xbl_b: 0x1000000
(bootloader) partition-type:xbl_config_a:raw
(bootloader) partition-size:xbl_config_a: 0x20000
(bootloader) partition-type:xbl_a:raw
(bootloader) partition-size:xbl_a: 0x1000000
(bootloader) partition-type:userdata:ext4
(bootloader) partition-size:userdata: 0x1A00273000
(bootloader) partition-type:misc:raw
(bootloader) partition-size:misc: 0x100000
(bootloader) partition-type:frp:raw
(bootloader) partition-size:frp: 0x80000
(bootloader) partition-type:metadata:raw
(bootloader) partition-size:metadata: 0x1000000
(bootloader) partition-type:persist:raw
(bootloader) partition-size:persist: 0x2000000
(bootloader) partition-type:ssd:raw
(bootloader) partition-size:ssd: 0x2000
(bootloader) has-slot:modem:yes
(bootloader) has-slot:system:no
(bootloader) current-slot:b
(bootloader) has-slot:boot:yes
(bootloader) slot-retry-count:b:7
(bootloader) slot-unbootable:b:yes
(bootloader) slot-successful:b:yes
(bootloader) slot-retry-count:a:7
(bootloader) slot-unbootable:a:yes
(bootloader) slot-successful:a:yes
(bootloader) slot-count:2
(bootloader) secure:yes
(bootloader) serialno:NNNNNNNNNNNN
(bootloader) product:surfaceduo
(bootloader) snapshot-update-status:none
(bootloader) is-userspace:no
(bootloader) max-download-size:367521792
(bootloader) kernel:uefi
Hey there, so I got a Surface Duo 1 (128GB, AT&T) that was bricked by its previous owner. It would get to the bootloader and boot to TWRP but not anything else. According to them, they messed it up while flashing a ROM. From what I've seen, they hosed it by flashing the
system.imgfrom an unpacked stock Microsoft recovery image tosuper- thesuperon the device started with that image byte-for-byte. I do have a backup of this if need be.I managed to cook my own
superwith this incantation:lpmake \ --super-name super \ --device super:15032385536 \ --metadata-size 65536 \ --metadata-slots 2 \ --group slot_a:7516192768 \ --group slot_b:7516192768 \ \ --partition=odm_a:readonly:1253376:slot_a \ --partition=odm_b:readonly:1253376:slot_b \ --image=odm_a=odm.simg --image=odm_b=odm.simg \ \ --partition=product_a:readonly:4036599808:slot_a \ --partition=product_b:readonly:4036599808:slot_b \ --image=product_a=product.simg --image=product_b=product.simg \ \ --partition=system_a:readonly:1212825600:slot_a \ --partition=system_b:readonly:1212825600:slot_b \ --image=system_a=system.simg --image=system_b=system.simg \ \ --partition=system_ext_a:readonly:545341440:slot_a \ --partition=system_ext_b:readonly:545341440:slot_b \ --image=system_ext_a=system_ext.simg --image=system_ext_b=system_ext.simg \ \ --partition=vendor_a:readonly:723410944:slot_a \ --partition=vendor_b:readonly:723410944:slot_b \ --image=vendor_a=vendor.simg --image=vendor_b=vendor.simg \ \ --sparse \ --output _super.simg(I was getting errors like "Invalid sparse file format at header magic" when running lpmake, converting the input images to sparse ones with
img2simghelped.)Then I flashed this in the bootloader (
fastboot flash super) and wiped userdata withfastboot -w, and now this went from being a full on brick to at least letting me do a tethered boot - I can get to Android after running:However, I'm still unable to get to recovery or fastbootd, and every reboot throws me back to the bootloader, with fastboot reporting that both slots are unbootable and the current slot is set to
b.Output of
fastboot getvar all