So long story short, someone told me about OmniDrive because we were talking about my WH14NS40, I got [mis]led to guides from this forum that I could flash it to upgrade for 4K/UHD reading... One of the first guides with SDFtool Flasher provided a ZIP with an ASUS and BU40N firmware, and for some reason I thought it was implied that was the ROM to use/downgrade with... Exactly what you were NOT supposed to do / avoid...
I found the better guide, a firmware pack (All You Need Firmware Pack) next, but it was too late, damage was done... I also found a 3rd guide talking about cross-flashing, dumping the calibration data first, using another tool to combine it with the correct firmware, but I guess that doesn't apply to LG drives.
Moving on. Because I write/maintain CD ripping software and know some SCSI, I wondered if I could recover the drive myself with LG's official FlashIt tools. Since SDFtool flashed it to another [wrong] model, it identifies as BU40N in the vendor ID string, so the WH14NS40 FlashIt will exit, tell you it's the wrong drive. So I thought what if I intercept the SCSI command packet, change the string to identify as a WH14NS40 model? Would the flashing proceed with the correct firmware then??
Result: Tricking it with the WH14NS40 FlashIt was possible, but it fails with an Abnormal State error. Not will to give up, I discovered I could continue to activate flashing with LG's final 1.05 BU40N flasher/tool! What I came to understand is it protects itself with a checksum. The firmware is unzipped, decrypted (basic XOR encryption), patched with data in some areas in reaction to drive info, encrypted back before it uses a special SCSI cmd (0xE7) to start flashing, then the standard SCSI write buffer command (writing 16K chunks per iteration for the total 2MB firmware) so it's gonna take someone really talented to possibly figure this out some day!
Code: Select all
if ( pSPTI_Exec->sptd.CDBByte[0] == 0x12 /*SCSI_INQUIRY*/ ) {
pOID = pNID = "HL-DT-STBD-RE BU40N 1.05N";
if ( MemCmp(28, (PBYTE)pSPTI_Exec->sptd.DataBuffer+8, pOID)==0 ) {
//pNID = "HL-DT-STBD-RE WH14NS40 1.00N001600 UNIQUE1711211658MTEKMT1939 \0\0JB8 NS50";
pNID = "HL-DT-STBD-RE BU40N 1.01N";
MemCpy(80, (PBYTE)pSPTI_Exec->sptd.DataBuffer+8, pNID);
}
}
But obviously this does me no good, just progress that proves that the LG Flasher is the ONLY tool now that it's bricked that can somehow activate flashing.
Anything else I tried goes nowhere, it all fails:
DOS Flasher
Flasher32
SDFtool Flasher
ASUS_ODD_FW_Changer (even this)
I was thinking of selling it, perhaps someone smarter knows what to do, but I guess I'll hang on it in the hopes that after a couple more years someone will figure out how to handle these drives when bricked... LG must have a force-flasher, without all these checks/protections, I wondered if I should ask their support team, but I doubt they'll give me anything, much less reach the right engineer who knows what I'm talking about it. I wish we could get their source code! Damn.
Anyway, any advice/help would be appreciated.