[Sony Xperia XZ1 Compact Questions & Answers] apexofservice:
Just got a used xz1 compact. I've been rooting and flashing android phones for years, so I'm not a total noob. Nevertheless, I find myself a bit stuck on an issue I've never experienced before.

So, first step to me was to unlock the bootloader so that i can flash twrp and the unofficial lineage 16 from modpunk. So I do the usual thing of getting the code from the sony website, opening the dev-settings in the stock android and clicking "allow unlock", rebooting to fastboot mode and then:

$ fastboot oem unlock 0xCODEHERE

Well, so I didn't get what I expected. Instead of a success message, I got a message that said "command failed". But then, on a subsequent try, I got the message "already unlocked". Then, I tried a reboot, and I see a warning screen saying "device cannot be checked for for corruption, please lock bootloader". Then it enters the Xperia splash screen and never progresses. Well, that's not too big of an issue since I don't really want the stock ROM anyway. So I go ahead and try to flash twrp (modpunk's version for xz1 compact) and I get:

$ fastboot flash -v recovery twrp-3.3.1-0-lilac-pie-5.img
fastboot: verbose: target didn't report max-download-size
Sending 'recovery' (34548 KB) FAILED (remote: 'unknown command')
fastboot: error: Command failed

So that's a bit discouraging. I also tried to see what I could find with "fastboot getvar all", and I was surprised that I couldn't even get any debugging info. The `devices` command seems normal, tho:

$ fastboot devices
XXXXXXXXX	fastboot
$ fastboot getvar all
getvar:all FAILED (remote: 'GetVar Variable Not found')
Finished. Total time: 0.002s

Also related, I tried the sony flashtool, which I'm already familiar with because my old phone is a Z3 Compact (see, not my first rodeo). When I try to connect in fastboot mode with flashtool, the flashtool menu says "device connected in fastboot mode" followed immediately by "device disconnected". I notice that in the stderr from flashtool there's a message from libusb which is associated:

libusb_get_string_descriptor_ascii : I/O Errors

So, that's not encouraging. So, I wonder if the unlocking command ended up failing in a partially done way, leaving things broken. Let me know if you have ideas on what I might try next. One other note, I'm using the same laptop and usb ports that have worked in the past for flashing my z3 compact. The cable is a bit of an unknown though. I'm using the usb->usbc cable that came with the phone. But I've also just tried some of other usb cables I have around the house with an adapter for usbc.

A heads up, I'm on linux with no Windows machine available. I'm technically competent and I'd prefer detailed hypotheses to "try x". But I'm all ears. Anyone have ideas?

-----

Update:

I realized that there was a chance at least some of my issue was due to usb-c support in my kernel. So I built a 5.0 kernel and rebooted. The nice thing is that now `fastboot getvar all` is working. That's very encouraging. Here are the details:

(bootloader) hw-revision:20001
(bootloader) unlocked:yes
(bootloader) off-mode-charge:0
(bootloader) charger-screen-enabled:0
(bootloader) battery-soc-ok:yes
(bootloader) battery-voltage:4269
(bootloader) version-baseband:1308-8921_47.2.A.10.107
(bootloader) version-bootloader:1306-5035_X_Boot_MSM8998_LA2.0_P_114
(bootloader) erase-block-size: 0x1000
(bootloader) logical-block-size: 0x1000
(bootloader) variant:MSM UFS
(bootloader) partition-type:xblbak:raw
(bootloader) partition-size:xblbak: 0x3F5000
(bootloader) partition-type:xbl:raw
(bootloader) partition-size:xbl: 0x3F5000
(bootloader) partition-type:userdata:ext4
(bootloader) partition-size:userdata: 0x587D76000
(bootloader) partition-type:system:ext4
(bootloader) partition-size:system: 0x138800000
(bootloader) partition-type:vendor:raw
(bootloader) partition-size:vendor: 0x60000000
(bootloader) partition-type:oem:raw
(bootloader) partition-size:oem: 0x19000000
(bootloader) partition-type:rdimage:raw
(bootloader) partition-size:rdimage: 0x2000000
(bootloader) partition-type:fsmetadata:raw
(bootloader) partition-size:fsmetadata: 0x101000
(bootloader) partition-type:Qnovo:raw
(bootloader) partition-size:Qnovo: 0x1800000
(bootloader) partition-type:diag:raw
(bootloader) partition-size:diag: 0x2000000
(bootloader) partition-type:appslog:raw
(bootloader) partition-size:appslog: 0x1000000
(bootloader) partition-type:vbmeta:raw
(bootloader) partition-size:vbmeta: 0x10000
(bootloader) partition-type:frp:raw
(bootloader) partition-size:frp: 0x80000
(bootloader) partition-type:keystore:raw
(bootloader) partition-size:keystore: 0x80000
(bootloader) partition-type:misc:raw
(bootloader) partition-size:misc: 0x100000
(bootloader) partition-type:cache:ext4
(bootloader) partition-size:cache: 0x17C00000
(bootloader) partition-type:ssd:raw
(bootloader) partition-size:ssd: 0x2000
(bootloader) partition-type:fsc:raw
(bootloader) partition-size:fsc: 0x1000
(bootloader) partition-type:modemst2:raw
(bootloader) partition-size:modemst2: 0x200000
(bootloader) partition-type:modemst1:raw
(bootloader) partition-size:modemst1: 0x200000
(bootloader) partition-type:ddr:raw
(bootloader) partition-size:ddr: 0x100000
(bootloader) partition-type:FOTAKernel:raw
(bootloader) partition-size:FOTAKernel: 0x4000000
(bootloader) partition-type:logfs:raw
(bootloader) partition-size:logfs: 0x800000
(bootloader) partition-type:toolsfv:raw
(bootloader) partition-size:toolsfv: 0x100000
(bootloader) partition-type:limits:raw
(bootloader) partition-size:limits: 0x1000
(bootloader) partition-type:splash:raw
(bootloader) partition-size:splash: 0x20A4000
(bootloader) partition-type:dpo:raw
(bootloader) partition-size:dpo: 0x1000
(bootloader) partition-type:msadp:raw
(bootloader) partition-size:msadp: 0x40000
(bootloader) partition-type:apdp:raw
(bootloader) partition-size:apdp: 0x40000
(bootloader) partition-type:bluetooth:raw
(bootloader) partition-size:bluetooth: 0x100000
(bootloader) partition-type:boot:raw
(bootloader) partition-size:boot: 0x4000000
(bootloader) partition-type:dsp:raw
(bootloader) partition-size:dsp: 0x1000000
(bootloader) partition-type:modem:raw
(bootloader) partition-size:modem: 0x6E00000
(bootloader) partition-type:sec:raw
(bootloader) partition-size:sec: 0x4000
(bootloader) partition-type:fsg:raw
(bootloader) partition-size:fsg: 0x180000
(bootloader) partition-type:persist:raw
(bootloader) partition-size:persist: 0x2000000
(bootloader) partition-type:xflkeystorebak:raw
(bootloader) partition-size:xflkeystorebak: 0x20000
(bootloader) partition-type:xflkeystore:raw
(bootloader) partition-size:xflkeystore: 0x20000
(bootloader) partition-type:tzxflbak:raw
(bootloader) partition-size:tzxflbak: 0x80000
(bootloader) partition-type:tzxfl:raw
(bootloader) partition-size:tzxfl: 0x80000
(bootloader) partition-type:tzxflattestbak:raw
(bootloader) partition-size:tzxflattestbak: 0x80000
(bootloader) partition-type:tzxflattest:raw
(bootloader) partition-size:tzxflattest: 0x80000
(bootloader) partition-type:xflbak:raw
(bootloader) partition-size:xflbak: 0x1E00000
(bootloader) partition-type:xfl:raw
(bootloader) partition-size:xfl: 0x1E00000
(bootloader) partition-type:storsecbak:raw
(bootloader) partition-size:storsecbak: 0x20000
(bootloader) partition-type:storsec:raw
(bootloader) partition-size:storsec: 0x20000
(bootloader) partition-type:devcfgbak:raw
(bootloader) partition-size:devcfgbak: 0x20000
(bootloader) partition-type:devcfg:raw
(bootloader) partition-size:devcfg: 0x20000
(bootloader) partition-type:sti:raw
(bootloader) partition-size:sti: 0x200000
(bootloader) partition-type:cmnlib64bak:raw
(bootloader) partition-size:cmnlib64bak: 0x80000
(bootloader) partition-type:cmnlib64:raw
(bootloader) partition-size:cmnlib64: 0x80000
(bootloader) partition-type:cmnlibbak:raw
(bootloader) partition-size:cmnlibbak: 0x80000
(bootloader) partition-type:cmnlib:raw
(bootloader) partition-size:cmnlib: 0x80000
(bootloader) partition-type:keymasterbak:raw
(bootloader) partition-size:keymasterbak: 0x80000
(bootloader) partition-type:keymaster:raw
(bootloader) partition-size:keymaster: 0x80000
(bootloader) partition-type:devinfo:raw
(bootloader) partition-size:devinfo: 0x1000
(bootloader) partition-type:ablbak:raw
(bootloader) partition-size:ablbak: 0x180000
(bootloader) partition-type:abl:raw
(bootloader) partition-size:abl: 0x180000
(bootloader) partition-type:pmicbak:raw
(bootloader) partition-size:pmicbak: 0x80000
(bootloader) partition-type:pmic:raw
(bootloader) partition-size:pmic: 0x80000
(bootloader) partition-type:hypbak:raw
(bootloader) partition-size:hypbak: 0x80000
(bootloader) partition-type:hyp:raw
(bootloader) partition-size:hyp: 0x80000
(bootloader) partition-type:tzbak:raw
(bootloader) partition-size:tzbak: 0x200000
(bootloader) partition-type:tz:raw
(bootloader) partition-size:tz: 0x200000
(bootloader) partition-type:rpmbak:raw
(bootloader) partition-size:rpmbak: 0x80000
(bootloader) partition-type:rpm:raw
(bootloader) partition-size:rpm: 0x80000
(bootloader) partition-type:LTALabel:raw
(bootloader) partition-size:LTALabel: 0x1000000
(bootloader) partition-type:TA:raw
(bootloader) partition-size:TA: 0x200000
(bootloader) secure:no
(bootloader) serialno:XXXXXXXX
(bootloader) serial:1a322f75
(bootloader) product:G8441
(bootloader) max-download-size:536870912
(bootloader) kernel:uefi

So that seems like I did succeed at the unlocking. Now, I still can't seem to flash twrp:

$ fastboot -v flash recovery twrp-3.3.1-0-lilac-pie-5.img
fastboot: verbose: target reported max download size of 536870912 bytes
Sending 'recovery' (34548 KB) FAILED (Status read failed (No such device))
fastboot: error: Command failed

But things look normalish otherwise (max download size actually reported). And I still get libusb I/O error messages from flashtool when I tried to connect the device in fastboot mode while running flashtool. So, now my question has really morphed into help with this specific error. Why would it say "no such device"?

---

One more note: tailing /var/log/kern.log while doing the above (trying to flash recovery with fastboot), I can see that the device does reconnect. So I'm assuming that the "no such device" message is due to the disconnection. It's not clear to me if my troubles are due to kernel version, libusb version, cables/cable-types or something else. Looking forward to any advice.