xref: /aosp_15_r20/external/vboot_reference/utility/vbutil_what_keys (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1*8617a60dSAndroid Build Coastguard Worker#!/bin/sh -u
2*8617a60dSAndroid Build Coastguard Worker# Copyright 2014 The ChromiumOS Authors
3*8617a60dSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
4*8617a60dSAndroid Build Coastguard Worker# found in the LICENSE file.
5*8617a60dSAndroid Build Coastguard Worker
6*8617a60dSAndroid Build Coastguard Workerif [ -z "$*" ]; then
7*8617a60dSAndroid Build Coastguard Worker  cat <<EOF 1>&2
8*8617a60dSAndroid Build Coastguard Worker
9*8617a60dSAndroid Build Coastguard WorkerUsage:  vbutil_what_keys [-v|-V] IMAGE [IMAGE...]
10*8617a60dSAndroid Build Coastguard Worker
11*8617a60dSAndroid Build Coastguard WorkerGiven a ChromiumOS disk (or BIOS) image, try to figure out how it's signed.
12*8617a60dSAndroid Build Coastguard WorkerNote that this does not verify the signature, it just reports which keyblock
13*8617a60dSAndroid Build Coastguard Workerwas used to create the signature.
14*8617a60dSAndroid Build Coastguard Worker
15*8617a60dSAndroid Build Coastguard WorkerWith the -v option, it will attempt to mount any rootfs partitions from disk
16*8617a60dSAndroid Build Coastguard Workerimages (using sudo), extract the BIOS from /usr/sbin/chromeos-firmwareupdate,
17*8617a60dSAndroid Build Coastguard Workerand process it as well. Use -V to display the shellball -V message too.
18*8617a60dSAndroid Build Coastguard Workerthat.
19*8617a60dSAndroid Build Coastguard Worker
20*8617a60dSAndroid Build Coastguard WorkerEOF
21*8617a60dSAndroid Build Coastguard Worker  exit 1
22*8617a60dSAndroid Build Coastguard Workerfi
23*8617a60dSAndroid Build Coastguard Worker
24*8617a60dSAndroid Build Coastguard Worker# We'll grep for the known sha1sums within this script (they're at the end).
25*8617a60dSAndroid Build Coastguard Worker# Obtain them by running script on images you know have been signed correctly
26*8617a60dSAndroid Build Coastguard Worker# (since the keys themselves are inside the HSM).
27*8617a60dSAndroid Build Coastguard Worker#
28*8617a60dSAndroid Build Coastguard Worker# BTW, the default H2C HWIDs are fixed for each platform:
29*8617a60dSAndroid Build Coastguard Worker#
30*8617a60dSAndroid Build Coastguard Worker# {97A1FBD6-FDE1-4FC5-BB81-286608B90FCE}    Alex H2C
31*8617a60dSAndroid Build Coastguard Worker# {9D799111-A88A-439E-9E1F-FBBB41B00A9A}    Mario H2C
32*8617a60dSAndroid Build Coastguard Worker# {24B107F2-BA6A-4EBD-8CDD-E768438CE0F0}    Stumpy H2C
33*8617a60dSAndroid Build Coastguard Worker# {FA42644C-CF3A-4692-A9D3-1A667CB232E9}    ZGB H2C
34*8617a60dSAndroid Build Coastguard Worker
35*8617a60dSAndroid Build Coastguard Worker
36*8617a60dSAndroid Build Coastguard Worker# args?
37*8617a60dSAndroid Build Coastguard Workerunpack_it=
38*8617a60dSAndroid Build Coastguard Workerverbose=
39*8617a60dSAndroid Build Coastguard Workerif [ "${1:-}" = "-v" ]; then
40*8617a60dSAndroid Build Coastguard Worker  unpack_it=yes
41*8617a60dSAndroid Build Coastguard Worker  shift
42*8617a60dSAndroid Build Coastguard Workerfi
43*8617a60dSAndroid Build Coastguard Workerif [ "${1:-}" = "-V" ]; then
44*8617a60dSAndroid Build Coastguard Worker  unpack_it=yes
45*8617a60dSAndroid Build Coastguard Worker  verbose=yes
46*8617a60dSAndroid Build Coastguard Worker  shift
47*8617a60dSAndroid Build Coastguard Workerfi
48*8617a60dSAndroid Build Coastguard Worker
49*8617a60dSAndroid Build Coastguard Worker# clean up on exit
50*8617a60dSAndroid Build Coastguard Workercleanup() {
51*8617a60dSAndroid Build Coastguard Worker  [ -n "${CLEAN_UM:-}" ] && sudo umount $CLEAN_UM
52*8617a60dSAndroid Build Coastguard Worker  [ -n "${CLEAN_RM:-}" ] && rm -rf $CLEAN_RM
53*8617a60dSAndroid Build Coastguard Worker}
54*8617a60dSAndroid Build Coastguard Workertrap cleanup EXIT
55*8617a60dSAndroid Build Coastguard Worker
56*8617a60dSAndroid Build Coastguard Worker# temp stuff
57*8617a60dSAndroid Build Coastguard WorkerTMPFILE=$(mktemp /tmp/keyblock_XXXXXXXXX)
58*8617a60dSAndroid Build Coastguard WorkerCLEAN_RM="$TMPFILE"
59*8617a60dSAndroid Build Coastguard Workerif [ -n "$unpack_it" ]; then
60*8617a60dSAndroid Build Coastguard Worker  TMPMNT=$(mktemp -d /tmp/mountdir_XXXXXXXXX)
61*8617a60dSAndroid Build Coastguard Worker  TMPDIR=$(mktemp -d /tmp/extractdir_XXXXXXXXX)
62*8617a60dSAndroid Build Coastguard Worker  CLEAN_RM="$CLEAN_RM $TMPDIR $TMPMNT"
63*8617a60dSAndroid Build Coastguard Workerfi
64*8617a60dSAndroid Build Coastguard Worker
65*8617a60dSAndroid Build Coastguard Workergreppy() {
66*8617a60dSAndroid Build Coastguard Worker  local key="$1"
67*8617a60dSAndroid Build Coastguard Worker  grep "$key" "$0" 2>/dev/null | sed -e 's/ \+/ /g' | \
68*8617a60dSAndroid Build Coastguard Worker    cut -d ' ' -f 4- | sed -e ':a;N;$!ba;s/\n/, /g'
69*8617a60dSAndroid Build Coastguard Worker}
70*8617a60dSAndroid Build Coastguard Worker
71*8617a60dSAndroid Build Coastguard Worker
72*8617a60dSAndroid Build Coastguard Workershowbios() {
73*8617a60dSAndroid Build Coastguard Worker  local file="$1" space="$2"
74*8617a60dSAndroid Build Coastguard Worker  local hwid matchh rootkey matchn recoverykey matchr
75*8617a60dSAndroid Build Coastguard Worker
76*8617a60dSAndroid Build Coastguard Worker  hwid=$(futility gbb --hwid "$file" | sed -e 's/^.*: *//') || return
77*8617a60dSAndroid Build Coastguard Worker  matchh=$(grep "$hwid" "$0" 2>/dev/null | sed -e 's/^# //')
78*8617a60dSAndroid Build Coastguard Worker
79*8617a60dSAndroid Build Coastguard Worker  futility gbb --rootkey="$TMPFILE" "$file" >/dev/null
80*8617a60dSAndroid Build Coastguard Worker  rootkey=$(futility vbutil_key --unpack "$TMPFILE" | grep sha1sum | \
81*8617a60dSAndroid Build Coastguard Worker    sed -e 's/^.*: *//')
82*8617a60dSAndroid Build Coastguard Worker  matchn=$(greppy "$rootkey")
83*8617a60dSAndroid Build Coastguard Worker
84*8617a60dSAndroid Build Coastguard Worker  futility gbb --recoverykey="$TMPFILE" "$file" >/dev/null
85*8617a60dSAndroid Build Coastguard Worker  recoverykey=$(futility vbutil_key --unpack "$TMPFILE" | grep sha1sum | \
86*8617a60dSAndroid Build Coastguard Worker    sed -e 's/^.*: *//')
87*8617a60dSAndroid Build Coastguard Worker  matchr=$(greppy "$recoverykey")
88*8617a60dSAndroid Build Coastguard Worker
89*8617a60dSAndroid Build Coastguard Worker  echo "$space  hwid:          ${matchh:-$hwid}"
90*8617a60dSAndroid Build Coastguard Worker  echo "$space  root key:      ${rootkey}  ${matchn}"
91*8617a60dSAndroid Build Coastguard Worker  echo "$space  recovery key:  ${recoverykey}  ${matchr}"
92*8617a60dSAndroid Build Coastguard Worker}
93*8617a60dSAndroid Build Coastguard Worker
94*8617a60dSAndroid Build Coastguard Worker
95*8617a60dSAndroid Build Coastguard Worker
96*8617a60dSAndroid Build Coastguard Worker# handle one input file
97*8617a60dSAndroid Build Coastguard Workerdofile() {
98*8617a60dSAndroid Build Coastguard Worker  file="$1"
99*8617a60dSAndroid Build Coastguard Worker  size=$(stat -c %s "$file")
100*8617a60dSAndroid Build Coastguard Worker
101*8617a60dSAndroid Build Coastguard Worker  if [ -f "$file" ] && [ "$size" -le 16777216 ]; then
102*8617a60dSAndroid Build Coastguard Worker    echo -e "\nBIOS: $file"
103*8617a60dSAndroid Build Coastguard Worker
104*8617a60dSAndroid Build Coastguard Worker    showbios "$file" ""
105*8617a60dSAndroid Build Coastguard Worker
106*8617a60dSAndroid Build Coastguard Worker  else
107*8617a60dSAndroid Build Coastguard Worker    echo -e "\nIMAGE: $file"
108*8617a60dSAndroid Build Coastguard Worker
109*8617a60dSAndroid Build Coastguard Worker    for pnum in $(cgpt find -n -t kernel "$file" 2>/dev/null); do
110*8617a60dSAndroid Build Coastguard Worker
111*8617a60dSAndroid Build Coastguard Worker      psize=$(cgpt show -s -i "$pnum" "$file")
112*8617a60dSAndroid Build Coastguard Worker      if [ "$psize" -ge 128 ]; then
113*8617a60dSAndroid Build Coastguard Worker
114*8617a60dSAndroid Build Coastguard Worker        pstart=$(cgpt show -b -i "$pnum" "$file")
115*8617a60dSAndroid Build Coastguard Worker        dd if="$file" of="$TMPFILE" bs=512 count=128 skip="$pstart" 2>/dev/null
116*8617a60dSAndroid Build Coastguard Worker
117*8617a60dSAndroid Build Coastguard Worker        psum=$(futility vbutil_keyblock --unpack "$TMPFILE" 2>/dev/null | \
118*8617a60dSAndroid Build Coastguard Worker          grep sha1sum | sed -e 's/^.*: *//')
119*8617a60dSAndroid Build Coastguard Worker
120*8617a60dSAndroid Build Coastguard Worker        if [ -n "$psum" ]; then
121*8617a60dSAndroid Build Coastguard Worker          match=$(greppy "$psum")
122*8617a60dSAndroid Build Coastguard Worker          flags=$(futility vbutil_keyblock --unpack "$TMPFILE" 2>/dev/null | \
123*8617a60dSAndroid Build Coastguard Worker            grep Flags: | sed -e 's/^.*:[ 0-9]*//')
124*8617a60dSAndroid Build Coastguard Worker        else
125*8617a60dSAndroid Build Coastguard Worker          match=""
126*8617a60dSAndroid Build Coastguard Worker          psum="--invalid--"
127*8617a60dSAndroid Build Coastguard Worker          flags=""
128*8617a60dSAndroid Build Coastguard Worker        fi
129*8617a60dSAndroid Build Coastguard Worker
130*8617a60dSAndroid Build Coastguard Worker        echo "  part $pnum kernel:   $psum  ($flags)  $match"
131*8617a60dSAndroid Build Coastguard Worker      fi
132*8617a60dSAndroid Build Coastguard Worker
133*8617a60dSAndroid Build Coastguard Worker    done
134*8617a60dSAndroid Build Coastguard Worker
135*8617a60dSAndroid Build Coastguard Worker    if [ -n "$unpack_it" ]; then
136*8617a60dSAndroid Build Coastguard Worker      for pnum in $(cgpt find -n -t rootfs "$file" 2>/dev/null); do
137*8617a60dSAndroid Build Coastguard Worker
138*8617a60dSAndroid Build Coastguard Worker        psize=$(cgpt show -s -i "$pnum" "$file")
139*8617a60dSAndroid Build Coastguard Worker        if [ "$psize" -ge 128 ]; then
140*8617a60dSAndroid Build Coastguard Worker
141*8617a60dSAndroid Build Coastguard Worker          pstart=$(cgpt show -b -i "$pnum" "$file")
142*8617a60dSAndroid Build Coastguard Worker
143*8617a60dSAndroid Build Coastguard Worker          echo "  part $pnum shellball:"
144*8617a60dSAndroid Build Coastguard Worker          sudo mount -o loop,ro,offset=$(( $pstart * 512 )) "$file" "$TMPMNT"
145*8617a60dSAndroid Build Coastguard Worker          CLEAN_UM="$TMPMNT"
146*8617a60dSAndroid Build Coastguard Worker          [ -n "$verbose" ] && "$TMPMNT/usr/sbin/chromeos-firmwareupdate" -V
147*8617a60dSAndroid Build Coastguard Worker          "$TMPMNT/usr/sbin/chromeos-firmwareupdate" \
148*8617a60dSAndroid Build Coastguard Worker            --sb_extract "$TMPDIR" > /dev/null
149*8617a60dSAndroid Build Coastguard Worker          sudo umount "$TMPMNT"
150*8617a60dSAndroid Build Coastguard Worker          CLEAN_UM=
151*8617a60dSAndroid Build Coastguard Worker
152*8617a60dSAndroid Build Coastguard Worker          showbios "$TMPDIR/bios.bin" "  "
153*8617a60dSAndroid Build Coastguard Worker        fi
154*8617a60dSAndroid Build Coastguard Worker
155*8617a60dSAndroid Build Coastguard Worker      done
156*8617a60dSAndroid Build Coastguard Worker    fi
157*8617a60dSAndroid Build Coastguard Worker
158*8617a60dSAndroid Build Coastguard Worker  fi
159*8617a60dSAndroid Build Coastguard Worker}
160*8617a60dSAndroid Build Coastguard Worker
161*8617a60dSAndroid Build Coastguard Worker
162*8617a60dSAndroid Build Coastguard Workerfor file in "$@"; do
163*8617a60dSAndroid Build Coastguard Worker  dofile $file
164*8617a60dSAndroid Build Coastguard Workerdone
165*8617a60dSAndroid Build Coastguard Worker
166*8617a60dSAndroid Build Coastguard Workerecho ""
167*8617a60dSAndroid Build Coastguard Worker
168*8617a60dSAndroid Build Coastguard Workerexit 0;
169*8617a60dSAndroid Build Coastguard Worker
170*8617a60dSAndroid Build Coastguard Worker##############################################################################
171*8617a60dSAndroid Build Coastguard Worker# Here are the known keys
172*8617a60dSAndroid Build Coastguard Worker##############################################################################
173*8617a60dSAndroid Build Coastguard Worker#
174*8617a60dSAndroid Build Coastguard Worker# Firmware recovery keys
175*8617a60dSAndroid Build Coastguard Worker#
176*8617a60dSAndroid Build Coastguard Worker# c14bd720b70d97394257e3e826bd8f43de48d4ed  recovery developer keys
177*8617a60dSAndroid Build Coastguard Worker#
178*8617a60dSAndroid Build Coastguard Worker# 5c5776bf7574e5601c25042e0748b6844cfdd1dc  recovery Alex MP
179*8617a60dSAndroid Build Coastguard Worker# 5c5776bf7574e5601c25042e0748b6844cfdd1dc  recovery Alex MP-v4
180*8617a60dSAndroid Build Coastguard Worker# 5c5776bf7574e5601c25042e0748b6844cfdd1dc  recovery Alex-HE MP-v4
181*8617a60dSAndroid Build Coastguard Worker# b3373d76358c3528d0653c4035bdd0020e2b0e1b  recovery Butterfly MP-v3
182*8617a60dSAndroid Build Coastguard Worker# 8a22e18a91e89f46f1f59b44a7887ab3821cb18d  recovery Butterfly Pre-MP
183*8617a60dSAndroid Build Coastguard Worker# b6079520f8c8dc7192a78d111b9fefb98cee49b3  recovery Clapper MP
184*8617a60dSAndroid Build Coastguard Worker# 13b0ddf343bb0c325b178e5be138d4969a9e02be  recovery Daisy MP-v3
185*8617a60dSAndroid Build Coastguard Worker# 5e9d23b2d908a6ac5ee5c9747a9e2fe6dff01372  recovery Daisy-Skate MP
186*8617a60dSAndroid Build Coastguard Worker# 540bb135df55fe0036fe061b7a1f2a52d287cd1b  recovery Daisy-Spring MP-v2
187*8617a60dSAndroid Build Coastguard Worker# ae67678f8ed662ef4d1e4a639226d278b90ccaa3  recovery Enguarde MP-v10
188*8617a60dSAndroid Build Coastguard Worker# ff7c07ae0ac04ccb92090e339545b716228a6da4  recovery Expresso MP-v10
189*8617a60dSAndroid Build Coastguard Worker# 3c359d59432641a151161e2738ba8ca2b3eb12ab  recovery Falco MP-v2
190*8617a60dSAndroid Build Coastguard Worker# 3c359d59432641a151161e2738ba8ca2b3eb12ab  recovery Falco-li MP-v2
191*8617a60dSAndroid Build Coastguard Worker# c989d1ab66d2a67886e1019330812cb9e4e48f31  recovery Glimmer MP
192*8617a60dSAndroid Build Coastguard Worker# ab325d5411c6a21b41142b71b747335144e12538  recovery Gnawty MP
193*8617a60dSAndroid Build Coastguard Worker# d81c751df76a7d53a6d3c2f58987562c87416735  recovery Kiev MP
194*8617a60dSAndroid Build Coastguard Worker# 02601fcbcac953f043a53eac6fed7a5367a7189c  recovery Kiev PreMP
195*8617a60dSAndroid Build Coastguard Worker# 6eaa4b094cd75eacc0f2fa4516d33ed86ea6f3d2  recovery Kip MP
196*8617a60dSAndroid Build Coastguard Worker# dc65a88c92511494999d2c03a72ec2584d21917d  recovery Leon MP
197*8617a60dSAndroid Build Coastguard Worker# 7e74cd6d66f361da068c0419d2e0946b4d091e1c  recovery Link MP
198*8617a60dSAndroid Build Coastguard Worker# 7e74cd6d66f361da068c0419d2e0946b4d091e1c  recovery Link MP-v4
199*8617a60dSAndroid Build Coastguard Worker# 08b2d19bc87d05d860a1c274f874bc9fa9ab7dfb  recovery Link Pre-MP
200*8617a60dSAndroid Build Coastguard Worker# 0d800afb53cdd05dd849addee0143ca1d96e893c  recovery Lumpy MP
201*8617a60dSAndroid Build Coastguard Worker# 0d800afb53cdd05dd849addee0143ca1d96e893c  recovery Lumpy MP-v3
202*8617a60dSAndroid Build Coastguard Worker# ebcac421fbf411bee99ee90672a3add17f5a967b  recovery Lumpy PVT
203*8617a60dSAndroid Build Coastguard Worker# 5d0d163b824cab5ae4f23fb2cc012e2a4124f4fe  recovery Mario MP
204*8617a60dSAndroid Build Coastguard Worker# 5d0d163b824cab5ae4f23fb2cc012e2a4124f4fe  recovery Mario MP-v3
205*8617a60dSAndroid Build Coastguard Worker# 51dd0b446540182fd91c6196b9a8dfcd7bcf6256  recovery McCloud MP
206*8617a60dSAndroid Build Coastguard Worker# 67f01715f3acf6526ce48a3d2cf81b003a01f334  recovery Monroe MP
207*8617a60dSAndroid Build Coastguard Worker# 40832bb15fa40a18b8e5d80fd17d0405b624884e  recovery Nyan PreMP
208*8617a60dSAndroid Build Coastguard Worker# 2b356618cd0f739877b7a3f155917341f8778523  recovery Nyan-Big MP
209*8617a60dSAndroid Build Coastguard Worker# 26900310befce802836cca982f819aa72445e190  recovery Nyan-Blaze MP
210*8617a60dSAndroid Build Coastguard Worker# e74e63e14b285700324ffd3acc4b776dc3104b8f  recovery Panther MP
211*8617a60dSAndroid Build Coastguard Worker# 7f03c648d2bb4ab3979cb87633da51ed90267f03  recovery Parrot MP
212*8617a60dSAndroid Build Coastguard Worker# 7f03c648d2bb4ab3979cb87633da51ed90267f03  recovery Parrot MP-v3
213*8617a60dSAndroid Build Coastguard Worker# 7f03c648d2bb4ab3979cb87633da51ed90267f03  recovery Parrot-ivb MP-v3
214*8617a60dSAndroid Build Coastguard Worker# d254b3b3ddaac32f7b843753de9257ec4f6c67ed  recovery Peach-Pi MP
215*8617a60dSAndroid Build Coastguard Worker# 6d9a2ca8b3080a97e1e5a4efbc5386ead77c3c7f  recovery Peach-Pit MP-v2
216*8617a60dSAndroid Build Coastguard Worker# bf39d0d3e30cbf6a121416d04df4603ad5310779  recovery Peppy MP-v2
217*8617a60dSAndroid Build Coastguard Worker# 60aa1bbbea1d2f724c6e5daa0653ca472ac3085e  recovery Quawks MP
218*8617a60dSAndroid Build Coastguard Worker# fb4847ecb6bfcc300e5f570c5e8f3ab881204968  recovery Rambi PreMP
219*8617a60dSAndroid Build Coastguard Worker# abd575549848c82b481068ddf0242ea38d2e5fdd  recovery Rowan PreMP
220*8617a60dSAndroid Build Coastguard Worker# 462edb5ebfd817e29e813db7a424582c3ce35768  recovery Samus PreMP
221*8617a60dSAndroid Build Coastguard Worker# 13b0ddf343bb0c325b178e5be138d4969a9e02be  recovery Snow MP
222*8617a60dSAndroid Build Coastguard Worker# cdc2858ca78351dc4b54d5d5d02bc695830f7802  recovery Squawks MP
223*8617a60dSAndroid Build Coastguard Worker# 5cb31faf8c524672a15fd4628c585af79eca0247  recovery Stout MP
224*8617a60dSAndroid Build Coastguard Worker# 5cb31faf8c524672a15fd4628c585af79eca0247  recovery Stout MP-v3
225*8617a60dSAndroid Build Coastguard Worker# 37e7bad73449f782f280b1668fed48d1132137fa  recovery Stumpy MP
226*8617a60dSAndroid Build Coastguard Worker# 8540f56f87d91c5403704c960c1f385705201e20  recovery Stumpy PVT
227*8617a60dSAndroid Build Coastguard Worker# e0b610bc85908c35fb7bd11bfd34afb84d547190  recovery Swanky MP
228*8617a60dSAndroid Build Coastguard Worker# 50759cb8bc2f86ef378571fa7b30a161e7dcdc03  recovery Tricky MP
229*8617a60dSAndroid Build Coastguard Worker# a0c56006541cd38d6c884d27210a135f5c309a3f  recovery Winky PreMP
230*8617a60dSAndroid Build Coastguard Worker# a4ee431f7a07c59e920fe570ead0b938cdd4019d  recovery Wolf MP
231*8617a60dSAndroid Build Coastguard Worker# 9bd99a594c45b6739899a17ec29ac2289ee75463  recovery ZGB MP
232*8617a60dSAndroid Build Coastguard Worker# 9bd99a594c45b6739899a17ec29ac2289ee75463  recovery ZGB MP-v3
233*8617a60dSAndroid Build Coastguard Worker# 9bd99a594c45b6739899a17ec29ac2289ee75463  recovery ZGB-HE MP-v3
234*8617a60dSAndroid Build Coastguard Worker# ba07696c1c82891fdacab28a434148d239e7c834  recovery Zako MP-v2
235*8617a60dSAndroid Build Coastguard Worker#
236*8617a60dSAndroid Build Coastguard Worker# Firmware root keys
237*8617a60dSAndroid Build Coastguard Worker#
238*8617a60dSAndroid Build Coastguard Worker# b11d74edd286c144e1135b49e7f0bc20cf041f10      root developer keys
239*8617a60dSAndroid Build Coastguard Worker#
240*8617a60dSAndroid Build Coastguard Worker# 00f77be2a0c013343db84fc6259da09e558b8318      root Alex MP
241*8617a60dSAndroid Build Coastguard Worker# 00f77be2a0c013343db84fc6259da09e558b8318      root Alex MP-v4
242*8617a60dSAndroid Build Coastguard Worker# 00f77be2a0c013343db84fc6259da09e558b8318      root Alex-HE MP-v4
243*8617a60dSAndroid Build Coastguard Worker# c788cee8c798669fe4822b7544dd3e399ce22604      root Butterfly MP-v3
244*8617a60dSAndroid Build Coastguard Worker# 12a2c88b58cbd9eef6b777a3af440f611ea4f561      root Butterfly Pre-MP
245*8617a60dSAndroid Build Coastguard Worker# 952dd6852c11fd8b36b4fb88f3335ecae722e0e6      root Clapper MP
246*8617a60dSAndroid Build Coastguard Worker# a026a7a4a0bf0fa32d6b7aa90a80d5ef01a3b799      root Daisy MP-v3
247*8617a60dSAndroid Build Coastguard Worker# c788cee8c798669fe4822b7544dd3e399ce22604      root Daisy-Skate MP
248*8617a60dSAndroid Build Coastguard Worker# ab3521d3b1938af52009b2c3dfad964594f6b367      root Daisy-Spring MP-v2
249*8617a60dSAndroid Build Coastguard Worker# 48dc3c5917b9095d6b4188560c9726ba31a192ee      root Enguarde MP-v10
250*8617a60dSAndroid Build Coastguard Worker# 82f706e156e5927bbdf8f14f4a9f45bc59986311      root Expresso MP-v10
251*8617a60dSAndroid Build Coastguard Worker# c788cee8c798669fe4822b7544dd3e399ce22604      root Falco MP-v2
252*8617a60dSAndroid Build Coastguard Worker# c788cee8c798669fe4822b7544dd3e399ce22604      root Falco-li MP-v2
253*8617a60dSAndroid Build Coastguard Worker# 952dd6852c11fd8b36b4fb88f3335ecae722e0e6      root Glimmer MP
254*8617a60dSAndroid Build Coastguard Worker# fc68bcb88bf9af1907289a9f377d658b3b9fe5b0      root Gnawty MP
255*8617a60dSAndroid Build Coastguard Worker# 4c5067795ddbbf100d19f9ba08928af1c1ef37c6      root Kiev MP
256*8617a60dSAndroid Build Coastguard Worker# 9c138273527db0a0797233e2345ee39e46c0df95      root Kiev PreMP
257*8617a60dSAndroid Build Coastguard Worker# c788cee8c798669fe4822b7544dd3e399ce22604      root Kip MP
258*8617a60dSAndroid Build Coastguard Worker# 154512de86cc1cc36a67d4225eb2fcc37dac1b7c      root Leon MP
259*8617a60dSAndroid Build Coastguard Worker# 7b5c520ceabce86f13e02b7ca363cfb509fc5b98      root Link MP
260*8617a60dSAndroid Build Coastguard Worker# 7b5c520ceabce86f13e02b7ca363cfb509fc5b98      root Link MP-v4
261*8617a60dSAndroid Build Coastguard Worker# e63058bf4b86b6fb1f148bc7acea9c71fe51675f      root Link Pre-MP
262*8617a60dSAndroid Build Coastguard Worker# 4e92f07efd4a920c4e4f1ed97cf47b7b04ee1428      root Lumpy MP
263*8617a60dSAndroid Build Coastguard Worker# 4e92f07efd4a920c4e4f1ed97cf47b7b04ee1428      root Lumpy MP-v3
264*8617a60dSAndroid Build Coastguard Worker# c9fc61f331b34e00a148e657bde5fb6b0b576c0a      root Lumpy PVT
265*8617a60dSAndroid Build Coastguard Worker# 541f467a7d8747f55ae9087ee4e34155f5ee3cd7      root Mario MP
266*8617a60dSAndroid Build Coastguard Worker# 541f467a7d8747f55ae9087ee4e34155f5ee3cd7      root Mario MP-v3
267*8617a60dSAndroid Build Coastguard Worker# fc68bcb88bf9af1907289a9f377d658b3b9fe5b0      root McCloud MP
268*8617a60dSAndroid Build Coastguard Worker# eec186f8a0cd6be2e9d86dc9ce284790739be202      root Monroe MP
269*8617a60dSAndroid Build Coastguard Worker# 3f54dd6a6e16128aec5c6c3052763388ae99d350      root Nyan PreMP
270*8617a60dSAndroid Build Coastguard Worker# fc68bcb88bf9af1907289a9f377d658b3b9fe5b0      root Nyan-Big MP
271*8617a60dSAndroid Build Coastguard Worker# c788cee8c798669fe4822b7544dd3e399ce22604      root Nyan-Blaze MP
272*8617a60dSAndroid Build Coastguard Worker# 758a59f4f911b63a1335223d761d2485313674c8      root Panther MP
273*8617a60dSAndroid Build Coastguard Worker# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root Parrot MP
274*8617a60dSAndroid Build Coastguard Worker# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root Parrot MP-v3
275*8617a60dSAndroid Build Coastguard Worker# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root Parrot-ivb MP-v3
276*8617a60dSAndroid Build Coastguard Worker# a026a7a4a0bf0fa32d6b7aa90a80d5ef01a3b799      root Peach-Pi MP
277*8617a60dSAndroid Build Coastguard Worker# a026a7a4a0bf0fa32d6b7aa90a80d5ef01a3b799      root Peach-Pit MP-v2
278*8617a60dSAndroid Build Coastguard Worker# fc68bcb88bf9af1907289a9f377d658b3b9fe5b0      root Peppy MP-v2
279*8617a60dSAndroid Build Coastguard Worker# 758a59f4f911b63a1335223d761d2485313674c8      root Quawks MP
280*8617a60dSAndroid Build Coastguard Worker# b3119b02f2b5371da5596b13d612facbca99b94f      root Rambi PreMP
281*8617a60dSAndroid Build Coastguard Worker# cb67b1bda9965eebae6c477abf557d2c13690c30      root Rowan PreMP
282*8617a60dSAndroid Build Coastguard Worker# cb8086a9c1cd26318fef9a9fb3f846ca12320737      root Samus PreMP
283*8617a60dSAndroid Build Coastguard Worker# a026a7a4a0bf0fa32d6b7aa90a80d5ef01a3b799      root Snow MP
284*8617a60dSAndroid Build Coastguard Worker# 758a59f4f911b63a1335223d761d2485313674c8      root Squawks MP
285*8617a60dSAndroid Build Coastguard Worker# 952dd6852c11fd8b36b4fb88f3335ecae722e0e6      root Stout MP
286*8617a60dSAndroid Build Coastguard Worker# 952dd6852c11fd8b36b4fb88f3335ecae722e0e6      root Stout MP-v3
287*8617a60dSAndroid Build Coastguard Worker# 4ec4ba0a746b37b1c6286ab807c2a5b1e7ab4ab0      root Stumpy MP
288*8617a60dSAndroid Build Coastguard Worker# 06939c65797eadfe6be1b3343a2e339800a34108      root Stumpy PVT
289*8617a60dSAndroid Build Coastguard Worker# 154512de86cc1cc36a67d4225eb2fcc37dac1b7c      root Swanky MP
290*8617a60dSAndroid Build Coastguard Worker# ed3dab48746de569513aa288439f86fe24cc3386      root Tricky MP
291*8617a60dSAndroid Build Coastguard Worker# 5915703fb47bf569d7a6b8726cb9a1bd159487b0      root Winky PreMP
292*8617a60dSAndroid Build Coastguard Worker# ed3dab48746de569513aa288439f86fe24cc3386      root Wolf MP
293*8617a60dSAndroid Build Coastguard Worker# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root ZGB MP
294*8617a60dSAndroid Build Coastguard Worker# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root ZGB MP-v3
295*8617a60dSAndroid Build Coastguard Worker# 9f59876c7f7dc881f02d934786c6b7c2c17dcaac      root ZGB-HE MP-v3
296*8617a60dSAndroid Build Coastguard Worker# c788cee8c798669fe4822b7544dd3e399ce22604      root Zako MP-v2
297*8617a60dSAndroid Build Coastguard Worker#
298*8617a60dSAndroid Build Coastguard Worker# Normal kernel keys
299*8617a60dSAndroid Build Coastguard Worker#
300*8617a60dSAndroid Build Coastguard Worker# d6170aa480136f1f29cf339a5ab1b960585fa444    normal developer keys
301*8617a60dSAndroid Build Coastguard Worker#
302*8617a60dSAndroid Build Coastguard Worker# af24e46b6c3805869616e71c002c9a2a847ad266    normal Alex MP
303*8617a60dSAndroid Build Coastguard Worker# af24e46b6c3805869616e71c002c9a2a847ad266    normal Alex MP-v4
304*8617a60dSAndroid Build Coastguard Worker# af24e46b6c3805869616e71c002c9a2a847ad266    normal Alex-HE MP-v4
305*8617a60dSAndroid Build Coastguard Worker# 6026d95d1f11e1b88c19a139effbb02660523904    normal Butterfly MP-v3
306*8617a60dSAndroid Build Coastguard Worker# 24fcff70ef3d834451384452bd9bc64c4d01c559    normal Butterfly Pre-MP
307*8617a60dSAndroid Build Coastguard Worker# d03ba05319cd77d0830b268804804f21fcb7672c    normal Clapper MP
308*8617a60dSAndroid Build Coastguard Worker# 0d96e14c31a405b28dd7c7d2e416bbf960bc9779    normal Daisy MP-v3
309*8617a60dSAndroid Build Coastguard Worker# da0bb5a3e2e80ebab0ac268ba2204ec360e9bb45    normal Daisy-Skate MP
310*8617a60dSAndroid Build Coastguard Worker# 94b5cfc5933e2f6294095820fa9eaf8162ca8021    normal Daisy-Spring MP-v2
311*8617a60dSAndroid Build Coastguard Worker# dd15b9458ffc5ecb8048dbc4ae5e7f480c9e1852    normal Duck PreMP
312*8617a60dSAndroid Build Coastguard Worker# d9ffc2514c179472b6c5553b8ed20237cdfef73e    normal Enguarde MP-v10
313*8617a60dSAndroid Build Coastguard Worker# bd99dc86506b9ebe3025e5af69a26decf607173d    normal Expresso MP-v10
314*8617a60dSAndroid Build Coastguard Worker# c5d935b69950c29b2d2bba7cecacd2859fb9afbd    normal Falco MP-v2
315*8617a60dSAndroid Build Coastguard Worker# c5d935b69950c29b2d2bba7cecacd2859fb9afbd    normal Falco-li MP-v2
316*8617a60dSAndroid Build Coastguard Worker# c6bc5788eb62701cdd69b309766fe2a49ead14d1    normal Glimmer MP
317*8617a60dSAndroid Build Coastguard Worker# 32778b8483e14e4570b582c34df065c5ee833a59    normal Gnawty MP
318*8617a60dSAndroid Build Coastguard Worker# f82f08a5953b688b078f465731f1077fdf0d97cf    normal Kiev MP
319*8617a60dSAndroid Build Coastguard Worker# b3ad5503fda8b06c74a000fed289006c97bf5600    normal Kip MP
320*8617a60dSAndroid Build Coastguard Worker# 933610d5c9926ec5540e180cda18c0395a853012    normal Leon MP
321*8617a60dSAndroid Build Coastguard Worker# d5927774fc14bb18a38c27fef47a36517a089d04    normal Link MP
322*8617a60dSAndroid Build Coastguard Worker# ad9e35dcd4287a3e27264ce49df6df40aaf2dcbb    normal Link MP-v4
323*8617a60dSAndroid Build Coastguard Worker# 7cb50f352af15f807f4bf3eaaede62d2f9c70d27    normal Link Pre-MP
324*8617a60dSAndroid Build Coastguard Worker# ad9e35dcd4287a3e27264ce49df6df40aaf2dcbb    normal Link-freon MP-v4
325*8617a60dSAndroid Build Coastguard Worker# cc887372ac2d1c415eac93fc11e753629c387358    normal Lumpy MP v2
326*8617a60dSAndroid Build Coastguard Worker# cc887372ac2d1c415eac93fc11e753629c387358    normal Lumpy MP-v3
327*8617a60dSAndroid Build Coastguard Worker# fa55cba16857a49270fb1561f87343c00959eb19    normal Lumpy PVT
328*8617a60dSAndroid Build Coastguard Worker# a1454fcecb98a6f33b38638564bdfc20161a7b04    normal Mario MP v2
329*8617a60dSAndroid Build Coastguard Worker# a1454fcecb98a6f33b38638564bdfc20161a7b04    normal Mario MP-v3
330*8617a60dSAndroid Build Coastguard Worker# 8848be24f4c34f064ae23c0450d27b62e558d2ed    normal McCloud MP
331*8617a60dSAndroid Build Coastguard Worker# ac65608a05976a904f4c6123953968cd1aa444ab    normal Monroe MP
332*8617a60dSAndroid Build Coastguard Worker# 78d388d49c494510d48cfa1650eacd45aa871da5    normal Nyan PreMP
333*8617a60dSAndroid Build Coastguard Worker# 71dd606970080aab093da2bbe91ca4348988175c    normal Nyan-Big MP
334*8617a60dSAndroid Build Coastguard Worker# c4c00693dd7b99fffc1b272641f769d0a2f19ef5    normal Nyan-Blaze MP
335*8617a60dSAndroid Build Coastguard Worker# 39f6088397ebfcc8fffbd933b4bcd8a0e74ba409    normal Panther MP
336*8617a60dSAndroid Build Coastguard Worker# 8975d168123d5cfc7cebf674627958445f0d2a52    normal Parrot MP v2
337*8617a60dSAndroid Build Coastguard Worker# e18e8ac7835390a71d2d70d02880694c6da9ac92    normal Parrot MP-v3
338*8617a60dSAndroid Build Coastguard Worker# e18e8ac7835390a71d2d70d02880694c6da9ac92    normal Parrot-ivb MP-v3
339*8617a60dSAndroid Build Coastguard Worker# ef469c6417138a8a371b51483d941a01453d27a3    normal Peach-Pi MP
340*8617a60dSAndroid Build Coastguard Worker# 2cf0eddab3a021044fc66fdca492c7899de5b7eb    normal Peach-Pit MP-v2
341*8617a60dSAndroid Build Coastguard Worker# 320e083d80e1a49d9c11cc0d8d055b050a92805a    normal Peppy MP-v2
342*8617a60dSAndroid Build Coastguard Worker# c65c3e3648eca66449ac9cdaf60edc2ba1b136e8    normal Quawks MP
343*8617a60dSAndroid Build Coastguard Worker# 037f4ed441ac39ca0a7fdd6c0829d4add9bf5f34    normal Rambi PreMP
344*8617a60dSAndroid Build Coastguard Worker# 3ca9ee2c112826aa89f0edf3cedcc5b65f250271    normal Rowan PreMP
345*8617a60dSAndroid Build Coastguard Worker# 989186f9aec3bced013d7f085c0f8caa07518e34    normal Samus PreMP
346*8617a60dSAndroid Build Coastguard Worker# c5120666c642f031e76edab8a2b45dd32232f80d    normal Snow MP v2
347*8617a60dSAndroid Build Coastguard Worker# 1cab1dedc34076b8887c9ebd4e6769eda6c41ed2    normal Squawks MP
348*8617a60dSAndroid Build Coastguard Worker# 09cb9b45c2cd4ca674861fe484aa758ba5568be0    normal Stout MP
349*8617a60dSAndroid Build Coastguard Worker# 47a82928807763a30956f40e4de0e68af2a17975    normal Stout MP-v3
350*8617a60dSAndroid Build Coastguard Worker# de0b76af3caa55a8e7aa34c805e4248ad03b18e7    normal Stumpy MP
351*8617a60dSAndroid Build Coastguard Worker# f7e48006982a0ad4a41c0ca6610f062adb0eec44    normal Stumpy MP v2
352*8617a60dSAndroid Build Coastguard Worker# 04dd63e835c979b57f87fd74e99af68e0cd39ad7    normal Stumpy PVT
353*8617a60dSAndroid Build Coastguard Worker# c321ed66f9b999598d39be7be3246bb25362740b    normal Swanky MP
354*8617a60dSAndroid Build Coastguard Worker# 5c626cd8a684e470e74d3ceaf518aae745fe15dc    normal Tegra2-Kaen PVT
355*8617a60dSAndroid Build Coastguard Worker# 09790fcb8c2b6732ec54bc406d34ec16c55992ba    normal Tricky MP
356*8617a60dSAndroid Build Coastguard Worker# 202bb448a3f269771cffe53c38d6f05b2d1329ae    normal Winky PreMP
357*8617a60dSAndroid Build Coastguard Worker# 7d4f5255af3552d8c8b40f60873d683268050015    normal Wolf MP
358*8617a60dSAndroid Build Coastguard Worker# 7b7ae8652775ad7305f565161b3acc00fcc8ea22    normal ZGB MP v2
359*8617a60dSAndroid Build Coastguard Worker# 7b7ae8652775ad7305f565161b3acc00fcc8ea22    normal ZGB MP-v3
360*8617a60dSAndroid Build Coastguard Worker# 7b7ae8652775ad7305f565161b3acc00fcc8ea22    normal ZGB-HE MP-v3
361*8617a60dSAndroid Build Coastguard Worker# f70f0373b60ea8e2c5df7a9afeb75726fe0c8eb3    normal Zako MP-v2
362*8617a60dSAndroid Build Coastguard Worker#
363*8617a60dSAndroid Build Coastguard Worker# Recovery kernel keys
364*8617a60dSAndroid Build Coastguard Worker#
365*8617a60dSAndroid Build Coastguard Worker# e78ce746a037837155388a1096212ded04fb86eb  recovery developer keys
366*8617a60dSAndroid Build Coastguard Worker#
367*8617a60dSAndroid Build Coastguard Worker# 03172b08f0b99172c73d947f51e8ca23d418bcbf  recovery Alex MP
368*8617a60dSAndroid Build Coastguard Worker# 03172b08f0b99172c73d947f51e8ca23d418bcbf  recovery Alex MP-v4
369*8617a60dSAndroid Build Coastguard Worker# 03172b08f0b99172c73d947f51e8ca23d418bcbf  recovery Alex-HE MP-v4
370*8617a60dSAndroid Build Coastguard Worker# c65d20649d35019a40642a4e2540b19587ee6458  recovery Butterfly MP-v3
371*8617a60dSAndroid Build Coastguard Worker# 934e38b44b11eb892d1edc32cb3ba87c558232d9  recovery Butterfly Pre-MP
372*8617a60dSAndroid Build Coastguard Worker# 889367bc86d0af857412a409f98e2ab9d798f887  recovery Clapper MP
373*8617a60dSAndroid Build Coastguard Worker# f32b5f6b6cfb6d77136ac0d8ed0cdf67e6df7b91  recovery Daisy MP-v3
374*8617a60dSAndroid Build Coastguard Worker# 66496dd27c44ae81cf0c41671b5af59a316969da  recovery Daisy-Skate MP
375*8617a60dSAndroid Build Coastguard Worker# a1f00935770234a434c4b14414c48866b1661e40  recovery Daisy-Spring MP-v2
376*8617a60dSAndroid Build Coastguard Worker# 9a04d0ea29b095c6c227b50d4bb75f431355dbb0  recovery Duck PreMP
377*8617a60dSAndroid Build Coastguard Worker# e30dc74a05de0d0e7522817f8d97f04f08ff6a8b  recovery Enguarde MP-v10
378*8617a60dSAndroid Build Coastguard Worker# 4e22acdedf89a3dbb6b9861b513e2121bd457a96  recovery Expresso MP-v10
379*8617a60dSAndroid Build Coastguard Worker# af1e6c23c3148d3261b5fc7c30860d89faeee7a6  recovery Falco MP-v2
380*8617a60dSAndroid Build Coastguard Worker# af1e6c23c3148d3261b5fc7c30860d89faeee7a6  recovery Falco-li MP-v2
381*8617a60dSAndroid Build Coastguard Worker# 45145bcfc866b5cc7d711d6451fd1272f55ba087  recovery Glimmer MP
382*8617a60dSAndroid Build Coastguard Worker# 377f89af74389c1d06876981bda3a7a591332f67  recovery Gnawty MP
383*8617a60dSAndroid Build Coastguard Worker# 10d73c2b24b35c0ea387babd72e9b242f2d79c9f  recovery Kiev MP
384*8617a60dSAndroid Build Coastguard Worker# 5dea047c25331a6b3ed0f40efa7e2b8b90676abf  recovery Kip MP
385*8617a60dSAndroid Build Coastguard Worker# 51a7f92ef6d727da9b0f0ebd8882a836db296e97  recovery Leon MP
386*8617a60dSAndroid Build Coastguard Worker# e8c4e66b00df5468e4d7ec9757347842cfd6c1da  recovery Link MP
387*8617a60dSAndroid Build Coastguard Worker# e8c4e66b00df5468e4d7ec9757347842cfd6c1da  recovery Link MP-v4
388*8617a60dSAndroid Build Coastguard Worker# 93e0ecffb36199071a3d995f6726770e799dcd0e  recovery Link Pre-MP
389*8617a60dSAndroid Build Coastguard Worker# e8c4e66b00df5468e4d7ec9757347842cfd6c1da  recovery Link-freon MP-v4
390*8617a60dSAndroid Build Coastguard Worker# 49d40533b0812d3f31232c5eedd47e7e11acc293  recovery Lumpy MP
391*8617a60dSAndroid Build Coastguard Worker# 49d40533b0812d3f31232c5eedd47e7e11acc293  recovery Lumpy MP-v3
392*8617a60dSAndroid Build Coastguard Worker# cb45bc04a932e4bcac41b44d31afd9516ca0fe24  recovery Lumpy PVT
393*8617a60dSAndroid Build Coastguard Worker# f6fadd7e31eebf4bcc4eb8d2dd512e3a2313627f  recovery Mario MP
394*8617a60dSAndroid Build Coastguard Worker# f6fadd7e31eebf4bcc4eb8d2dd512e3a2313627f  recovery Mario MP-v3
395*8617a60dSAndroid Build Coastguard Worker# 95b4a4abb2a55e7163824e36583c109c90a2e78d  recovery McCloud MP
396*8617a60dSAndroid Build Coastguard Worker# 5e2ca8bc287af2d94615e940ee17e9620d3191dd  recovery Monroe MP
397*8617a60dSAndroid Build Coastguard Worker# b914dc4800f6929d0c1ecea536dbff9ef618af26  recovery Nyan PreMP
398*8617a60dSAndroid Build Coastguard Worker# 9cdfb53d6ef4f4746de2dace828d1142c216a130  recovery Nyan-Big MP
399*8617a60dSAndroid Build Coastguard Worker# 934ce4a3a23316457727a500b7dce4e04b2f7147  recovery Nyan-Blaze MP
400*8617a60dSAndroid Build Coastguard Worker# ef1c9cdbf547acc397288cf58fd3ee274383abbb  recovery Panther MP
401*8617a60dSAndroid Build Coastguard Worker# cfa1a4a784a90cc7c1df6859fa226b89e6afbeb5  recovery Parrot MP
402*8617a60dSAndroid Build Coastguard Worker# cfa1a4a784a90cc7c1df6859fa226b89e6afbeb5  recovery Parrot MP-v3
403*8617a60dSAndroid Build Coastguard Worker# cfa1a4a784a90cc7c1df6859fa226b89e6afbeb5  recovery Parrot-ivb MP-v3
404*8617a60dSAndroid Build Coastguard Worker# 7cabfc4c72cb300399c8c490b39c1ce0c45b11c0  recovery Peach-Pi MP
405*8617a60dSAndroid Build Coastguard Worker# b39e9b9b12f3ab4fd1017e6c92d4ccff2723347d  recovery Peach-Pit MP-v2
406*8617a60dSAndroid Build Coastguard Worker# 74ec605d3525e24b7f7a4b633afd2ec048dc6d12  recovery Peppy MP-v2
407*8617a60dSAndroid Build Coastguard Worker# 315417a5d8a95b954f5f101acaef5b107136a418  recovery Quawks MP
408*8617a60dSAndroid Build Coastguard Worker# d0b7feba2bb53ecd8eda6602ccf6a0c25e5b001f  recovery Rambi PreMP
409*8617a60dSAndroid Build Coastguard Worker# 942e15e118dca77b75a668c8c814bf8d67b774b2  recovery Rowan PreMP
410*8617a60dSAndroid Build Coastguard Worker# 61cad57963dd64202cead8dcfc62aea76c9911c2  recovery Samus PreMP
411*8617a60dSAndroid Build Coastguard Worker# f32b5f6b6cfb6d77136ac0d8ed0cdf67e6df7b91  recovery Snow MP
412*8617a60dSAndroid Build Coastguard Worker# d45eb14119d14b5b1d4b259f177e32c522d27f99  recovery Squawks MP
413*8617a60dSAndroid Build Coastguard Worker# fa4497f70968a1820ceb0ac4364d8e9ec0abc0b2  recovery Stout MP
414*8617a60dSAndroid Build Coastguard Worker# fa4497f70968a1820ceb0ac4364d8e9ec0abc0b2  recovery Stout MP-v3
415*8617a60dSAndroid Build Coastguard Worker# 6f6d6df4e328633904990cf8c60baa18b8cf6fc7  recovery Stumpy MP
416*8617a60dSAndroid Build Coastguard Worker# 057a03c1526a1be7f42d29095c5a583231a75b35  recovery Stumpy PVT
417*8617a60dSAndroid Build Coastguard Worker# d56ac05587d7d45d681cb52d113fb5d95e787d1d  recovery Swanky MP
418*8617a60dSAndroid Build Coastguard Worker# de11a604715a920d7371ceefda75a5b1b062443f  recovery Tegra2-Kaen PVT
419*8617a60dSAndroid Build Coastguard Worker# 4fe89a587d09c9fb58e79b556014b833f64559fb  recovery Tricky MP
420*8617a60dSAndroid Build Coastguard Worker# 72bb00bb0c89d06569df2d9d2e8087e040bbbb8b  recovery Winky PreMP
421*8617a60dSAndroid Build Coastguard Worker# a01a2a2502fe8f6e3dc8100080b0e486bc0a3468  recovery Wolf MP
422*8617a60dSAndroid Build Coastguard Worker# 20f3e8b77da6577706c91feefb203f98ee20d479  recovery ZGB MP
423*8617a60dSAndroid Build Coastguard Worker# 20f3e8b77da6577706c91feefb203f98ee20d479  recovery ZGB MP-v3
424*8617a60dSAndroid Build Coastguard Worker# 20f3e8b77da6577706c91feefb203f98ee20d479  recovery ZGB-HE MP-v3
425*8617a60dSAndroid Build Coastguard Worker# 070611f0aa70b6887dd3c96b4086c13894ffa25f  recovery Zako MP-v2
426