squashed commit: keys and lazybox

boot: add more known keys
lazybox: add ina sensor reader
master
cfig 3 months ago
parent c82f1d98c0
commit 66ed96e5cf
No known key found for this signature in database
GPG Key ID: B104C307F0FDABB7

@ -4,131 +4,285 @@
"algorithm" : "SHA256_RSA2048",
"pubk" : "AAAIAJHD1q2K7QEFh5MBfReSuk2oQ9vQLC1/kdSBfizd0iFTyNiVd57KUIjCzfN2uMJWiLtNUYa7gK+1TxMt8wkFZq61Mob563hmPl8FbNn2qb4+/g/DsaeZstuptD9L9pBVuIyUskl8hZ3GFO3Xn9BXW19NAhXYdi5qUxGsWsInRSqqASLxmV/zEQGFhhEVh9ZlCEyYukqaVaUunEDdkcAABRpcaT61QOww5QbZe8T8K/FgVxz1Mz4eF1plphSaah94TCG5Wc+RFeZ5QYATuBqsKPU7t9BAmnxXBbhAGiSkKUpI9Ln9N42MLvR9R+NBAiCZCoUOKPYBirqcyp48TZJiLuY4MgLbYr0mJ3OKgxUF6Q0MLPPrdKca/KagLkojDnshDTFmejPEWJS1b5snCI0lH3mr7HRVNfst4e8l4IfS5AxX2YLuAhWvjHql7Yvhdysy7toGZapQw6REjOgvleIUwI6QGBSHlr2PQ8zCgJFFk3dAo2EYuk3hjNEWRGkW8DB4l4ij2yMYI8w4vFVg5iacdfVL4lfgItQb6OYSJJZADOcCrHhqR+OWOLftyjFP/oSZC3T6I30F/PIBAb+i0FSm+np2yycv7T0GgxZQD3ESx1Vsm4QtXIy5E1ToLumXWUN2++yi30XM+wfqpargU0vNdG5pgWg2DR7SGcKjIkWqJ+LJ2B283A==",
"sha1" : "294dbb09016c013c57750edce0df0187409d56ce"
}, {
"device" : "GKI",
"manufacturer" : "google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAN3haYGQPHFa9yJAviIpp5Feoyn9fr9IEOXPfDzY+SzDr0drrCjO5gY59btYOt/RbVhiXRZK3uSwN3OSiQ98CtECYG9AxUu+3m7o0W+y/UiQkvbbLN+gnbZjiAqWWBIdT0RUTdIf98eMBdgzbdpbDn7uzmwDjLvCkrc/rsWcYYeD6VuS0qKiw/Bzm/8hp7lqqtW0fgn4Y7OBPXRfckyNExjkSvktZZKDFFKp/Xcio5coGLBqXc+1g0Lmo2osbx4bSP4cwJSxKtEeSfH51DLPSc8w+tba/8Jmp+j0KAf5jowNzRKyxyjxavzs0c0Us087MkHN4MaBeLIRH4twUtBRUVKNwacmC3vkFjgnVhpATzXHQa6OYQdV6I8Hu1GyKJ1mr85vEOroNB710Kr7r4Y6YhkW4TpYJQzQ0YZGVQXgp0q00qAQGa9BANrsBaPHFLfLMt/oxGWmIIEeJPKMJ20VTojJqC0XJp39Ujbn0UXC/5V9lU94BQYwog84FOVh2THwcMYsDFb/WlJkF6ERKDYjQwEcIPwR18E1oM3nBM3x5TJpeCV929gxBKYVdf3uoPwiq/tJmM6m+HcHrqjnwN17i1SyG54Hg5rXRQG98Zx+jh4mam1j6dD9dnm0UYNbU24Bca5QhfSR9gwTXxj+9owvyNhKFF41/LcEeaIl+4W0azzj0Mcpf45+UlP0vG5mxKpzlasQthS8m6nPdkYrKrSTClWueuZRhiW0lnPF7PCj8n9jccJ2xYoqcdKRja3hQuBp5u6cRjZi0ACimdTwAMjw7IVkyNlJsTEHPCcQCMknWp5sncJtqady+BbO4W4AfGqSdi6zEZQc3bP5QdQsrnT3rocNHoX3gNwh+hDaED5Rj3MzPXFclb0xfLf1yMSIVuGCePKAcOqwlVbQIeoo2yfHPWX02EvS1JbBrkBCAJ6HRw3e5t/JQXm+faSBaTWGrSBwqaG/ykXgEDzjdeTsGnVr5g9vazd3Z3Lr6F7HqTIYvMZ+ovkIwiBC6dapTX0Ow35m+NjYSTUd15igmaqxjxq4zq2wxE5T5DQhF5ria8cp+0AJhWkfl35oxPWPnLworlDjvu2BdEb0RtfkHM8/po1BBlHzYqqTyV1NqkQq9nO6gVCyGW/X8XufeXKg1CDUiGfjn3IhIIXVcmjW4NxAgdCZdAjGNqIyaYR/LOksw0uaB1IFh0VQNjj300LOXUbJMXdaxzx1sQpw+nFSNYtTX6Uck/XfeBJDSiae5kbVQcey0hhbj1CDWT/u05hVvtxbmmcqVcS+pXk3wjJ/nnWJNga+DYtzK678/u9Fcj0dC+fsWXlEgRen9i4hDynaB7nkOFsnrweA014TLwuSSOmdEDnO0NMnxeQH",
"sha1" : "144820003f9d46c96e9090dcf0e4feb84ca84810"
}, {
},
{
"device" : "Pixel 3",
"manufacturer" : "google",
"algorithm" : "SHA256_RSA2048",
"pubk" : "AAAIAH0QbcWadnydcrOvnaY8DvH/VQVZ4o2h/uUahVy2SY+E8krdSWU9Wcg0CZl/AvHPPL2rD1i6KoLDzqgS9cyybSJYH2LA+J7MIlBTV7+z0tMT+rYT7NkxcC+5AZjkQsmL+fbS1q0VIEtCM/ugPnOY1Imympq3rOxrGee8I/bNm5GxCT//2xUIjQn5D/1oQ6eCtBGBMgY4B2/r6ooUM8Dhp+xiuwxSs6iEoZuh5Ba/xWh6neRe7AHT54axGdXz50B8aQx3DXlvVjuz8LA9aUrlD9o6qYftNgg4hfaKPx5Vi0zw4teIL86F6Plte1F7HDgyjPDxYyAKsEk+PJPGexGJHeEPg3bzgRR3+ss18VcmMgL9Dk2afbuf2VANcxfNA5J7e4J3YGapPwILLMLlojIACk0b1gBclH1hffkQZ4O/SYC0AGsMJDI45kauUWJmYglONmqxgh+rDI5xQP1KiDkRDtBWjocGcf7mHlxvI0E7X+oK7V+cEFEbAK5sEvSs4QDGlb+bjFS+WRYpodO/HzF5M0Cinbn7izvek3uP+LMogj6ELEnZqe9u7ubmgKv/BIhQY/RiRx0goLkwXzVwaAp7y6vh/Vi6YB2pzR6IiItRCkoPK6U1xnVJY/oElv0icqDA2ynXbxZcc6D6OXqTcueKEmeuSGe7jan0y4oDnMLd3k5MaYn5iQ==",
"sha1" : "ad8569837cc06521720a35357475f87283b59234"
}, {
},
{
"device" : "Pixel 4",
"manufacturer" : "google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQANeIn3+J2UI8Yc4LIB5gWoLlw4d/OHXZv0M5zfchR9JB/RNaGhW1ffN4AgsdQJ4vLBSdf4i5QNlzMTC7sQ5eFjKCGrAp20cht69eDM94UTmTEizWDTH3tGRNL0Z7qyQUA4p21QY0GCcsMYt/r3XY6OSpbSz9iqu6bByX6u1mZzv/Tbd4C5SyA8hHHuTth6/PqAUhKvkfzg8MhVfGYx2hVTvZlun5jnXJyZXX4tqbzE2hZbpSSdTG2LvvJ9fBCuqeTs9UQTVaRZsp07l4OKReIlHDZrcyt01Gq+HrvWtpnX8JxgBLSMtO88BAfS8sgTQjtE/OC5jcRbrr7b7WYVpwUjeUa5hxgEnMJbcWn3fE2RxWWTQUFJM99UTUuSQm6xygc2u7cBcphdnQdqHyrT+DL6WQHFxGo9wbhXuq4MChvOsilqyWmml3tjUYlfv8CqP88ltb56bFD3Igk1cyaLrIE01sPs7tdfrKQf8t4ljW6cAPSwf16VKKCR5dBx250S5ru76+dqdVk3h2XY3eAp2EjiSSSfFVW+ZyOy22+4b10pZCe1ruqdc6sUE0Y4QzgRGBy6Ek9MjXEijVjc+5X9ALS8ED6N0cgmWaclk/cw8AHQKCcBP3HlnccjK4dQXBOw97YolYSYNJFWljJUpm69TgFfyf2RyWeN2kCHqzRBDS105UOsjfgUf9yf8ubHKFITlyqhvMzl6dCBfUDgQgcMFccnMxXPEZy3g24m/kjyB9WiBI2KBn6SbC4BkiAOqjLB9f/pb1nn/6aILeY+iqirs77ucWkMz/H3Xlk5lCNos57g70r5gCBtjnTbWMFHs1m6X43v9iOsr3I4zPq4/QdEwpXnz9gBLz63n+kR/IT54ugiliYMdFRSyrTNyGd1L2mCczdxk5AapxVVZTQHdl3bMU1/Mu1YjGLh1F/ipug35VvlIfL+Y1Wded3vdFB0DAciG/8m0na6mQyfHYxEurt4Fq4ifkxMOP2NVh5CXOHCSbnHyqTDj5XvMT6fcnEEHE+Z25ALC4GI4kkHsMfoejdINmiJePTYDjCSgSBAoFCCul0HVeTH/VUBMotlf3LPhRuWGWuT3/Tk/yIR0JASSeCc03YUR0lsf1rCZEyWhPc1n1e6Rwlp8fCEa3J/Q7i/pHNXSWE5EJKlU8Jm4VH8J/oetSa+7NKgCeSUFtBcg00zg2YBfuam/dd53LM1FyJYRWV4ONWpL3Mhxi0TuSVb9j3BJL7R56wiMuuq/tVgsNzujhWdezYVo1oZTJrFj6LLdK4DHD51BK3erc62FlSGw7vcHFRVhgE8y6EJFcqKTVBhqJ0Qmr6XgTBA12BKArAjs4QG5/AwrDrImDqrB7udkAutzx2vHQ2ytR",
"sha1" : "8c44014b96f0f41f3daa3825d4af410233372b65"
}, {
},
{
"device" : "Pixel 5",
"manufacturer" : "google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAJQ75c2T8qdhsNTAlO37M/QNDoIIS7jUkIqOINM+UygqTj8/BVbIih31wOT7oglvXR+3baLR90iAqrTCBhhMrWPw6cdFE5IrpIho+4y7heWCc8VCkR4MBsygEHuseYtB0WJegHnI3YxNOx9HyDo3HuWFkYx8VNlOSNCep6Ce2Xbn1BYjOTIUeWOzee0UY0lLCyriFAf6YkLDmplI1jYBWs4R0TANTJQlMzOThratZXW39IDLuCmlX6r0Wg5ljT25tb767ZG2NHUTQJoLHV95iOyUwuKZa/hvUOmOM0JGVDcVXpzwUX0HN2Q5i4LBulxtQVFrol5yHO1jbK+el76FMhlgZHjEto6peUmZodwLzXybAgbakK3vF8V91DOy0dnkbyHiejzgMhPCCat6wNjhtYs0EMsOtS+WOzxdxFUZMp+gPQrT3f+5HTBkfpTNHdvhiyxZsM+Xqyi4O5OX8LSszWMEviq67OkQawgc9tbsNX6tCc0gH9EiYro/ecOcI/JA5yfJce5gJlIUvavgFzsi9DFQqHcnVevd/C0D6CderCwv5QuGqGfSkt3FJv6ITmFAG7IhYU4Y9A/OkLInZChiQ4nxL+c63K1dVFmNidwQpFwo0+49hvZ9VJ5HsL6px7Z167VAVOkReFjBbqOPYAeq0Xy3wZoCxQapuqxO+VUtR4H5S6xw+ygZzGpXfJJA0BNIdxsOEO3DRlv1lx4Sa6efHYBhodtelrayF19izHpHHRifFMwQgDz1mOU9AcM4cvpqYKIhFaH9d6wRMsBif0L+rT1LJh691bfLR5P5EyPhrb28+1/agYI6EIt83Aaz3d9SnamqAqyGR2E86o8HXGo8x5NAPdp7UM1yt7rOyhNwcG+dVj535XsS2hzHsaUn+PWWanLF/bSuoOYwCbLf22eCmE08uCZW2JHJdzRCwMXy3ZSGbYxOCfaMcaHOpl//4KcHZNBd4j07ODKXiE8rueB/hfMx2NMmxpkeCIf1dxQsFgnC3iHtixgMVRkxuQTAh7ePOu9yEgj17ImTFOVLm1BaBBnd7dDdg7bgiOMloH8+1HvPWerDnz8ghLE044nz73NSsixKvEAm8wAeWbbG8/uOjCsi5opYh1oBgdjUTQEjsu8CApbvjrh8//f8/46n+/SJgBB0AJKY+F9pRk0p2duX2a1R/zbpM4Fa06qjvwRycyGw8A4gdmwFt7189dYjYAukPoQ4qONJn7BXQMFM2EhNLOUyfdz8SmekEL5d9NVG2UB0m9mYdYCbwgPvCZQAsqH3i2pNslx/9GbRS59Q6dSqsDDk2TSFst/2biBiAyl7glFoN/bggoGESxPc3t43Mi/O/ym3l1qd7oQGav7wZL0J8iZ/I575",
"sha1" : "6908461c2ccd5568d1f39016a9da5aec5b10a785"
}, {
},
{
"device" : "Pixel 5a",
"manufacturer" : "google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAP2EZ6+lhRYjp4cE4WW11okXlC20K5OJWj7iX0bmAGcmPMtWNJt3Jq/w+5ZvfRMa5xy3CMZeJICV1XeD7R/Pwcs9Wadd+DR+Lsai209qJiuMv6R4Y+eF+EacD7NunRpDdaDGnTxdaWJUbYDSFDrwLO1PHBavewd3ujVCmuh1zaQ2CW3Y1lo0UvmO0tISRr4yvR5Ia+zaufQ0TtmlWwX6se7jJ0/ap9Z4wQYJS9R8WDRqV+XX9QUDuOU/w6TI4hB9oYDjiysCtzJe9zibK6jSNq1/3CfOm4GuaCLQEJseoqgsNh25MkTqg4rmmPsk+5Kcylr2gDFRmu4NOJ/sCRIVDXkigrz2WDaB3UaBTN/JZMjuFvxk6LAQSURE4oFuljzfTvnp2bIYbqZ8NUTHuzhEDwelj0eChAkW9hQ85OBTs23lJmAYQxJ+WqYixrB1lpmgz7MUzc/2PJBXLh96FdLJcU2jCzCfrAAepELWsutPfVcE8rOFAdrAF6PPeHUN87pfrbGZx/oj1Nkf0kOic77dqHERqWw//7WngbzHPahjyX33OheZK+xK5tzx2EUX09yXMK84d25UipJuHQ0SsBMM3EmI1b9U2IDEHfhIg5QpJFO5xF1DQyLTu5lG9mAqJcGAjnIt47Jkv3s5i6zBlmXWJJicgnnbDjN7sn/w4LiZY2Uu8ZSwsSobI5EDG5vIdD7NlueFB5zDoqhm19eG2z/QfywOdFlgsfYPDmg1JikeWnpDb3Yy5xPb1ua5TFYItduid0aM+VkoL/KbPt2oVgh4O2uZTFebUHMMCnyGw2zwfjeh4xrD9mD5xWdcjo3KYB1nuv/GtkNEDXpsUxIII4E3ipjfnNHJBz0UPlYnuxDB34KpvHoa/GG8wEWJCDcL0dZX5/KaaiTHwlypWUXnSi3rlm+qcMivO14f8LFmmabMEetiA2YIVqtIXB4MCIYKYr5aF6879LpHA2bFI/LXyGf6pL0tM1CAiQXZwNc+WHC24ujCngT/QD2nRdqWDKuwycG/DtRJVnn+Z5WVD28PZotv/6ODT/4f1OLgM9ufq38Vm2SETZNYCZr4Zcn5bgR7ObqyTnD+vCcpfTDifVp8xPlHT1iY7gdb0gSV8ZIIXpcxUB0kBpM6jO2HJST9hVOBQfMo3V5xjBJYkFwcrCI0bC58zf344C145YuUKchByC5NCkJXHe7YcD9Hut2fIxcZqO08w5XDgJucfS6hMOaspt7XhibxwsE/xF33pgqRz9kFOJ6DnjhGbvbWo3VfNpGdeBfu8vmSpNKI3plaxImWEaK360KHCBVgwqLrhoIgf91FdT6MSO7gGVOHbB+o41UZ8mjE71yrIWA4Opp4/qpVUJhVR0aR6z8d",
"sha1" : "14e3fd68feb4fe7c9837787ed218d083050574da"
}, {
},
{
"device" : "Pixel 6",
"manufacturer" : "google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAPzSq6nF6uIU7cpTp90ATW+SFDH+L1Rv8NBew/USm5nNdFNhm+HXbWwz6cADn/dtUEd+eksUc6uxisT4EwziErAMbgYyN81+W1ndYFhp4zU1C0YhlS+LnlPxY+rNPmShpFvMIvMCH8GK24tO50FjjTBZrz5kwGfJt0kF7jQwZKQr6e3PMaKYZH11jeAdasEoxwsMjX31U74N8T4r92H8caaLzGJm2qaXn2Nec1HIWwUn7GSigG9yDf6RSzlc6PhKYZvcNG8AmiqghBxuN9HrBc4zo5z2IIm0+W2zxzoPkoRQrKR5LLRoBAifw9zO/xTiiuz/LcDjOesFrdk/vWKH1BJN3bx2etaH7qpqqQo3gjfc//VBZrZu1GelxL1KBNYQ+somh1NGUUKm3WDHtDBzMOrCph4zUyKLU5sqQIzVaqk3mjD4QpLM3nhsuZfheSDEFv38fmX34w0Y34bdogOqM7qsWOAEkxX4SugVrEakxuNoTDaXi765vxnrXcsgyWaalMZpsNra9AJujXATlfvBSRLqd/++B83voe41rnCLJUR3TRIy5PQiE7Zvpv2HZn0ix7EVg0ZRVRKBjubcAVFrtD8pXStqA5v6Jt4sy4g8QKHecgmKj3oad37ubWFDEQIRiEYceAA1xYRwCbMrJoFaBysNUuYp4a68FeZiRqbIg5pxC8LXZ5WfbGOcq4xzXkqk327J/1UxdTLvQT/HKkcefRPbrCh7yEFYSn+XCNCx+w+/GdYyKJ6X3sYPP6Ko4R2O+N7FC7SPfn7qfl9yIOeRcvX6EHaXXMfA4PG8EW7dNZvPXa5Sp1g79w2aFEIRWolj6czvgPfC0fHvflFrd60t1K9WiqxvcQFG5spOUrhqltobGjHo6FS7ohWiX5sE9mJxUZap7AR7avAkAWibFBSyv59uxt4KzXZGqsZJw2vuEWeImXAIc14xSkLLJgeoI0ZIfxqrs+sctno4HMwr7tdzMKpTS8Ni/sJSVplmSzdTJ01V74uDLC7VreL+rjXvYLcBV9363/knhX0Os+O01aTSVwGsYBbKwpEuiqonS4yNs5G2NydQvHoDaXUNAzztMd/UmC4WHZOV+vM/daqXAniafJx3lXi+Zgxw3nl/vU2mgNNek2U1Y5xmefhKjBwVhqmIzZY4Lab6Cobs7sEmXrwOe+578PjnFzzs0MDEaJd6vJExVOe5pLvWhUk4vBFb0eK8JcbY65rXWfOJhm0DKlMd7yIidIQaYK0drCNhCM4Fr33YJmQcFBo2QgLsmESnayMJgmPU/KhK3BwZU0OdUJbsGupzvoJIGdnFrp+0oTxO/X4Mr5ArUmoMSFx+rq6x0sMBJNt/kxvvFKcETHN9oRn15V8pRpDl",
"sha1" : "85322346680a860c091fa14a64cef1fe4a3ffe31"
}, {
},
{
"device" : "Pixel 6pro",
"manufacturer" : "google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAAw4tB+0tXQVo8gxwKDukkqG5UfUBSsSy/Y46e/wBitpPv6EwpFsTzg8Jw+Xlgw1wXDJPk0nWnAWk2CrxI//64nVRiOMYquuL4PlUyB0JHkeDH9+2EH6YsOZABRUHkj8KvKovqFWxjXyS7pGbFTYxrZn2f04A1GfYJK9sG0TvW2CvuJs2/MgflXLie4N8V1hpjiuP5Qsu7xEzh/uJrzWDBKLEdgC8FjkxufHK366KaYqfrUuuX/bgQpO5MfzynFaf+PysG3YR2+JN2rnd4hpgqFt73qILm8EQ6Ls4gWijloA6M+MV4QW+jMtKjKhBCNITPLSjZx/0GgZNN5MS2/7kq4dNgmjBCP5qFL8V1xa+r1sdDG2WA3n5uEnW4WxddHgrTVg0F6owpHyaQ28uyNFRwKbUK5td7rS5RDFOS4f3Qpy9Gp0VAFXVylxUtpzJqU8e4UkgfdXDgOVcZrH80NtGasEKgZjvuvTVxv4WBVsyOqIxwv/rpMKm/zNUXxRLeX57UFRfhHTXi/Oyjz+ImGFeMSuv3vS3tIE1bH89sKDL9u6KshjqClK5Gv0p47XSSMaHzh2WDG7SM4Lf3zuqwOv1v1iN2QECaYeBDRuroMItmpqftP4D09p3SylEnK8DeJ8MHPFJHbjfMCo0S1GIs6maKNycYKr2SBKPGnjFaPpFqPLIXY4IU5bEKur+soemPDVylpRL2wV4UnUdhMgQAaESRTNqln4rIyNUCZRJPROshq5F4R8dX7Iy+XIb1B1ctI/njVNP+87qirrJmol71qnRPRSJ02SXUb48/cAjXVKqb678/9MoTwjW/t0XXDWPWJFnXC/zc0gATFz8oZdLtnizCkjeXZkkM4v916lvcQ2Zha2GXT2ZC11NU/K20rYjgtyRg2RT3MRfgwtwymjGMl3lI4PG4m0DL63foVpBvG6TDnIp2FJXbBoBZLfaSquP1A8Yqr0fcMfRPeWiTCfCiKIaXVN09SAsJA/ZB+VjeC3hX5hO/PMDfYBzgaJFOCfpLCqaEVZi0MKPgFoXcCc+wyIt2aW5LyplUEB7DS4BKnckZM1SP6MJZfBBalEcpbsB0g2koZHBDtC6I0C0F7pEJedATUCG8jHNha8wOTKZf2+I/nvJP7UMER+kjADHuyqr6TFvSbch3H7zOqT+oVPaxTqLA8tQ45cTNjeGPLb4CghfHrvKqDqQDkpF+w0zBLFbrzs0Ab3OKfaF7nhVPn7Qp/g41pF3Xo7pv/HVXwIL6WnbQhyJmQsdxFnVjndzFzkNwoL+it2v/cBXhAFbacm385E44DEZNTSehxgofGn5Y4ShVeVd2t3hC167vpBMsyxf9ilvn0jYeA8CTK7+ec2H0jrCBNyBxY5",
"sha1" : "5f9cdcb2a3e84c93eb031529eb7b3a05b1887861"
}, {
},
{
"device" : "Xiaomi Phone",
"manufacturer" : "Mi",
"algorithm" : "SHA256_RSA2048",
"pubk" : "AAAIAN3C1onuaVOoEOIIpxRB4slj0xuKT7t2yrvDzvHQhOAlM8vz+rnR//6imJ+ET07/dMvAE893FM5LnFQLNcUJ+FYIGjbYdzFCVSYErfVTq96e37/sxVT86Zuz392q8OBkY4UFzpNdwwzWq6J+0tAsEyu778ECITiPceTJgol7IxzjIljHccK3ffP9dQf1FziB6BBTOQBKj26J2KCqtSmXM3Kk4GeV0wdCMZUUcuWXGrt0UjmrD+xHa8jSj9+YRb7BWe+RfYCXtqrAaree/Q24GAm4nSznDjfSH4T50JiNBkaeOf9YZwQlh67JtFZbueUP5prlQ3eXmubddodnA0LdDkOJooBHvMZAM/73+AWtsf145vMRUdtuvj5Dp9shR+kHaBoB78kQ2vUcrT7eetQynrH1TtwpXzXqAfzHRfv1tw2icvPnjFYV7m3njNcrb05Bx/oMvqKzrx99kCZEWuVm8un3gC/ucW9cXkAB+onTQnfJbeS5XcbEPcZkuQ0b7BepCScYnMrlOMSClYYl8OPNK576YRa2KQxdWEbdukihNIhaZhBN/tqdszA2w2960rO70ektljBVPP6m2jcT5iV0spMiers5KtqZ8cy++Urhvg0mWiuPcnue4L7W59lf9bJVlkaFrBfOHvxMdgmmrHCgZd9278zJrYDgFK17kojwSqqqwCkoFQ==",
"sha1" : "b2a02f1e56e366d727a1a8e089762fe0b91bbc84"
}, {
},
{
"device" : "Pixel 7",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAMzK1QHt1hQ63M2PaUFnvsCGwotv+i4QQuvHzwm+KydVQZZCmn9+7HpKsarbzo57sVelHojqQeTOvhGBF4DzztUx+IWIX4gor49MMgcnossbbMXf55Kkl/TXTSeWdwoxE4TLYUK3EYMr8xKY3vrraXD/mjUCmMv/hPDWqgLMt0HPX8kRCE8b4yTUQQgndgxioKAjfLY9gTIPb6Wl7RUF4cRgnvVthY+YhBpituQWGvBv47SFbDCtUK7F/aPlhhiXW2X01sh9HDbG0Z8mmTblUXFfcOVWYRm0kUPG3WunuAWVIqcxJ5Zy0NlbQkoC4LnPtjkVO7bEZ9/olJ9MiJPonuHg/baAHYxEl3TzQBDMNd/kVEG7y+0lyi9SABE/d5bdiWdEVi8Dg5J52phyK8bxV+qhXKVlYfN1EljWCCChLEbKa1zZ77eWbO4LN+UBo5wX3roAws2ATvcSUHCzhKFQSACV4X7QJSRFWIK+oY2/YmEkLYoIlD2e2smyZXw9is6eLb2+d+4LaNOG2BhvYRohsAO/Raei5dHQ/kKslL74txt6zJ/BucDrOdyyQNCpfuGA8dAcHFOnUXoDHLjGHBCHygEffbw+g24TlAj2MhIfnhOvdN6j8U8+7Dah9nBAhvtt+fPzsce01Wm/kQdtdqIbHo0EAURjLjaeKxyOPeRSKJY2ZJHU/zJp/FYnCQoeNA56zpHloYEMutNk9sLk7i2RbafnmKNA6G0sOMig1C6tYUoqlgUsQuT6s+iOpI0J0wykO91PW6kUYXXuf2yiuaZr7HJpm4DUX5qaAvK5cfdgxKHpxdkVODfImZh7XD3zNjdLVmiaVbzZNJmQpNnD1pXbYB4345xxAUDlFw7/2F3VFGiOpOGAukAXGXS4yxKqHxentAEZZU6E2Eaz58ajLAYd5tlSj5/IkVXJHGlw/Y0kja0UEBk3L3B9OFQYoMXBtdp6RwZQV5qtBkurYcDY/cvwYVZRWHA2AA0T1k6nGz1ZOnDV0fQeUgjnJB4u152wMSE+O1dHDR2hupNpYoDVQOZSpW+9z4qXR+FCL46zoTf2mMgqj3BM1b1gKQx1M43vzRACYpK3UsacVlZv090hpa9KVb9jKXriyp0irRKFt3rqbHEb/uqJC82yxerjKDoKIR1RS6T/P63p5GOZcKKdLeoBSk8Klr94sHa0LMfLSKzXgEveOxvqjyACAV+PZxE/Fe5VUfYt1sxGUEdcRoW54Z7TVioKwPKK+pByvX0y8GXstvuCJgdQawCUeI1JxzZL3V57uhK81Pc8EbsCDxglXqvFnaXvNs5NU20Arg7m2rHmC661CAgv3ScDA3pCdYXM2wj0byKXi6svW9pAj6ApS/pMtIWGhfUq",
"sha1" : "572d31e590179862f896f8d71b93a39e93403d5f"
}, {
},
{
"device" : "Pixel 7 vbmeta_system key",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAICxQRO/pQoucxxDsEeJDQkujdIIQtUDgRYJzkeF01P3gXqtv1sk7OPpoAj38qz0UkXwp7DV8TpxnimbwoDCD/tukWeFskGTgSYWIDiRAGAAsmuwpFVYogAwoHYxZsQYo6KFsWaiO4kIauilr5yu8GjwmhOy5Loz1+89fuEAA8imhxMN+SqlAMTZ+nFuPj2OiS+QkffhK2Vc2gU7lJgJArGi3ChHuVAWkf58HsT/nyf4IxEsKpiv59TcN16eYENyWZzRRXO0uqHQktzQRs3AvuWZYm1W8AHO4rNRPwK9DlC7WofDZh8hnBOPXDNna5yBiWAwDTgLL8NX5nI538BiOAGYtcnTsDqa/dgKXtGjqt4BYv2EEb0JmhczqDpwpwF1HjyaF8iokvPgk2E7I5FwY0wSr7QRJhTDsnVUlETDZAnc9AvmlWwUNrbF8FGU0IkyyPCeGpPwJOFTQdBDDYK9GtCxmiWriFJRGLcumwmj+vwC0AJJlVaeDiZcb67RgqIOxWvXC4gYOJSTdeMQRqgfhu3+Opc139SIUPRNz3AgmZJW7t41aurUz8x7B0zWleYffZRndUvUIwnj04zO4zVFeEwOLZc+Jp4WDOQwLWUps+AuS7oYzthqmgucNRKgEffLHnVIlcgW09uKyx9aaNgZDQihNWlJkVVpd4Y6C1BQPsatIo9O5av2gtH8ss+Y+F9Q5/evYIVOLPr+vXRPKguCW6tCACi6DEJAebNK34Kq9a12cNrGvGHGbyIvwbIvqzGsyXUNeNwaKQMhOHF6qDsbPuy2y2JPeAljdV2AdNyGNe5MFtEPNDDOxl6HW/GSdo3noHVca/n9kRiKtK6BAgchj5qFa2p1SwNmAp6HMY8YtQ/5/c+25aIX6OUoQAFcIH/4ZfQcg99np/vk6MLq89sk5b4ch6U17+xoGYGXf3STkKle4XFV5XRtFaEOJWxAZdXyaTCm46CChMfwW1kwcBB6NSTGaJHd510UDYSNKTwE4p4oI+PcMizOThNF+MLnOBJH6T/0Kt7DGiDmXz7BbNudPqM2eYKMHkBr3RG2xzBHyRC9HjQVmp64T8C3XxsuOofNS6tiZq7Yr781nkn3aXMAQ/ElucBj9awyPi1yuYsgwm6+yZUGdzbf7azM9PEhAHGyEogGUGTLq4ty6lsuVerpbgjn9sM4H/hDWd6m1Bt/PHZV7sFYRptjUJ8g1ZAxUV8zOe8RdreLlxHfkIyKYGTZV0FO5niE211QAzhZr49jY/IyCdFECZnA4zV5MxiOz5ssMmZWJOIG7p9USbCtGBxKbjNptEyeimiouuy5t/GKBmr6QQY1l0w8sfdUQyIy/rgQgCeqwHZcMjZdJcm1IRrm7eyFjLc4",
"sha1" : "f88ba4bd6e5518bf185ce8106c6a9a1b997c0c20"
}, {
},
{
"device" : "Pixel 7 Pro",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAEnai4emBts8xKHH5hbkA/kKbIf+BAdgbGeWPJGs/c9M/q7jBvp0iN2yER93RWPM3sgCb0NVpwgAhB0kaKRNm9TtbA0CdzB/k+wCO38/sr24t+eBTCka0bwgxwUD0TGYNS5tZLB595jnRsM/zMxp6J5aus+pyqF8wDejJH3WCjIy2aQ3yM6xn+8qJGL+mRrpgtTG6q3rjWupuldAsS5X1ACPnekK7glTL3rOXE32wqCeDH3fVpUSZDoZB9vo/qoj29nU3EwCnGWybRfYo1KPua4IaKDcUnOhxe4APHKzwzN8dwWzu5aN3TWL9kvQ8UXLMghL+CsXmdZAHjhfCJqquuwilFNpbMGDlyq0xkZ3zlw5LOLzJMaPiW8KiYfJFts6bsazYlVCOzsd9VyrDBLzmpgob3QXzqanwZTWGLJuyksTVUwDr6aUIJRqf2Ly/jEePoYZSElV9y90j+SEUabLO63VJD1Me1APW4D7UNUOa9LH6sNf/ZkLlHVk+bfFh1ChtgypeVQzgxsuqgZELKE0rreQ6v+MPIyJRFohG43fCz174SDZMJHIx8CBcae6yZSDPJlxWvqwB0DP5TGPps6XcRyIASAs2WcDesQ+ZTzvc1UMGCkESfs0/H7ytiFwd3jC3m566y5zkS/rKNtM8Ya2zh+emg8YwcENOpZT2VlKobejT661ySunWX+3Saf8CX+apSYm5WuTaWHu1BwY6r4hX+AWej8aGjFjtscDr1ZYb/l5jPQmcaMUzHpSfTvq5dCOrrShhvvRZw/2di1HRR76YexlshR3ikehhlGHGFAQs/vuZ84bJn3x5RtPCZ92vxTsMpnj4vqyZD8OSqdcxZoG3ZFLtfWBcduOIBg1mN1AGSNQdwlDbtL+X9FhI6tHZ3to/UMZy4jYxJ8tIePCqPEqQnmlg+Dlt7KeChU9BpMH4CkqBKZIN9DFk4mLk9NS6heabR1GW0u15G/oKBcmxcUYgtIpXmHtfzL7avwqS5F086vBmkcp6AX903GZsabZaIET/2AcWgLUAW+SJxq+IlP+3YGAWJC4pPZZRyBcmsvC8aslnrn+oZYttfNTZcOxdaSBgybG5TR9oITQYKyChlmJXVIkeDYneQkQP/dYwWgKK5HVF/mc4rpq6tQIU9ePOp/jWh6jOHlRpzjHaQwJnKnVyJ+FOyvgY8KjK3U4LfZu4XPpVJk2pY76xzjE/YbqDE5znb/4XyaEpuC4TmTVeswl97rCn+wlYTXWn3cllKkSne2KhKidW9XKG1BssoFiqNgM2CoW25+HHxhgEwoXcY41Bim7PhG6E7ByxjYtTr26M+PBDn4ONDACAQBqhPDPalud3ljHmQZV4SSO7PG/TB2naAONav3q",
"sha1" : "5dc124fbe57e84081995a14f5cbb6bd7cc30407a"
}, {
},
{
"device" : "Pixel 7a",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAD45w23yHh3LbKgtav84KBVd0rRtMLL7djZPa+7w2dKJWY3gzJCvoXUhCUpqR/zVpCYHt+Is9xN4DciRbXMYwiKBEFGV/N/BvPDth7Dyf+UB5P9sbB1CE7eh9NPieT/rD85F+gNNG07exXb0cmu4GoL4prH7UHWsnntFmu22oGNTjBKYnKRnNjbP2/8Hp6qAiiNNwxlPllXHRoqZTtfMJ1g8ON7STZE9IKOEACVmXbzuda23UfayGUcMQZEZru+6drhh47H9BI6j3Ds56twb8yqcuRFt1+3umxdKIPypZHLbDcZ3rAF5O1hN3Mx8jZlb9KwhUdE/QA0irv98Miv3TT+OYYFB4E4JTfM12i9mZLxEecytH2SzXU1gCZXtz0UwnZthELeahrd74Mv3lI64y/8BVbSk2MiXb+s+VhZxnYOVHCQVX+jrAz00/dTqRsFRJI0HvIXltBrEcLO7ChtOeuBaIERF/Nj1p03dmL4LD1xuCIfqIwcy5VrqnLnqoobNwZDjauLjF8zLiYzlKYoUaPVeFX1AjHs7UrOK2WTdqlR/G9JiAOsKWN9tHp1S6PLQpZBIl8c5DVtzcPO1HZyn8KUeEM9yIHPOqAlVTbBA5rozP4w9SKqqk3HQAcxd8wX2n8ZPLyYL1uljzdFEk/bm1bvXxD/ePHDyw5bkPv7NGvayoQhBm9dqY6pGp9K0vMZgb95OCEsy2zRU/b3aeZHO0dzophwnERJ4Or/Triyt70ljltR6katbrEY3upFG1Aq1hI3IkcoXB2h1zODlGD6fm3zsL15/wTodi4G8h2cOWSdCWyyfqsTPH/pXw21aWvoT9OwI+E+Xoq//VDc5FgkP7u8nK1keFDjGH3YswsNpdZJQyz+MPmH41zrbGRKkAt1Cy3SGesAoQDP0b3BbP1l9muPz7cj7gTE1P8F7QTYrjGKh2oZehNsMXRRMw8jNk4ZWT69XDfd3LTPPX7YPWcChMUhAcuCBQmMZeJYY+oBNRM/PVgYQn5OEYZnE5TqUXWbUFSamnF7zPyfno1Jym7QNlAeTILYAay+LmIGDRAkXiArZ1Wb8qBvtpNxGY/4qPEcITNOT3LbH91P4xzNxATGhguq2n80h1reBikMmo132gxyX0mLpa2HRPuXAVdKDIE+fWj1ksHc5xrVs2hhizbllgmmgQ8j/gxuf+Gd3R7Ou9DM1fRgiJ1r8UxAJe6ZgIuLut13g2ApexbADWHqRo1keYd2dWP7adj+GQG7H71rBTGmvKs/uczYUWFgdWr3HElsiRnWucBkZLG5Ty65nFUYsBZQs3I1PLZ92yFYinps20BA0nHVwZgttCmByx5KzJTy5EEtyZBOGklUUkNHY/5p9WxEayEl0",
"sha1" : "6690bcc2be14ff28a1622531a940bcfffc4382c9"
}, {
},
{
"device" : "Pixel 7a vbmeta_system",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAFH4m2nVzHTbT2t/hyOzB8ShVQz6yU+q4r0RYykhglRyCv3bcdcct95uROiCYyhZTB//G0IN4g+U4ifEdvaMQo3wVg81Lyd20FZvZE0/giIdWtcjPaKFux+0A6Kb4iyfABwNnVoX6ZSPHRpBjSlvjp0PBekB6EH9RnPE8eNW/roqE5IItIJsbASvyOPhDN/DZO7a507v1TXMjGNNU+1xJNi8glW0ilEwiwaB4TLGQd6jEh7NM9Be0HVKI6OSEACbP6xUA+9zVJNGvchi5FcYhi5TVnBPDSGScYvCpMdiNKFvGYpcYhgpXmR7WhoeJKwQ40umLAfho3YD3w/iJVCWopW5hx44u4dPFfE7cbI/Za9EJITF/3S8hXcesk65bNYngIslWW4id6FhRhvQxPMNolJBnnqwDjN2cjA711+6OVxXg8rQyqxigrM9a9AKr2BZIKmyoaJ8mhcIcapTC5dGIZnyB0MLYWatelINj3xdpYRYzFpzstTdnLjkPSvbo135UIwWX0puiZz4ce7mH1ChE4NlvZ63X28gPui4ZLmnJiA+OF7/UWU+AlJDMriHkuj/M+C7sML9ZQsR186Sl7iK18sLSaaxD0gpvhF1pt68Ylar54furCjOvxuorQ2dN1Q/z+5ThpQFhPIVZ5wyaW5kD85plVk8utrY1lfFeLPwgLXAMpJbJyvxPPMqLxf5ZLYWwA4TdWMYSTkIzz29vG7rnrRIGkPqpi/rWpAHzC5iZK0mTJq8UJAggbzCVSkXcxisfAfwU5gLl8n+cy58+slQAXFDmGNHKk1eFZ1y2TTiwydo6Qv62bQfsW58I3D1PkI6Zdw65sUeJhO3hIkY40S+sK2wiZcO38gIgHG6720eDAu0oFU2DzuhHE0XxPT1YhlKbkBs8r7c47lXQGmShXkC3IeGKpHJxpvvARRlynTrvsW41KJvgNB7TEeUL8Xm1jsMFusS/+PN6ZFXMYGNYpP4ZtG5IWi2T5fPQlM7YyB8ltPaEeG9HeVYfda+xg1XGdOzxjDvGeM3a+ozdAMdtAidzi0dbKLTwe1Wd6RtRxE/Wo+hVIFS/8C6QIi93kvXJ4oz2hwCvuuGUzRDcUg0HG1jnFEkqBgC9pIRsGEX1Z9lfJDB9R8K7ZRvXwJavEcDIT9D23/bXdWfuUq2dTFMmynlRb/04G85DRi7sbrjmVYCPbLRH9fMeY7R5qvcsWu/FHCI8BrJNZPfyFMEtzZSD0CKRKmTSyxLrKstY28AkO0odzRhji/sq9h/X4r/FqvJLD0qagAiVhAW5CuR2N26qSQ41z7WGdISoQdZPSbb5eNKnzRNHgqAYoWWdTaiZalyeh85HIvd3VsB2E/o5hozdozCGjacFQk9",
"sha1" : "0d783fa67143be62c899029d33f8e4a8f1df5492"
}, {
},
{
"device" : "Android 12/13/14 GSI",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAMR2F3OdWxaZ3gHcVYO3vMcw/d6UTo5j65MPd5a0/w6V3qLyOtw92OuidhUtvJgx6fBoG9aqjXMcrQkpwLcl630/VFQd+VS75Oqe4joEmxVe3LBY+n4BjUdvbegSZpanzD/lRBht1/6OR4mtMe2jfev1t3DQLroglH7+Ujb9lzL/O1TWLrZ7Lf32N6wH/KZZdnpLKGIaUo0pamQb2njYj5F/kx5Agm8j2ffnCKmYrRI66cyUhOZm5jsOFrdVTwM+CcXn1DNNkvYs5mr4WTpNiPhpOMEKC50Xrhq/H1U/L836nW5q2ZTUhEMYCxbcNS9ezAVyxe6vLLnktb2onX7NnJ+5MTzN+erFjVRHOdBESSwDpcPJANIP3us9bporBtgrIvE1+g+7R5pNsc8kBQ2wyuMfodlt45n2kYIgncKRgfE9AHLhePyoWUcrVewaWgXjp0F9qFeXLOTg385PLdulvxW5HsZ43+oeY+sz6jjJQI19wnTYXS0geb5CrjRFgsP9rljud8K52lqdmi8yV49NkHr2S18nt6cIj4AsCiVLY/9x0Qr52GvhP/nzqr2lYm09DDPlfDonR9+xzKpC78fRlbtQHjESc63uFa0FNS3BkCv+2t8wK6dJtkBAoxNhm2KgfQ3z6K610aBomur7y/N3bcA6OkWI0Agtw9ts4NY7TYjOxI4aRUBL3WAtZRXt5SWsJdbDMja36lDSq28/LksLeKXiTQkr+r9HetuAak3Zyi0a/EbWElkmOBh+h83IE0XtPTytixaLqAV+pLY2UPFR9H87vbsgXnns0f20qEQwlAqypbrtqEj0Cen+ZTQhuGin4EwuQMfJwyI6CNdH01gmUUTvOB2BITOouN8Utukw51fivDaGOCPIGwCUKZkdqR3EHRNb9DqpWXZm+0SmFh+1nFlWQB9gulMC5PTz2RZ/BpJcUoLRe6x+3aDxEOcyTLIC3KG3HDYmGDDpLoLhVBNXer0BECyJ55tvIXYy1PjROgn6CGO96R5ygbWEavrSq2sCa+H5aBfwKf/SBFtYGxyd8504s5SYDFDzF1SHVpnKYyHiDXQUnvoEszHYGpKeNTcV3wL5yB1X/jJr0Tz+r8tG5AkzAfQukCV+xF44vvGZzCx4xUCufwoeMFhnjpU0S4ZfLDC9XycNZR/E/WKhZhPQ4hBUI9d/QyvoUiuoHqoWWYbRU4kyvhHdy6s69pBNNRJdFH7LSmotqA9eDs8NYkiJa/ritElk+WNS6Q5E5Li4MpEySwsQznmvm9SDXxBsAfU9sMeWsYHgMPrEehV6t7iSfdS59GNyamotkPmOyaczUALHuDnuLojMErMHtIewJP40tyBodWs+FkVkVUJYO6r9A5Q7mLmE",
"sha1" : "1ffb1af796b18ebf40d18faed213f686720f73f2"
}, {
},
{
"device" : "qcar-gsi.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAGL6Cpu6jstCSfiylEV8LXCpKCMzYhgSLT3ORW4fRLCRet+2sPW6J0KFUkXYIB3iwlaNADGOMU/l+R3mZRAK3vIQ+RFLybU9lKQVCwK1Dn95k+jLviRg96sWL0/O7gELYx97FlI/MkfxEhzfZXzZfE3jKPROJwls/TnMGhFE3hF5rlvxZiEhRkbmrTFdggpiLrhSTIcS2gx5moeVbJkLNzfydnRGVtD7hkv2k519Vga8o67q0GCVscrJYkPuwm/HBZSQZZq0QZK/b1+GSucfLaEaxLJg+yteap1xaoh16llF/V+U45jodW588N/apt2QSYC647QIRJMMRIUNzruCGT1qDjrHx4IwqjWt7y7K21LSEYeVVZRS2YycT4ORkKwMY5nkyz3yxN3AzYhRt0F2vp5dK17XNLZgp5M8FVqYyZ9TCYx33Y7ZpR3ILnvPQMQQxi3s3jWKa2s1Vp2eAwMEIGkj24lGcd+ZnMWJb75EhkJghtj+EVq4Dugv4H31KuU1QKuo4Ttc8TASRPuwwFKqzOPGfoQgFgbqK5qSrjp8+khdd5g1lCRO/IbfXKeoFXxfI7PVgNxziEWuObwVlNmZK04I6p9wnjB/AeQo1a8nSOcfCqMkYc+Ee7NBE68WCFoPwCXCY/kWY3cefj/gbyj9cie/w+KbufdtYSe13bM9C/QTsUY0bVfhGX+2ak92aOR8caHWAM5lESOlmbSPJk86wXYPOF8sXIbRecw6B2X8m1h2+y7At09xTtCt1++DY3UqbgpFxcjy5mAIsIkw6VNfGujTu795CTsK3sZ1prA0KmhQ+tjZ5kFALe9zwDJIIEoqGtpL+oqKTa0xiGYf5pMpSvtSsAEWbuibttpkOqLUZA6l2kYsIeMaeLb8SKj2jOxiST4b1eTtKUYp1Vf/v/vfAzhnk8bd6mB8FVfdLRCD+tKDbVZHM8dYki/jhX6evyzCPvYfnSslP2iKA2oZPIB4KZT+0Bs70TK/gQ0VY6Ydlw3pwxzKkEc1kvhknKBm7rN7nuvlIhEKe8d/e1wA97JoiK7fSuCHW9f3aJdaPs+HKAPc3r2e6OO1dTixaLal24l3YRsxOWljH4bapf+FJwyIFwcV9c6EENsA65mjSzFPPfSbszrnmbLQPWydMRKn/0M7sU62izwGiAw/2RNi6kMNY/7VCKJTRiUOKlusxP0I5I8nKLoL1AxjJ8sBXk0P+zlTHKjJf0Ku2j13XlEXxXqR5MsYnHL9evW6QLpHu9dE5sFqxmhb7bP57HEUWPxg6QBq4CcZ92tgYYlwMDbbQPgVHh5s+47hXxAk3BmlxaW6W6vJTuGmnGtBdMNHK4xQdZREypSutVAvKgoY6RmShqIzG18c7vG/",
"sha1" : "594f70f6344799cb39fa2fc569a0c646d716a060"
}, {
},
{
"device" : "q-gsi.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAN3haYGQPHFa9yJAviIpp5Feoyn9fr9IEOXPfDzY+SzDr0drrCjO5gY59btYOt/RbVhiXRZK3uSwN3OSiQ98CtECYG9AxUu+3m7o0W+y/UiQkvbbLN+gnbZjiAqWWBIdT0RUTdIf98eMBdgzbdpbDn7uzmwDjLvCkrc/rsWcYYeD6VuS0qKiw/Bzm/8hp7lqqtW0fgn4Y7OBPXRfckyNExjkSvktZZKDFFKp/Xcio5coGLBqXc+1g0Lmo2osbx4bSP4cwJSxKtEeSfH51DLPSc8w+tba/8Jmp+j0KAf5jowNzRKyxyjxavzs0c0Us087MkHN4MaBeLIRH4twUtBRUVKNwacmC3vkFjgnVhpATzXHQa6OYQdV6I8Hu1GyKJ1mr85vEOroNB710Kr7r4Y6YhkW4TpYJQzQ0YZGVQXgp0q00qAQGa9BANrsBaPHFLfLMt/oxGWmIIEeJPKMJ20VTojJqC0XJp39Ujbn0UXC/5V9lU94BQYwog84FOVh2THwcMYsDFb/WlJkF6ERKDYjQwEcIPwR18E1oM3nBM3x5TJpeCV929gxBKYVdf3uoPwiq/tJmM6m+HcHrqjnwN17i1SyG54Hg5rXRQG98Zx+jh4mam1j6dD9dnm0UYNbU24Bca5QhfSR9gwTXxj+9owvyNhKFF41/LcEeaIl+4W0azzj0Mcpf45+UlP0vG5mxKpzlasQthS8m6nPdkYrKrSTClWueuZRhiW0lnPF7PCj8n9jccJ2xYoqcdKRja3hQuBp5u6cRjZi0ACimdTwAMjw7IVkyNlJsTEHPCcQCMknWp5sncJtqady+BbO4W4AfGqSdi6zEZQc3bP5QdQsrnT3rocNHoX3gNwh+hDaED5Rj3MzPXFclb0xfLf1yMSIVuGCePKAcOqwlVbQIeoo2yfHPWX02EvS1JbBrkBCAJ6HRw3e5t/JQXm+faSBaTWGrSBwqaG/ykXgEDzjdeTsGnVr5g9vazd3Z3Lr6F7HqTIYvMZ+ovkIwiBC6dapTX0Ow35m+NjYSTUd15igmaqxjxq4zq2wxE5T5DQhF5ria8cp+0AJhWkfl35oxPWPnLworlDjvu2BdEb0RtfkHM8/po1BBlHzYqqTyV1NqkQq9nO6gVCyGW/X8XufeXKg1CDUiGfjn3IhIIXVcmjW4NxAgdCZdAjGNqIyaYR/LOksw0uaB1IFh0VQNjj300LOXUbJMXdaxzx1sQpw+nFSNYtTX6Uck/XfeBJDSiae5kbVQcey0hhbj1CDWT/u05hVvtxbmmcqVcS+pXk3wjJ/nnWJNga+DYtzK678/u9Fcj0dC+fsWXlEgRen9i4hDynaB7nkOFsnrweA014TLwuSSOmdEDnO0NMnxeQH",
"sha1" : "144820003f9d46c96e9090dcf0e4feb84ca84810"
}, {
},
{
"device" : "r-gsi.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAGb+3nuKBXXDQgj/dBdxprzFpUgV6IEMnpGYSIaYcIoQzQIJ0jJ8nc/IeI3qzmaOg4obVl6O7xqMDeHkIzv+HAdW3vth4K1kCKED4vZOxwp8h3qbx4Xg2Bc0ynxL4FUWs7E1+p9uqEkyIYs5shgWN1ORI0z2hh71XzzxReielLUNMp0Ub5Km1q9h7nWj2KlxMNVvppaXXb4GTVoBfFfw/xJnCa7GEdd2vnrnLJU9jKjHWo3R472yyDCU6iBrdHycKWyFNzg7HFQLRD/IapnK31Cle7wD+wzRxN/M47zYWLBSLUsL3iYvRPupYZjPWzsMUZuris86DEm0SdfE0IzhYitB55CT4Vo3CXXrVNg3rYWNOpjd/kK++bvzUxO0tycxkEvAJfc9vlJbYJyaXr7eHXuVq+BlagJeTGLL4SCe4/inguL/xr7/j4Du0miVO/bMz2Pxg1cxCnsXjd52x7dxVzQljSnLwaS9z5bbQRkKfEYra6GIPk9v/ZedYLOBgkV/k06n31FUT3EJG/Kd3X3HLbRSEqz4LyehU3hOfwIDWTtlnnyVWAnS36rAT22IH6+Lrgi6sPIYqJqXG8jTYoqNTnD2oSRui5VhRd+4gx2YWF6xcXvPkkNIgdp3QkONfxxwLHWkW+bawhOuRo7NHX6rqc0RxdEzA+N+6H/6G02gA3inbnOvTTUmQteC/EvT0nMubYGRcOuyiueTY+M36OwtBwnKnBNMP/IaCIP7xWH5fBqzT6+yHwhDsDLg5WhvBI+Nd5gYZYicO+p9ImeomI92BRRHI0xsa0X7a5we0YD9+q/QG34KjNGU21Ovni7PHjhrd4koMfuFXdTA5yMMgifjB816N4NhlUKOFPGcpUu4q7bUURCgIa1kmlxohLiTJv2zPE1mAHJxoq96ZiJy7mpsnrL+Wl+/bc7/bBru5KojvjOQrLCKfk7djWLKuaRVD3aPFw4ZdQHSdgNZvIc+a4a9IeD/V1M62poaQLnzWC2gaOlIVwhjOtTIpWw896xMq/ayVz/dchYsgtt+yHQfx+MYFsJ0m4YV6RNIhrDp5AuE57SJRNdqLp6OgpTkJpbqXN9tLVFX0j5/5uioZJ7pV3mVLh+weX4gRTxo4wBC0ugPa+ltuXCg1DLBgS3/kLE4e/nSq5ZueFZoBJ7iFPvBAvjGaSCjoxkAgYMCrBkev4inIGUHOiZ8vGVXBZllUV/4YpzBkBLPvdcp//K3Hd7TggfVRu5PrkmpeakdRsBcj6uCtpQUwXvpQ4WzhGxIClmBo8wpa8U60iaWbWsQVu+C6EayPZvMrTnBui6M5NxjhtD/LeyyMNiC0jMQlgLyjrKn6FUl+jZRhW+n3dLrK+MqMkcW7/5Q6FFK",
"sha1" : "e3cc565489737d7c5a54fff8337fe4279783c8ce"
}, {
},
{
"device" : "s-gsi.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAD1N+Zmv1D3jU0dOiBZKfV4npeO5Y1Q7FHWisVGhCOiLh2yRjF9RPvo8gaoND2kIaJEgEwGp/gc7o30Y+loiPRU1/7DvEEQ38nHmlsQtzTMqSkZVhaAhtmsMRVgKZIeCEN8LEXsX1/yYwOSVCQ3XHRBfIs2pvR9hi1Fd752z4ZiUqQVueprGkEZM1Wu/Ef2hLUIwRduQPivGTxZUzo3WzwBlyxv7ANXL4DuhuE7ojRtDXB67aZ83eMp0ukF+5k0nDaOo9bWDk82HHuXf5wJrNcBA0qS3PYfM1q07byc0tQFRQBsD4fxPWsNzTpoMn232qGLKovjkJ6ejUmfdcdRiMDuyAmgM8RNLKWtpZmGfIf5HpIEvqxmt29GUDDsPSA0Fl/RE5rmF9Yq2URhMlA7PlSJSK1XFp72B2whSvxpmIHdoZ3rjTAcDY4cio3laBLM8OHQEwhN8+Y+12BNl65mmvTw1ZCBZ4wnRrQcSg/PMVcV87Jq7SmL4NhAprX0Vmkxmh/Cacle1/Q8sx1XntZ7WC0Z57OjId7pxxZLTRw/JAtYzqu8KotsvuybnEvJdjYkIUVPuVaz20ZWbwkZbq8MkGpxE/nwM65QoADWLxj8THAnI0tkg8FHPaC5HJfFUGIPpYDF8XB8SkLhLBYmxEr2ylQmtSU0h481tQox+YUruvliO+5+1V3si+/F3X4mi8YOJB4dbbbLY6iyYMN23hkP0pT+4lY7gLuFfETBDvh7ItcNTU440eC7Y3CMlLpxCoIh3+x9cMXikr9Y5BmkjTgffRr1wk7nUbEm5aLy2oei+qbK0x7UJYMX6xlf3gMJ3yINAFMIghRRfQ1Jwjf3yY/PwClxJ1Mr07DnH1vNz/Tnb3E9jZ/JSzCaxHT6jY4Qp2zM1vjS6CXV98yZ6hn35HY39EsZlQ8lngKpWWHwo5BIqjIiG3AZeOoYz8p2yE8awQLNgvtdOEBc1L0jjOg18n7KN5h+Y8Utby396Qp9oaP4rhp2hAIcuWWaOR3ITvBhmRZ3wPk1iBUDbyZtj2TGsQ/HDF3Q77ZLkqRdaBM2J2oAH8J2TLrCpBsO2UzNFaYu4l9eGe/DlMPzdU+0JDVZJKYMthdun/HDhRJI14n3mMzOi8lCtB4OaP3SxkA7TJk19u1RNUiUGBLuADbw69/ZTqjhMaFfYNByqgAue7ZudiTcZYYxYV27TCoP9YNy+u/9gwdddnjqwBhIcrpV03EhGnmrgTYS0+JRUQnDwcNui183Gg2GePR/AjYf/zkI7WEP/rR6CVzF2urT+e7Wx59fp0f0+a4kiFjkims8iwZIZ6Uujdm7tkDmCVkMzll0beZtKxzh1n6CcA5Ju+WyrmN+lj5opNbD4Qnot",
"sha1" : "152cb9d664a600bd37fa1ea6713816a4f3265243"
}, {
},
{
"device" : "t-gsi.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAB696fOqmcvPXp24WvrWaiOAGtKfhdEcA1qb8i/z1aNA7pMnUaJrP+eWn22VfnViO9+OhvdM6c7+9f6BtThWfyMgtYhGC1iLwBdy9ywNOqY+/AxLKv5IpCCAVL4AyRPf+22ETAjyIqdDykGCRC6LWIGXoWT+fBuZaGGQ635A5lqp1ZhMvaCaCd+fJpZ2NvymO3RRISZyhMaVSMJbGi3p6aLT8NuAzk7VxMIooBV5U5FQ3ExhWSakrjR/zoyFVazzhBtywAv/dXSxivaN/2BpoEXUWlZShk2A1hNkvxT2vIslxXhKUyo38D3f328bDDl9j6hdrZPRwd/iZFH2sWsnzQNZ1Uq/CWIqJxr73sZCx0+EC+h2nYGrhUxPeY1M9ST/bhRroLb67JjGwidKo3LlX5BAysTiUj0jevYmEMRgzCQERxWmknNI/FpySAkAvxO2h9eaJtdcU34MfI62xck3p3rpp+jv88OTV2xUsmaPU2WCVuECkZALzKwGkVpc9uuTRBtviXOpqZcmRjKAcVg1bWFqEsgAONzwyLSUMNkZQbidz+MAObmE5I4NpqDXFU6nz7XWXfKbKQzaG5Mg9TGacBSQY4+dubeUJrO41FxtjHHzImvaLfXD+/EGbaaeqGAjB2Vo02v6dBCXd8bOyOL0rq9kzfTmfQQHjUaEvfGxE1mVJb8oxZ/EwsMVoCj0oz8cgGVVJg65JfvHjHnUKGwWHg9jQIedAZawHvRcYlSulh4BvfiDsHY9zIT5NkZ5gNXP8BFVsXMhX/xWYXa39Tlls2eq6n0s3B/YU+myyYiOL6QFsoNB1QX1fNkZKAgEQpcwRapXHHlvRwdKP8FscyLKmwdBfKg8RZeIZ/9TXL49mq3ocbfrX8se/DdPT61V2nGbApmPErcCrgtbUrxwV1a4LI3C5aMP+52brzOrUYLMeotd8xFgZj1DVgP0nKmuYeq2kzgeTOBWud53KQ+qBcegk942LGGNr1BSuBynkBywTm7iZHidjONcJUgiaB+NnCYewbLDwF21bRphkXthvak/Di2KcVugDUOGblb6X4XNR++ZTnZiBw6IbY85eL2YddPJg4ZH1zNIWa9rRuv9q6VWX1XD5+J92bd34EPuMLrmGvXgYpbfzfuqqLGpPBvbqoRfdgHe7CSe0xa3lDePOTll8sDsKKnr8jOW9CvsbS1s6+x8Nie2UFPwsb/LvfmhhsRTmlZaESRltCOjdZ+XbnSaCw7of/4oQfjk3gLiFNlH6uHDOTdi/QuFsGselWCi8I3NsMf57+1FXiQZsXbR59D+uooDC+J75IDlp2/fkBOVsyTEXe3C4gznsbvoN9GjzkAEo7uti2hjTwhaXHTQ2o3T6XpEBQzj",
"sha1" : "b42c87bedcf600d7bebe3dbade2444e9724c3159"
}, {
},
{
"device" : "OnePlus 9",
"manufacturer" : "OnePlus",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAJ9bJvuspEBdWZsVzvQNS/UIWMBHJaW/gqgIk49TvV6GuPM5lHkWmmSeYBKYcVeGW4QTLfF9sonh1IZFlvRkdhcKsyqz4t33bGqtw+ZEbtHCLC5W3QfnTAtOMlKV/8hVImvJjul0RuBnyTZTVGltmpAeb/lq2gTuzjfxebIyNMkKhzmyIIKPtYWUXzVpz+ZBCqpfVqiRZNMNv24jhD1eDKWR5UgTihhjI/CbZGDPhLOy/C3H02sZRN/pJshZTyL/vv+OVu4ZW4arlN6P9DiXskav9puv4L7PlhWJzlm15ReCUxnmekHK9EAJWIdVcKmcraofUIewki4BPCSRVH7TF/3/Mvmhfjvz8OpCVvGR1qg7OAjA7Do+I9vkSviiXCKL8WT2TVmhmgXpV5hXtrTWBgKdhBo4u5LmiQAyih6CIbM66lubtc00xVwgIsPwIFnpW8KsjT2XCrgXMVcbbyrK52/RJbCC905gaJjd0bzlT630IvGSk04vZb7IhrtVn854iyc7ASwyzM1UyRWDqKf82jVpro6GDz+mhgNs2lQ4+hmrGQ4+YNb1uR5zNxOoW3YVqBRottMtWlNCKrV8UW1VaAOUaIOmL9vudENQ4rSAWGHu3EGfEOvpVUWWcp1VkCpX/2qFgPBT5wxUUhFT674pqVE/d3Epc/M0yoU8oANsj5l7L+8LzSLJE2rE3biMrz4INsgfa+0zwmqFJ5ajPIRbq7Hiu8mt4Vx3bflThOrBZqYjWszZRN5Pdln4DeC9SF+RFf6dJ1q/oyWGRVYaVgKU27fV1VCpclwfDpupbSEohGoTiP5+mTI5v7sa3BPUQbwBSKNRjOgnVQh189mezW/u9b9+y0lqqcUGnEVXczG/RmlwQ8wPBnX8NWIytjCvZT3Zy7siG1t0yKuH+CNM51Ewz++91yAzdPBqV4GfpChZIBCN0qeLBvRcUk99NAC8XmY7A0PpQVy9P/2gg2U2H9b+UnyY1Jcmfs4BNlDbUPYxQK+9CRJm/AV7Lg5ewmkTKqhycPuh62veRLnhrgULo7SHbN2Bfeg32S2gVLepairXgPsGBdDJc7sj01UMrbcQW3m+TQ+vfOJMpn8yHZS52lz1btRFQn9BtEQg2LR6FL0ev2NDaT3g6Z20v6ICyCKdGYAlN9CWQWbd2tfgsmqvZAjopE4DVHFbN6R5FBTo6/AMkAtXVNBH613CLKab5qdjgoGhSQ3dFXoAMsPZqDEUv/8AIASPME+hNHU9QEL2ngBEp8SVZTc4yHXB9Z9/hYmjzaw/KvBHHg6+Cree89GmznDfwx4nlCK777QvMGguvXYbHJL4odvnBxz3YVgfnSBbxO2+y0JoZCrNwjx2wSfCq2SfVgAb6xPv",
"sha1" : "dcd6a21568bb4d10c8c267ff0a122c6597b4a045"
}, {
},
{
"device" : "Pixel 8a",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAGl9jwe9uMfxIDzQFAFRDIQahqpy1Li9ueu7/UcLjCILzJQlGPQ8E5y8iD5fXL/IXiTANhFvAx1lrbR+cDEyWAJgmOPNbPInxNkTYsKymgk2bciuRim3pGAyxw0Y/MojnLU8/AW4sQRWQGCINAYNU4V12WgCyjxoOZvXf1kBpBCoa84/0xFRl2N+JoRIvDp5AaETweoilsJQlQchuR/AkC3asEOGatwFiswaPrnsPI03JMGVj1DYXaVqWNrKJ3NkagQNBWQkop3l2BXWnAOL4+Q6g4JiKb/4cIkXUksdZswUcFmMg+JPTILeg6QoN04aGg3gk+n6yXx44XHqPTa4ru++BuCUApq9U9Jh9zsATdw7j03DDH5zZ5+D8TlqzQVQghUcHhYQ7633E58YNVbNr6I5/SI+PGFaIoVh18YX7Y+qQj173gcXRfP+yjIjLuZeb2hCk78BhuDhUsmZ7mmIxUgICUUyP/PAyemrHx8OBTmfk4Sdj3eVhEa5qYmo3qokZVgY6FdsXJvEmbpdgI25wP/hI22ED4FFC0D9JVbYv8sCq4GPwkL1/ZHWK20jEagkFESlTlYZnvqTTVEWdXypk+UBgXHMOixiNxwwLI0XGx1Dn/DjMRQXZ3/GSC/bFq3MeSXDEUcDB1prdpFHX2eCtqlTfiaJgSx0ZcBuVw1uvD74ykdRSbN5WTslVJlItqzI3WDkDNa/ffLjSW9fRCOzyHNu1DFlqeAKPIHqoE7fPpPzOGfkMduj2NtVy6ClK845x51yhHm+gJ8bS84/O0yxjReh3ejaBbIN4UAkkG5aybDSiiz2f7GUBRopFas8V1M+EEO+SGzsPyZ9jc51cCuwf1V5vQfd0Wr/EoMEQhiRszNZOxyZtAhRbu1UpM+oB6vQ72L+DDi//mbvbPxm2FPti0EE7UbMyshzqhBnoqjotBdkKP54zvF2dcoT1DgA1Goy+bKZpgtcjw3/ja7sZUvMyvg7NObDVGXcMxaDY3GAzzM/RfOs8gpgqZ4arxaBN5qfQRTx7o+MGu4G4kCiACymTeV+h0KIwRgNz+T2wJo8HEM4cYnDrtAaM+fuurzWR9hjBhIHD03ePvzuX+6BoBu/5pgi09QNxhWE7AiZZ+3Jsc2NSzOEPtiu5B9X2ZcNblcLQ2YDNebPBUC9hM9bYpJLO1vAK9SkKU8GQuiu3kzE0hTgPzie4ujxJXmvlrxTkvd1O3iFqKUbmETCmmIqShFPPylluXXcIMxi+QKu0VRbdiT83cSrxZOwnGTdPIh2+KpiSyvcpcjp6TRlLXYitwKoN3DH/AKTQCMLu/s1jdB5wsoi58g2iL77pti0P6uKm1yQubJekm4Qetwy/2/yQp4ghvbLAvzW",
"sha1": "55d5984c35ea794ec512282f7d97e49a93871e13"
},
{
"device" : "ogki-key0.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQADLegenaNFCzXkTS9wjpJtOERiTNVe/MXAn8R/fpZAR7sEQyP2bz1CJ5WyWcasnhVGJm0NKUIgWXxKmdGKDWSxdDtsgpaDKx80merBhfFMz3P/QLEiznRx2Lv/Gh52cMKMbqh5Nx5kP506puwxQKKTv5d6bT+PLitw7DvAqbX/bUGwnStc+RzMUkz/UkZ+iFZyi5OON8mbjKkhVnxBdxdrwV4W0JVjPV78SfkEVcVjK6rvLQUFL3Eo/SgJuUyjZRo+KW908n9QYGk+T7xTFi9kb5wEBj6czynhcW5EfuU5WduHdR0/HGBUszU1eLH7fLtrZ8vv465uVBVe1nEYEgC6mr4MMEYBdRgKKpLzjgE4kHhUbApRIpoL1RnOoXdnlMWV21YhI5BYD41kAHsl1OFZKjRe74PtMP3FFOeznQKEwF8h+FeNx3I8qOkGgQ+jEzjqgmAEZMcg6qrr1i7A/14hUSisp5+OLdTws0UQrxSm+d4FbeQF2Fpb8gjOCIjBJyFgsYjJ67/o1YVyZJ04rw+CjIVAbGpYxM11ltVP5d2HxMqazGX0t7Ezn1I77Z+5viOCiQOK+MJE9QfXI949DtByjOHxa+5rX2ZTDSgScUuWkirbJ7nkrcKwkHu2OBIWt03we2Haq65awCg2CibfDJPh9Kv8ItE23c07SlxCFJE962PW2Zp2etxvtYUzkqe6QwPwvo00/OdmUDeW2kUaR7BNf2TzJZxlyOSmBsHzwpBCTCmO/jBuGdj6mYolU1jo4lgIXb+eJLVr3kZKbNTCjyMmhVirAOY6+CLDk571DotopQaHidaF+YW9W4MLVAwI5iqlGPLMjAhUTfdMx1ASakEpKyflbOBTEABG1jWhcb+CiuZM+X18e3q5TG6OkHpJDx3NwsYJqQtyHKEtDwHBCCp/tw3N8AV5f/DEvbg4pN8lNX0Ji/tQ9p9ruriCm4QbbHsajm6S0jpo+V/N0lwuS9NSGwn97xy+gwjnUVd9KTmAYjqAmigaGNeO6zCqGu0fApS95qQXekis3mPwcGVpEhAqoKF4oolBgScRX5dbICRNqCuMze0lhbEJI2jWvATItkYYrGxdonPC5CBlV6fZEgB/F88SiecQYnNQVgltIU7HViAoeCmzppRZZ26brvGGnvYYoohCruy/Aih6s4bhyw/Zi2hBi2jUP1txZBJJUOb8I6PdrGUuJTh3Ei9q67TqAOy3T2nWDW9vPnU2w87nvuYcRORNrjjd+sNq7Qp0HeGokypQ9NFxTNXyyMj8qjAUzqGB7H4YAeETBJvPZU1AmF4k4pOtCp1vGmSsb4EeIaDxkm13ZPMAHsF+E7qSTQz8laFU9F+qx7ZRSnlv9j1C26VXWApTKR",
"sha1": "6b7cab252fdec53dfbd760937923240ef7e46e48"
},
{
"device" : "ogki-key1.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAJMNMnfIrmszpVRF+BSyxFgFj19Un1GS2MinYqzd01eilL5kXgERFF+u1d3HANPVQzHKucPEDDC6aCRBbX9tzSQIeQB78iDUOMfP/kYcWruwgikKI21IFt8uQkyDzu2F28qO6TaX1Oit5EqOgLeBk5Df31NzaMTR0/b3mQVDDU+vDj6ncHzU9DTFxldQ+WDYYw+TNd5mi4yD+qE1EotaAAms9uvv5ezRx8lKgxDwhjJKd7LLTnVMSJMBILar+IE4q9AZRwn3o+2wEQrAoywmiK3+c7OJUKNsNu7cQk/WHUM/SCoQCz5520n7uaTIMjs4FIsGnBupxZskolfq1tvOcXVpN2B2cqnsY0ExI1y0wjxqj4pbvgzhzECJVsOBg98kcjYEe88iosrq9PoF0KczeE2WR065hZPJ9jHFeN1dNYtTHgt4SvooovVYwt4OtUUPrv2k8ON52kSNSn8yncDProvoFsv42xD/PxsSThkCO5eAhNlGWsUi11sSIKENwRZa1GcIyHq5/cBtJt4GZmoc/d8h4g0nRVT5ge7s1Ek4l61rVaNYZDZ9Rjikny6DSKc/eXCLOlEk2MyEdf9BVyIBZMxEtLfT9rbFD58LUIJ4MpJGs9f+nIPSFCR0T4IJaEAah6f4xlkvdgQSucYH7x7N96d+mR+lMXDHUoHP2u0z54s3HZe4uYjWLu6m6PDregHktHqanUtJHGIimlfGHtXgGfNCJFgt8irZftqPGKah3vQvy+JBKSR0k4KuEbJnOu6SRKiWKf9Tjzf8FeVWPoKH/yyDoaAmmdKXuYOMloTp/JW1lJRyN15/F3RmJabQxo8VlBhgz2r2qrqz1YQbm4OIF/tLblwvwIL8F+Nfzfat0zk2+xJeWETybQoUEyS0iiJ+4Y7uc09zp6R2OlUXX/VNVRvuZHvXEfu9nKa7aDD1clcRHs/PO5z11ll86GsPeTn9mfY3pjhjNZCCt5RhOudllcfKRd+QRKSZ2pLkPQe8jn5/KGQoQ3ZPrN3p/9ypGBkqD36f5b09t3tusjw+DlvLQQvCW/I1UkMzdwhKVONcYdmnWgC36o/cYfhzNdUfUNL2mj0Pu+AVIjXkICyJc+xpOMIzymugbrSCoktaSuTRcvz4gizJlI+t9WoOcvr2S2pMyC4FQSvCzKbwXh5x6Gn+w2uoLdXLniiaPvmD+rkfQkfNDJe1THxRay+aRTMQY52nkVVrUDm0EonvpdWRDf6IjI3RQPGhHNzpDM5GdzoSHWoCr43p84/HtrZbgYl+K8V5m/KP/8DAAxZKs8zaHRyo4GUZFqqVuq9CMg5g2B6kxWNnaVdQ+T+Z0Fh/ex/0Wh6qq6HJXxRuzfxtu5C9FVKgySi5bEzc",
"sha1": "b0d336555529952abebfdbf01aeb8ffc75346b26"
},
{
"device" : "ogki-key10.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAPv0W/XICpfoCsk5rGi+lft23mfzl7++rl43MYT/do0dE8xS/4L3RRLXuaEn/XAUHNMpn1fKmCI22SxtJ61Dc0wJkWSzYK0X3DhbYmDBJgKJhrCqnYlHCunWPNkoJCJSwHYy03MKKSNkUJqvNYa9wEPv8j9wVl3vMqQEax09hm9v0ScpFDZ2iyNfIKwNFmM3eCgoN52krLfZRvTLzPox4dyWZDpN8TPqy4Mw4oHIe/dVAnW/iwo3VgR8QropswayFQWOlATtVfnSIzsREab1vNxOVciejOBeNCdoLFI26tYOErP3pcaWSymROOU1FmOOP9zGfvzpJ4XtJUzHrB6S4QgSU88i958VHDpPm0MyEaLG8Zq8Twrlmx7/A2CW3Hlp9l1Dhw8L69wX32gpjPFwCdYQQWGabr2N3JKT1UZO6CNEUMPFO4NRz22crXQWwV0UiPRpb9fVRSuX/Yw8IqMVM3L/ta/HFMXaaYP/WXvK6v3vOS9HZhNL4kww7Hft5Lh5I/TwSQ6ERBpMbxEOua8evCd0HI+eiXOTV/6PTT6nmzcNWn5TyibkLb/Y3wqEDgSfCil05ykm3YaKDFrfe/RKex9efCsrTFp9uYZkbIGh817j/o7bT8ovVfOTi4lOvditKqHLSeunc3xTqz0uUwBFTqlL57SjtIxNvK1J7xvRqESWKXbHo1qTpjQf5fOLJmFxFsmT5hxnLqUrdX67vNNzGq0DGuHXwW9Lo8iAzbazYlhQiyBN9fbiEjneO8ai1vIImKHpjNpAIRJ+5k7zkya1XjktSwiINPacPvl+Pla3F0ovPibigR98gbQAN03SYo/vd9OvZPn5N5fAXkavgseu6LWON4aI1BgEoEbOLzqDLe3Oo8eYo4//cF/0KBWKMbMj2Opk4lDTgb1/JsYnlJSXkQJm2hzhfzQT4Rjq+1zIDGgmw6thEg5bvccWZqt7o36BZz7nLUp3xK+A9zAFDq6u8bS4ixcjBDN7AvnosiLBW0y2n/dr6N3EGxcz+gIbNAUMXOwD0sBq+tpsNZQqTwc1lCn5eXRslKhxuZBXfW2VUjYGK3Yd+q2jVsAyQtt32Q1OQw6OQV+emXBeyXKRk0BZm9P1tDTwH1ZIOENc5y6VSgFNLEasQFLhmmJ6G/NEbA1gc9S73kE+LdtpOcSF3dU4L8VNDNcO/gg4bP5czAJg4PS9VVx1b1DgDPZyh+0QWvI3gKkVnTbDRW45OCY3EeMNz0LgzKdYxithO/77eCMlw1FVhtQWMCunc/OY6WgyU/dq39rN4T8UaMPuQMhNY4qFqAimEScSamUgWMPeJArQNc+KMMOfYvyYuYEjWkLMk7ob2Sm17adPw+3PZfDdHy9Z0NFbfSFy",
"sha1": "6108ff3be60fcd3e277b92c76352a15d66bcdfe3"
},
{
"device" : "ogki-key11.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAL4/lNnJ/Jd6watdB1bBuXhg2C8jiiaEhF6cHCPCjLL01Sfgi/sgTzOFWdtofiins19ude4Ffv/kL4n1lN5uAbY9g/7sdyrWUcowXpnXU+lhR2LBoYumLEp65KvmmfPHveRamW5G14BjEq1qeKSGCtpmusHMJg9zgNkTu6X1G6vkZXjdAp651U1Kfyj+Tu3h8BQ9c7HIcn6SQNQWaktmWYku3ashJWS5DXvqqKzlgYmw5O19NoF/JjuEeyg8t8TIh0Qwpx1vj57flbwTbVicXjlsed3kpVpH+Pl8lOlUHgG/IlxlAr0OLo08TbGmHuxAfPTkLe/zCMtKRwJxUzCvJTyeTAl5SYRDCy/OqC3QplD5CCYod1CSCQBHakp3N7MekRH+tUwUg0jFEWGsWy/WwJuMZaDYb27fr6qyAzHsIefFYhqfv0MXT10IXVYZC5gioWY2ltA+3t1IvBkZKfuYjxkC2+ZdakE3PMJQyv8S/DrsO8Dz6dSD69Fxlj9IKSn+qG1Cw8BttwC+jQYzoaHCx5yynNWU4OCrfsUObfTErqWVibAEpvH3V3AHOWb7kVvkDpYpGHU61UbiCSyKCox8s09zOMx0Zi5oh978JX3e7R+HYKp+grXptE9QFUhXRVJKG1Icyh4PoDUXmE4OTbKyW6AALniCoczDtiNuO0SVv4d33+hUl1me7P+29H6deW7RClXsXSx+KKJ3tsXTxeS6bRzvXVG5xC5bN+IL5seKa8SfcvCQv0WnIO7kPuYfVbQ+N7c/Sm/TyztX4CiJxLRFEx3F0WEkCYO4ZUNOQwVCeUSouqPPK2+VM5p1FM1hsQH6JZETllKGBUlHnDOzXPDcY/1YombES1/LRjlxQJqIszZFwS0AUXJLeoTatZfJ8I0VGwBoisvOzNeA09Ad7bX+I2SRVNrTIyOTQwy/kUJWzcWoP9e2VM2HxJuq373nghasO7+lrzGUF3PfLqgtJdLLhvUu4QXqthgUuwjPFkhrZ4zrb7YTooGc8vUza04KciA+wXYw4WIlpQ86wjXlVeK1s9TIRFmbd8ASDpZcgDVapaodFgbbTnnXLmsvprPWPv6ZURwVRtfROZy8xhqRg9FHe/oiTkCZOxOvi9ip+wb2fBNFRfSj8s77vg/xvmwsQbeIi+8AE66i/94L9NFCxjpZziNfq5ATNeFBzNDiEjjTEpqekcwVYeCUKicKTyqToZwnlUd8jQT+jnhvv7aAqsu7Zuw6N6gpUlKMB6xbmYh7qb3C781kkDXrAmH68f0LvQ1iyCKMImSLG7/NUiK+6bCCxrv2zHXQfqzEnxE7GW9THAj0pENIrZ1zqUKK9ECKvAp16pKcmcQmV7QZILgcHQ9yIndXbb7f",
"sha1": "f1cadd2c5e17373d8f9b2b860fbe666066caae31"
},
{
"device" : "ogki-key12.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAK6gg4/Jie1oerp7rGYMTHXZvDViOHE0dBd7yG0K6/ARl7q3MRCBLjSpWJBYwE6QzCzHiK1+T8uP8wGSzynu9+cNybol+BZQe0XspKZj99h3CFwZ8AhNdQpf7L5k7g2KIBZ3iG7zciQO/QzX+h1Q8N/Ejn5DsqiqlKX6e6a0dymM0GoODW6eR416UgJxHSyikLK9wV8cmlvAyma8PL56bn9iNLbRRq7oo38GxTi5NENyQRfnWYEUzooNsXYPp19dhF5bj1Owc7Z6XP/+X44i2fK71mKNw3KkpK9SqlA0ZZhMEZW9JbFWCAr3ZbU3qg8pB3t5jJcLGarcUVVZW2DOx1a/c7E/0OsE33C5Atwq4vps2Bs4KNNGymxnfou/2Mb3u+EleLlL6y+mHRQg/RUHvy9jJjiG1jMaORtjK+2CEbY9Wi9W2FAOzkH7uqqp5HEWcZthfgG3rArtuAdZ9gov+s8ir7Oj0vGGeD2aBrHfR/+mI/4HIGYA1qMeZWXTD2eD4alBz9KC0gutI5WipvteymgN2X1uEow2tVpkttSlfoS3xy+oluU0+QrKmWpSZhCLO/pqpTQCephps93bbIQ0HwvJ0csuEjYgaGexKnYoE7m3L7Yi2tMvHgPZFFozbfUNX23JYPpiz16vlD6YlH74QLqSap08XcY2PRhEPrUR+VHnCeTEkWx1tYW10K1eZxf/5vK0jq3CMfNKwuAAoLXku6ojwGBh6zzfhWJOQe5XXsOi9uP/6OPTEStrADzVg2NZNmhfZLTVIQ5tXGsLsWPXK5SOfFfIfInPXNVzp2TA1Rq6V9Okt115qFS91CNJ2Go8+Nnh+gv540EF+Idk63JFNUK0D402qFqOHl6RU7CJs2Y1fYkOkzOOpZlyPWUQLay1rw1jaILE1L3S67zb3IWuc285TrA/bYpHCcZB/r/Js2X8BAGSgZZAH4a0kG08zZMfKdeGrn7+HgwJfgzRowCOgWv0Rj7PLEcEGUF9TpZ3Vchm7uFhEyJZppvo2jRMQdGgFRoio39zmSZ/dLuQtWrwvJYXnr31EM5yjDDRQ1dy1AFeWhSMHl0qDXYUIEQ6tFCki5rshr1UhmjxGy4ErqAmx+TvZB/paz/GWq3hW2+CIIaUzzkklJdMpvFKOqImInv4ohppuUT0tLhxXDyzAAXofJDuS1TWYRFft2tSs30jLJtgx0OaC9mMeSOl+fgWPE6IfbPiKOb+ReEJrzoniXxcaCmJEgD/+h4pUsU+V24P3J6Ez5JKrAxPoMIL2KNzC8wiM18Hj08Q/+BOAlxTWZ1LmF8XYeGhlEHNRrp3GJjXrzEVdso8mFDU+QmBE6zQAX+VwAHqZZG5xe6euxCoGgPdmcUsgrah",
"sha1": "ae96775d45036114bf3b92cba8b1f183ca7e0d03"
},
{
"device" : "ogki-key13.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAKwNhKmthi5hmkFbsDZb3BUXo8OlFEgYlu5hF6CZK2Kk3ZMc/diXZZ+KXLEz2ndUhkHb8dSNZJqK10PneLyFi1JLCXz0uSq/op7IpZb4PSbVLquUH6o7xprbPgplzFWLm9r9JBmfcHmLWcTXSskDlnOsKbvfYxoy1SSf896RaZITtz7fEQwO4O3CyX4WBQ7qV2igZgsLsE+xHfem6TQNazB6pyivsyG/ZCh3hqZ7tumP/ZxmiL3eXJ1viFsXUkGXO4CNvE2FMWGY6Z3ViYePPe1QdHCW55LmqBfkImsv6uO0X0Bk8PSqVyjRMxmq2KbPOvXDc96INOYvBT+sRk+DvYenA4sFrBD5N4CT3NoMqwTq7POY/LQDaW2QsLS1vEDrWxr+nHvSpt63CUQQTvvrMOEUNVDemBd1oPe1hpz26VLY4BxIryuYBotJZwpiDVb2lhB98rK7AAL8THjUkvqv17TJ9SlwD5Ueba+shSOCZLNP8ZvMU9qnyjh5v9OJEim788+ugY9S08rrV61Wqkuf4ZNdSG7nJvZ/8SDhqHGJZkY7VMePFECDgkYxHghimBcSzhtQNwwB5CtJtmOS1vl9+x5+jsjvtGv1pCsuX5ZPpWehB6T8AvIFRNcebz39FvudKpTmt/Ps1bdAlojXE+e5PqFHjLjbPxrxjfyQ1CCQ8i7/mDagZwDmmi6QZdkb7MyEtrZNjxZmSk7W0Dr9wUNH3O7UE5pkbOOLqCNFiKMjxzefhknQ0Bk0csOyjaFE6xYrja638qU2juWvPhtjPfxKFzFyoqQm9iuomjSuh/PnIhC10AomIvBQlGG6eb54iYOSOp2MIa7HFhgcEQsKNDG+XgFuzu9+x5OhKFAl9xh4LrG2JgxFCioBqrU35SVqHSrCOH6iA82mwKPMTyylN5E3ivS/0+LLmdNadVymPnixiOlDZYvzoNqPwtZhiBUyoj6oPylGVIMFTxissMLGn3etNpiSZRqK5KNzXMYc4SpuW7mfqEDCs7g8gLY2VKiBd+zjnd70mIGJ7U5Z62SHlnBQk87xGdWpaG4A9901tSx4/LKJVQW8/l2CCOIXvuRttHV25qB9j6/TaXjr2zb9+7UAQjK9bwcA6+RzyHWZOdKlxDWEmYK+kC1LZThsWRrN7dPFI5isPhtPks94NF8eT4macM1/5qOzX0ZvCYuU6mllo4ag++IGZYYnhCg1zZuWz54hct98v4bQ2wk2HUJkcy+/gJ3l7nkvisJOyixhIBj4oej8IHKOozFUvHdPFbNyCFCOPhLhjB/Nz/xIqKHCN+Si702QkfcLaAh7mMMY0HP6NVz/woeFEvDDemn6kiFRlPl4bTai6GyBnm76nj4+PeRl8bWbsNM7",
"sha1": "36f94bef6dc983ed5d8179635970e753214dcb7a"
},
{
"device" : "ogki-key14.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAKR24SWzKKjwtfaZlP/DbyOjZYcOub1j52iQWAFsvy7Hi/f14SZjhF4S2f3WQ0rcT3arK1ZbReS4D2iCGUCzIyNCLFRxBbT7iNXSmHTn0P1UvZdWPZWYKamoFv7p75AkGsg7AYpz5GrU5yenpW2QUhU46hHachTStcFZuTFcK+OLMPk1iK4Pi+3kPQMFKjlZAlNp36Wn2jM5LdsOT93PyE+eU7Rs2v7slJnJFjUSDw2xFWTAh7TOTNo7kywKKgs33O7wpl6FG/Gdl2uXmVy+upUXGfHnrLXHWjNXmpahKWIKQj9VHtc+8FuDST7cUkA4a/ySEu9VruO75mhr53DivWq5n0csAPj9bVYGAA6m7fpMUkWRr6gU3YJr1tZw5p9CPxCNSrUzPaTesPem8dxHu8R9DeVNJJZ2rNq6BKz+4xKXCOi1YtZERRnkLkuf48SdJCotRS7/AvLVRAbpzrXzb6PO4IJVN3Hfwb60nDX/q48/IKi0ti774pMifi2pVt/pZv4/xL8EKLPZVC92tw+jMWChSF2DKT6+nOmuih/R1aAfNzDra4QP1VHhvdrNVo9KwbsyUARf43VH9jSEEDKLtc836J1Ga06BEKjCqRiUV1S/TiLQzsIPZdyyyFpcVxlono/EqUBw3W0oVU2RWF6+jc7OJN9U3HLrz4vADYAQxsuBTmOtU46H5O7YPHl/ZbKkNy9RLNTuHYyPCcGBpW/aqMhL8aa47RYqq1Iwsb8eX9dYl9DuctPzZ1M5k7Ss586MSBjbv8Vu9sHMDR2tkVlZ6BC6Fh6gGPxaAE77V1zDLoMtSevO2LiJV/kFrVzsTik+zw1YqIHMw4fITWjs731WMQYrS4UDi/UO7+BP/56lTBO+naQZV57Kk38mjKFFOd7Ld+eUWbML5hP0Tgsp+zKmftkz7yjHuZ5CLKU1RslTsCGDfgkI0a0Yx/EcR4tgfhxD7oW67zhfVZ2lNrvth9SH5NSe9FhXIqwOPLHR0iNLuLgEPjNDyXc6pxdphPmOuWhkWvFDhH0W0G4AKwDz83Eh9XbX1dENwF1YCM7NmxqB7PWfhCRyhWH05CWAtXAkVfSHPIxSxbJCSDmRJA6odyTUf7DhY93f0laxzoXU1iC90lAwdwkXlD2kyQY2Y+QAbkJAKOyLBjzvEHZzxcFfZOg8YR+H1FEy01IowN/286hgjE+wAHIYzzD+2B1IaZX2UzhI5ptrQlZVFGOx5QQNV/MPn1ruclPfMx0631sIaQU0IUOyGGx7DTHdUT+DI1DN03+fhqpG9DPAz1Lh0mnWwVz1tKmr6cpzobvzK0IdVmNb4P4XyXVwX4Mi8B75nN2WJ9eDBArdIUGIduQUkTA2xp2nTxkqQBsD",
"sha1": "7501c6e53cc89db7df9bb5b17af06a0fcda09780"
},
{
"device" : "ogki-key15.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAPFOpWfS7kYg2e0YhL6x234CMEBLtVxYQ4agkTpSX+A/s2pXUzyTZzcpsMCZPlitNjcsQNLiMR8z9/POvp5Q5bCCPfOxUHLJJC3UPU/GpizstX7i+MwAhglK2QNaNJu0YaqP7Hpm9z5nKeih3aIMjP6LbIpOHeDOIcS4IfstsjZDmRMRYw693f5PZ0RPk5iKMOWpag3rlct9mn1andUognGZNgadAh5k33u91nJhFmXw0iE3Q+CiGcE4SMQD/4Z9d0fxroduOJsRbbF4NpzvfUTRK2VqoL/b6zlG/0N/Vf5SGpHd6sMQ2TZWrVDwpBBTo9C+MaD7HmAGGeSLudO5RX0fglcGV0MxYwoWGQSVgBXcsKxxSfaq46g8frOJhbNporYEILz1/kL7XhkSPEEik6+FpHk5E1RokByDa77eLpiZEmd8J76yTkb0wyMBAgAbSrArHfQUfHW2842i4tBM9rd0Xf30UrdIdTi1CZCj/hQNtGkKJNFZueoA7YEv6sb+3jxYQ6KgAqEoLdk39gEjNFZRPaUulIPR7eTnzxGLvmXP+BZCJLE6e0drL7wsBplgX2M9Rsi0Z+cdTcfe7zS1T2gtka4B2B/5sQlQr4DDbNPz+BJgauJXpRXHttF1+wDPLlsIF9F5yh4jA4UyO3MN7WviLD93EZg24m/Iqw4z8YbxF0xZqVCbSF2794ZpwTz0V0w7zqQr/0Eb6/iMtPdV9dmn5V+kXukYssZjXal2PD8VSLWfthcXhungh062t703V39HxxGmLYlvulEUmu3jJtah3c75pWVRodtgEzBIJ+NPeRRKecuzm8/XqZgicZ8JI4szAdFvUgwTTp6yNJPCDbklbIHSX1cQi044CD7GN6QDko693DdYyZ2pp8azpZfQOPYtMep749hEKp/5Dw75FCk7gicshJystSHvEmkW/W9S1ChqdpcOPImOfmT1pBsjvxODL91Vz1I0ErY9+T1r/m8bc4hq3WkKQf4QsKpq2KBoVQ4eHVLDMuJqnA6OMpCkVtFZxp70+davK1z3MLKSZ38b6/Bk1HkwWPpV309X5t4VDtNJrS2iJzRyqr47IdGX1haaM1xZupukw6IJnH6q8/w8iwLh0Y9TAq1jA9zRHlIk+D7a32n5LCkMw4LEgTVBEjx8hSp9m3hVDZbvVa8Ljvh7ARTmJty6ZVY0LqYzLKDmXhxcAHHrnOBl0SvTxebhPDeyZDDXmhwKJsGqhQdEGaXoTV0H2AJ0ZeRIDQrExMFY1TXxTF6Pzcdnd+fUGzw6u775U2lqkXEMNhBv5NfXoeMX8Qdsuz5/GMQIjmO1Zj6JJGN8m5iLMViAbrGuT+o6N3q7jPg7sDnllOHB0G3IVdxHwyKi",
"sha1": "254661f04dce7715de039f570eb18a51c595cc06"
},
{
"device" : "ogki-key16.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQABALa9/AUlb2DdgHN66xNg9gYwlqH5ugonZnfY/gG1DAR17ZTUXTa7/MfciNJtoRepAXZZpCLVG65POxUlQALJ+h9BdzrwkrsIAjp4fm3XBuCjGk2hbGCKBNsVRppcLaVd5XEHMqcz2YpG0MrsWSu7WEN1e6pCTeuvjsx9S/mM727u/r6QNt9VrsRM28si58dkOYWxXSRdOpGFYHsxeXyv/k6WjfoMbp12eEmjvJk0IR015aneNLdkFOpHy+bAaz0coa049Nu3XwQkcE0MJvdnhEHTdNpuk/zPIqHj3+7qYfHU4vdG9tjq5BQl7X1V6ZXN+EwXaoZm1EbsYBOjmFT6sbdVQIgOqSN3S0//j+x5nB8ku/Ff3pRLmZwplJazsy6CqDEQNRKzyQukOjIanWlY+IVPYxBNuzERuC2qjENQ7Si3OtRIOkcOsiZLX3Z+UcWfOKgeV0+iinBgyhWu5Rs/TIu1stqF6ketYLyH0Pc4B0DW9wmqpaaSIynN/T924gaiT57l+r+Pr9L6pSw94XjNwbmAdK5AVHN52yv6cqxpl8z5PEb0JJYP5eJ/1Mwl1XctllW7krSrU4rPp4OwRTZOAHLWRlXeA7/PFC9KJ0g0VYdDgxxilAckB1WDifnzctASdeD1BrDydTh9ah1s7u/NBNkDNRURbUDi+3gPPminHsW9/v4QPFo72yXcxe3b8KvfNuAQm7Z2g0HvQg5VK6eqYMmyF7/CtIMiPyHn/MdhKd4FlhzC/16npK1ysrmy23zJSVK6CUXFCcTwYmeL6TdR6+zUildVsjaU+spl2BtcVdSClSrjuN8Sv1Av81UtvRmiT3A12hpsa7DJa7e2MVgNLWImN2TCJF+o4RdkIfv9aKqecavqUNLboySx/Mx/bVnE5+bQZRY+Yajn8q1wW1Lhgd8VN7WVo5OdBt580BSEhqTspaIKPHcE8R4blnDtkrVEGgol9xAOY9UguwWWOnWTfnwkGETeexaFh8Vn687Xaa80eQbF/hjit1cV3LW6ic5UEyKgO8tUKU/H06KnRaqJLqNYZxACpF6Ooo7+3zXB1XGt4wIymRrbQbXCxM5q6U+swTAQ7IHPqqIcoT5Fyn8OFmiBTlHRFcIHu6LSxF3Z9j7+fS0kJK91yhvCBbVI24xyI7sOpJORKgSdDFWUG2zr8NSw8biBMOeTN6tWSPFniAw/Cg4PRx/FOb4d56iWyEfv+GWHX2m8zixVh+7Yg5z7CVYJs0gP6V4rXdiq2YfA0b+I2qqcX86NnF3tSg1PLQZ9aQSoM5gKV0efBl6Dl/ptGBs4oZxguAw5MeajI8LRGFmdiMItBpX25/QWDbCxpT3nsPZlB75D+j47ZmhMmrcMafdt29",
"sha1": "35aed9d56a9f2f6510eee37ca185713f53bd657f"
},
{
"device" : "ogki-key17.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAEwMOueubO8YFaJfw+wM01Ie5P45VuJfV8LWWE23xRczWj830FqvMNvz+Rj6A/xwGakh9P8UvjDHO3kqjkFTkpJvhDCVBn92vlyCm4RDv5C0bsNgD+zXM2f2WBxFMj/yrNnA6hwZVKkl8Swoq0MGkWCs7dTX/Me1eJZTNfNVPZi0eBtVz7ItkKPc/6aJm7OWVP+YQukaZjhlpfTbxr3bCfu3bi2WU+loe0roduk7l4/Htvvu7RmFNMiNTnzF7Tsf20iHnST97b3KayuFB1U/BsDRGqBFTDNzBMHEAiTIYT2WDB85dvtf1sUS6Pbmmo5AG+AmkW/1edH16D0CCnOFRpYA2mrVc+3P3qtTysBohVU9PqYf/Qzc8fhrdk/PwuuNmqtHt4+i65bzAnTm8O54Iy/mYNwESTrroxDWRR6UpjJU37AwGSYkrA0FKbEXCt/iIpBthMxt+vFrsXVKlC23tr6inTkXnME0d8zBoUnczCEc2VlGOL19k1Hv0LIf87Ky34s6p3hxytfIYBA1Jk9tJXmQ5Ty5RUifpxteeQnZoQAnRmNDN73NUjk2U5+nUZOrdD0P+hn7wz8ISLEnf54CrWrLxzh6OfUdrpqUhHIAJjrK5paNhpcTpywO+40EVB744RI7fHCjwpusfw1FJoM9d3dOkjiQhdCr3XQU9eEY3KksnpfHKSle9InmR7msdPRqk2SKTP+SwP76yd/cYKYfCJOneF3GQAz0S9nuwMxrTjlB4eiJAJVKOB3p3f+2SWGBb4FGhiD8RmC0LC9sSXOwL0+OYnkx7S+oqS9VXLlqgMiCg79eJIAaoFxusyN5b88Z2w/OoWKOHTwy21LZxHpWHdKmJqMaXZpRW70jtaBx8QEVBSA2o3Y/6W2/LVQs7W9FomOZvdpHCykfjzK7VV3JUcbxbAG5upWiz8qOeD9sOWvtTPxb02F/wlBeYBk+JVerSEIhdgNfuc/rk/qTdwA4Zn6BXfXbIogBalkC5J/IvjwBqxlb4JMAV4iGXafNTu+w+3E6HNyf8ZStEbV/0ib8KEUb5QhuPBtkvwx+P0qFyhbCr0wzpj1VSp0O++tFbS0yrA2+Js/yxeCRgshO9reyF4on8qpiAOLHXWu0OYdICy/OmTPx2JFhJ3Mb9wSVYAU34XlvdJAYfoiUNohah+pNX/WLII8xEz6mpan/IsfyJ6EN23mHBVQWcpSBnHlu4ZwJag3tBY8BKaPJt9JEc2LerW+cMq/7AQu/FJml+ZQvUPe/D7CmdV2PgvEiTkeFcamUh2qNeqXO3L3dANrS+d1MyQavGXmIcuaeVsMiSgfUPzzCqARCvsVUwgYvXqUpzv/f4O/7kfkybO5h1ilEqm4DL2wx3zaX",
"sha1": "a1ee6188b694518e34e2982df89f13464952eee2"
},
{
"device" : "ogki-key2.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAMJ7XQWl8ob2sXFwFDokZaSghRc3euPhPiF96jZ5ZcdiF3Bg2lzlJyCMsr8K7R3TqdFaRAO/f8O0TVLRfreF/ZejrPBTWneDQ35Nvvl+Ea5oylOkpcLb7h0bS2HTM7SQrb53qHQTTUr4F5nvyMv0nls6hoV0bqJ6WHJWPVo48bCsb2GmbQip+OCAqCBiNaLWnXclgoIPocjoi6551YrRZi1JBqNpxXONoGDaXM8/9lf3GnZhdpEBGWTxaQixjtMWr9wEvvk6JmRhQGAaTj6fEmTkzUqvvMRTOQLPanHZaeQvi8nxRM/rZmyAKgRguVtdOeWGBlghLilwffUGd0GMlmrsyAchuAVdw2shiNV79q25KyNFeDMaLFVgAKviEQ5p19J4o7Nf/nNdMFm1V8KpW3AnvJwusgwjr2oMY+GJgaRfNTqPII5l30784UWxt3J+l5WaBucuRgIYc6HQrWWCChixd+Uv6bfSgRUUVaUtq2oaDuBjKSI4EEH76qgtnY7kXoOrnh++lDfDKNcGLnDLagYUDUBPD0Qnrlk3TH52sETuXcuaGJFluO5MCS4y2MvQhp9jFs3kQXx6GYEcXGZxQQX46e8ESVtcJ+inOJQCYID+rEOW1+jzX6Y8AwBEXmE7R48Ytzk4HipNyhALLGVSlAbQMBrGIhpuy7IWR+PDeF9V7CQYM43lsCOs0cgKb6GliAMKZaih/JNPwtugoNjr+gYEZwqi/77JlwWIwbmGkYFgTLIsw8lsGX2T+bj+Rrvlon+0WNoH1oo1STm2ADCygt/Q5dClLPD8j0sTXGl2+minAJS6Hq9ALrLjwWir5WpFniEHGzcnGQCky4pZ7JmMiQMEptXhotYnCET1xRv0uh6z4zWWPdu3vCSvFFixvZMiDMsp72P4OBiVgF04c5QfiC+TJVzOKnRG1ntpiUWZWUz5mfXRFTEUmQg/Qws/EyXAydVTVsA1tQwvrc39BYCsRQo4sIltMrlIGtp7nO+hMg5myv7vXpi0pN3ggGJM5vBKmB074z8d0yCFZ1s6KLZkBSubb9QGnl+4kQyD5vEII6I4GebToKthrd49TvMfDddGEkLv45DsWl4q0guLAvyAxG5Wwqaz5SVuLCq1UUTVeYwGxBt0sMneQqhtHdz4z92tjr2aHCvvqyDR++4SvnVv37Qcg2KHL6Cp6w0V3jyFsshW19Vnx+cJjiSnPuZpcVLBQpEh3c4J8x8OfdfQaBDdDL58wE+RGdI9CjUdGDx/d395JMXIZtfYmKtXubtDrkIgTu0EkgC2V81EIf0nOm9Jz+L1AecfOsYOg4sYrq7ozwAMBuOYh7Z9I5rtvanrgUADIaTqQ1vft797YCa9Bv2Pe79Asqvn",
"sha1": "4d1eb47c104f56ff0db5401f3673f325582d04dd"
},
{
"device" : "ogki-key3.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAELiPlfCsjcSgzJ42x3bYFIQnIjjnG+tiPeqt5EaIHhH6JgfkP4HXidGMzctNlF9kHq6yPx9W2yeKfymgg7MdfvfO7OczCaQEKfI39iesCTa0hbT+XziVBrMP+o73wB/XoR9xHB9QPVuibFEeIkvA5CUdcRU5+HTNC6JAAc+0l6GaHiIN4L05y9C2J8M3K1Qdf/6zo4iyG5QdyyJzpsniVkBiKk0abGOhvvw0qLvaq4lXkT+6eDQG9eyq0leTO91oNygfFfABT5u/CizlsmeiLrPKUvpqASs434iXS2GwJoQ6HD9BwSY0xCAal9VMyqJMgTDiJz7i5F48UN7E9SkXXY3r+5OYgMBdxJCIl8udG/znZ9YyEeqpFNX/hvFn4+5R1FZLTCW3h+6eXiRl5cPnu64/4ysYVedmh5EG37CjskMMHI5Q96OH2P26xWO5acgLSL1diKYIBBqpgRNKLdu3CU6ocnQg4p5u5RkZBcnv5RpeH+7q7bvHrRbH5rcT4NbwxnUwAskBtOzOm7BcxCJexznA8oIMoaPiZnQRUo9FS4A60FFCmSNigCpUyu20qJ8IYhTssAnW5kqIFiOLcQvNlUNJWNYJMxnD8z+9qz537/7cnD1buA0/Mu/amQoIY7kx5VrboXPvbBj57gu8m/Y4ovQMndy1su5SVKUQ5ARV0L54WpymZ30tpNYP8cIWRLius5KMLRhdBlsEGB/0EtFG8HvM1T4URSh897JnwZt7GcWyRJ/K3sR53u/YnfrB63vKzkICe+IoxCO8KambQi3ZId4CtThfweWXWZvp4Eznps08B2w02CTVfFLmZR/25MhL0F1YVs5Xrwxr3MvvCAWXMA2mbJKE3IRsHUhCtx8/s+2gEtpQc+s2JvGfQBr86QyvvvdAYxpDnS8v8SCxo+UFMVmHqaEjhUVXuK2ipVOXVKGEjy1FiTP4cpQ3Nxnb2dKWXUBMO7ZcTWEJ1ZiWg6UYxDHbLOUAKJELs4DsvwWK6Fy+8s9BpJppPtzfMmuOlyTjyG/c4Uo/SKSMCjgC5GNGwOxdBilI1PLMPurUXlcCLJKNUL8l6dTjq1jQhm/C9qGd/jczfcfxJoprwHfyVq+Ffc7MXhUctYV5lX4Rt1gQkiMucsvsycdYchcpo8Ms2HXuLoay0jnwVLkNC5Apq2eAF948GiVmiDYJkXD27aq85JiOUq5tGRYujMETAxDP/h7EyKNqPNDjEEA/k1fsHBagZYkEk90I2z3OStgQr5WaUQ8Eu3v95D7V7J2eO6SBgvw/L/6IOceWIWlMVoEBmRJNFo6MVdRKnVkOI566ct7/GjU1/prkngHZnI60AbYLY+s6N7qzqAnv5WDwAaY+oUHu75eionl",
"sha1": "8915f314bff9a92a3d99184d0287dcacc3cab742"
},
{
"device" : "ogki-key4.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAMm4Io2sgYuIkxXc8J+4CJTFGQSZmPJHOEvjzSoms2Cztg53S6Yw9t/FANBo+vv4TEwoJxukdbQIZPX4ZVLp+OLZpgDUw39a1DXwq6rTbY1O5ecKdXuHVDbixdNhJ0TMLwvmKSLd2Gh6y4DnISbxrpivDD6/crC+AxVxV4Qo7u1xYpJh5844u6iM/cEhZD2v4DLqEB72eg7q2PSt5dCdC1C0AnlXX186DhoMv20m7Az2VvkHMD417RVN5kwpzyMRULRhC6YGsCnxXlnMczhm5WZRKQ2T2NSD2GZOri3Cn7U2+U+0EwKWa6gIbY9XkslFLB2AMSuZIyQ7JlSCnXLrwClCTn0ELylL4dak21HbCSgVJQSand8ZaZWolIS8CvD9DWXYLl1SK2zrEKYSM4VZaKD+YDY47hiOzqplVuqwXReli3xL61qHjrP6yvrSgVPpwUdrLWsG5KeAYfbW6VzHoAoEZaPVvjoM7Id8j5Vmo7y+SKF7bmZ8oEvafcJpwvGDL2xZ5toKMrhOchojLE/tXxLSqlgtAj4bAyVX/ItyVPAN75Qya3j0iJHxFhFnBCpfzuJGKhUD06FJOkpvYdHavOWn368R8wZrmHf7kWEhdmuLgl/6JJ8J7kY4skfGCm6HJ1MOPBNrin0/p+PBsAWIMu3nJs6hODI26breZsMremZjpHqPuyx3Y6UC4VcB4pVRXHshWk6uQIbl69mtcYCfXraB5wos8oVQ/PqkAtgjoYIe360J96IKto+69h2kA4RBYbrBgbeyvSaqHcwqGj5+rVTtauFUkdOB6tSOAop1bnhH5QPVTafJkkJ7QHDzCpECQHd5qcxPFctnMOdqQaZZ+h/CaE+CHjaZEpteZn5FMafCkftYTJCPY7AT/0aHd6BbnFd0qBj/od0oZTknMaetoIQVN0c6mxGXXQRN+0/VPNFZnk4nHbp9VgRnM0Oa+vlQFNVp+0Vj0jz98tScjHVKgatS7N+FVexEqiyliTXD2zuBP7/GD7Z9MLcPUVCaoE46PbHVxcWe496e+sX8xomZ1Mi+ERBMGS18rvRD550VxnmzrJTiQOOMSjxAdQwaAJqVkpbUFjBD8shIL+Z67q/N+QEykFW09bEUCjZF7cZKWIFqf8UJijKW8z6g+1zU2eC4owgdKaAi3MzdDi6JbhcBiwgylHAHYa/nihh2KA/O58aNMeFS8nm8XJIt30Ub5XG2s5reYVl5MVuO00HvJ0yBGJMzKI99Ow/4TYejVu391zRR5864ffiaUlRyemWx09yDRic2TCQuES8ZKZha7O7E48T8BU0NUSX8Tp+zDyk4woafwBDx05GLW9WgpFvPfpC1yG5c54joZnMzoP9ZdHt+YDrgHT4J",
"sha1": "48271d3cc0e24f4c726e85205f60537cfd2f8972"
},
{
"device" : "ogki-key5.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQADsYhumhB8gnFluijXgNioUmglKt8HeCQlM9Ly/mB4gArBR/3FS0AOzjP/wGkVZF1fTO3WyhowmbSyZu7R/tUQQrECyJlQRiUB0XWr8UibLiRORJxNLugV3u12zXD8QNS7JuhI2CnrrJyo0L8r202Q9mF9maHqgEC9uhJ01h1HCi9xOZJLKm8OV2DvI523QFyl1h1XLgTUgzA2X+EAPGcX6zzCDkk5CX0gL1NBWbGrcQTWBZALEOqO+R2XqDsFV1UdAB+rIC6HMJ+QjorsgNz4bGi8DzjmC40on2Cya3VhytM4bO7nK2ABIeElik/vPe9zMbHkswZIbcODEegIV7MZ9pmrwacpRgxALQEMpAMCJpMeGcMn4tiJXH07qsm/F0tNCeYrd8m4UqZB6UjQvgrpjaq84hfQ5+Lqv2C0xRRoDIuU5d6wyxVafYGpzTSowR8EQ/Uz+05ar+BzQcmLDuAcQwpjTBhsW+xiUnwLJynHyDN7D7wBqQBRuQoY89Z3atcXZdFpr0LWZJ6SPmWaEb0HO20ggJPxv1YebBD5D8nqXdqiTS9emfwb38SmHf9jgGWbJhXSMC8T0VpBMVDBWylqRtOtasFK9gxaxEcaSdjVZZHKdo9bG4CJBXC7SBcrlmOz+mysv5ffozwqDVVmaI2fREgSyrT/hL0ExMLCYu20HFNZ1Opx/4Cl/NUHurmiSH21nAAKm/ue6TplHK/g50wxWtQZFR+p4jVgwsOYL7XXgtNuWA28OvWn5v5CgKgSHOsmR3AXypbxgTFolVOy/BdtjEoT9TxtZ+8LLdxoIRIp9Nb2YWznQORHBGHLM+GM8nIFkfbNQUxM8Z0SmE9J71IxxO5A9ixDpXXDixwvHUqXgtshBypAhc4IxCZ8vTELJtspw+RQncmUQn9vxETaTWWe2GcWFK1OxVtvwX0aq0+m5ss9ettIEKE/Hh+HHZv8ORGmThhh3yGtzJEmecuLL3igrcNy+/fcl5zLbddotGvqMsQwfeM0/YSmGXQVrQQl9L6az09cZRZ+HPFZF6ZzLhkF4Yv/j3Rt6NHmKyCRpJwD6ru4gT7r8bN8FXNLnFzcYp39gLxfiS7vpforAQO22abZK2Z9jPoD6YysaOCedJ+nUoKeKTY6xxmWsOEmy14EyXWaJQz23n43mjUTSZ+pr8ZGVwUWv6Lru4L1DHN8BvQjBN0fQJEdYK4FKLpl1SFRJE00cgI6+dy1HljUzmOCzmswB6IYFi2h0RMheXPCh4Ibwnsjv8HTumgRa6P/Fi6ioQVe3B5PSL1wQnul3FNTcR635bgtVuVRTHz2Jg/gF3hHDHS02GHfg5nNV6RfW0ng0Av82b5fObwHJSu9yNM5x9T2QqI5MY",
"sha1": "34fa09b4aff8cccaa1877d257f95edb8b6cdf21b"
},
{
"device" : "ogki-key6.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQALLs8eugA32Xp8M6BCgKm6EFUF9P5rf2cmY2+jrOra7oZzfHy6W4rPzL6cY/fVX8JJl6aAtMK8foERdbDuBWBLpPsq/s9/W1zNv1HDpHmn0ogxPBx7LKPssRBrBxleQWspudDmWb8s+Xr45RZdrlT+8+i7Pm6RKapj2caIXmn8VMIX1nVmbzFHsWypT3e/0m5mO9zCkOjphCtDpg4AJ9cIi0i1mokGNR3WTS/K8t8QeSUUFA0fS6reqnE6mbjN1rLuHjcwAX7S8qopMJ8Dfrm5qcQf2GxyTgbotE7KGge6YIGNjI4VToKK2XbnG0PEUvsL5OCDuGag1Cll51HunxqQbPSaWl2hJvH3Hkb/Rt54af6UX5REyEzUCzKo6hNHHIdEU4kN+9DDVQeutYucSaDkjoe2DNUTQtaBU7C46cRmttqoDJF2g+HoJFFDyueeRJ/W11XSKutwohFc0515BcvSrPEr7luVsAJenwx1bfJD3aCDorcGWZbaoT367c9vQHDL73rESOnhaXPBOC4S8PNjd+rN9WADTbqa2Gagjk4UPik+DgE/FuNP7YEXvVSINv83yv6PAYdjNlzE1jNEUjHvRnRw8MyvdczWlHk/c07rtyaDerp0s4p8EKZenS1JdaJKGLH17cP+zxl2Xy9dFNtj6fj0tq828q+oD7IPmNEw6uQD1RPUiFzU98xi7Zb58SaFlAwHtXRLosPKELPJrByyBeaHkg25VjLBoi4IExG6jE3Bs0XH4E9MX9ue3Hv/oBmLiq8gKZTagqqO/tW7c41XBoPz8KPBHX34Q+G7wmsGKZalH57DJ3xw6uwON7DQYJgJyFrJpEYs8ynce5RXI+fUfVNrsJAZvjUVNUUXT2yWzJ9TBUOlarePAd0+8jz9YLdi1IcAP6YfcQKCpVtpyowfgBeWrIUFAPyaoyvZKibLmxN5vDtznRbo9LkxpTIYpbv+j2F/MBy3scV6wgBlzki9hCZtpp3euSbQ9VVu2eY/OL4VWso4vQZwo8aeQ99WxF3uhnxM7snJ7JmjoTtG1GIpSB5aJTn/tfXVKLS+CRMNJy4gfLIJSw1Ef5W9+MkmcfTbxI3XihdrjSCJwNI8M7nvSDmEqYrd5F+hQyt7AAxKO44K1T0OvsrQpHagj0TDo47w8Gvh/P30OQGkI9Gj249sSEFXO07P1wGZeBVRbXfZWWqSQkcd/5eMG1SFbY3N8WBbHwd36gDG39iT34kmdSLbadW9CtG9ddIUlzPstZjFx68ovzh78Yl9MTcQiGr6AXmtgZpbj7rtmFsAcV8Gc5POTjVldfRcjWWJld6Cr+yL3WcrdfRbUgt6bwjmy27Q+IQRZSbE9m0jWZvjELKxhxE8L0K7pT",
"sha1": "df8d5dc4255d69ed7071b4d956897c1aacc1e572"
},
{
"device" : "ogki-key7.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAEMnWRPb6Nq2BxLXSEw6fAZMkZq9uqGxRIJdS/Q3yQ3XNxMiQgC6AIox13tYskU49CZpUnSEU+tHAas1iTsGlrlJJNNmGdjv/pnkgDiP58g/y70o/tMkKSHg+teryMHL50/srUa3bs8BZxat07cj23y1RMKrJjHwcDbvJgFEqkMhpU8uyzBvjBjR6CrSx2awq04Yzbr3yaJ7SqlP2eFRGHLDtEhPuafXvvUvM4GE7FZol5h7DEVDEcI2lOPtiqmufDBpOCmuRt/hM4j905a060MmZ76oJYFniOQxBB8reex0I1AQE7GlxIXaSf4AYffC5fUSkcIVJpwWT2z0WbDWFcrM4FuaOiH6/sKrQY95FMV3m7swqcqPKLB6hko71FKiXl5jBOlmmd/XMd/UmXfJQeVU9PlhAcIXejGZKhZDyboeJ0LnYbxzriIoI3Nkxu+dcA1g4+//ekYbtAFHISPy+hSZiZTNek5b/MAWY8FOZNrlg4lTlzBLFmRAlaYlqIFcXNWp+I3t7aOdBzT9mIwOAvp89kS3GpQYU2R6FrcM3hd8F1ObsNhlau8ub5j9PU7xzVlNiv3AuzqqJRfAGq39ah/CjuBc4ah2lyYu2VEtOvyR3XgP7bDqePe2BPZtaKi073Mi+xyvcvDtC7Xbn5Bmk+mnYf/QCLOtQPs3pbAKPz1yAimm5bvzA8j4QNlNVpJU1Lt+tsAYaIoHiza+cZ7d/44zp4Rh6lTNY82hMPO/hJfdklZomELmlb6VCbMhInV1iby562n9qU90MSi5JMdchPkDZJVkvWo4rcDHxrNl8xYBWXSn6pgkjqY3vZY3/Uken5IfHcLn2yb5Mc3drR4ZU5FmYk611m71BxHwEhJLFgbWe6KRRAjwUOg5xQaFk3l0CysZoOjRmoWfI0Zr1ODkA68pOzsNbvXml+bRvLumWynYC9R/2EeMs9Fb5/s/zjMyk+Mw+53PEw3cz42P6g/GXZvo+Bybwu0UY4pOwNhXyVpX+aXl7M69EzZ3ROZusMWbPbv1aUzzciIzjw0MyWNn6i+pkCsHfLaNRwz86DEKb7bWCOJbzjSCGIJ6pxbLYC+M/ddvQ07DbwpV1+KKD+YEsfrgBGfcp5cphShht5TeepAOzVXKN9v0XxSrIYYIIzaxpBScFIELvWt5Z5wVhf9+KRFJeVvhr/31XRaBbZbKBRhRQSypfK1th55TshO3vg+5K9H3Jqq7wlx1mpubjOIn6HLmZ7yM/tTecE4rh8YaLhPThpXwIHwyjZtr2nPFsd2KrVFfYf6PNlpCW129b9PYkvaAzl6iVCTe/T8JGuxPVwoEwqW0wi5HzUFhh5nTIkRt5Tf0LWtgWBLeNPhc3C9mi7mC+VmF",
"sha1": "9231aedb402f4cf81659a361955eff75d7a08877"
},
{
"device" : "ogki-key8.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQABDQKk+tHbpn+IIUWUkxW5YxzYJWd3T9VIsa7b64KZCiL7+PPHO9L1j4eluE3yu03v/lyCZZRN+2ktMkPqcjMyDi4tVifzG2AWRBA5d5/s7105lmMjeLastrvz+RBK/7+uu9unSYEAEOPD9dCnK/iXQM0RDuIKoVEV9jq5rUQ+bcGCTtZxO9qnng077gzCDaIEn9m11yEkXsUXKQK+U+RJaZ9E/ADiB4ZO8o6BSQccK7kz09uhzuu/9ITURiewlLjlhsZWRs/tYGDU5nx6rQeOMvCgnu+eDmsfrSbQR1jwtXpKtBRE8Xmzxia5lYSiYfW3ligUhq40yVNRKHIZkiDvGoZ0a4eZdpH1/6lfUGcQQWHVwLOfMggaIoRr9BJ9YsP35eZGKKdJXfmPI7WAw49kBIz+DhBkxWwEj80hA/odYtM5mxIV18OJI8iiamaerhNKZTvV1Eqh2HbTHkQ/CVbo7gjkpE+hHY9gkg1IHP7RvbB6CgsPA+vGv/pS1lT8ozvkYhNKVRFveWSD9AWjhn1yc5t/EMpNZyyiVmaVCtuYwrt6F1Fdy0dTgaBjIIBIihwKfIhT5q8Urp5QPVXRJqjT1nVNliG/r5tE4e1wQDQloxJBnItDE1q+2GTc3Lh4nEoSaTC7f5KmZqGen1kBFIn69TeYYDuahEus3an6bM6Qti/SVTUauFmo9Lx0c7NRFgL9YpsqvY38GW/kIOp1Ft0i0pDXEJn6S3F420t0TFYWe9DxrR/dyIRCQhM3VcQ6p6GaQWFRX3TZADYER91eAUjAerTppJNfHBCFYx19Zh0C+ztXgE6XCHKA+GbGvpIqBGQfs5x0nMw28kFRQy6qnBgmt+RQlbDLkKCFGKy+PJs3uK6iUB1+0z8v49ApVxJP5th9hHoWglQRxbvTs8/us7jRd2KoyR38jkt6bCoD3GRlYYFQdn2O4jAMTcdgJazxA2QrToRbICTRLcWVnJGH4XmfB3u8T4e4guLGwTliUehlWF2Ildyh7jRO7Az39ZCxhhrO2wciWda7oSbZeZhwHc3xteHGxM72KkNWsm2bgNxHUYiW+A0PK9nRuoszZ0l5rz4Ih16tME42wlcvejiV93ra+4Ifksvwir46zM/5ylWUQtxYygbO8ANhAl243y0aSpx0a5k/bLxbM4k0OSgWnxr8QouSw9aa8QaJyP1RxOlto71etu6uBNuulWV2az6yFwqfdwdfDi5hQlQ+knl95YvhrAxrKUda0eD1wNbKzP3AsXjzdJhXYvsDtrHoqP7MUMTx9RFP2hRjdk0oeo5MXMbw1vAeaAeJjYmWcEAE+LTe7AIgOGkFLy4qdVvd/pl0vS6sDfPHxwsOa40KgNrC22xpq+uk2h",
"sha1": "d108902838f913ca02f9301fe7a690baf076a840"
},
{
"device" : "ogki-key9.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAE8P4UnojAbx87Gy/gLMkLa4RW/l8c8Vcbk9iJ6V+HRS0WIfliND0K3fbXUVCx9ET/gpKBmiyNXXz86wzcrjb6fGoo10ILBe8GP46OSl2tGjy//ZQpFSMXCOSpDiQamJDytF/QL1giuqmiJJfoHyOH6BQafgQfEQU6SnEMpWABDnlHfTDNL3JF5graF2TKjZx6uYDb14px79S+wkeUJTKn11sI9E3ZZo+EUdzKiswYN+EPVjuCrNvUQT+dSGbxyt6hByxarXdqIBeWzKtsQWdv9GXWiN9CDBkLMDd0626ZV8G2Wiez1sjWJUJ9nWz+Kn4M1E9nABjX+ApdoOaRwzzhJZk9ZKqHr2pPyy2ODf60tTECz5HwHYZuXyYkQ8rgwCIq7AYtO0bx4aUXdGIpTSbsVEI6CvqeQw/s5NbDIJNM0fBl5r2bOXUP1WETXLcERX42O5jlRv9na4yRDvXk5Q/U7Sdox52QA7OV0dkiXgQ7jRBUQ2in5gQmrd6vD0XWaPAYcPpPGxuH7sElXCuxEsCkcdbk7L/YE/T365aLphnAM2SGOClzTfL9wZ58hxpZ1Cx4iYuzGV9qBGiMai8U9ipD3nf1UEpScQDBxS1aDCZIVjamoznA6uds8TOZoFs60h4l8gR0mKtmmLmizyH4qPfHPWQQwDl1ktFsJwRzz2z+2gwQEfBzfO/3BncK5zCB5/W3PBn8BdjmJNuI9qwgdzu1iPa2FeE1oEPezkCdWRJNz8TN7cjZhGy3xLO6dtJ0QEJx6By3xuEZl/+fMJMmRTaE0jrI4Vij/yDUUMcFYFbH4HpLeymuJDC1r7k4ChOyfUP7jELBhG1wOSMVZibIBJglyjXsa+a9BbALvPdGmcjDDdmd3JNmjRTLMVyf1IX8ZLQinYqkSNJasJDtiX3Vgcdq5ujVxkQbAtXFRlvPE0W5Ao2sn+my5A0uMTydeX6uB0Tum8ekMSui5uQiLjtPJQ+jcUenLvp2nqKgRD7AbQ9WIG2ayIL7jvPJrceizd/i8V6AmFv9Pb0eNivcRZFGKwfhbsIFryW4NKSk1K9Rag220gYxZ2pxgXUV1IgBl78/qALnGsWu7FKFWdYyiWcK+cGCjj47BzscanxH5IvsHzPu69wR/QGLSl9z33Qd//msJSzGN7B18aLQoMjT8KkPEZvxji2H5Owf3xlgdyAWl48mkkKpzW0fd8euJ9RLpATqaUBkH4KCgwE0W9UqYS+/cAXfA44Z4WVqjBt+oD62+9B62j7H3XrNsWnPWuZDKVgD6S51nPBkLaopti9AovqQWPp9M1/sQFC2qV6kCr21gOE1jRTMSzIsE1625Q7vUfaXHxFO5FTpcY0gMC9bURkxkuBFbEATC4",
"sha1": "3145906328160acfef28bd379aa0fa52723c35cb"
},
{
"device" : "gki-oem-2024.avbpubkey",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAN//N6uZny1PWZIyBpFMqUVpHI3Wd5gPT2N1r/yJHZWIrmopE6KAHfkEkRv4GQewgWDQ9ZHuhEySOVUmiTIOUU1gwOtoW9iQSsYMnrgL86UE2APHO3bydN9AtF9H301y9fwS5pjBP34Fv2XmrbDihHS2GyWF1ZdOhsU7QGrtTRGTrrURtnRM22SB/xQyI8wBcb3+SrBwFqPGZZ/xdT+YHMwanawvFnqnKknHiwpmX1iY/1dCKPRAkSrDHsO1Tdj9wW6vcnbyPrLVM75Gx2Ok5K+8e1woXcZNRGJISZ3Xc3bzSMU3WnLUflSw5pDvWXB3wRfFkWHf+eDat4Ygs3XH8K41d+yYU0bAn76liT2W1Tz3KzNNhqs6uQguC1NTu8MAVbVE/hac7UZzsFi5nLNx93pLjJ44teAFe7nTpZvdbtaKROCbCqEd1n1Y86EcV1+cBguKrSPtFMkg9HA/JK3F8Lx2rkr3+WwOA5nwExXaObzgaR8NZdojRmyEwH8Jx+Fuma+suHAWi092/BYvpTTDVp7pgDAgyoHgu49qczHzIN6IuPMK5A3vsD+P2d63AyrysIyGVe0aP94d53mtg93p7XXTCN6Kvy0Sftvk9qN34qy+hgW4FCZ0E9rU0HiE7Iyu2jwSUIo8eWrjoTOmoVdRLTVnFjx3iWBfOE7PPF8Dvd35/CX0/Yicph73Muz++UpEmIua9+C11KjWarmxI6169Dx/enn0qeNtbo6c/WoI9GMnNhAE24p01UY0gHAAeXu/nWrfDF4+gH1QoGusg1c/lsncBFhpyTieQHljD7a5STb9MkBEClpO7qnXbICGvMVeiTtBCZFHoh0QJhUdMhQVuV1o7ij6CFeynX9IGm5LtArE9+lxkSYGjDtNZPw7zpzBnAGPrrFfEhQhSDAJEHkk26nBX4N9UuAoM4Mg8Pxe60XcqdylJ2oacmxAD9Xwi9W7zXICnBD567etY6FXMMnoyFmg77qoF45Lq6itsyQzz/zWzGNCKuOyS/LFO8tH8Sap01S2hETyt0p/IBzLEF/R5JrchEFlJEGDuVrOWf6TxeCTJLIcz6ZBv54RJwSDiCBEwisAPfRougPsY5ZQuxce2aFy1C/djRnERFJpdfapjl4WBefbFlfth68CAZ8G0BtoHyZcmvjXt0Ro7hoi7ojuhoJWrVz1b5UgXwGvASdluAOyUH5ja6hQYNHsvfaPLK+KHGCp1pfg4hEc1FxFy/4VAt6XTcy3cSTehNw4R6gkv5ZYyZ10AKdepLp9SdPpqaphXY1BUr5WnVrhVRsTLIfY2HvaypWhPLgZyLVs1A3I0SWV5Qkq05MMBljgsAuKaqIz27eggo89PiqYXqc7B4t7D7RPgKsM",
"sha1": "1beece88cb28960546f2793f2f58fe2b01918cb3"
},
{
"device" : "TV GKI",
"manufacturer" : "Google",
"algorithm" : "SHA256_RSA4096",
"pubk" : "AAAQAF0L8K/CFo8hWhpXWk9kS8zlFoI9ceSXRqje8VOw10C7Hdoc1qXFJFnK8wl+Dq63UoZ9Rrgz+v9IX0coEa517OsJdOWRV00Qi8igzp0/acS0nd4TWD1keuhgdob97rsjnfuQBrQfVRlfgecn3RsEM2eUZ5O5oFzaw2SoLBBeBbcnBntXwiNA+dHZahdFITRjdkhODoxgyTmwFXC7BwQzdGQnKgtVj01X3imM4GdiU2U/+znuMcQysroGwHjwaHS1teJ7htYJO3xSjMt6W5VLc4DTyi5oG4XIC7ha2MCsopQpctEAq7qKAuudVs69qo4fEg9eU/R9DVEfy5fCN0ZPiQG913TjOORl2cHZcpD0BilIIQlZByI9ncsfbWAKKBEWvR8DJwkdfKqLCz7KM+xlMFd9yptgnLwrMLAFSQ1VwAR+oe/JjZWZ9vSMy5TWgMypXaUHjkyFRo4nYv+r2jge99OHjof8VHEpmyZbS0YxNnXkrvMrhAYsu2GBpFroKHErKXWLBvy/F6bdNksFDGTx2qr6wRfwZnh5bvKgPzBXZ0kFCHzXMZ6uP6yjRfKY3XKkfu0RIA7P5mja6SpolS6HRQHqxrXTdXEmf+KJ1tCe0uoZY0EJ19Tw89jw936UnA5i8JWYERyn0u0hJLwCZ8VyijoiEkRyhUz2KNCpKWKARCECk/qZsR/OEV2xpAxSzdXitFdSVsv6L1QEzAnT0bs0ZGyJGl3oo+aSgdl08bxmrOMd/+q937SAHbjGgGqw0PEnPH4hV3vsd6tmKvq8LhImxpzuSmIPGs509BIv61wJy6n3EXjWAqJfTIGGWubn2mu4gpcOttDEdSxs9jY6qGssIyS+LPlv2L9cpJwPQ70XNaYvYpE8xiR1oX9pGp7pID4vqSUK3go96vBZ4B7C7PCq+PVqIHoyR9bL9Xi2PEiWp/wsijMfS8aka17+4nnI3hGS03IEajmOzNVpaG/83XHGnr56Y7Zxvw0wQylqehUrcL3BMViKJMTo5mT1ZlvBW5INVRswVZ/bnIeoCknVOmW9FiLwxOdLKH1YAxwvb7YMLD5fjQBRLYpGS+H1mGQInXPFFedGz7KVBcvqIzleB6vHvvbpWyrn2WGEyUr/jQfDVqEqsuN9aOwkK5nKYCfYZFeZj/n/pK9a7OUTO00ZmybDakieO+pn+6oBiLVZRt4BKwEmPt3JCe4JetrmuEsd2w7qnNChaChs0plrbOhnQ183lNSbwyhF5OkeVLAeuOlciayHS7aNPx7kBfWZ31HvdIoa8QVWL7MP50/DeGQa80SA7xd0dQn+tMP/jkOrQVlCTNYFYTyrNFgMK8HeAWOr4dmCOoeK9unsKyL4O9lO48AAUsfAuStB",
"sha1": ""
}
]

@ -31,13 +31,13 @@ fun main(args: Array<String>) {
println("sysinfo : get overall system info from Android")
println("thermal_info : get thermal info from /sys/class/thermal/")
println("\nIncubating usage:")
println("apps : get apk file list from Android")
println("compiledb : generate compilation database for AOSP")
println("dmainfo : parse /d/dma_buf/bufinfo")
println("diffci : find changelist files from CI server based on date and time ranges")
println("repo_lfs : pull LFS files from Git repositories managed by 'repo'")
println("repo_unshallow: unshallow Git repositories managed by 'repo'")
println("perfetto : generate a Perfetto configuration file")
println("ina : probe INA power sensor data")
exitProcess(0)
}
if (args[0] == "cpuinfo") {
@ -82,9 +82,6 @@ fun main(args: Array<String>) {
}
CompileCommand().run(args[1], args[2])
}
if (args[0] == "apps") {
//AppList.retrieveList()
}
if (args[0] == "rel") {
ImageRelease.run()
}
@ -126,4 +123,7 @@ fun main(args: Array<String>) {
if (args[0] == "compiledb") {
AospCompiledb().run()
}
if (args[0] == "ina") {
InaSensor().run()
}
}

@ -17,7 +17,6 @@ class BootingParser {
val kernelTime = matcher.group(2)
val tLevel = matcher.group(3)
val serviceName = matcher.group(4)
println("Timestamp: $timestamp, Kernel Time: $kernelTime, T-Level: $tLevel, Service Name: $serviceName")
}
}
@ -25,8 +24,6 @@ class BootingParser {
fun run2() {
val logLines = File("booting.log2").readLines()
val actionRegex = Pattern.compile("""\[([^]]+)] \[\s*([0-9.]+)]\[\s*(T\d+)] init: processing action \(([^)]+)\) from \(([^)]+)\).*""")
val commandRegex = Pattern.compile("""\[([^]]+)] \[\s*([0-9.]+)]\[\s*(T\d+)] init: Command '([^']+)' action=([^\(]+) \(([^)]+)\) took (\d+)ms and (succeeded|failed)(.*)?""")
val svcExecRegex = Pattern.compile("""\[([^]]+)] \[\s*([0-9.]+)]\[\s*(T\d+)] init: SVC_EXEC service '([^']+)' pid (\d+) \(([^)]+)\) started; waiting\.""")
@ -67,7 +64,6 @@ class BootingParser {
val serviceName = svcExecMatcher.group(4)
val pid = svcExecMatcher.group(5)
val context = svcExecMatcher.group(6)
println("Timestamp: $timestamp, Kernel Time: $kernelTime, T-Level: $tLevel, Service Name: $serviceName, PID: $pid, Context: $context")
}
@ -77,14 +73,9 @@ class BootingParser {
val kernelTime = serviceStartMatcher.group(2)
val tLevel = serviceStartMatcher.group(3)
val serviceName = serviceStartMatcher.group(4)
println("Timestamp: $timestamp, Kernel Time: $kernelTime, T-Level: $tLevel, Service Name: $serviceName")
}
}
} // end-of-fun
} // end-of-companion
}

@ -0,0 +1,330 @@
package cfig.lazybox
import java.io.File
import java.util.concurrent.TimeUnit
import kotlin.system.exitProcess
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
class InaSensor {
val OUTPUT_FILENAME = "power_report.md"
data class ChannelData(
var voltageMv: Long? = null,
var voltageNode: String? = null, // e.g.: "in1_input"
var currentMa: Long? = null,
var currentNode: String? = null, // e.g.: "curr1_input"
var powerUw: Long? = null,
var powerNode: String? = null, // e.g.: "power1_input"
var label: String? = null, // e.g.: "VDD_Main"
var labelNode: String? = null // e.g.: "in1_label"
)
fun runHostCommand(vararg command: String): String {
try {
val process = ProcessBuilder(*command)
.redirectErrorStream(true) // merge stderr into stdout for easier reading
.start()
val output = process.inputStream.bufferedReader().use { it.readText().trim() }
if (!process.waitFor(5, TimeUnit.SECONDS)) {
process.destroy()
// This is a fatal error, print and exit
println("Error: '${command.joinToString(" ")}' command timed out.")
exitProcess(1)
}
val exitCode = process.exitValue()
if (exitCode != 0) {
if (output.contains("no devices/emulators found")) {
println("Error: '${command.joinToString(" ")}' failed, exit code: $exitCode")
println("Command output: $output")
println("--> Hint: Please ensure your Android device is connected and authorized via adb.")
exitProcess(1)
}
// Other errors (e.g., missing 'ls') will be handled by runAdbShell
}
return output
} catch (e: java.io.IOException) {
println("Error: I/O exception while running command: ${e.message}")
if ("No such file or directory" in (e.message ?: "") || "Cannot run program \"adb\"" in (e.message ?: "")) {
println("--> Hint: Is the 'adb' command installed and available in your system PATH?")
}
exitProcess(1)
} catch (e: Exception) {
println("Error: Unknown exception while running command: ${e.message}")
exitProcess(1)
}
}
fun runAdbShell(shellCommand: String): String {
val output = runHostCommand("adb", "shell", shellCommand)
if (output.contains("No such file or directory") || output.contains("Read-only file system") || output.contains(
"Permission denied"
)
) {
// If 'ls' finds nothing it will fail; handle accordingly
if (shellCommand.startsWith("ls")) {
throw LsFailedException("ls failed or found nothing: $output")
}
throw Exception("ADB shell command failed: $output")
}
return output
}
class LsFailedException(message: String) : Exception(message)
fun readDeviceFile(filePath: String): String {
// Use "cat" to read device files
return runAdbShell("cat $filePath")
}
fun findHwmonNodes(hwPath: String, pattern: String): List<String> {
return try {
val lsOutput = runAdbShell("ls -1 $hwPath/$pattern")
lsOutput.lines()
.filter { it.isNotBlank() }
.map { it.split('/').last() } // extract 'power1_input'
.sorted() // sort alphabetically (in0, in1, in2...)
} catch (e: LsFailedException) {
// 'ls' failing because nothing matched is an expected situation
emptyList()
}
}
/**
* Extract channel index from names like "power1_input", "in0_label" -> 0, 1
*/
fun extractIndexFromNode(nodeName: String): Int? {
// "in1_label" -> "in1" -> "1" -> 1
// "power1_input" -> "power1" -> "1" -> 1
return nodeName.substringBefore("_").filter { it.isDigit() }.toIntOrNull()
}
fun run() {
// *** Modification: get and format current time ***
val currentDateTime = ZonedDateTime.now()
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z")
val formattedDateTime = currentDateTime.format(formatter)
val outputReport = StringBuilder()
outputReport.appendLine("# Power Report (auto-generated)")
outputReport.appendLine("**Report time:** `$formattedDateTime`\n")
outputReport.appendLine("--- Checking ADB device connection ---")
val echoTest = runAdbShell("echo 'ADB connection OK'")
if (!echoTest.contains("ADB connection OK")) {
outputReport.appendLine("Error: ADB 'echo' test failed. Output: $echoTest")
println(outputReport.toString()) // print what we've captured so far
exitProcess(1)
}
outputReport.appendLine("--- Scanning all hwmon directories for 'ina...' sensors and calculating power ---")
val hwmonDirs: List<String>
try {
val lsOutput = runAdbShell("ls -d /sys/class/hwmon/hwmon*")
hwmonDirs = lsOutput.lines().filter { it.isNotBlank() }
if (hwmonDirs.isEmpty()) {
outputReport.appendLine("Error: No /sys/class/hwmon/hwmon* directories found on device.")
println(outputReport.toString())
exitProcess(1)
}
} catch (e: Exception) {
outputReport.appendLine("Error: Unable to list hwmon directories on device: ${e.message}")
println(outputReport.toString())
exitProcess(1)
}
outputReport.appendLine("Found ${hwmonDirs.size} hwmon directories on device, checking...")
outputReport.appendLine("====================================================")
var foundSensorCount = 0
for (hwPath in hwmonDirs) {
val currentHwPath = hwPath.trim()
val namePath = "$currentHwPath/name"
val sensorName: String
try {
sensorName = readDeviceFile(namePath).trim()
} catch (e: Exception) {
outputReport.appendLine("⚪️ Skipping $currentHwPath (cannot read 'name' file)")
continue
}
// Check if it's an 'ina' sensor
if (sensorName.startsWith("ina")) {
foundSensorCount++
outputReport.appendLine("\n### ✅ $currentHwPath (type: $sensorName)\n")
// --- Collect all channel data (V, I, P, and Label) ---
val channels = mutableMapOf<Int, ChannelData>()
fun getChannel(index: Int) = channels.getOrPut(index) { ChannelData() }
// 1. Find and read all label nodes
findHwmonNodes(currentHwPath, "*_label").forEach { node ->
extractIndexFromNode(node)?.let { index ->
try {
val rawValue = readDeviceFile("$currentHwPath/$node")
getChannel(index).label = rawValue.trim()
getChannel(index).labelNode = node // record node name
} catch (e: Exception) { /* ignore read failures */ }
}
}
// 2. Find and read all power nodes
findHwmonNodes(currentHwPath, "power*_input").forEach { node ->
extractIndexFromNode(node)?.let { index ->
try {
val rawValue = readDeviceFile("$currentHwPath/$node")
getChannel(index).powerUw = rawValue.toLongOrNull()
getChannel(index).powerNode = node // record node name
} catch (e: Exception) { /* ignore read failures */ }
}
}
// 3. Find and read all current nodes
findHwmonNodes(currentHwPath, "curr*_input").forEach { node ->
extractIndexFromNode(node)?.let { index ->
try {
val rawValue = readDeviceFile("$currentHwPath/$node")
getChannel(index).currentMa = rawValue.toLongOrNull()
getChannel(index).currentNode = node // record node name
} catch (e: Exception) { /* ignore read failures */ }
}
}
// 4. Find and read all voltage nodes
findHwmonNodes(currentHwPath, "in*_input").forEach { node ->
extractIndexFromNode(node)?.let { index ->
try {
val rawValue = readDeviceFile("$currentHwPath/$node")
getChannel(index).voltageMv = rawValue.toLongOrNull()
getChannel(index).voltageNode = node // record node name
} catch (e: Exception) { /* ignore read failures */ }
}
}
val labeledChannels = channels.filter { it.value.label != null }
val hasLabels = labeledChannels.isNotEmpty()
val channelsToReport = if (hasLabels) {
labeledChannels.toSortedMap()
} else {
channels.toSortedMap()
}
var totalPowerW = 0.0
// Dynamic table header
if (hasLabels) {
// 6-column header (with "Label")
outputReport.appendLine("| Channel | Label | Voltage (V) | Current (A) | Power (W) | Notes / Source (sysfs) |")
outputReport.appendLine("| :--- | :--- | :--- | :--- | :--- | :--- |")
} else {
// 5-column header (no "Label")
outputReport.appendLine("| Channel | Voltage (V) | Current (A) | Power (W) | Notes / Source (sysfs) |")
outputReport.appendLine("| :--- | :--- | :--- | :--- | :--- |")
}
if (channelsToReport.isEmpty()) {
if (hasLabels) {
outputReport.appendLine("| N/A | (No channels with *_label found) | | | | |")
} else {
outputReport.appendLine("| N/A | (No V/I/P channels found) | | | |")
}
}
// --- Iterate and print rows ---
for ((index, data) in channelsToReport) {
val voltageV = data.voltageMv?.let { it / 1000.0 }
val currentA = data.currentMa?.let { it / 1000.0 }
val directPowerW = data.powerUw?.let { it / 1_000_000.0 }
var finalPowerW: Double? = null
var notes = "" // notes (Calculated, Direct, ...)
val sources = mutableListOf<String>() // source paths
// Always add all valid nodes found
data.labelNode?.let { sources.add("`$currentHwPath/$it`") }
data.powerNode?.let { sources.add("`$currentHwPath/$it`") }
data.voltageNode?.let { sources.add("`$currentHwPath/$it`") }
data.currentNode?.let { sources.add("`$currentHwPath/$it`") }
if (directPowerW != null) {
finalPowerW = directPowerW
notes = "Direct"
} else if (voltageV != null && currentA != null) {
finalPowerW = voltageV * currentA
notes = "Calculated"
} else {
notes = "Incomplete data"
}
if (finalPowerW != null) {
totalPowerW += finalPowerW
}
val vStr = voltageV?.let { "%.3f".format(it) } ?: "N/A"
val aStr = currentA?.let { "%.3f".format(it) } ?: "N/A"
val pStr = finalPowerW?.let { "%.3f".format(it) } ?: "N/A"
val fullNotes = if (sources.isNotEmpty()) {
"$notes <br> ${sources.joinToString("<br>")}"
} else {
notes
}
// Dynamic row printing
if (hasLabels) {
val labelStr = data.label!! // safe because hasLabels == true
outputReport.appendLine("| $index | $labelStr | $vStr | $aStr | $pStr | $fullNotes |")
} else {
outputReport.appendLine("| $index | $vStr | $aStr | $pStr | $fullNotes |")
}
}
// Dynamic totals
if (channelsToReport.isNotEmpty()) {
if (hasLabels) {
outputReport.appendLine("| **Total (labeled channels)** | | | | **%.3f** | |".format(totalPowerW))
} else {
outputReport.appendLine("| **Total** | | | **%.3f** | |".format(totalPowerW))
}
}
outputReport.appendLine("\n----------------------------------------------------")
} else {
outputReport.appendLine("⚪️ Skipping $currentHwPath (sensor type: '$sensorName')")
}
}
outputReport.appendLine("====================================================")
if (foundSensorCount == 0) {
outputReport.appendLine("Scan complete. No 'ina...' sensors found in any hwmon directories.")
} else {
outputReport.appendLine("Scan complete. Found $foundSensorCount 'ina...' power sensor(s).")
}
outputReport.appendLine("====================================================")
val reportString = outputReport.toString()
// Print full report to console
println(reportString)
// Write full report to file
try {
File(OUTPUT_FILENAME).writeText(reportString)
println("✅ Report successfully saved to: $OUTPUT_FILENAME")
} catch (e: Exception) {
println("❌ Error: Unable to save report to $OUTPUT_FILENAME")
println("Reason: ${e.message}")
}
}
}
Loading…
Cancel
Save