1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4<!-- Generated by graphviz version 2.43.0 (0) 5 --> 6<!-- Title: %3 Pages: 1 --> 7<svg width="1567pt" height="434pt" 8 viewBox="0.00 0.00 1566.50 434.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 9<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 430)"> 10<title>%3</title> 11<polygon fill="white" stroke="transparent" points="-4,4 -4,-430 1562.5,-430 1562.5,4 -4,4"/> 12<g id="clust2" class="cluster"> 13<title>cluster_android</title> 14<polygon fill="none" stroke="black" points="319.5,-8 319.5,-166 1154.5,-166 1154.5,-8 319.5,-8"/> 15<text text-anchor="middle" x="737" y="-150.8" font-family="Times,serif" font-size="14.00">Android VM</text> 16</g> 17<g id="clust3" class="cluster"> 18<title>cluster_keymint</title> 19<polygon fill="none" stroke="black" stroke-dasharray="1,5" points="327.5,-16 327.5,-91 713.5,-91 713.5,-16 327.5,-16"/> 20<text text-anchor="middle" x="520.5" y="-75.8" font-family="Times,serif" font-size="14.00">One of:</text> 21</g> 22<!-- browser --> 23<g id="node1" class="node"> 24<title>browser</title> 25<ellipse fill="none" stroke="black" cx="1291.5" cy="-408" rx="40.09" ry="18"/> 26<text text-anchor="middle" x="1291.5" y="-404.3" font-family="Times,serif" font-size="14.00">Browser</text> 27</g> 28<!-- webRTC --> 29<g id="node6" class="node"> 30<title>webRTC</title> 31<ellipse fill="none" stroke="black" cx="1291.5" cy="-336" rx="42.49" ry="18"/> 32<text text-anchor="middle" x="1291.5" y="-332.3" font-family="Times,serif" font-size="14.00">webRTC</text> 33</g> 34<!-- browser->webRTC --> 35<g id="edge1" class="edge"> 36<title>browser->webRTC</title> 37<path fill="none" stroke="black" d="M1291.5,-389.7C1291.5,-381.98 1291.5,-372.71 1291.5,-364.11"/> 38<polygon fill="black" stroke="black" points="1295,-364.1 1291.5,-354.1 1288,-364.1 1295,-364.1"/> 39</g> 40<!-- confirmationui_sign --> 41<g id="node2" class="node"> 42<title>confirmationui_sign</title> 43<polygon fill="none" stroke="red" points="1085.5,-354 931.5,-354 931.5,-318 1085.5,-318 1085.5,-354"/> 44<text text-anchor="middle" x="1008.5" y="-332.3" font-family="Times,serif" font-size="14.00">internal/confui_sign.sock</text> 45</g> 46<!-- confirmationui_sign->webRTC --> 47<g id="edge10" class="edge"> 48<title>confirmationui_sign->webRTC</title> 49<path fill="none" stroke="red" d="M1095.81,-336C1143.44,-336 1191.08,-336 1238.71,-336"/> 50<polygon fill="red" stroke="red" points="1095.61,-332.5 1085.61,-336 1095.61,-339.5 1095.61,-332.5"/> 51<polygon fill="red" stroke="red" points="1238.87,-339.5 1248.87,-336 1238.87,-332.5 1238.87,-339.5"/> 52</g> 53<!-- run_cvd --> 54<g id="node3" class="node"> 55<title>run_cvd</title> 56<ellipse fill="none" stroke="black" cx="709.5" cy="-408" rx="39.79" ry="18"/> 57<text text-anchor="middle" x="709.5" y="-404.3" font-family="Times,serif" font-size="14.00">run_cvd</text> 58</g> 59<!-- secure_env --> 60<g id="node4" class="node"> 61<title>secure_env</title> 62<ellipse fill="none" stroke="black" stroke-width="2" cx="709.5" cy="-336" rx="57.39" ry="18"/> 63<text text-anchor="start" x="673.5" y="-333.3" font-family="Times,serif" font-size="14.00"> </text> 64<text text-anchor="start" x="677.5" y="-333.3" font-family="Times,serif" font-weight="bold" font-size="14.00">secure_env</text> 65<text text-anchor="start" x="741.5" y="-333.3" font-family="Times,serif" font-size="14.00"> </text> 66</g> 67<!-- run_cvd->secure_env --> 68<g id="edge2" class="edge"> 69<title>run_cvd->secure_env</title> 70<path fill="none" stroke="black" d="M709.5,-389.7C709.5,-381.98 709.5,-372.71 709.5,-364.11"/> 71<polygon fill="black" stroke="black" points="713,-364.1 709.5,-354.1 706,-364.1 713,-364.1"/> 72</g> 73<!-- secure_env->confirmationui_sign --> 74<g id="edge9" class="edge"> 75<title>secure_env->confirmationui_sign</title> 76<path fill="none" stroke="red" d="M777,-336C824.94,-336 872.89,-336 920.83,-336"/> 77<polygon fill="red" stroke="red" points="776.73,-332.5 766.73,-336 776.73,-339.5 776.73,-332.5"/> 78<polygon fill="red" stroke="red" points="921.06,-339.5 931.06,-336 921.06,-332.5 921.06,-339.5"/> 79</g> 80<!-- host_keymaster_in --> 81<g id="node7" class="node"> 82<title>host_keymaster_in</title> 83<polygon fill="none" stroke="blue" points="183,-282 0,-282 0,-246 183,-246 183,-282"/> 84<text text-anchor="middle" x="91.5" y="-260.3" font-family="Times,serif" font-size="14.00">internal/keymaster_fifo_vm.in</text> 85</g> 86<!-- secure_env->host_keymaster_in --> 87<g id="edge19" class="edge"> 88<title>secure_env->host_keymaster_in</title> 89<path fill="none" stroke="blue" d="M654.65,-330.55C561.89,-322.77 367.94,-305.39 193.27,-282.05"/> 90<polygon fill="blue" stroke="blue" points="193.5,-278.55 183.12,-280.69 192.56,-285.49 193.5,-278.55"/> 91</g> 92<!-- host_keymaster_out --> 93<g id="node8" class="node"> 94<title>host_keymaster_out</title> 95<polygon fill="none" stroke="blue" points="391.5,-282 201.5,-282 201.5,-246 391.5,-246 391.5,-282"/> 96<text text-anchor="middle" x="296.5" y="-260.3" font-family="Times,serif" font-size="14.00">internal/keymaster_fifo_vm.out</text> 97</g> 98<!-- secure_env->host_keymaster_out --> 99<g id="edge17" class="edge"> 100<title>secure_env->host_keymaster_out</title> 101<path fill="none" stroke="blue" d="M650.46,-324.99C582.95,-313.55 471.47,-294.66 391.65,-281.13"/> 102<polygon fill="blue" stroke="blue" points="650.06,-328.47 660.5,-326.7 651.23,-321.57 650.06,-328.47"/> 103</g> 104<!-- host_gatekeeper_in --> 105<g id="node9" class="node"> 106<title>host_gatekeeper_in</title> 107<polygon fill="none" stroke="green" points="595,-282 410,-282 410,-246 595,-246 595,-282"/> 108<text text-anchor="middle" x="502.5" y="-260.3" font-family="Times,serif" font-size="14.00">internal/gatekeeper_fifo_vm.in</text> 109</g> 110<!-- secure_env->host_gatekeeper_in --> 111<g id="edge13" class="edge"> 112<title>secure_env->host_gatekeeper_in</title> 113<path fill="none" stroke="green" d="M672.01,-322.32C641.56,-312.02 598.01,-297.3 562.68,-285.35"/> 114<polygon fill="green" stroke="green" points="563.54,-281.95 552.95,-282.06 561.3,-288.58 563.54,-281.95"/> 115</g> 116<!-- host_gatekeeper_out --> 117<g id="node10" class="node"> 118<title>host_gatekeeper_out</title> 119<polygon fill="none" stroke="green" points="805.5,-282 613.5,-282 613.5,-246 805.5,-246 805.5,-282"/> 120<text text-anchor="middle" x="709.5" y="-260.3" font-family="Times,serif" font-size="14.00">internal/gatekeeper_fifo_vm.out</text> 121</g> 122<!-- secure_env->host_gatekeeper_out --> 123<g id="edge11" class="edge"> 124<title>secure_env->host_gatekeeper_out</title> 125<path fill="none" stroke="green" d="M709.5,-307.67C709.5,-299.05 709.5,-289.79 709.5,-282.1"/> 126<polygon fill="green" stroke="green" points="706,-307.7 709.5,-317.7 713,-307.7 706,-307.7"/> 127</g> 128<!-- host_keymint_in --> 129<g id="node13" class="node"> 130<title>host_keymint_in</title> 131<polygon fill="none" stroke="blue" points="995.5,-282 823.5,-282 823.5,-246 995.5,-246 995.5,-282"/> 132<text text-anchor="middle" x="909.5" y="-260.3" font-family="Times,serif" font-size="14.00">internal/keymint_fifo_vm.in</text> 133</g> 134<!-- secure_env->host_keymint_in --> 135<g id="edge26" class="edge"> 136<title>secure_env->host_keymint_in</title> 137<path fill="none" stroke="blue" d="M746.18,-322.16C775.44,-311.92 816.97,-297.39 850.83,-285.54"/> 138<polygon fill="blue" stroke="blue" points="852.33,-288.72 860.61,-282.11 850.02,-282.11 852.33,-288.72"/> 139</g> 140<!-- host_keymint_out --> 141<g id="node14" class="node"> 142<title>host_keymint_out</title> 143<polygon fill="none" stroke="blue" points="1193,-282 1014,-282 1014,-246 1193,-246 1193,-282"/> 144<text text-anchor="middle" x="1103.5" y="-260.3" font-family="Times,serif" font-size="14.00">internal/keymint_fifo_vm.out</text> 145</g> 146<!-- secure_env->host_keymint_out --> 147<g id="edge24" class="edge"> 148<title>secure_env->host_keymint_out</title> 149<path fill="none" stroke="blue" d="M768.27,-324.56C833.18,-313.03 938.45,-294.32 1013.71,-280.95"/> 150<polygon fill="blue" stroke="blue" points="767.44,-321.15 758.21,-326.35 768.67,-328.04 767.44,-321.15"/> 151</g> 152<!-- vmm --> 153<g id="node5" class="node"> 154<title>vmm</title> 155<ellipse fill="none" stroke="black" cx="809.5" cy="-192" rx="64.19" ry="18"/> 156<text text-anchor="middle" x="809.5" y="-188.3" font-family="Times,serif" font-size="14.00">crosvm / qemu</text> 157</g> 158<!-- confirmationui_console --> 159<g id="node20" class="node"> 160<title>confirmationui_console</title> 161<polygon fill="none" stroke="red" points="1039.5,-135 969.5,-135 969.5,-99 1039.5,-99 1039.5,-135"/> 162<text text-anchor="middle" x="1004.5" y="-113.3" font-family="Times,serif" font-size="14.00">/dev/hvc8</text> 163</g> 164<!-- vmm->confirmationui_console --> 165<g id="edge7" class="edge"> 166<title>vmm->confirmationui_console</title> 167<path fill="none" stroke="red" d="M868.88,-177.74C881.45,-174.36 894.53,-170.42 906.5,-166 926.14,-158.74 947.09,-148.81 964.56,-139.85"/> 168<polygon fill="red" stroke="red" points="867.74,-174.42 858.95,-180.32 869.5,-181.19 867.74,-174.42"/> 169<polygon fill="red" stroke="red" points="966.62,-142.73 973.87,-135.01 963.39,-136.52 966.62,-142.73"/> 170</g> 171<!-- gatekeeper_console --> 172<g id="node21" class="node"> 173<title>gatekeeper_console</title> 174<polygon fill="none" stroke="green" points="897.5,-135 827.5,-135 827.5,-99 897.5,-99 897.5,-135"/> 175<text text-anchor="middle" x="862.5" y="-113.3" font-family="Times,serif" font-size="14.00">/dev/hvc4</text> 176</g> 177<!-- vmm->gatekeeper_console --> 178<g id="edge15" class="edge"> 179<title>vmm->gatekeeper_console</title> 180<path fill="none" stroke="green" d="M827.71,-165.92C833.02,-158.61 838.82,-150.62 844.13,-143.3"/> 181<polygon fill="green" stroke="green" points="824.84,-163.92 821.79,-174.07 830.5,-168.03 824.84,-163.92"/> 182<polygon fill="green" stroke="green" points="847.05,-145.24 850.09,-135.09 841.38,-141.13 847.05,-145.24"/> 183</g> 184<!-- keymaster_console --> 185<g id="node22" class="node"> 186<title>keymaster_console</title> 187<polygon fill="none" stroke="blue" points="792.5,-135 722.5,-135 722.5,-99 792.5,-99 792.5,-135"/> 188<text text-anchor="middle" x="757.5" y="-113.3" font-family="Times,serif" font-size="14.00">/dev/hvc3</text> 189</g> 190<!-- vmm->keymaster_console --> 191<g id="edge21" class="edge"> 192<title>vmm->keymaster_console</title> 193<path fill="none" stroke="blue" d="M791.63,-165.92C786.43,-158.61 780.74,-150.62 775.52,-143.3"/> 194<polygon fill="blue" stroke="blue" points="788.79,-167.95 797.44,-174.07 794.49,-163.89 788.79,-167.95"/> 195<polygon fill="blue" stroke="blue" points="778.33,-141.21 769.68,-135.09 772.63,-145.27 778.33,-141.21"/> 196</g> 197<!-- keymint_console --> 198<g id="node23" class="node"> 199<title>keymint_console</title> 200<polygon fill="none" stroke="blue" points="583,-135 506,-135 506,-99 583,-99 583,-135"/> 201<text text-anchor="middle" x="544.5" y="-113.3" font-family="Times,serif" font-size="14.00">/dev/hvc11</text> 202</g> 203<!-- vmm->keymint_console --> 204<g id="edge28" class="edge"> 205<title>vmm->keymint_console</title> 206<path fill="none" stroke="blue" d="M753.65,-176.68C740.47,-173.24 726.48,-169.53 713.5,-166 672.65,-154.88 626.42,-141.71 592.65,-131.98"/> 207<polygon fill="blue" stroke="blue" points="752.99,-180.12 763.54,-179.25 754.75,-173.35 752.99,-180.12"/> 208<polygon fill="blue" stroke="blue" points="593.61,-128.61 583.03,-129.2 591.67,-135.34 593.61,-128.61"/> 209</g> 210<!-- host_confirmationui_in --> 211<g id="node11" class="node"> 212<title>host_confirmationui_in</title> 213<polygon fill="none" stroke="red" points="1372,-282 1211,-282 1211,-246 1372,-246 1372,-282"/> 214<text text-anchor="middle" x="1291.5" y="-260.3" font-family="Times,serif" font-size="14.00">internal/confui_fifo_vm.in</text> 215</g> 216<!-- webRTC->host_confirmationui_in --> 217<g id="edge5" class="edge"> 218<title>webRTC->host_confirmationui_in</title> 219<path fill="none" stroke="red" d="M1291.5,-317.7C1291.5,-309.98 1291.5,-300.71 1291.5,-292.11"/> 220<polygon fill="red" stroke="red" points="1295,-292.1 1291.5,-282.1 1288,-292.1 1295,-292.1"/> 221</g> 222<!-- host_confirmationui_out --> 223<g id="node12" class="node"> 224<title>host_confirmationui_out</title> 225<polygon fill="none" stroke="red" points="1558.5,-282 1390.5,-282 1390.5,-246 1558.5,-246 1558.5,-282"/> 226<text text-anchor="middle" x="1474.5" y="-260.3" font-family="Times,serif" font-size="14.00">internal/confui_fifo_vm.out</text> 227</g> 228<!-- webRTC->host_confirmationui_out --> 229<g id="edge3" class="edge"> 230<title>webRTC->host_confirmationui_out</title> 231<path fill="none" stroke="red" d="M1331.57,-319.67C1360.65,-308.55 1400,-293.5 1430.05,-282"/> 232<polygon fill="red" stroke="red" points="1330.22,-316.44 1322.13,-323.28 1332.72,-322.98 1330.22,-316.44"/> 233</g> 234<!-- host_keymaster_in->vmm --> 235<g id="edge20" class="edge"> 236<title>host_keymaster_in->vmm</title> 237<path fill="none" stroke="blue" d="M183.11,-247.25C186.28,-246.81 189.41,-246.39 192.5,-246 388.69,-221.1 621.5,-204.62 737.01,-197.32"/> 238<polygon fill="blue" stroke="blue" points="737.38,-200.8 747.14,-196.68 736.94,-193.81 737.38,-200.8"/> 239</g> 240<!-- host_keymaster_out->vmm --> 241<g id="edge18" class="edge"> 242<title>host_keymaster_out->vmm</title> 243<path fill="none" stroke="blue" d="M402.02,-245.95C533.47,-226.91 674.52,-209.31 751.65,-199.94"/> 244<polygon fill="blue" stroke="blue" points="401.16,-242.54 391.77,-247.44 402.17,-249.47 401.16,-242.54"/> 245</g> 246<!-- host_gatekeeper_in->vmm --> 247<g id="edge14" class="edge"> 248<title>host_gatekeeper_in->vmm</title> 249<path fill="none" stroke="green" d="M577.21,-245.97C630.84,-233.74 702.08,-217.49 751.46,-206.23"/> 250<polygon fill="green" stroke="green" points="752.37,-209.62 761.34,-203.98 750.82,-202.79 752.37,-209.62"/> 251</g> 252<!-- host_gatekeeper_out->vmm --> 253<g id="edge12" class="edge"> 254<title>host_gatekeeper_out->vmm</title> 255<path fill="none" stroke="green" d="M742.22,-240.1C756.75,-229.92 773.51,-218.2 786.66,-208.99"/> 256<polygon fill="green" stroke="green" points="740.15,-237.27 733.96,-245.88 744.16,-243.01 740.15,-237.27"/> 257</g> 258<!-- host_confirmationui_in->vmm --> 259<g id="edge6" class="edge"> 260<title>host_confirmationui_in->vmm</title> 261<path fill="none" stroke="red" d="M1210.53,-247.34C1207.82,-246.88 1205.14,-246.43 1202.5,-246 1089.02,-227.52 956.35,-210.6 877.82,-201.06"/> 262<polygon fill="red" stroke="red" points="877.93,-197.55 867.58,-199.82 877.09,-204.5 877.93,-197.55"/> 263</g> 264<!-- host_confirmationui_out->vmm --> 265<g id="edge4" class="edge"> 266<title>host_confirmationui_out->vmm</title> 267<path fill="none" stroke="red" d="M1380.45,-245.92C1189.25,-220.04 974.89,-203.91 871.5,-196.94"/> 268<polygon fill="red" stroke="red" points="1380.02,-249.4 1390.4,-247.28 1380.97,-242.46 1380.02,-249.4"/> 269</g> 270<!-- host_keymint_in->vmm --> 271<g id="edge27" class="edge"> 272<title>host_keymint_in->vmm</title> 273<path fill="none" stroke="blue" d="M885.04,-245.88C871.73,-236.56 855.11,-224.93 840.86,-214.95"/> 274<polygon fill="blue" stroke="blue" points="842.54,-211.85 832.34,-208.99 838.52,-217.59 842.54,-211.85"/> 275</g> 276<!-- host_keymint_out->vmm --> 277<g id="edge25" class="edge"> 278<title>host_keymint_out->vmm</title> 279<path fill="none" stroke="blue" d="M1022.21,-243.64C969.06,-230.99 901.49,-214.9 856.94,-204.3"/> 280<polygon fill="blue" stroke="blue" points="1021.42,-247.05 1031.96,-245.97 1023.04,-240.24 1021.42,-247.05"/> 281</g> 282<!-- u_boot --> 283<g id="node15" class="node"> 284<title>u_boot</title> 285<ellipse fill="none" stroke="black" cx="757.5" cy="-42" rx="33.6" ry="18"/> 286<text text-anchor="middle" x="757.5" y="-38.3" font-family="Times,serif" font-size="14.00">u-boot</text> 287</g> 288<!-- confirmationui --> 289<g id="node16" class="node"> 290<title>confirmationui</title> 291<ellipse fill="none" stroke="red" cx="1058.5" cy="-42" rx="88.28" ry="18"/> 292<text text-anchor="middle" x="1058.5" y="-38.3" font-family="Times,serif" font-size="14.00">ConfirmationUI HAL</text> 293</g> 294<!-- gatekeeper --> 295<g id="node17" class="node"> 296<title>gatekeeper</title> 297<ellipse fill="none" stroke="green" cx="880.5" cy="-42" rx="71.49" ry="18"/> 298<text text-anchor="middle" x="880.5" y="-38.3" font-family="Times,serif" font-size="14.00">Gatekeeper HAL</text> 299</g> 300<!-- keymaster --> 301<g id="node18" class="node"> 302<title>keymaster</title> 303<ellipse fill="none" stroke="blue" cx="617.5" cy="-42" rx="88.28" ry="18"/> 304<text text-anchor="middle" x="617.5" y="-38.3" font-family="Times,serif" font-size="14.00">KeyMint (C++) HAL</text> 305</g> 306<!-- keymint --> 307<g id="node19" class="node"> 308<title>keymint</title> 309<ellipse fill="none" stroke="blue" cx="423.5" cy="-42" rx="87.99" ry="18"/> 310<text text-anchor="middle" x="423.5" y="-38.3" font-family="Times,serif" font-size="14.00">KeyMint (Rust) HAL</text> 311</g> 312<!-- confirmationui_console->confirmationui --> 313<g id="edge8" class="edge"> 314<title>confirmationui_console->confirmationui</title> 315<path fill="none" stroke="red" d="M1023.32,-90.56C1028.71,-83.27 1034.58,-75.33 1039.96,-68.06"/> 316<polygon fill="red" stroke="red" points="1020.43,-88.58 1017.3,-98.7 1026.06,-92.74 1020.43,-88.58"/> 317<polygon fill="red" stroke="red" points="1042.85,-70.04 1045.98,-59.92 1037.22,-65.88 1042.85,-70.04"/> 318</g> 319<!-- gatekeeper_console->gatekeeper --> 320<g id="edge16" class="edge"> 321<title>gatekeeper_console->gatekeeper</title> 322<path fill="none" stroke="green" d="M869.21,-88.79C870.72,-82.65 872.33,-76.13 873.84,-70"/> 323<polygon fill="green" stroke="green" points="865.76,-88.15 866.77,-98.7 872.56,-89.83 865.76,-88.15"/> 324<polygon fill="green" stroke="green" points="877.27,-70.72 876.26,-60.18 870.47,-69.05 877.27,-70.72"/> 325</g> 326<!-- keymaster_console->u_boot --> 327<g id="edge23" class="edge"> 328<title>keymaster_console->u_boot</title> 329<path fill="none" stroke="blue" d="M757.5,-88.49C757.5,-82.55 757.5,-76.27 757.5,-70.33"/> 330<polygon fill="blue" stroke="blue" points="754,-88.7 757.5,-98.7 761,-88.7 754,-88.7"/> 331<polygon fill="blue" stroke="blue" points="761,-70.18 757.5,-60.18 754,-70.18 761,-70.18"/> 332</g> 333<!-- keymaster_console->keymaster --> 334<g id="edge22" class="edge"> 335<title>keymaster_console->keymaster</title> 336<path fill="none" stroke="blue" d="M715.61,-94.18C713.54,-93.11 711.5,-92.04 709.5,-91 692.41,-82.09 673.53,-72.24 657.35,-63.8"/> 337<polygon fill="blue" stroke="blue" points="714.22,-97.41 724.71,-98.92 717.46,-91.2 714.22,-97.41"/> 338<polygon fill="blue" stroke="blue" points="658.65,-60.53 648.16,-59.01 655.41,-66.73 658.65,-60.53"/> 339</g> 340<!-- keymint_console->keymint --> 341<g id="edge29" class="edge"> 342<title>keymint_console->keymint</title> 343<path fill="none" stroke="blue" d="M507.41,-93.63C492.04,-84.35 474.28,-73.64 459.07,-64.46"/> 344<polygon fill="blue" stroke="blue" points="505.76,-96.72 516.13,-98.88 509.38,-90.72 505.76,-96.72"/> 345<polygon fill="blue" stroke="blue" points="460.82,-61.43 450.45,-59.26 457.2,-67.42 460.82,-61.43"/> 346</g> 347</g> 348</svg> 349