My personal fight against the modern laptop

496 0 0
Home Computers & Laptops My personal fight against the modern laptop
Published on February 15, 2017

Hamish Coleman
In this talk, I will take you through the tools and techniques
I used to reverse engineer the keyboard controller in my Thinkpad
laptop and re-flash it with custom firmware. This will cover how the
Thinkpad range of laptops have tried to secure their firmware from
unauthorised changes. Finally, I will present my ongoing work to
reverse engineer the protocol used between the BIOS and the vendor’s
flash update tool (which included writing a custom virtual machine
to emulate a minimal laptop).

I was driven to start this project when I realised that the laptops
currently on sale just did not meet my requirements. Even the durable
Thinkpad laptops I have preferred in the past are being dumbed down.
Eventually, I will need a new laptop – and with the current offerings,
I just do not want anything I can purchase off the shelf. I knew
I was not going to be able to build my own laptop from scratch
(and having discounted all the current free/open laptop offerings)
so I started looking at what I could hack together.

To keep the project achievable, I reduced my laptop gripes as far
as I could and focused on just the keyboard – asking the question:
“Can I shoehorn an older keyboard in a modern laptop?” Eventually
answering it with “yes, sometimes.”

It turned out to be easily possible to physically replace the
keyboard on any of the Thinkpads in the xx30 series with one from the
xx20 series. I was stalled with a half-working keyboard until early
2016 when Zmatt published how he unlocked his laptop. The firmware
changes needed were bundled up into a complete build system which
others have used to replicate the keyboard replacement. However,
with both these laptop series’ being several years old now, I am
still looking at forward porting this to a newer laptop – which has
led me to research the hardware and firmware design there.

I will also take the audience through my current knowledge of how
the vendor’s protocol to tell the BIOS to write a new image to
flash works. Now that it is possible to write new code for the
embedded controller and to install it and run it – I wanted to
know how secure this was (or wasn’t) separate to simply “fixing”
the keyboard. I have written a custom virtualisation tool to host
the vendors “dosflash” program and capture the protocol it uses to
request that the BIOS write a new image to flash.

It is my hope that others will be inspired to look closer at their
hardware and to give them both some tools and the confidence that
it is possible to “fix” the way that consumer hardware works.

Category :  Computers & Laptops
Tags :   , ,
  1. am I the only one who always heard "reddit" instead of "Radare"

    "reddit is powerful" "reddit is complicated" "reddit didn't fix it"

  2. an arduino can be programmed as a usb device like a keyboard.. and you can make your own keyboard solved ?

  3. The new thinkpad keyboards are absolutely shitty. I am happy that more people are complaining about it. The classic thinkpad keyboard had nice ergonomic aspects. You can touch-type the function keys without looking down, because they are all grouped in four. The arrow keys are proper sized buttons (even the macbook has it wrong). There is a slight curvature on each key's surface that makes it easy for the finger to feel the borders. All of these are missing in the new keyboards. This chiclet design is the worst thing to happen for the thinkpads.

  4. So basically you're an old fart who likes 20 year old keyboards? Unfortunately a mass production device is designed to suit as many people as possible.. that's how it goes man.

  5. Sagiri

    Could we please get subtitles?

  6. I miss the days when all Unix Sysadmins looked like this.

  7. urdnal

    I'm thinking of just buying an x220 motherboard and using it (along with a suitable AMD GPU) to build a small, thin emulation unit in an arcade cabinet. i5 2520M, Retroarch, "external" AMD GPU flashed to only output 15kHz resolutions to a CRT arcade monitor. I'm hoping to use coreboot to make a BIOS with a low enough resolution for it too.
    Any opinions?

  8. This world has gone fucked in believing that "new equates to better"…….No it doesn't you piece of shit manufacturers, if it worked in the past, leave it the fuck alone
    Now laptops don't even come with an optical drive as they are not supporting them any more….This world is obsessed with change for the sake of change and i'm sick of it
    Consumers don't realize they are paying more but getting less…. a classic e.g recently was the new Apple ipad pro

  9. i don't like how 15 inch laptops nowadays have all this unused space, look at that ugly macbook pro with that tiny ass keyboard!
    Disk drive is gone? ok. the numpad was removed? uh oh. Super ultra thin shallow keyboard? no, no.
    And now it is normal to have the damn thing bend like floppy cocks when you move it around because they make it so thin!

  10. runs linux is actually too much objective, but hey it's 2017, the other things already exist!

  11. Al Al

    i use an old keyboard and mouse fed thru a ps to usb plug and find its much nicer to move the laptop where its nice to see and have your hands were they are comfortable

  12. iCQ

    totally agree… took my thinkpad keyboard OFF lol… much cooler inside now.. using elitebook as workstation/laptop… it suppose to be easy to reach the hardware… man the quadro blew out a few year ago… i had to go all the way to china to get a replacement…. easy fix tho… later i was able to figure out why the old gpu card blew up.. i coulda just soldered on a new cap… geeezzzzz

    this elitebook is heavy and huge.. pffff.. oh well

    nice talk thanks Hamish!

    (i wish i didnt loose all my old hardware in a major tragedy a few years ago, had some mega nice cherry keyboards, i miss them SO MUCH)

Leave a Reply

Your email address will not be published. Required fields are marked *