Files
unixtract/src/keys.rs
T

180 lines
11 KiB
Rust
Raw Normal View History

//This file is used to store keys for formats that rely on using different keys.
//samsung old keys
//github.com/george-hopkins/samygo-patcher
pub static SAMSUNG: &[(&str, &str)] = &[
("T-GA", "SHWJUH:85a045ae-2296-484c-b457-ede832fcfbe1-646390a3-105e-40aa-85f6-da3086c70111"),
("T-MST5", "SHWJUH:eceb2c14-db11-425e-9ebf-5f9607f0eb4b-3c38193e-751e-4719-8884-9e76322c0cec"),
("T-MST10P","b4c136-fbc93576-b3e8-4035-bf4e-ba4cb4ada1ac-f0d81cc4-8301-4832-bd60-f331295743ba"),
("T-VAL", "A435HX:d3e90afc-0f09-4054-9bac-350cc8dfc901-7cee72ea-15ae-45ce-b0f5-00001abc2010"),
("T-TDT", "A435HX:d3e90afc-0f09-4054-9bac-350cc8dfc901-7cee72ea-15ae-45ce-b0f5-00002abc2010"),
("T-MSX", "A435HX:d3e90afc-0f09-4054-9bac-350cc8dfc901-7cee72ea-15ae-45ce-b0f5-00004abc2010"),
("T-CH", "A435HX:d3e90afc-0f09-4054-9bac-350cc8dfc901-7cee72ea-15ae-45ce-b0f5-611c4f8d4a71"),
("T-ECP", "3EF6067262CF0C678598BFF22169D1F1EA57C284"),
];
//MSD10 keys
//20 bytes is OLD key, 16 bytes is TIZEN key
//key, key desc
pub static MSD10: &[(&str, &str)] = &[
("3ef6067262cf0c678598bff22169d1f1ea57c284", "EchoP"), //T-ECP* - 2012 Samsung
("010287362008be691dc8c9f6d2c5ca5aa210ecb8", "X12"), //T-MST12* - 2013 Mstar
("d145f1d55aee3ef520d194e1275b429c580baacb", "X14"), //T-MST14*/T-MS14J*/T-M14HK* - 2014 Mstar
("95d01e0bae861a05695bc8a6edb2ea835a09accd", "NT14M"), //T-NT14M*/T-N14MJ* - 2014 Novatek (low-end)
//github.com/bugficks/msddecrypt
("1ac8989ff57db5e75ea67b033050871c", "HawkM"), //T-HKM* - 2015 Samsung
("cce8a3ef92f3e94895999e928f4dd6c3", "HawkP"), //T-HKP* - 2015 Samsung
];
//MSD11 keys
//github.com/bugficks/msddecrypt
//key, key desc
pub static MSD11: &[(&str, &str)] = &[
("c7097975e8ab994beb5eaae57e0ba77c", "HawkM"), //T-HKM* - 2015 Samsung (for 2016 models)
("9b1d077c0d137d406c79ddacb6b159fe", "JazzM"), //T-JZM* - 2016 Samsung
("46b04f5e794ca4377a20951c9ea00427", "KantM2L"), //T-KTM2L* - 2018 Samsung
("29110e0ce940b3a9b67d3e158f3f1342", "KantM2"), //T-KTM2* - 2018 Samsung
("d0d49d5f36f5c0da50062fbf32168f5b", "KantM"), //T-KTM* - 2017 Samsung
("19e1ba41163f03735e692d9daa2cbb47", "KantSU"), //T-KTSU* - 2018 Samsung
("39332605ff47a0aea999b10ce9087389", "KantSD?"), //T-KTSD* - ???? Samsung
("5bab1098dab48792619ebd63650d929f", "NikeL"), //T-NKL* - 2020 Samsung
];
2025-10-19 14:56:51 +02:00
//RUF keys
pub static RUF: &[(&str, &str)] = &[
("BD-P1600", "CB44682CFC0E0C50E1BEA74294ABBAE6"),
];
//pfl upg pubkeys
2025-10-19 14:56:51 +02:00
pub static PFLUPG: &[(&str, &str)] = &[
("3rd_spin", "D8D57233B346F2E705766A7A029DD11E1CCA560665C476E56BAED8DAA6E323C22BE9FF0B7CC1995FDDB5E59767006F0046E79400E6E519854E3D6A926DA3CB244AB97DEABC5AA73641DA251BE5980973E574323B24DF1C431D0D146ED2B325C8D0FB859BA1492E987AE3B8FE51C0D724EB5D45EC9A4EE01EBB5FF460E987D2E1"),
("TV520_1", "AFAF89062747CBB29343C4E4EA775E4CFDF5FAFCD92C9DD858A8725201BA54AB973BEFEE04EBF3046910FBBC78B10120AE16D80BA734931E97248BC6B1D4A909F087D37BC0A9C2210FF8A2BE44C00F31E4DD8713A364623637FF75EBBCE9D3A840DB67E0FA910F127F679496F6C21112E3E3AD4ACA459FDE1CC58E300682E6F9"),
("TV520_2", "C41BE92C212BAC76B48261E2A1704028287DD7E121C11DA25F709E864FBDC1BD8C7F226F57605A4B42D768CDD629AF9E54011A0967AFC2826331406FB1E90321620738526EA0BEA59F1A0E612AE891C396112F13531F423DF02F94D1C871429549F4D5B30D9CA3EFDCC6D7A96849F7C1788DE8FAAEDD36560337008DF06D612F"),
("TV543_Q543", "C5FD937B301A5CEF4B6C25F187728C99636515D058895FEA469496E2B24907FC7721648841F8AE4C618E215673D0C029752FA970B6F9A7F48C9331293D3B1D43E4DFC7B52914973642CD3E4EE0AD11F5254505038F95CACE0DF21FC769B34E134435D88AB617D2981F66EF45BBC7796CFB1086C5D5672E837204991FE53BC1CF"),
("TV543_Q548", "9E7DA389815251E82A84A1182807702E72A0B0E0FF707C8E73E2EA71F79D5FAAFFC6E0B90ED16E13A4289C78A7D3BDA90626162AAE169D7BE28D6A635585CC10639C4E312E288EB8F7C5A44518B7E8A26A45C5023C5078A972A4CC219CA020BAF524F7429257B7AD76E1B15390879064C6ED59CC1F20CC04EEC26C9CF7FC0727"),
("TV543_Q549", "F28ED197C5C40B7F7356D4EDD5526BC238C812EB59400087BBA2D6402B41BBE695EAAE5F6051F1B5EBAC1756F17FED9DA0678F2E6EE59ABF530847DB9249DD025D00FFC67B2ECFF320E99F5DA8A46B1E41479BA3B5CDC110D247B7AF31E887463C8E7A9929BE511C724FB7B4BACBF055F276ED53687E24543815D5437405B0CB"),
("TV550_Q552", "DEA689548D2C3542E1395063B9ED14F2A779B34237265E408B43DDBD57FC86260B7865C6BFA3A5F7D249F6BC82B5D8BD0FA31C8C094D3376241ADE1BD81D26354A4366F170073588BA23676CC7DCCD686C91C99C38290E2D27DA4BAE7E49FA3665DF2895D0BF81824287EDF131771E73380F45A4F6C5FF1C669154A6DD063BEB"),
("TV550_Q555", "D7EE8ED11AC048ED225D4F5F53F8509E55C5D94256A703C79E4CA78AE93ECE1639FE466363AD962BD6D6DE0C46FD19F363687C1D8A21820740A6E7FF87F41C4900DCE1E26EC122E5D4DFA76BFC8F296816B8D0910325E9DC5CBCC9579CF15FC0253EF7CF4919B7613491A5D7BF75DC1888531C458967FD1CF64B33139550BAA5"),
("Fusion", "ACD684155C7CCCB04372A8808514489FA9EE75D305987D1337420241FDBE0AE1F7CDFBB931C9D56C91D36F2CE79D222695B484FF42BCA12CE362C7C9ABBDEEC8E5D6107FADCF2D4DA5DF0693E13ACE54A18AEB21C051F6B62C075A1791985547C1CFF4FB5B6EA7E0A9405A1B2BB71EB89A9B209E0F62BF9794D673179C0E60F1"),
//sony
("sony_M5", "9B869BF115627779065064476154D801BCB38DF9BE7CD8A1D6A925C9661D286CB6601633CBDE2675650B55165E4BFA4F62F4BBB3310FC68624D0F6D4D83DAFAA9A1D0E038A8B1BF503ECED1C40C90CBF7DD0585E67AAE17014F3E0608D68B13CAF1D4718F6194E4D68BE04CCC330AB841FD242919F383E8513A5B8A53F5800BD"),
("sony_M6", "C6283DBEE4D0C9B39B32760A036109FA04999174E6F259959EA66E5AFB4202B74ACACF7389AF00CCAE6AD2FD16CBCA7A100258EC43360C63DC4BFD81C613A3B5CDFA2FF3C7F797E2617EEDBFD4A6F1DEAC3E85076FAE9BF18C35AC4C7DD0EE9510B697615A415A2B69A7FAA24CB433297039ECA23F6E52CBA61BADEC621CECFD"),
("sony_M7", "CAFA1ECA418A4D5575E9F099E6BCB0083B1A8FC8E47FC7A7779D5BC31D6F84BB191DAF05037FE9F67F1F12401D9AEBABE892D121189C76C6962374AA7DF3EE1DD07994DFD97B150A3E3EFB146BAF9A483F3536B238CED429064DCC087803C1627996F5DBBE23A5E69114F76B55D7CB08C65B5CC81160D4E7FFB9A8C49E724B65"),
("sony_M8", "ACE08E69569094B1B1A37630986A6F0D689D346471E76018889F610B05B3EB32DFAFE1FD9514EE40E75320E22230F2ADCE8B38C8680DBF013C5D3056033C2647F3DFC1B80D4BCD7FBBCC1FBB665B9D83807E0EF26D15AF1BE8B980F65E139DEE286FE7E3580DAC27C03C6F50AA2233C7BA25C47824DE52BB119F44AD3C80CB71"),
//development key, although works for some prod fws
("devkey", "B9C9A3129EF081D0D4C13E96CF0FF83B85C4B18B57614E72ABBC22A34E6E1C3DD1814AD10E6B347D86325A05158293AF2C81BB1EEDB2EFEFCCDF841626DF7DC3DAC8ED481F596CA244E9C98CCDC94A24BD46ED3F8508785B3F4E317781F911AA1B7455FA856CF1BDD2BA70D3062031DF8E645E376626A581F537DE841851EBED")
2025-10-19 14:56:51 +02:00
];
2025-11-19 23:39:33 +01:00
//pana dvd keys (no AES)
pub static PANA_DVD_KEYONLY: &[&str] = &[
("08E03D859AF9F3EE"), //<=2011
// Thanks to
// https://git.gammaspectra.live/WeebDataHoarder/pana-fw#cmd-recover-lzss-cramfs &
// https://git.gammaspectra.live/WeebDataHoarder/pana-fw#cmd-recover-gzip-cramfs
// for these <3
("AF4D5B16C298C16D"), // ~2011
("9407311B7561F97E"), // ~2012
("5D88719745A4EFFF"), // ~2012
("38BB0C17D362701F"), // ~2013
("EC238CD791456646"), // ~2013
("0A1EE6C5BDC4933F"), // ~2013 (china)
("8F8CA88482E43D9B"), // ~2014
("21FCA17361E66B4E"), // ~2014
2025-11-20 22:00:03 +01:00
];
//pana dvd keys (PANAEUSB pair - AES key, AES IV, cust)
pub static PANA_DVD_AESPAIR: &[(&str, &str, &str)] = &[
("62A39E1C5594AE09244EB326EF7938FA", "46D03C52B1A398FA03276FDE7CC4EA26", "06C943F3B997F7E0"), // ~2018
2026-04-29 16:28:21 +02:00
("A692605194CF7F4917E50521C1DF0BBA", "F80A6BCAD57AA67C3C60E3BE755E05DF", "FDFE0BEE4C90FA2C"), // ~2016
];
//mtk pkg custom keys
//key, iv, desc
pub static MTK_PKG_CUST: &[(&str, &str, &str)] = &[
("D378EAF81D378A801B556985789A7C31", "73079FD19183715E130858588479C652", "Philips 2012"),
("47FBF8CAD62BB95AF3AD9509E5C2175D", "63120FB321B0410F216D6DC2D8641A11", "Philips 2013"),
("135AFB6DE91CD56496244BC7C0E08D63", "C6A38C89F0AF5637EB6E19D35E12E257", "TPV_MTK2K14PLF_EU1"),
2026-01-07 17:40:50 +01:00
("7B17F7764818AE2C897BA69D428D0CB3", "672041CCB9FCD4272B11E57AB6047163", "TPV_MTK2K16PLF_EU0"),
("1B569AA7D2E4CCE66584A7A3D8A45679", "A0E88D5D52A813260D3A34A14AA89416", "TPV_MTK2K17PLF_EU0"),
("B1BFAA407F70C80C650379DFEAFAA40F", "BC1443A0D17AAB2DB1EA0302EF280717", "Common"), //new mtk pkg, worked for Hisense/CVT/Changhong
("DB7D510A8DA635645A844B2F55C0B5BA", "93A97FF5C4BCE585122C7109FC2E1A3F", "Sony 2017 Linux"),
2026-01-07 17:40:50 +01:00
("9320FC32BCDCE3178B7B2BA2A1AF3391", "D93F84B9BDDC9E1BD3E7C114AAA2FAA3", "Sony 2015 Android"),
("F888FC0268C6692D7EB76243E53D47E5", "EE40FE4700EC3197336940D4B30D4BE8", "Sony 2016 Android"),
("07A30C2E4AAE4849EC3DD2301C381868", "BC1443A0D17AAB2DB1EA0302EF280717", "Philips Android"), //worked on TPM171E(2017), TPM191E(2019), TPM211E(2021)
];
//Funai UPG keys
pub static FUNAI_UPG: &[&str] = &[
("696B6A75"), //FNI-0CF, FNI-0BF
("312E3149"), //PHL-0AA, PHL-0CA
("6D6B6161"), //PHL-0AB
("34624848"), //PHL-0BA, PHL-0DA
("386A376D"), //PHL-0CCX
("77303131"), //PHL-0CEX
("75303231"), //PHL-0CFX
("68353031"), //PHL-0SDX
];
//Funai BDP keys
pub static FUNAI_BDP: &[&str] = &[
("981A6413"),
("81AE6734"),
("09E87783"),
];
//Sony BDP AES keys
//key, iv(der), desc
pub static SONY_BDP_AES: &[(&str, &str, &str)] = &[
("2EC0855737CADA76E1D82F9D5526B46E", "8F5E39A2A36AD9B0A9D2E3041AA03867", "MSB19-23"),
("0D8B87A8CE27702197155B8AC057E13A", "C280F2F534B1E53421D31AC4BE56CA43", "MSB24-29"),
];
//EPK keys
//github.com/openlgtv/epk2extract
pub static EPK: &[(&str, &str)] = &[
("214BF3C129547AF31D32A5ECB4742192", "unknown"),
("1F1E1D1C1B1A19180706050403020100", "BCM35230/early MTK5369 and LG1152"),
("7184C9C428D03C445188234D5A827196", "mtk5369 - Mediatek GP4"),
("385A992430196A8C44F1985823C01440", "mtk5398 (a2) - Mediatek NetCast 4/4.5"),
("6856A0482475A8B41728A35474810203", "new BCM35230"),
("2F2E2D2C2B2A29281716151413121110", "Saturn7/BCM3556"),
("212D3B2A5C2D3A2C4D5B234B1A321D2A", "new Saturn7/old LM1"),
("4F836AAEB4301F26172A9B0E1120EAF4", "LM1 PDP"),
("4EE662C7A2C0917F7328DE73A0836C6B", "LM1 LCD"),
("2F534ABE34801A36B7DA6B3EB1C04AD4", "m1 - MStar non-webOS"),
("7B2CA5943D2E752CF58606228C5B2DAD", "m1a - MStar non-webOS (L15 signage)"),
("D55C6864035A8C8A2B35A6D6C4565596", "m2 - MStar SimpleSmart"),
("68A284B4953CAD15024BED2C4F852A09", "lm14 - MStar NetCast 4.5"),
("4813B5B63C998A2874EF3320684AC8D9", "lg1152 - LX GP4"),
("14B3623488212250C7C992AACD537447", "lg115x - LX NC4"),
("34CC219D3AFC102433109BBC1DA44095", "m14 (m14tv) - LX webOS 1 (2014)"),
("5A167D8C342EF094800E7CFA2D10F2D0", "m14 (m14tv) - LX webOS 2 (2015)"),
("ADB92D9E23035522F4708CC259B31EA2", "m2 - MStar webOS 3.0 (2016)"),
("E529BCDEDF8E49667C0FA3A81174B65E", "o18 - LX webOS 4.0 (2018)"),
2026-03-19 20:17:22 +01:00
("4ACD2CA8425BBA6C49FD03A174300239", "o18 - LX webOS 4.5 (2019)"),
("74514676D68B9A72A0093CEF56D3067484E1F4D5CF7D4B4ED389BED030FA1B09", "k7lp - Realtek webOS 6 (2021)"),
("52A208FA24E7E70730A40999B1C22C148F4920484BC50B515D243E35D14689F1", "o24n - LX webOS 10 (2025)"),
2026-04-28 18:41:49 +02:00
("1FB2C3B789D5EA48ED16E79A0343986C691DACEC872BB07787D0F722AF5D1E2C", "lm21ann - MStar webOS 8 (2023)"),
2026-03-19 20:17:22 +01:00
2026-06-04 19:46:23 +08:00
];
//Vestel keys
pub static VESTEL: &[(&str, &str)] = &[
2026-06-05 21:40:54 +08:00
("VESTEL-MB180/MB130/MB181/MB230/MB281", "12345678123456781234567812345678"),
2026-06-05 11:39:12 +08:00
];
//Novatek/MStar custom keys
pub static NOVATEK_RAW: &[(&str, &str)] = &[
2026-06-05 21:40:54 +08:00
("MB211_shredder", "A9A05FC6F986254382DF2C93DEDF7B98"),
2026-06-04 20:23:15 +08:00
];