#!/bin/sh -u
# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

if [ -z "$*" ]; then
  cat <<EOF 1>&2

Usage:  vbutil_what_keys [-v|-V] IMAGE [IMAGE...]

Given a ChromiumOS disk (or BIOS) image, try to figure out how it's signed.
Note that this does not verify the signature, it just reports which keyblock
was used to create the signature.

With the -v option, it will attempt to mount any rootfs partitions from disk
images (using sudo), extract the BIOS from /usr/sbin/chromeos-firmwareupdate,
and process it as well. Use -V to display the shellball -V message too.
that.

EOF
  exit 1
fi

# We'll grep for the known sha1sums within this script (they're at the end).
# Obtain them by running script on images you know have been signed correctly
# (since the keys themselves are inside the HSM).
#
# BTW, the default H2C HWIDs are fixed for each platform:
#
# {97A1FBD6-FDE1-4FC5-BB81-286608B90FCE}    Alex H2C
# {9D799111-A88A-439E-9E1F-FBBB41B00A9A}    Mario H2C
# {24B107F2-BA6A-4EBD-8CDD-E768438CE0F0}    Stumpy H2C
# {FA42644C-CF3A-4692-A9D3-1A667CB232E9}    ZGB H2C


# args?
unpack_it=
verbose=
if [ "${1:-}" = "-v" ]; then
  unpack_it=yes
  shift
fi
if [ "${1:-}" = "-V" ]; then
  unpack_it=yes
  verbose=yes
  shift
fi

# clean up on exit
cleanup() {
  [ -n "${CLEAN_UM:-}" ] && sudo umount $CLEAN_UM
  [ -n "${CLEAN_RM:-}" ] && rm -rf $CLEAN_RM
}
trap cleanup EXIT

# temp stuff
TMPFILE=$(mktemp /tmp/keyblock_XXXXXXXXX)
CLEAN_RM="$TMPFILE"
if [ -n "$unpack_it" ]; then
  TMPMNT=$(mktemp -d /tmp/mountdir_XXXXXXXXX)
  TMPDIR=$(mktemp -d /tmp/extractdir_XXXXXXXXX)
  CLEAN_RM="$CLEAN_RM $TMPDIR $TMPMNT"
fi

greppy() {
  local key="$1"
  grep "$key" "$0" 2>/dev/null | sed -e 's/ \+/ /g' | \
    cut -d ' ' -f 4- | sed -e ':a;N;$!ba;s/\n/, /g'
}


showbios() {
  local file="$1" space="$2"
  local hwid matchh rootkey matchn recoverykey matchr

  hwid=$(futility gbb --hwid "$file" | sed -e 's/^.*: *//') || return
  matchh=$(grep "$hwid" "$0" 2>/dev/null | sed -e 's/^# //')

  futility gbb --rootkey="$TMPFILE" "$file" >/dev/null
  rootkey=$(futility vbutil_key --unpack "$TMPFILE" | grep sha1sum | \
    sed -e 's/^.*: *//')
  matchn=$(greppy "$rootkey")

  futility gbb --recoverykey="$TMPFILE" "$file" >/dev/null
  recoverykey=$(futility vbutil_key --unpack "$TMPFILE" | grep sha1sum | \
    sed -e 's/^.*: *//')
  matchr=$(greppy "$recoverykey")

  echo "$space  hwid:          ${matchh:-$hwid}"
  echo "$space  root key:      ${rootkey}  ${matchn}"
  echo "$space  recovery key:  ${recoverykey}  ${matchr}"
}



# handle one input file
dofile() {
  file="$1"
  size=$(stat -c %s "$file")

  if [ -f "$file" ] && [ "$size" -le 16777216 ]; then
    echo -e "\nBIOS: $file"

    showbios "$file" ""

  else
    echo -e "\nIMAGE: $file"

    for pnum in $(cgpt find -n -t kernel "$file" 2>/dev/null); do

      psize=$(cgpt show -s -i "$pnum" "$file")
      if [ "$psize" -ge 128 ]; then

        pstart=$(cgpt show -b -i "$pnum" "$file")
        dd if="$file" of="$TMPFILE" bs=512 count=128 skip="$pstart" 2>/dev/null

        psum=$(futility vbutil_keyblock --unpack "$TMPFILE" 2>/dev/null | \
          grep sha1sum | sed -e 's/^.*: *//')

        if [ -n "$psum" ]; then
          match=$(greppy "$psum")
          flags=$(futility vbutil_keyblock --unpack "$TMPFILE" 2>/dev/null | \
            grep Flags: | sed -e 's/^.*:[ 0-9]*//')
        else
          match=""
          psum="--invalid--"
          flags=""
        fi

        echo "  part $pnum kernel:   $psum  ($flags)  $match"
      fi

    done

    if [ -n "$unpack_it" ]; then
      for pnum in $(cgpt find -n -t rootfs "$file" 2>/dev/null); do

        psize=$(cgpt show -s -i "$pnum" "$file")
        if [ "$psize" -ge 128 ]; then

          pstart=$(cgpt show -b -i "$pnum" "$file")

          echo "  part $pnum shellball:"
          sudo mount -o loop,ro,offset=$(( $pstart * 512 )) "$file" "$TMPMNT"
          CLEAN_UM="$TMPMNT"
          [ -n "$verbose" ] && "$TMPMNT/usr/sbin/chromeos-firmwareupdate" -V
          "$TMPMNT/usr/sbin/chromeos-firmwareupdate" \
            --sb_extract "$TMPDIR" > /dev/null
          sudo umount "$TMPMNT"
          CLEAN_UM=

          showbios "$TMPDIR/bios.bin" "  "
        fi

      done
    fi

  fi
}


for file in "$@"; do
  dofile $file
done

echo ""

exit 0;

##############################################################################
# Here are the known keys
##############################################################################
#
# Firmware recovery keys
#
# c14bd720b70d97394257e3e826bd8f43de48d4ed  recovery developer keys
#
# 5c5776bf7574e5601c25042e0748b6844cfdd1dc  recovery Alex MP
# 5c5776bf7574e5601c25042e0748b6844cfdd1dc  recovery Alex MP-v4
# 5c5776bf7574e5601c25042e0748b6844cfdd1dc  recovery Alex-HE MP-v4
# b3373d76358c3528d0653c4035bdd0020e2b0e1b  recovery Butterfly MP-v3
# 8a22e18a91e89f46f1f59b44a7887ab3821cb18d  recovery Butterfly Pre-MP
# b6079520f8c8dc7192a78d111b9fefb98cee49b3  recovery Clapper MP
# 13b0ddf343bb0c325b178e5be138d4969a9e02be  recovery Daisy MP-v3
# 5e9d23b2d908a6ac5ee5c9747a9e2fe6dff01372  recovery Daisy-Skate MP
# 540bb135df55fe0036fe061b7a1f2a52d287cd1b  recovery Daisy-Spring MP-v2
# ae67678f8ed662ef4d1e4a639226d278b90ccaa3  recovery Enguarde MP-v10
# ff7c07ae0ac04ccb92090e339545b716228a6da4  recovery Expresso MP-v10
# 3c359d59432641a151161e2738ba8ca2b3eb12ab  recovery Falco MP-v2
# 3c359d59432641a151161e2738ba8ca2b3eb12ab  recovery Falco-li MP-v2
# c989d1ab66d2a67886e1019330812cb9e4e48f31  recovery Glimmer MP
# ab325d5411c6a21b41142b71b747335144e12538  recovery Gnawty MP
# d81c751df76a7d53a6d3c2f58987562c87416735  recovery Kiev MP
# 02601fcbcac953f043a53eac6fed7a5367a7189c  recovery Kiev PreMP
# 6eaa4b094cd75eacc0f2fa4516d33ed86ea6f3d2  recovery Kip MP
# dc65a88c92511494999d2c03a72ec2584d21917d  recovery Leon MP
# 7e74cd6d66f361da068c0419d2e0946b4d091e1c  recovery Link MP
# 7e74cd6d66f361da068c0419d2e0946b4d091e1c  recovery Link MP-v4
# 08b2d19bc87d05d860a1c274f874bc9fa9ab7dfb  recovery Link Pre-MP
# 0d800afb53cdd05dd849addee0143ca1d96e893c  recovery Lumpy MP
# 0d800afb53cdd05dd849addee0143ca1d96e893c  recovery Lumpy MP-v3
# ebcac421fbf411bee99ee90672a3add17f5a967b  recovery Lumpy PVT
# 5d0d163b824cab5ae4f23fb2cc012e2a4124f4fe  recovery Mario MP
# 5d0d163b824cab5ae4f23fb2cc012e2a4124f4fe  recovery Mario MP-v3
# 51dd0b446540182fd91c6196b9a8dfcd7bcf6256  recovery McCloud MP
# 67f01715f3acf6526ce48a3d2cf81b003a01f334  recovery Monroe MP
# 40832bb15fa40a18b8e5d80fd17d0405b624884e  recovery Nyan PreMP
# 2b356618cd0f739877b7a3f155917341f8778523  recovery Nyan-Big MP
# 26900310befce802836cca982f819aa72445e190  recovery Nyan-Blaze MP
# e74e63e14b285700324ffd3acc4b776dc3104b8f  recovery Panther MP
# 7f03c648d2bb4ab3979cb87633da51ed90267f03  recovery Parrot MP
# 7f03c648d2bb4ab3979cb87633da51ed90267f03  recovery Parrot MP-v3
# 7f03c648d2bb4ab3979cb87633da51ed90267f03  recovery Parrot-ivb MP-v3
# d254b3b3ddaac32f7b843753de9257ec4f6c67ed  recovery Peach-Pi MP
# 6d9a2ca8b3080a97e1e5a4efbc5386ead77c3c7f  recovery Peach-Pit MP-v2
# bf39d0d3e30cbf6a121416d04df4603ad5310779  recovery Peppy MP-v2
# 60aa1bbbea1d2f724c6e5daa0653ca472ac3085e  recovery Quawks MP
# fb4847ecb6bfcc300e5f570c5e8f3ab881204968  recovery Rambi PreMP
# abd575549848c82b481068ddf0242ea38d2e5fdd  recovery Rowan PreMP
# 462edb5ebfd817e29e813db7a424582c3ce35768  recovery Samus PreMP
# 13b0ddf343bb0c325b178e5be138d4969a9e02be  recovery Snow MP
# cdc2858ca78351dc4b54d5d5d02bc695830f7802  recovery Squawks MP
# 5cb31faf8c524672a15fd4628c585af79eca0247  recovery Stout MP
# 5cb31faf8c524672a15fd4628c585af79eca0247  recovery Stout MP-v3
# 37e7bad73449f782f280b1668fed48d1132137fa  recovery Stumpy MP
# 8540f56f87d91c5403704c960c1f385705201e20  recovery Stumpy PVT
# e0b610bc85908c35fb7bd11bfd34afb84d547190  recovery Swanky MP
# 50759cb8bc2f86ef378571fa7b30a161e7dcdc03  recovery Tricky MP
# a0c56006541cd38d6c884d27210a135f5c309a3f  recovery Winky PreMP
# a4ee431f7a07c59e920fe570ead0b938cdd4019d  recovery Wolf MP
# 9bd99a594c45b6739899a17ec29ac2289ee75463  recovery ZGB MP
# 9bd99a594c45b6739899a17ec29ac2289ee75463  recovery ZGB MP-v3
# 9bd99a594c45b6739899a17ec29ac2289ee75463  recovery ZGB-HE MP-v3
# ba07696c1c82891fdacab28a434148d239e7c834  recovery Zako MP-v2
#
# Firmware root keys
#
# b11d74edd286c144e1135b49e7f0bc20cf041f10      root developer keys
#
# 00f77be2a0c013343db84fc6259da09e558b8318      root Alex MP
# 00f77be2a0c013343db84fc6259da09e558b8318      root Alex MP-v4
# 00f77be2a0c013343db84fc6259da09e558b8318      root Alex-HE MP-v4
# c788cee8c798669fe4822b7544dd3e399ce22604      root Butterfly MP-v3
# 12a2c88b58cbd9eef6b777a3af440f611ea4f561      root Butterfly Pre-MP
# 952dd6852c11fd8b36b4fb88f3335ecae722e0e6      root Clapper MP
# a026a7a4a0bf0fa32d6b7aa90a80d5ef01a3b799      root Daisy MP-v3
# c788cee8c798669fe4822b7544dd3e399ce22604      root Daisy-Skate MP
# ab3521d3b1938af52009b2c3dfad964594f6b367      root Daisy-Spring MP-v2
# 48dc3c5917b9095d6b4188560c9726ba31a192ee      root Enguarde MP-v10
# 82f706e156e5927bbdf8f14f4a9f45bc59986311      root Expresso MP-v10
# c788cee8c798669fe4822b7544dd3e399ce22604      root Falco MP-v2
# c788cee8c798669fe4822b7544dd3e399ce22604      root Falco-li MP-v2
# 952dd6852c11fd8b36b4fb88f3335ecae722e0e6      root Glimmer MP
# fc68bcb88bf9af1907289a9f377d658b3b9fe5b0      root Gnawty MP
# 4c5067795ddbbf100d19f9ba08928af1c1ef37c6      root Kiev MP
# 9c138273527db0a0797233e2345ee39e46c0df95      root Kiev PreMP
# c788cee8c798669fe4822b7544dd3e399ce22604      root Kip MP
# 154512de86cc1cc36a67d4225eb2fcc37dac1b7c      root Leon MP
# 7b5c520ceabce86f13e02b7ca363cfb509fc5b98      root Link MP
# 7b5c520ceabce86f13e02b7ca363cfb509fc5b98      root Link MP-v4
# e63058bf4b86b6fb1f148bc7acea9c71fe51675f      root Link Pre-MP
# 4e92f07efd4a920c4e4f1ed97cf47b7b04ee1428      root Lumpy MP
# 4e92f07efd4a920c4e4f1ed97cf47b7b04ee1428      root Lumpy MP-v3
# c9fc61f331b34e00a148e657bde5fb6b0b576c0a      root Lumpy PVT
# 541f467a7d8747f55ae9087ee4e34155f5ee3cd7      root Mario MP
# 541f467a7d8747f55ae9087ee4e34155f5ee3cd7      root Mario MP-v3
# fc68bcb88bf9af1907289a9f377d658b3b9fe5b0      root McCloud MP
# eec186f8a0cd6be2e9d86dc9ce284790739be202      root Monroe MP
# 3f54dd6a6e16128aec5c6c3052763388ae99d350      root Nyan PreMP
# fc68bcb88bf9af1907289a9f377d658b3b9fe5b0      root Nyan-Big MP
# c788cee8c798669fe4822b7544dd3e399ce22604      root Nyan-Blaze MP
# 758a59f4f911b63a1335223d761d2485313674c8      root Panther MP
# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root Parrot MP
# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root Parrot MP-v3
# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root Parrot-ivb MP-v3
# a026a7a4a0bf0fa32d6b7aa90a80d5ef01a3b799      root Peach-Pi MP
# a026a7a4a0bf0fa32d6b7aa90a80d5ef01a3b799      root Peach-Pit MP-v2
# fc68bcb88bf9af1907289a9f377d658b3b9fe5b0      root Peppy MP-v2
# 758a59f4f911b63a1335223d761d2485313674c8      root Quawks MP
# b3119b02f2b5371da5596b13d612facbca99b94f      root Rambi PreMP
# cb67b1bda9965eebae6c477abf557d2c13690c30      root Rowan PreMP
# cb8086a9c1cd26318fef9a9fb3f846ca12320737      root Samus PreMP
# a026a7a4a0bf0fa32d6b7aa90a80d5ef01a3b799      root Snow MP
# 758a59f4f911b63a1335223d761d2485313674c8      root Squawks MP
# 952dd6852c11fd8b36b4fb88f3335ecae722e0e6      root Stout MP
# 952dd6852c11fd8b36b4fb88f3335ecae722e0e6      root Stout MP-v3
# 4ec4ba0a746b37b1c6286ab807c2a5b1e7ab4ab0      root Stumpy MP
# 06939c65797eadfe6be1b3343a2e339800a34108      root Stumpy PVT
# 154512de86cc1cc36a67d4225eb2fcc37dac1b7c      root Swanky MP
# ed3dab48746de569513aa288439f86fe24cc3386      root Tricky MP
# 5915703fb47bf569d7a6b8726cb9a1bd159487b0      root Winky PreMP
# ed3dab48746de569513aa288439f86fe24cc3386      root Wolf MP
# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root ZGB MP
# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root ZGB MP-v3
# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root ZGB-HE MP-v3
# c788cee8c798669fe4822b7544dd3e399ce22604      root Zako MP-v2
#
# Normal kernel keys
#
# d6170aa480136f1f29cf339a5ab1b960585fa444    normal developer keys
#
# af24e46b6c3805869616e71c002c9a2a847ad266    normal Alex MP
# af24e46b6c3805869616e71c002c9a2a847ad266    normal Alex MP-v4
# af24e46b6c3805869616e71c002c9a2a847ad266    normal Alex-HE MP-v4
# 6026d95d1f11e1b88c19a139effbb02660523904    normal Butterfly MP-v3
# 24fcff70ef3d834451384452bd9bc64c4d01c559    normal Butterfly Pre-MP
# d03ba05319cd77d0830b268804804f21fcb7672c    normal Clapper MP
# 0d96e14c31a405b28dd7c7d2e416bbf960bc9779    normal Daisy MP-v3
# da0bb5a3e2e80ebab0ac268ba2204ec360e9bb45    normal Daisy-Skate MP
# 94b5cfc5933e2f6294095820fa9eaf8162ca8021    normal Daisy-Spring MP-v2
# dd15b9458ffc5ecb8048dbc4ae5e7f480c9e1852    normal Duck PreMP
# d9ffc2514c179472b6c5553b8ed20237cdfef73e    normal Enguarde MP-v10
# bd99dc86506b9ebe3025e5af69a26decf607173d    normal Expresso MP-v10
# c5d935b69950c29b2d2bba7cecacd2859fb9afbd    normal Falco MP-v2
# c5d935b69950c29b2d2bba7cecacd2859fb9afbd    normal Falco-li MP-v2
# c6bc5788eb62701cdd69b309766fe2a49ead14d1    normal Glimmer MP
# 32778b8483e14e4570b582c34df065c5ee833a59    normal Gnawty MP
# f82f08a5953b688b078f465731f1077fdf0d97cf    normal Kiev MP
# b3ad5503fda8b06c74a000fed289006c97bf5600    normal Kip MP
# 933610d5c9926ec5540e180cda18c0395a853012    normal Leon MP
# d5927774fc14bb18a38c27fef47a36517a089d04    normal Link MP
# ad9e35dcd4287a3e27264ce49df6df40aaf2dcbb    normal Link MP-v4
# 7cb50f352af15f807f4bf3eaaede62d2f9c70d27    normal Link Pre-MP
# ad9e35dcd4287a3e27264ce49df6df40aaf2dcbb    normal Link-freon MP-v4
# cc887372ac2d1c415eac93fc11e753629c387358    normal Lumpy MP v2
# cc887372ac2d1c415eac93fc11e753629c387358    normal Lumpy MP-v3
# fa55cba16857a49270fb1561f87343c00959eb19    normal Lumpy PVT
# a1454fcecb98a6f33b38638564bdfc20161a7b04    normal Mario MP v2
# a1454fcecb98a6f33b38638564bdfc20161a7b04    normal Mario MP-v3
# 8848be24f4c34f064ae23c0450d27b62e558d2ed    normal McCloud MP
# ac65608a05976a904f4c6123953968cd1aa444ab    normal Monroe MP
# 78d388d49c494510d48cfa1650eacd45aa871da5    normal Nyan PreMP
# 71dd606970080aab093da2bbe91ca4348988175c    normal Nyan-Big MP
# c4c00693dd7b99fffc1b272641f769d0a2f19ef5    normal Nyan-Blaze MP
# 39f6088397ebfcc8fffbd933b4bcd8a0e74ba409    normal Panther MP
# 8975d168123d5cfc7cebf674627958445f0d2a52    normal Parrot MP v2
# e18e8ac7835390a71d2d70d02880694c6da9ac92    normal Parrot MP-v3
# e18e8ac7835390a71d2d70d02880694c6da9ac92    normal Parrot-ivb MP-v3
# ef469c6417138a8a371b51483d941a01453d27a3    normal Peach-Pi MP
# 2cf0eddab3a021044fc66fdca492c7899de5b7eb    normal Peach-Pit MP-v2
# 320e083d80e1a49d9c11cc0d8d055b050a92805a    normal Peppy MP-v2
# c65c3e3648eca66449ac9cdaf60edc2ba1b136e8    normal Quawks MP
# 037f4ed441ac39ca0a7fdd6c0829d4add9bf5f34    normal Rambi PreMP
# 3ca9ee2c112826aa89f0edf3cedcc5b65f250271    normal Rowan PreMP
# 989186f9aec3bced013d7f085c0f8caa07518e34    normal Samus PreMP
# c5120666c642f031e76edab8a2b45dd32232f80d    normal Snow MP v2
# 1cab1dedc34076b8887c9ebd4e6769eda6c41ed2    normal Squawks MP
# 09cb9b45c2cd4ca674861fe484aa758ba5568be0    normal Stout MP
# 47a82928807763a30956f40e4de0e68af2a17975    normal Stout MP-v3
# de0b76af3caa55a8e7aa34c805e4248ad03b18e7    normal Stumpy MP
# f7e48006982a0ad4a41c0ca6610f062adb0eec44    normal Stumpy MP v2
# 04dd63e835c979b57f87fd74e99af68e0cd39ad7    normal Stumpy PVT
# c321ed66f9b999598d39be7be3246bb25362740b    normal Swanky MP
# 5c626cd8a684e470e74d3ceaf518aae745fe15dc    normal Tegra2-Kaen PVT
# 09790fcb8c2b6732ec54bc406d34ec16c55992ba    normal Tricky MP
# 202bb448a3f269771cffe53c38d6f05b2d1329ae    normal Winky PreMP
# 7d4f5255af3552d8c8b40f60873d683268050015    normal Wolf MP
# 7b7ae8652775ad7305f565161b3acc00fcc8ea22    normal ZGB MP v2
# 7b7ae8652775ad7305f565161b3acc00fcc8ea22    normal ZGB MP-v3
# 7b7ae8652775ad7305f565161b3acc00fcc8ea22    normal ZGB-HE MP-v3
# f70f0373b60ea8e2c5df7a9afeb75726fe0c8eb3    normal Zako MP-v2
#
# Recovery kernel keys
#
# e78ce746a037837155388a1096212ded04fb86eb  recovery developer keys
#
# 03172b08f0b99172c73d947f51e8ca23d418bcbf  recovery Alex MP
# 03172b08f0b99172c73d947f51e8ca23d418bcbf  recovery Alex MP-v4
# 03172b08f0b99172c73d947f51e8ca23d418bcbf  recovery Alex-HE MP-v4
# c65d20649d35019a40642a4e2540b19587ee6458  recovery Butterfly MP-v3
# 934e38b44b11eb892d1edc32cb3ba87c558232d9  recovery Butterfly Pre-MP
# 889367bc86d0af857412a409f98e2ab9d798f887  recovery Clapper MP
# f32b5f6b6cfb6d77136ac0d8ed0cdf67e6df7b91  recovery Daisy MP-v3
# 66496dd27c44ae81cf0c41671b5af59a316969da  recovery Daisy-Skate MP
# a1f00935770234a434c4b14414c48866b1661e40  recovery Daisy-Spring MP-v2
# 9a04d0ea29b095c6c227b50d4bb75f431355dbb0  recovery Duck PreMP
# e30dc74a05de0d0e7522817f8d97f04f08ff6a8b  recovery Enguarde MP-v10
# 4e22acdedf89a3dbb6b9861b513e2121bd457a96  recovery Expresso MP-v10
# af1e6c23c3148d3261b5fc7c30860d89faeee7a6  recovery Falco MP-v2
# af1e6c23c3148d3261b5fc7c30860d89faeee7a6  recovery Falco-li MP-v2
# 45145bcfc866b5cc7d711d6451fd1272f55ba087  recovery Glimmer MP
# 377f89af74389c1d06876981bda3a7a591332f67  recovery Gnawty MP
# 10d73c2b24b35c0ea387babd72e9b242f2d79c9f  recovery Kiev MP
# 5dea047c25331a6b3ed0f40efa7e2b8b90676abf  recovery Kip MP
# 51a7f92ef6d727da9b0f0ebd8882a836db296e97  recovery Leon MP
# e8c4e66b00df5468e4d7ec9757347842cfd6c1da  recovery Link MP
# e8c4e66b00df5468e4d7ec9757347842cfd6c1da  recovery Link MP-v4
# 93e0ecffb36199071a3d995f6726770e799dcd0e  recovery Link Pre-MP
# e8c4e66b00df5468e4d7ec9757347842cfd6c1da  recovery Link-freon MP-v4
# 49d40533b0812d3f31232c5eedd47e7e11acc293  recovery Lumpy MP
# 49d40533b0812d3f31232c5eedd47e7e11acc293  recovery Lumpy MP-v3
# cb45bc04a932e4bcac41b44d31afd9516ca0fe24  recovery Lumpy PVT
# f6fadd7e31eebf4bcc4eb8d2dd512e3a2313627f  recovery Mario MP
# f6fadd7e31eebf4bcc4eb8d2dd512e3a2313627f  recovery Mario MP-v3
# 95b4a4abb2a55e7163824e36583c109c90a2e78d  recovery McCloud MP
# 5e2ca8bc287af2d94615e940ee17e9620d3191dd  recovery Monroe MP
# b914dc4800f6929d0c1ecea536dbff9ef618af26  recovery Nyan PreMP
# 9cdfb53d6ef4f4746de2dace828d1142c216a130  recovery Nyan-Big MP
# 934ce4a3a23316457727a500b7dce4e04b2f7147  recovery Nyan-Blaze MP
# ef1c9cdbf547acc397288cf58fd3ee274383abbb  recovery Panther MP
# cfa1a4a784a90cc7c1df6859fa226b89e6afbeb5  recovery Parrot MP
# cfa1a4a784a90cc7c1df6859fa226b89e6afbeb5  recovery Parrot MP-v3
# cfa1a4a784a90cc7c1df6859fa226b89e6afbeb5  recovery Parrot-ivb MP-v3
# 7cabfc4c72cb300399c8c490b39c1ce0c45b11c0  recovery Peach-Pi MP
# b39e9b9b12f3ab4fd1017e6c92d4ccff2723347d  recovery Peach-Pit MP-v2
# 74ec605d3525e24b7f7a4b633afd2ec048dc6d12  recovery Peppy MP-v2
# 315417a5d8a95b954f5f101acaef5b107136a418  recovery Quawks MP
# d0b7feba2bb53ecd8eda6602ccf6a0c25e5b001f  recovery Rambi PreMP
# 942e15e118dca77b75a668c8c814bf8d67b774b2  recovery Rowan PreMP
# 61cad57963dd64202cead8dcfc62aea76c9911c2  recovery Samus PreMP
# f32b5f6b6cfb6d77136ac0d8ed0cdf67e6df7b91  recovery Snow MP
# d45eb14119d14b5b1d4b259f177e32c522d27f99  recovery Squawks MP
# fa4497f70968a1820ceb0ac4364d8e9ec0abc0b2  recovery Stout MP
# fa4497f70968a1820ceb0ac4364d8e9ec0abc0b2  recovery Stout MP-v3
# 6f6d6df4e328633904990cf8c60baa18b8cf6fc7  recovery Stumpy MP
# 057a03c1526a1be7f42d29095c5a583231a75b35  recovery Stumpy PVT
# d56ac05587d7d45d681cb52d113fb5d95e787d1d  recovery Swanky MP
# de11a604715a920d7371ceefda75a5b1b062443f  recovery Tegra2-Kaen PVT
# 4fe89a587d09c9fb58e79b556014b833f64559fb  recovery Tricky MP
# 72bb00bb0c89d06569df2d9d2e8087e040bbbb8b  recovery Winky PreMP
# a01a2a2502fe8f6e3dc8100080b0e486bc0a3468  recovery Wolf MP
# 20f3e8b77da6577706c91feefb203f98ee20d479  recovery ZGB MP
# 20f3e8b77da6577706c91feefb203f98ee20d479  recovery ZGB MP-v3
# 20f3e8b77da6577706c91feefb203f98ee20d479  recovery ZGB-HE MP-v3
# 070611f0aa70b6887dd3c96b4086c13894ffa25f  recovery Zako MP-v2
