From 9542d5883c149d3b411927133c3927298c136aab Mon Sep 17 00:00:00 2001 From: "Gary T. Giesen" Date: Wed, 8 Jul 2026 20:06:19 -0400 Subject: [PATCH] Add 06cb:00cb (HP Pavilion x360 14-dh, sensor type 0x969) Same 0x969 silicon as the ZBook 138a:00ab already supported on this branch, so it reuses the existing 0x199-profile handling and needs only its own device registration, reset_blob, and firmware. - usb.py: register DEV_CB = (0x06cb, 0x00cb). - blobs_00cb.py: init_hardcoded / init_hardcoded_clean_slate / db_write_enable are byte-identical to blobs_9a; only reset_blob is 06cb:00cb-specific (every existing set's reset_blob is rejected 0404/04be on this chip, so factory_reset couldn't wipe a foreign pairing). Recovered by static RE of HP's Windows SGX driver (synaWudfBioUsb116SGX.dll) and confirmed on hardware. - firmware_tables.py: fetch 6_07f_hp_mis_qm.xpfwext from HP SoftPaq sp138431 (validity-sensors-firmware auto-provisions it). Confirmed on hardware: factory_reset wipes the foreign pairing, then re-partition / pair / calibrate / enroll / verify all work. --- validitysensor/blobs.py | 2 + validitysensor/blobs_00cb.py | 230 ++++++++++++++++++++++++++++++ validitysensor/firmware_tables.py | 6 + validitysensor/usb.py | 1 + 4 files changed, 239 insertions(+) create mode 100644 validitysensor/blobs_00cb.py diff --git a/validitysensor/blobs.py b/validitysensor/blobs.py index fb2a1a0..3082e90 100644 --- a/validitysensor/blobs.py +++ b/validitysensor/blobs.py @@ -15,6 +15,8 @@ def __load_blob(blob: str) -> bytes: from . import blobs_9a as blobs elif usb.usb_dev().idProduct == 0x00b7: from . import blobs_9a as blobs # HP G6 series; same sensor type as 0x00ab + elif usb.usb_dev().idProduct == 0x00cb: + from . import blobs_00cb as blobs # HP Pavilion x360 14-dh; 0x969, own reset_blob globals()[blob] = getattr(blobs, blob) return globals()[blob] diff --git a/validitysensor/blobs_00cb.py b/validitysensor/blobs_00cb.py new file mode 100644 index 0000000..7689dd5 --- /dev/null +++ b/validitysensor/blobs_00cb.py @@ -0,0 +1,230 @@ +from .util import unhex + +# 06cb:00cb -- HP Pavilion x360 14-dh (sensor type 0x969, "57K0 FM-3439"). +# init_hardcoded / init_hardcoded_clean_slate / db_write_enable are byte-identical to +# blobs_9a; only reset_blob differs. This reset_blob was recovered by static RE of HP's +# Windows SGX driver (synaWudfBioUsb116SGX.dll) and confirmed on hardware -- it is accepted +# (status 0x0000) and wipes the flash, whereas the reset_blob from every existing set +# (blobs_90/97/9a/9d) is rejected 0x0404 / 0x04be on this chip. +from .blobs_9a import ( + init_hardcoded, + init_hardcoded_clean_slate, + db_write_enable, +) + +reset_blob = unhex(''' +0602000001d2fa601b3f7a293eb2b494430b9f0780ee6c4d566a550eaaa6b38b46c6a543df5d3eea820e0b45cab0200d3916638eed5bc31c +5cbe80605b7ac7e9746536a4e6429676dded7736b2f1dd5af224f9a4986fcace1610c5caa5be5d9ae6d285b1e608268e7a87bb0f6bf7923f +adee2dae8628c7b4f3850f3c52967e3c87d2f81cdbdd37367e5b6c86ee70b08d6d15e36a95bcaa4b46dc3d2ec77ab53cdebf365401a4436b +6b4d85c9b0e650413f9235704547fd6148e6e0e2f244b8da33448f96d08b255d34f0e4117f1fee1e76dbb259f0995af8fd77d8d7c4ea02d7 +ae3b35875ce4d1a1734f1d41177e2701f45b7e0b6a6e69ba0d121b3e0648c2b35d98f56b2be86b2cc47aadb1c3a5673ab48ecb98c6cd78fc +2e1788178bef05a943c44b716f1c86615f57c86602f3194456cddc9fc9861ada5050bdd46561fe19cff1cda09f4a0a672374462029ed80b0 +dfd924698129ba54525b0e8c0302e1330205dfda9f312aa48f86ab14831e8383729962ba36ea2c856f54a0f4a08551cac4b1f3b06a65a640 +f4d842207739e804e3fdc479e553614de45874bb0de22cce180f70216f59847b59dd73b33ece0e1504b5b87c0ab2d271ec852e67be7fcd40 +93b4ba59f5ca2887f773457b481da04c0df080a2c1d332baf8e2255d1a9dd831d334dc279cc32e69b695e10fb2673a5057bc2aa4ada8230f +259c8f7cf15cf364a4e93481aa0663f877375c3d17aff4ffc333bb741d58bc7bba30ea4f02318809d836be4a583f2aa72182ccc1f7eab12c +caabda2911a4c9a0d714436cc44ef0e4a784ee6bd107d41db2eee4ec82afd5b7cf38752af2033bf8494fd4454278360c606fe3911a3602a8 +2e51d080f37ccea86f32983918fa37567ebba63d442b26d714dde23f7950b8d3efc082b929c914d9f346f604f75ce6adc510565b998ed93d +d723e767f91553ebdaf009a8484bd5f2eb7634955418d719ed13778067981665d0944515c7ec5c330ce6bc7da13c905739905358e1158312 +78949fac315f66619f36509314b6354fecee1f2e2b67a774d3c36f59a20389b4269de15c27498df9a957292691640e84cb753438725ef385 +c9a2fac86391779e2137a1b32229e1db77bb961a0733498ab474a81e3425972dcd91c9abc1aa043d008d7eea32fd14c554f49332bcc0a1af +a66953468bde12d5cdf58c18c23e007ca0324ad9227d173a6a0932282f12e2cdf4644c4810b9522f897b982bcfdfa0adff24c9a319e3eaa4 +5b80d7f05918e23a3bfc037b8d2590821feb96b102e88df26ec59a7adb874f9d3b441d27496e5d829ad46282301c023496181d44ca8602a4 +898f9a44b3ae1feaa9b0f03bb5a16d1b1f4bee84eb94f871131f363012833796cc7b70035ea7953d2c34df48048c5a1ed1a089ee873a041c +733f903a973560bfb0f21478e7abbe31e4e8be25e142b207a32f14c9ac7e87df2ecfa5f834bcc386f98eeebe2778639bc92597f3fe35c489 +0b40ea6a4e6464e51dd7ee0ae576f383f760e90bca1b3eb2dae76cc8203ca9821b8294961cf0f47a01ed6f4f2fd3670ed72dbc3cad3fc97d +917f094510cb29b99c159bbe076aac2f6394b9dc23ee3efaf7fb26abc1f43cd5f4f05cc07ccda68cdf4b6cd9d24ecd6a71b0124ba4bd8a68 +3f9ffab0974fddc6213e48d0bd122ce040c2237dc96923f45f2f178ebae421d38112e7bedf2ffc21ea75504fe6d3ad6cca7e3d55533274fc +dd62f756d556412d73b7b3239092a012e4ca8a2d06a1b2f99316ba629a34e4c42a204aff8b0164f506a2fbafc82d275333ff7a08e1142088 +48cd74ebea814c65677ee08c91253520ef0eb633bbc185f2782ed15f3dcc0050ca5d82171d274565f37f9a79b704cc5cc9271051994c3f83 +3604e39da2af76d052d38731a966538de7e216ebd8dbe93e53ac166d12ec545e6c593c420dfb622b533b543e1d55f7759697fa72c43a74c5 +8329147cf195af1dac890d5929981d76384574f97f2b70cdee809c8fa0835e5bb6302c3a918ac7f029f61032ac70fac8f4a01e6c71af33e2 +77501795e7a65cd2673ea0e31d075304b980dcc0a8a759259f768471f901bf188cd721b6192c44bf0e0ed9a2aa4f82c25c6c91b87ad10525 +795a16bc9a0bf4db440c115d59ba041a972dbb76e59e81faaa8828be586406bc2a820b6070d02237b1d49c2c8ba77e6a16a811c1361bcea9 +17c250d4237fa702871013e082197da0889bfda7ef0296435f78ae9857a65ef22efc82e29cc89a709c91ed19dc2dc762d8ff911718ba76d4 +4412a64739701c13a66b39195ec29f3f1383d02167b68e166d0cfde5747e6ebfb0680e32922dcd1b39da794f9815c788156671699f8bd2fe +ce8380da706a77e6f23aff40e97b5f4e5b004f9d82317ca0eb6776a0bbeec9e796bf73b9eb1b8a408998c73b1443f9d46d1552d8af3c3fa5 +e2f5724feb0d60571467d869e99e12edf6b00c868ad22068413f9b3b5d08b517311817f946460025626b59ee3c1692339563e044db3dbbe4 +eafd1c1872b7ec09c13c98e0cc83958d8b25cf1a00874e7445bb0b0db0a0dfb12c1bc1b5324f62fdb7ef7dcb7794d28afe29c10c3a301147 +a9215c1050d65a20c09f4f303832add42ac29fd18370ff0e4fd6540ce35594d2d1dd28c7480f0c1c7eb55ae8045add9c96c1346eda69f58c +011127cfd617016d6feb6ea0d146c029c4a6065f2a25e54a5c8ffe672e5c54fd6e3eabe24b7fc15a900e3b1db23afa26631e3abf14500dc3 +f7323228265c781ae0863ab6cfc1204fff3c82a8fcbb6b6fb3e745a93f9ee385f26479335d63e17535161a61c88ae8088d6ffde8e91ea101 +18ac305f0f100f662784f288bde31ce32b31de2fdb268bcf8047099129f18c6b1f9726d27a070f514f7f52ccdbd71d64c809c5a3968b62a3 +d53eb011c3189836f1e2d71ba6ed57213daff9a6c1370206f60666ae21475a36952269dd600ccfbd923f767225a657ffb6281e32668eae49 +9430cfb484e2c7ce1e3ddfef16a871b7d55819fe3bfb1897beef0f44973a1c07b823e7a006ce8588a8851b078f5c799ef9b419c5867f1557 +d1b067d449b11e3eb778f9b46e522bf3ca6565fed4c4540f623c0a18244bacaeb2b6480ca898db8da9a108f6722a54e457e88c480cf8a4f8 +00b57d64f938dd9e30dab0d991c642455eeded98bc58b5bf437eff1de56b3639f014093b873a3f780dc17e7c4280790848fd5f491d6e2c48 +b5fc2325cd88952228c52432049e655802fe125a00cd949b9ed54470c71b092bfb282e0816107646814d0187b523c8700459ba2323ff2cd6 +6f8ee4e954bb8f13eaa2bcc7a2ce812046df9087bbc7ba7cc110e6aac465daf2c63b55c0930f0d4ca083a20df924f3d395871c39f296b1be +3bfaec1ae5aa3956dc5c4b497695b97a304cc1acd2708867bed635fedbe5a0567881bf2a691ffa55e9a922630f8de180c00d8a8d5f045dfd +9fb029cc8b53dfab9d5533d07ddd2893652004d9495efc2ccf502e4184228652723f956c80b62c566a89e81a862108b2c32b20ded004581d +cea6e5d5de730fae2a4bf2563e411078e41099b7e07aba9ee907ca4821e9633d74cbf0a2731d884b73374358e6f48077fcb49e4c57271085 +ce413e1ea0264b2a5fd94be7e86937ec246384c5cda5eac6b78944399e17d859d84727037b7539358e7b936687726233c0dff89ed5c2efab +a3d74d0924304d7090695ad38b6c1d5777782421802dab55db87a7589fe17240b9b04ef82f9f1d962422e5144e5199b8b056221a401513d0 +5e119022741711c0ebb4cd500d94bb462bca839e35cef0f2efb54a81f218f98a181fb6911cf51e12a7467c6ce95c4cadb90b51af7933eb66 +ca107eeced4fe9af1319416d02445811b78d0bed82b5c11e23699077c169f7e1475e27b8ce5e01d335b09878ca43ba06715181d303b117ba +cfe91948bc9a4ec19d1a2cf1fe86b1d4e7bdd72ae1cce0b3ff16d2eb707a758c96e18ae589cee08a1d6a2edc0197a698bfd027fed54c05be +b0263d22637761bc5c473d358f547939170b6d9a922e143ed46f13207cb9219f2bbc5b328a7c6be7bc6274b3189ec4d629570eaf3b53d3ac +f67bebc3858b68a2366ede7ad5fe823966f157431c8af929963cfc71a35910f36f2a54238f02d80d9b87d1de6c55cfde41135bdc1d3d8122 +82a219261ea1b89a37281840894d3a3aba6c054cd8c6b414fb151bd7a886fb05ad9ae52598da66821062bb9225f61709b858aa4d04507caa +c685ed1fba138b37fbc21c4b60168de2673e5a2fe97a42a193db17b85a9bf56b6b76216e252a2b7b546a2553f59b682f2fe8ffe5880fb6d4 +c71f167c9fd2dacefa86c815ff907533831c74ccf72926f8260166b0fcbc661a37533c2770a7c46da1e94c34f808eea1cf6fb25bcfd18820 +18d263f0d58733a1811788c7c02e43a80f5b2b51035ee366c9bde05cc8af9180ab677e5c6c430d42d73554e75c2095d555ba2df0686700b6 +a9a1d3b747178756b6c0a9dec0647eb65b48068e09d9b7ae494dfe78155a8d451ab58121f2e980c565d1414a7fa6d09ca4ee5cee33c4f3ce +90d342c6f440f309c85388cb04e6c2fe6316313d285c0297091a2adcab6ca3cf5d816072f9080d00192b1e3e2a61376cb07e1903d5155fc6 +7cab3e3872f2ea5c96dd0dd097c6e8be2da87285372581bdde00381bc3c467cbcc7bda35a474b45348d3a0f2a03c5578c83575822fd04c49 +31b01329fc5ae2c539665cece4434bbd3dabece80a849e2a8c9e00d9bd9a48557c6f15886d438670b5e4edc817303530ca046d1317c4913d +34e3bfda7400cf027bad9020b9ba1b59d719e7a50ede002e125d79b97c76ab35e3d0cd4ba0917749a22aee8ce3d1b7253f5f00eb06ec65aa +435e5e337b7d63a6f4030636cf5523863efc9af50ece0982ceebf51817ba9f4b354e090741a032fe0467c5ee1c2920e19713a9498165f214 +75f8655644eb91f52faa64e11b2d66fe1e4a5d1c8522c7d87958942d8d685dc75b2a81b7534fecfe3c166435a8acbcfd396f080cf7a574dc +992afa0862f2bda9a576e86fe63f6b86829728ad362b32be26bf8bdc58264500419887171ef3b0bfe846bd0d0fce41bfb1e7af16d49927ca +5efffa72ef8176228dd995601e981d13495476504ce4d396060e967c75afd1dfbb32bfa6d17ea022d8dc232ba5ff569ffa99fc00cb017019 +246b1299164c0f73434f8144176f396ae002a103cb745494fac01e95de19d059e0e18a5ccd9d827a3211d50ea58476ea4d78f669f2ff079c +582336be1d5f68d32a6c256f0b826ebc6cd829ebb81fbf2e2c592975686cb50ded7d825d218e4d3da3bf3e846ee33df0f0c644de6a88cdfb +78181130cbd495b8b590ba426377319dcc6d63aa14a757c4aa787a3fb9f995868362c8734281b33e01e8f508d886a8442dc620381d33c3f1 +010db797520cd051f368b4da5ed48fad00089f1d5a92fcb516443c0f4c2fb1c7e65ab49324d19e52c3bd623351409cbb5b3c2250fcc1dc84 +c4ea666bfb29d1f834f76598bf59eb005517a8accffe01772f63a358959dc99bdf9b3857d4fd84202206fb43e6b85fa34761023459a2991b +3b095b7c4ed13c7a30c7cc00b680af8810b15da9d86681c555504e526ae41e7067ce1338d171d7ccd8ebe3abc2bf2d88650ea20ee65b74f8 +bcb49b8fc0b821339d0a155f6c0b6a76d0106a74689b07f18b645a733009d55d2c041ffd0afaadc5a078246adc8c37e1c49d1bd3afe2d069 +762a66e9f542391f7cb4cd3b14e6b81b43db9ffe66b70252a0b08609951871d1f0d2fa0428b0c1ebb0511f9c5f1acef05e3cb0ba42e4bbb1 +0e75b121c5976698616b76fca02a133af96b5e0ea65daa56a710bb901c9b7a21bce1597b8853588fd63a56f3602288841a7ed27c48672b79 +4ba6b183579a70a8a6b57e543df8fabb57b3c8d36fae5398567db8ed2c1479b5e3df8a1aa7aca105310244c8aefd5df6ef5f0ac034ebd269 +62538073fb668d1759440683877d7c0974ef090a3fa2eb619027bf04fd4653b87e7774a7c314cd119bb29788f379289411eb8f5bd711c5d3 +6b51b124bae704f17638665fdf3dc7f9d9424322f9ae69a52368cad46cbd83e4c06774a11106a0cdbc0ddcf7ce14d6d18b366ec22641e3a3 +ec85340324b6fc9b931fe5fae2ddc3f1197d33700195dea7bd9d68794ad681a69cb52ed4a7bf1394527f46dbe55f588972435927a2368944 +bad5e8cdcc5a328d8bb80f25a0cec36bb57c6ff23ecca2609e51492b65fe6de3edb2c5f7abfbbfa1397f7b8aa8dc1947e4da0575e6743c51 +37fbc856391e6d630d86a6e993ec0073099f16aaa51d28230fa262e94c9287660d106bc1ddc29f24adeb29dbc20918d02f90ae1406fa4584 +c4f7385b5526e1a03aecd30c112d657a8f076ffdc3bf6e4eaa6a5c3e2e74fe97a4bc7a81e70d89eea52c70219ceca20d4abd723e6bc4f8f0 +38f251b3ed8e723713b4a6c20e5c124cacd1b089229776583a0a97f94cd259b3faeed3f8af7d4e587c32a70405b43cebaca583ec31b64065 +f9eaed500a9565a89da3bb4cb4b82daaf8b01ad29b24994d00fd0b1cdfe6d24d4b2c6dedb48fefcb5637696cde216d2e74dc27a01a40ce8f +ce23ac868f358f12f1ded5e7ff6a8c0bf625fcd53c64a424a54af8c9410309d69d4fa2e1dc1d55035b7577ae9b01bd891fd4da588569f385 +b927becdeb49a17595a9f7093818094087ed073e8d9631d9ecebbe15a5ae4698a8bdfe9a231a0aff79777af37be5a6b839a03fec653a550d +783e45115d7e75b3451304404db5d4f02a332067a26b29520e5d9460d439d9451827f44fab7fe98f62c29baeaabad015747e542d283a5652 +998002cd7fb18a69685b1747761d470b186e69291644031bfc164bb631958fab0f0a42e2606ef0805b5d184a694f997eea597663a3fb75f1 +25759e1990e99e927043c2a27a2492a0f1b501961c9d8b7589c5fb4ae0309f1d3a0300b1b749c8fb26357d6de1ac81444e35d378703ba570 +ad8e1b1c41d13e41268240f600a0c8f9131e9a4b8306f9835de89c8737cfe88bd4217e906f5504ce60b386e453a42753bcb8b4aa1bd0198d +d04baabeadcc07d4eb2337b94794231ecf73c25b3c9152f8a332f43fa6301a64e68f09d8b34a5525b612920dbdf89885c70153f91bb48362 +528d15b1e4dfecaea7d3eed3b3cfd24c06c35cebe6695a2f0256d293a18ff1642d417ba66f817ec92ff4a4e091ae81e3ede0ddaf50ac781a +0e1abe2d6b483029a7f488d22df9d411dec62c7b9e6f57d3507ba1cf46835b679a4b32e60ea4f48383494b04d9588b4a967bd056e0b855d2 +e318b20f0d995de3b1800ff197fe44c59f2f8dd98a46d90cc05b04e450617c0c70a3cbfb725c48bcf132b7ca45dad3085bbcdfe700aa24db +8f0e444ada4b045699dcccef864585abdcfafb68bcd2e86d53c1388d8e3495e1474e6e82a9a851e3cec6449016fe6c6494cf577a0fe69439 +964d21a3f7fabed0343d31c69cf5bfecbb3d32229bff3ba0229eda25a49b9967bfb9ce578f7d619c85e6587e958815cf4c35dae946473a2a +919fcafbf158e8bd463a8fc397e209a7cdd08f2061e5170b8eb14474d2ea38f7ce7194187cbfbb11c3f850476f53b5dc500df17cc6d85117 +fb35d4216a898ace5d703b066635ae942427385f0f08d78d556295a01a5be900c2473ca3b38d90b5d6f588f8faf4e5507f70838e84ad6492 +6d7e9a2683a40a174c89c73b4ae2812e6cae3c10d239f6ad9be00d471c8831db7977c3678ee5b4e15a1de9e79c057f8103ecf63ab879a183 +396d3540b57d205e779f65436dbea553af6659276afe1b65a96ad0b06ed413f599b81d94162b5967dbd2d03654b9dbb006ee8f2d41eb49e9 +0fa524d2c38130670eb12317db5b9d3f32ee403d035a1a70093dad4ddd00d6bc97f94aa306fc7845b0f9cf2edbab2ba62f3f85985410dd91 +dd36fe79006d593e935fc09522aa0c55d6aa5d52c22ce7fb3a0b785b13a2f7ecab723ebf23ceba7a4f481a4b4275bb63c74d3e3510d3d237 +fed4785f4bd8c7b088c6bf7d4c4e013e3055fd1104fed8ca4d5ef292e288730bb50157cfe0f99619a78cd2bb92fd56db50325819bf623b13 +44418ad7783fe5fe0003322889f460337d40943acbcca9a5e50e8216f056547a62cc55f3598aab83bda8a27eb3bd1d35aa2e3d176f523ee2 +f13ccb0624aa9f2ada406876b39a3842e859b31760e376db61d7db22e45f1b6e35262bd25b521b232b48d208af37d7fcdcf878f6e4e27521 +530f5959eedfffc3ce1ba8f2eee866c56360bef91fbdddc4fc6ee8f505aae0a3831d77c474c29be76105ccab3418cd810f2b72d58a425729 +bd78cc9b16ce2a95b48502229bdb3cb975041490b7e070b29fc63d315ec2b2571dc33b3cee93e5fb7cd6b55599440c6b2f28c66335b42f26 +e9cc56e374532174ac667a1f824414ead4f1f9319dd15bedc0d3c1f88717575f484431a7e9685350af7412caad2f305a0698c3f197b12db0 +99a54a4168f76c882e4fad7854db49c289f727b2d02a4ae642bae0cb7051a6cc8858fa8c4a8501c54cc7ef8141dbd8f966d89747f057b975 +db14794d81d566a7023e4b92733e9aec8d510fe5ccf63ecdaa4386e044a30da744bff020f7b539c45442a6af84d3c30b2e38a808d73cfdae +496aa7c546bc080fbd83c539d3b4aa6164e4f50b2f33816e81e665116a31b0b57ee0b2371da70a8f2150b4bbedd3e8ba6027212a3f0cb8eb +196d17a58f3965f89ba43ff82f2de139e9a6982590792681fbdb2b8d35342b3479b7a31321d547ca4c7fb055a452b49a900e7237e8c163e7 +b1fa4715d82654f736ea518b33223b10eb4a45c8a963a6c70b42a9affdd1497f41c01eb4f9c13e944743c0a79dc41e9fef5ede753f29b9bc +dd98558da7d0823004921dae6fcfc98b6ab1e0a1a6ac7dde74a52afc390041dfa7ee8329a9aa2928377d41a8883ca4545b1195e7a562b5dc +b52988b6d5b2febbd00daa845afadc1ed1226f2755909dbfd26dc79fb6f4a8e1ceef1540f8cf6be6fef8b7c00397b1bedc016e7bc9cdcc43 +5784fb2c8e859cc9a5be6b4b24cee7e1d53f6d60f39c02f23a782e860cf0ab22999889b5a2b39b9ae20880b0339e56982e03368ee8d2e28f +5fd8ca3968938feb0fefd3605e6d3669ef7d3fbda289d91a74d99f5d9a45e5b77dfb58ebb15f62522de726d460188d761bb50d6780d27079 +a901a6ca3f04b339cf1b5dbb728a2f26d07cb8d7b3e63c78abec69192f0ef915e523a00a0722d69e79a22cf61e99b66807467d3cad2b0b48 +548acf2224215642a5ce817e39645d320abfc11dbd65186b5be3700c3eae579b295f5d6db25fa350afbddde6fe6cb1565c369ee2ed1662c8 +265976f7c549015ad70f79fadcceddac5d57c46860246f293bdcbb46f58c0e02144040562159289a58f1e396894acb680f7a2520f386545f +e81b570b89cbb48318ecd8ba948ec648a9b12c9c97ab080814d3386114da29ea9019086ba02eefd1adc22dd1f55743c1e7f869958aed1a47 +cd8e4e479b000c88dde795209257f1d7d625df1ae27ab79b681a327f9db4a5a45d8e6c3870ac751225f4c98e41a44fe6dd571166fc7471a5 +8ca7224d3e4259c4ed8603b41e914a649b49392e77e9073fbed54a494f61a7f166116fa47429837a169ba056e189e642719873845f89f741 +3a15e856ad369945d301cc91baf842ff355d71ca4f45641c73e3a7b1f6c6df530bcd3a43fe6cea949ad5920029a827237a8497e236fda61f +1d86bbea9ee97089e46d7e52051f938b645ce43a97a18fae5832c2206874aa717e9d0a942be137094e5258c7bb1af7c5935eec00c08a8d26 +26bfe06cc1788de23d5d2513a919c56933a4312398da4d8644580ea552291c9fadb6a17823dfecf65d3c12abc65acafdefd96ffc57fb571c +280286fc7030757c51e58178d4088419fad8c5331e73504f6c0083cdc8ed054ddfc8d99b0dddf3ec705da169debbc15911d424c07bc8753d +c4ae4614cad71c1e3cb95f50ef03326986e8e3d4cd668c2da94da5fd1ee60279da0f1c1c4fd59d364b4d92e613fcfa3e8917e9b5ae3b350a +96bf6cdbca1150a3f34662126565da147b677b43fa53e6ff06435b1b6260ec1ea3856d60e86587507915af88198f0a5e9dfe2a4ef24bd1e3 +ab68b6db80a5225b62f69cafd89db1e5218e5c56640aaecae36f42a4c0c162f9d354aa05655e0ed86616da01425a6bee99c7f0b0512fae2d +e7e8ce9c2ab594e4ac6005392b3348a4bb9e6f046e850eb85008bc019ce746a557a731a906ec8aeb7012570ff31a2b2f38f7f62d2303857e +2e50770f85c56de514cf68268fac275e11c0236f1b395e40629e038db68757351587c8cf5071b80fca03437af67c915d70d3a12493a4c9a2 +bea32f62bd6e4806c3d65395f4ccb792d2fcb8d5592a06bcca0c40afb2fdec39664ad324ae73fda1107662e847e936f5599b0af587c71e8d +216252992657a3563e04747c9a46c36f64b1471143ddf0b3184f1ae51f0c6d7af85940df008c2320f9c796c5a0115c4407911625e1debc95 +3396a9ed5ac2b6f4b034c162092497f43a0de4ee8d5902a888e2f9b897ebcbf8cba366b1d0dbe94e1e3de656bc8b949fb575aa26a6f9e4cd +bc4a27d312e5f8e5d8d9ff815177d52c1a0628dff52fdd6e4d90e26268e01c9efd4427fce66cbd06775288d3dec9dd91b2ddcb12d153a547 +a764797c452c5fc0da3312391391fc3a48ed511ba35ff7b89fff9538b103695c4b0471b41d9fd1165e2a7ff68465f43e26ed14aa4172e53d +c1f5c18b8c54bf1306a631a3b162048f1ce36b4305bc7eb9821e9013a1266fdd4718458be9afdb23e7d4ee4ebb46c79f147f23f3ac3c5442 +2878be372409af0c8f022636a914aa19b499b6033584c9687b7de23ae61966cf10c662bc7e17ad1e4cd2ea5620de1de4e20e6be52c465102 +a8a8a2f7fb0258861697db83f786ce5ecf8fe5f745b35f4f0a8e2db07b4821085fe959ed3c19f5847c677878552157a6ac8ca60f3425e5b1 +126ea57526285e3cee038f57ffdc3e95e4c938145f7f71a433e19cdf61dbf3a5318c225ca9c1b26245ba89579888157647f7405d2efc1b70 +cd9cc02ba5a5fca1a49ed89ee5e89dcdf37865f8241054dab3ff459cd515a14635ac1ecfa387ac1e83522e815b67d3668effd17793b87938 +0e483d4368e6638365c68474ddd74be64cc46ab1435d4dda78171a56629b8f3a488c2705fd0d332c83a345ab337ae542eb803098eaacd0a7 +4a96518d56a410d57321eaec18ea1eddae63ef7a3b8152f50cddebd82f47d1cb773058db6d3b38d3e81fa897b988f3d04b7bcf26ad14d700 +3c988ec7b25332746f9bc4005102704f05f5d5ee5341ef3b30d318fc3904da34eac2ff3a246b1a6ec60145cbc66b8e79006dc08514a2dcea +9f5d89642edbc7b9f41d811ee1caf10343a286e1e4c5f17cdc640c8aa5e40dbc89de3a18975ba4558391e27650679a829ac644aecb00a430 +74a0aa358f5664876388ed742bf571d020b29059c8326f68411979d3967a314bff40126b5f656f1ca0ea4d7261b7a0149691ad08cd2b2b2f +2d9075afaa4e4c849ac650925b2c2f489075fe539f8cd7b1fc7cf4781808fa29484c4f3b9da3cf38cb31c58cb3ded4daf88de27c8f447cf0 +98b7ff69e7914cac7171b2290133fa1854b8a331e35d7f002ae75b1589758e6b2151072a43514973375185240b7e8caf231398fff3e6787a +28ef17829f4b42501fe0af78943f1e0cc419647ce0c2e9d1ab50f19f515d4bc75edc6e2d31bd17ef69f0a63d4e385a8f5bb00908f83bb86b +b20239b55d62730b43ddb783fa805e6ee4b4cf6eb66ac29bb5ce631e294b439517f5856ad1f2fcffae3936b40b14b2d6dd4e32c0a8091bce +bf24c0c64f54094366fb61269962feedb4072daf5c5a40641dc827849682a21850dc1554d53574d9608c97e4abcf94f9c6a28cf5b484d674 +36d3ecadd6e13ce57c11434a57e87aac9562079e22c6d2ab310b9ab1271d95bc268ba98404612ba78c3f032fc59322334870feff72f2520a +cb71682220f727928391051a74e6928e74706a7a5a036ed8a0d4be09f9088df632adc8ff816d7d830c8c3ee0074432b9dbf1e9ba49b12796 +d1eef1bacfc32b941e52b0ebda65241e198935d0dc4a72f997c8b26283ea93261d483754693f9834451a696fe4bb1b6e39f1cfab45f3e792 +fefd5fd2b94a698caca4eb8b2be7e1eb6c9a06a56bf22745ee3af4126dce6e5a77fb348a0ecf2416c055d2e6d4019174ec7326f7239727f7 +eafcdbf3f8323f1cb0b1f63d75f4522c575f82ba0188b03734c3fb374b90d9773c75ea981a23510a7add04ed0b13f80372b63fcb1135e8eb +3129bc970df3a6096b92d17d7f23a3256a7133b4c3c71cd581f68575751255c2517ff3c3e328fc8f50ec5b27d3868a99848103ff73b82478 +bb86e52e677923a905bfa608e80a571108e4e46cbbf4871b078457b8e06eff87a15ecbf3cfe59d597cb4cb2663de42d39bfd260442be708e +8985e5552cbe191a42fbf9eacc4505d4c857a67eb0a43b27cae86b6141279ebd32a2dcb65a94f9fa8e7e17fb8447d435311740cbfe3ddb2a +8f2826c69dec1750d4136406238b128bff704d9fed6444d14b7bebcb269fa4203a262d8bd0b33912199566b1896c03915d090d070488243b +b1566b9d464571f1b5870d959b0d0fbac9e6f783dee5cea9019110d02e76a92e5e963644519456cfbaf6b598da56ddea81ac549b93db86bf +e54930d67675775ba5525b7576c2df1965d7b317bdcec7150df1c15706f81d1c2ebea7269d9ed0ab10312c448f5907730d12447cbc9cd4d3 +6e09a8979a1960db9ca7058fd30bda25bdca5fd48ab4db2be3afcabe691ea64effd6b724eba76e2637e519cee7ff9f711061245b174363f7 +5c9da2fba536d2ab7b6fecd277129693d17f0bda731589df1905367bc80ef014b05e95dd520a9f08924c306ce25ce4fc343c66f9651e9edd +b57ca60d3b030f6046693811a022461ad45bed406f14722740a6633edde992ab2e2ac5d94dd70399d7cee5eab350b2c10ad668e6d705eddc +0b1d0e22292e34e416f0e9b361fd4ae2558a256175dae60caa8f00585f3401a209a25cc8e72632559e15e80600b4c741769c637d83da4768 +de13f619f8bfae3b7843b8ea46064b03dcb2bb2397cbf19a9ee773ac5a560f32fd7a3c95d7d344d924c715c43b4c0d644c0b1b28187c66ad +6a56e3c105b2fe83b585b3ef1f11e3f77d21d58eee9b513d52dbd8630c8bf194c30a64dbb96e707adda4e5caac59990e1e54bb9ee4816c8e +6822d69ac52f815e384cc8e8b3938f87d585681b38069426035d40abfa4ce7cab34f56a45e9ffdfedf53d81e0b08a5ac32441701c2cd1f26 +8bb722116912f55260c128fe5c55a197f6440dce2df4bd426b3178761ec043cafa57e41c02db17d1a712919dd2186fc0de1b3f4bdbb129ae +22f8965d4d84d8a687d7d6404f6760d2363a713ca19ff06d648d311c5871383594f2c34151b0b812c4ce12ea3e240754aeef9faf7a61f36f +835de3090e1ea22767c69cf376312bd3207ea4f939668ed3e700c72d50d3516778d0006b0da8bca7b65c5fa8ede67cbf1b1e9e79d259a392 +2c2328e8385f544283fca61778af7771e25b4fa50e3a1d9b04a19bb74450d772374846314cd6e8fc3ed05c19d72d0bdea8c3acd4095d1083 +4c1d12a97de5992bfd813c450c0704782c4806ef6e77f9c2b8184c26fc2bde78327923b81e48f186b972bb4d9267f9220e3c03e9f87048ad +2da7ec8dab8118adf777c155bd46091bf990374e5cd8dad3624fef8c646eb0446d0c3e8b18c93546f9592a86accbf6ab7b947ee7d279220c +0da062555199e5954639fdfebffa16078f49c7d6b1097c8ee10494143e743a7524a934746ff5e6e2b02c985d2780b4c667d43cd1c3ba6cdf +4752b120c3b481df2117f31d0cd49744da9b5ddabe5e58c7a4625b88370b1fb87887012c5636d8cbbe258d01083c31c01e4b359e7d12f230 +a1ee229dde4427e201a9c682e4b59a1509bfa8b7ad42ab952300b0dd032c9200512683ef4178a526039284ec43d4c6e93e9d76f1c97746eb +e0c23ad3c9736579f4192dde55c42723ee71a0c5cf16903b1f3ee9662cac9e357abc7b5cb1b3f322cf935db49ee440fa9626d98c035d5249 +949f9f5395c79eddffc354b3f6895daef19bab519e9c2cfaa663ef8d543846bd11c889dda634335b61dfbfcd1450c09f9391519ffd5c1fcc +335f2d167fe5829250718ab75c40a976b77866930a737b07f4afd00e2f377108f132e7280523acdb8d3912a797b90d707417326b705233ad +fb5511859de8e10530b5e23f4c253d89ef06545b29c67d0b9c42f8ba6f611946d42f1403e52d8807996b4bfabed64f1a19d96819db892394 +bcea025a460b189c53b32b131c2b94c12eeedc1ffd610f2418b5d5dfa92537dc75812785f45de70ce54c4730025554d72d274201c0830ac4 +6c1e857575879384a38ddab4a559bc528663428cc703c936a7aa0ce2f659502c044b96754710397b4a65a7d65caa3ea2125fd755a49aaa95 +92002b7df32f4783f4e80ddadcc7dff5ba4a5f83e4bb79c5496f2243665bc0caab4c0271bebdb7748a71b97171b5b788e3b098ec983fc336 +efb53e9cd17a4b25e83f3b4cdccbced384574e8ee61ec3bd3b3f79b00a4e4d97303605c74d5c30b61f41d5a19df90485f8c80c9846f141e7 +ff8d50b4a250be27b1e0fd326421a1cbdef3dc3712a4e759bad3340f4bfd3d80a5377259ada2af90e1b52537e672caf82497f3bd72e12e25 +0a02123bd3c0deb98d9862088c569e313a586a1c361964f98d82076005be95af73b93164ba21b5d86cc1f281228de49565cc070005e3f10d +9600c0a95f0ff09a4a5bf79ac23a9e03ac2ba4df5168b1c7229c77c26f621fd152320c5a07f74496afe8f552481d6095a35d820c1dcf02c9 +8b50f6b11ca84a15900cdf21c600c3820563efebba79ad96c6b09313bce1f0454c64b70cc95600cacfb9f14f94c9b700b845d2645ed407b4 +d1f8ec2723d7258d092a1454b23614054719a972dc12976fc3a2d966803e7d7358386a8553d1f5f1d2cca8ebbc705cdae15e567fd2d128bf +8e6f2c789db6f30048ae33bb7411bd38fbae92c2f75f712c9acce07555bdcd2031a82dab1851ebd84079b1bc2c5a94c01d607894595791d6 +41ac7ab56622f9f74083f5ea645f19c83da3542010a629027c34012924772bee02c8789a2f00ca9a669e9831d1748dbf3e7071dad7849847 +63dcedf4b3b1ba4fbf98d5d9f89e508bde3d87a7112c688077b44633e587ff69a689d87e32ee1d885034ecef6d65f99ac2c335fb2ed817e2 +eb9a53610012cfba2638ca40e03714ee273f01b9b616e03e18e547eb7317b985b5c95545f8caf2dbf988e8c8403420ac378d87194f86e324 +f203716a3a0cfaea529ce5391609a56f6d4dec894bb92db8bc3de0ed23e33927a76ea9f3ed22ad30e56b5fbef5c5b740facae9254000fa7d +ed8519c4bdcb9fbd13bb6836f0563ecc5403b6057dde2e0c5ca039d662e0039345ebf90aec9e7d50842764cf0c41b93b7e41985fe2c54e36 +8eaaf2b2895bd26e0bb7d7c1b90fde6dc8e6bc492ac1f1729592a524924df5516807a0e786292f899f2cff27a3ade0de2bbb5c07df519edb +a91987ca42bb0ad6ce917e9135720b88402f00f5362533c43b2797fadc62489e29155c1e23c597e0623c1e0295af7af5ce54ec207468b1cb +732f04a841f13faba6327efc9e93a31cf5d423b7e043cc4b281b2bdf9cc5f6d0a5c86d5da212cc5af7a16b25e5d167bd0f04320ae42c5b42 +965586cd87b54d22da51bffa00eb076084cc72203f8fcddedac5ffd67d433bab3074e95d9ac7fff67910f581467de9ebb9992bd735180957 +a4eea7f42d33ff57634d6b930cf43bebf086a2b82f269410123ff49abe84d138f34cce1f8f0664e0761e291172acca5e4d3bddc467db661a +dda79ca93ed9a9f7ecd28f2ae96944abc7c96ce24a4a5fd46967bfb302db248d76a01dbd1c66cf6e93d999ee97a8866fd059f97a41167d6b +f61e3f7f8b68082901e4f7036dcdfaa59c0cc4af8fa40dff4754c7ce7063bfa947032329047dbc9d8e3c44649e5dbd4aa893b344889124a5 +9fbf857b111abc5116781acd268a518d3e07acc2b8718b3043ff9fa877d2b109125046028ddf44564ecc6fef55a93d30b5a910525eb2056d +73d93fbc29ccac2d868c9d4f96061030f555e6a92dca9b48215006d4e7515475b5f9505d8250c11cc5f8b84028eb56e9606be62145bcffcd +feb9c5e777a5a6983b108386ddeac5c1349100173a19964ce49e247c0ee7a9e48f18711f156c46241c3dbec16a8e088dbd0c423cc5fa7af4 +efbbc4726ff697dd057ec4c4324883fcf16bc117f6078f09a3ff8a93b5655e93cadc603780244612b4be2f78b72aa344174503b0ced008b7 +2bddeff56db07f410fae3fc4a54fcce92a5a31745e921792d6433ca6599c32e9c2ce1957309d515fb853addb88b3a727a47c221452ec1e6f +b64a17816faa463aaceadf7214cfc535d944ff817ce48a7bfd70965e880af0232657c7bc89790697fa16d5467a9cecde060b0279d9348a07 +a82b6eea6428e5fcc8cffa5777ee034149f5c4779bc4a5ca7fdb87562bd2f8486a39b696b0e2a8ddf779544e3c0a043a5ed76334964d8165 +9fbd025c3d74d1eda2ec843cdd7c75bf333fedf02bc5bc31dd51038477f6e8ea0d435f3550774d8a0b7f2e6c65434cf96121996d258d0630 +af950f332bba569ccc2f3de94df8d7435fec0a68e92026d4e756a076e719dbb1a8247bf240814bc83811e7bf31 +''') diff --git a/validitysensor/firmware_tables.py b/validitysensor/firmware_tables.py index 5e3317c..b89c5a0 100644 --- a/validitysensor/firmware_tables.py +++ b/validitysensor/firmware_tables.py @@ -32,6 +32,11 @@ 'driver': 'https://ftp.hp.com/pub/softpaq/sp135501-136000/sp135736.exe', 'referral': 'https://support.hp.com/us-en/drivers', 'sha512': 'f9a91e2796a5070f1f40099e2318aa9716e2e6a31b9ba6a93986c450eedbfb0b323dff55c5e4536466946da3e01985f367b1db27bbd7b65f4c333ce0cd47b78c' + }, + SupportedDevices.DEV_CB: { + 'driver': 'https://ftp.hp.com/pub/softpaq/sp138001-138500/sp138431.exe', + 'referral': 'https://support.hp.com/us-en/drivers', + 'sha512': 'b9a268773ac948a4b6bfaa7a5762c58ab482aa47ea321a429ebc8dba3fcdd17ffe750d189791d8e0325b21e95161db5f751c61d7714d7460ee0a406055060a8f' } } @@ -45,4 +50,5 @@ # filename matches what extracted from HP's Windows driver (sp135736.exe). SupportedDevices.DEV_AB: '6_07f_hp_cmit_mis_qm.xpfwext', # HP EliteBook 840 G5 SupportedDevices.DEV_B7: '6_07f_hp_cmit_mis_qm.xpfwext', # HP G6 series (same chip family) + SupportedDevices.DEV_CB: '6_07f_hp_mis_qm.xpfwext', # HP Pavilion x360 14-dh (0x969) } diff --git a/validitysensor/usb.py b/validitysensor/usb.py index 0cd293e..6843ffd 100644 --- a/validitysensor/usb.py +++ b/validitysensor/usb.py @@ -21,6 +21,7 @@ class SupportedDevices(Enum): DEV_9a = (0x06cb, 0x009a) DEV_AB = (0x138a, 0x00ab) # HP EliteBook 840 G5 — sensor type 0xd51 DEV_B7 = (0x06cb, 0x00b7) # HP G6 series — sensor type 0xd51 + DEV_CB = (0x06cb, 0x00cb) # HP Pavilion x360 14-dh -- sensor type 0x969 @classmethod def from_usbid(cls, vendorid, productid):