π
<-

Modification des fichiers update de la HP Prime G2

Programmation et implémentation d'algorithmes.

Modification des fichiers update de la HP Prime G2

Unread postby ayabusa » Today, 13:13

Après avoir lu un article sur une modification de l'OS de la Prime (sûrement la G1 d'après la date): viewtopic.php?f=55&t=13329&p=151712&hilit=patch+hp+prime#p151712
Je me demandais si cela était toujours possible et j'ai donc tenté de réitérer l'expérience. Mais après avoir modifié la version dans le fichier HPPrime_OS.img, la calculatrice rejette ma mise à jour, car considéré comme invalide.
J'imagine donc qu'il s'agit soit d'un checksum soit d'une signature. Toutefois, en tentant de démystifier les fichiers contenus dans ce fichier à l'aide de ce script, je trouve des fichiers complètement différents de ce qui était indiqués dans le post précédent: viewtopic.php?f=55&t=21758&start=20#p234397
Code: Select all
File size is 17602496 (0x10C97C0) bytes
Block #0 at offset 4 (0x4):
        Block size 8031248 (0x7A8C10), data size 8031242 (0x7A8C0A), header size 4 (0x4)
        Name: 'HPPrime.img'
Block #1 at offset 8031252 (0x7A8C14):
        Block size 354240 (0x567C0), data size 354235 (0x567BB), header size 4 (0x4)
        Name: 'bootloader.img'
Block #2 at offset 8385492 (0x7FF3D4):
        Block size 4288 (0x10C0), data size 4281 (0x10B9), header size 12 (0xC)
        Name: 'files.sig'
Block #3 at offset 8389780 (0x800494):
        Block size 26324 (0x66D4), data size 26317 (0x66CD), header size 12 (0xC)
        Name: 'Bridge.jpg'
Block #4 at offset 8416104 (0x806B68):
        Block size 23840 (0x5D20), data size 23834 (0x5D1A), header size 12 (0xC)
        Name: 'Coins.jpg'
Block #5 at offset 8439944 (0x80C888):
        Block size 612 (0x264), data size 607 (0x25F), header size 16 (0x10)
        Name: 'Custom_App.prgm'
Block #6 at offset 8440556 (0x80CAEC):
        Block size 752 (0x2F0), data size 747 (0x2EB), header size 24 (0x18)
        Name: 'dark_grad.hpthemepng'
Block #7 at offset 8441308 (0x80CDDC):
        Block size 764 (0x2FC), data size 760 (0x2F8), header size 24 (0x18)
        Name: 'dark_menu.hpthemepng'
Block #8 at offset 8442072 (0x80D0D8):
        Block size 1104 (0x450), data size 1100 (0x44C), header size 16 (0x10)
        Name: 'Demo_ARC.prgm'
Block #9 at offset 8443176 (0x80D528):
        Block size 1136 (0x470), data size 1131 (0x46B), header size 16 (0x10)
        Name: 'Demo_ARC_P.prgm'
Block #10 at offset 8444312 (0x80D998):
        Block size 1248 (0x4E0), data size 1242 (0x4DA), header size 16 (0x10)
        Name: 'Demo_BLIT.prgm'
Block #11 at offset 8445560 (0x80DE78):
        Block size 1296 (0x510), data size 1291 (0x50B), header size 20 (0x14)
        Name: 'Demo_BLIT_P.prgm'
Block #12 at offset 8446856 (0x80E388):
        Block size 192 (0xC0), data size 188 (0xBC), header size 16 (0x10)
        Name: 'Demo_BREAK.prgm'
Block #13 at offset 8447048 (0x80E448):
        Block size 580 (0x244), data size 573 (0x23D), header size 16 (0x10)
        Name: 'Demo_CASE.prgm'
Block #14 at offset 8447628 (0x80E68C):
        Block size 316 (0x13C), data size 311 (0x137), header size 20 (0x14)
        Name: 'Demo_CONTINUE.prgm'
Block #15 at offset 8447944 (0x80E7C8):
        Block size 1244 (0x4DC), data size 1238 (0x4D6), header size 20 (0x14)
        Name: 'Demo_DIMGROB.prgm'
Block #16 at offset 8449188 (0x80ECA4):
        Block size 1240 (0x4D8), data size 1234 (0x4D2), header size 20 (0x14)
        Name: 'Demo_DIMGROB_P.prgm'
Block #17 at offset 8450428 (0x80F17C):
        Block size 216 (0xD8), data size 211 (0xD3), header size 20 (0x14)
        Name: 'Demo_Export.prgm'
Block #18 at offset 8450644 (0x80F254):
        Block size 784 (0x310), data size 777 (0x309), header size 20 (0x14)
        Name: 'Demo_FILLPOLY.prgm'
Block #19 at offset 8451428 (0x80F564):
        Block size 796 (0x31C), data size 791 (0x317), header size 24 (0x18)
        Name: 'Demo_FILLPOLY_P.prgm'
Block #20 at offset 8452224 (0x80F880):
        Block size 184 (0xB8), data size 179 (0xB3), header size 16 (0x10)
        Name: 'Demo_FOR.prgm'
Block #21 at offset 8452408 (0x80F938):
        Block size 2160 (0x870), data size 2156 (0x86C), header size 20 (0x14)
        Name: 'Demo_GETPIX.prgm'
Block #22 at offset 8454568 (0x8101A8):
        Block size 2172 (0x87C), data size 2167 (0x877), header size 20 (0x14)
        Name: 'Demo_GETPIX_P.prgm'
Block #23 at offset 8456740 (0x810A24):
        Block size 216 (0xD8), data size 211 (0xD3), header size 20 (0x14)
        Name: 'Demo_GETSIDES.prgm'
Block #24 at offset 8456956 (0x810AFC):
        Block size 164 (0xA4), data size 159 (0x9F), header size 16 (0x10)
        Name: 'Demo_IF.prgm'
Block #25 at offset 8457120 (0x810BA0):
        Block size 160 (0xA0), data size 155 (0x9B), header size 16 (0x10)
        Name: 'Demo_IFERR.prgm'
Block #26 at offset 8457280 (0x810C40):
        Block size 1252 (0x4E4), data size 1246 (0x4DE), header size 20 (0x14)
        Name: 'Demo_INVERT.prgm'
Block #27 at offset 8458532 (0x811124):
        Block size 1208 (0x4B8), data size 1203 (0x4B3), header size 20 (0x14)
        Name: 'Demo_INVERT_P.prgm'
Block #28 at offset 8459740 (0x8115DC):
        Block size 228 (0xE4), data size 224 (0xE0), header size 16 (0x10)
        Name: 'Demo_KILL.prgm'
Block #29 at offset 8459968 (0x8116C0):
        Block size 688 (0x2B0), data size 682 (0x2AA), header size 16 (0x10)
        Name: 'Demo_LINE.prgm'
Block #30 at offset 8460656 (0x811970):
        Block size 700 (0x2BC), data size 694 (0x2B6), header size 20 (0x14)
        Name: 'Demo_LINE_P.prgm'
Block #31 at offset 8461356 (0x811C2C):
        Block size 152 (0x98), data size 146 (0x92), header size 16 (0x10)
        Name: 'Demo_LOCAL.prgm'
Block #32 at offset 8461508 (0x811CC4):
        Block size 396 (0x18C), data size 389 (0x185), header size 20 (0x14)
        Name: 'Demo_PISERIES.prgm'
Block #33 at offset 8461904 (0x811E50):
        Block size 404 (0x194), data size 399 (0x18F), header size 24 (0x18)
        Name: 'Demo_PISERIES_P.prgm'
Block #34 at offset 8462308 (0x811FE4):
        Block size 1520 (0x5F0), data size 1515 (0x5EB), header size 16 (0x10)
        Name: 'Demo_RECT.prgm'
Block #35 at offset 8463828 (0x8125D4):
        Block size 1536 (0x600), data size 1530 (0x5FA), header size 20 (0x14)
        Name: 'Demo_RECT_P.prgm'
Block #36 at offset 8465364 (0x812BD4):
        Block size 168 (0xA8), data size 164 (0xA4), header size 20 (0x14)
        Name: 'Demo_REPEAT.prgm'
Block #37 at offset 8465532 (0x812C7C):
        Block size 192 (0xC0), data size 187 (0xBB), header size 20 (0x14)
        Name: 'Demo_RETURN.prgm'
Block #38 at offset 8465724 (0x812D3C):
        Block size 1824 (0x720), data size 1820 (0x71C), header size 20 (0x14)
        Name: 'Demo_ROTATE.prgm'
Block #39 at offset 8467548 (0x81345C):
        Block size 864 (0x360), data size 859 (0x35B), header size 20 (0x14)
        Name: 'Demo_SUBGROB.prgm'
Block #40 at offset 8468412 (0x8137BC):
        Block size 464 (0x1D0), data size 458 (0x1CA), header size 20 (0x14)
        Name: 'Demo_SUBGROB_P.prgm'
Block #41 at offset 8468876 (0x81398C):
        Block size 2480 (0x9B0), data size 2475 (0x9AB), header size 24 (0x18)
        Name: 'Demo_Tetrahedron.prgm'
Block #42 at offset 8471356 (0x81433C):
        Block size 2184 (0x888), data size 2180 (0x884), header size 24 (0x18)
        Name: 'Demo_Tetrahedron_P.prgm'
Block #43 at offset 8473540 (0x814BC4):
        Block size 744 (0x2E8), data size 737 (0x2E1), header size 20 (0x14)
        Name: 'Demo_TEXTOUT.prgm'
Block #44 at offset 8474284 (0x814EAC):
        Block size 416 (0x1A0), data size 409 (0x199), header size 20 (0x14)
        Name: 'Demo_TEXTOUT_P.prgm'
Block #45 at offset 8474700 (0x81504C):
        Block size 1020 (0x3FC), data size 1014 (0x3F6), header size 20 (0x14)
        Name: 'Demo_TRIANGLE.prgm'
Block #46 at offset 8475720 (0x815448):
        Block size 904 (0x388), data size 900 (0x384), header size 24 (0x18)
        Name: 'Demo_TRIANGLE_P.prgm'
Block #47 at offset 8476624 (0x8157D0):
        Block size 168 (0xA8), data size 162 (0xA2), header size 16 (0x10)
        Name: 'Demo_WHILE.prgm'
Block #48 at offset 8476792 (0x815878):
        Block size 4336 (0x10F0), data size 4331 (0x10EB), header size 12 (0xC)
        Name: 'Eclipse.jpg'
Block #49 at offset 8481128 (0x816968):
        Block size 752 (0x2F0), data size 747 (0x2EB), header size 24 (0x18)
        Name: 'exam_grad.hpthemepng'
Block #50 at offset 8481880 (0x816C58):
        Block size 27708 (0x6C3C), data size 27702 (0x6C36), header size 12 (0xC)
        Name: 'Garden.jpg'
Block #51 at offset 8509588 (0x81D894):
        Block size 519132 (0x7EBDC), data size 519126 (0x7EBD6), header size 20 (0x14)
        Name: 'HelpDe.hpresource'
Block #52 at offset 9028720 (0x89C470):
        Block size 583956 (0x8E914), data size 583949 (0x8E90D), header size 20 (0x14)
        Name: 'HelpEn.hpresource'
Block #53 at offset 9612676 (0x92AD84):
        Block size 474804 (0x73EB4), data size 474799 (0x73EAF), header size 20 (0x14)
        Name: 'HelpEs.hpresource'
Block #54 at offset 10087480 (0x99EC38):
        Block size 495520 (0x78FA0), data size 495515 (0x78F9B), header size 20 (0x14)
        Name: 'HelpFr.hpresource'
Block #55 at offset 10583000 (0xA17BD8):
        Block size 390280 (0x5F488), data size 390275 (0x5F483), header size 20 (0x14)
        Name: 'HelpJa.hpresource'
Block #56 at offset 10973280 (0xA77060):
        Block size 491728 (0x780D0), data size 491724 (0x780CC), header size 20 (0x14)
        Name: 'HelpNl.hpresource'
Block #57 at offset 11465008 (0xAEF130):
        Block size 484032 (0x762C0), data size 484028 (0x762BC), header size 20 (0x14)
        Name: 'HelpPt.hpresource'
Block #58 at offset 11949040 (0xB653F0):
        Block size 314720 (0x4CD60), data size 314716 (0x4CD5C), header size 20 (0x14)
        Name: 'HelpRu.hpresource'
Block #59 at offset 12263760 (0xBB2150):
        Block size 316032 (0x4D280), data size 316028 (0x4D27C), header size 20 (0x14)
        Name: 'HelpZh.hpresource'
Block #60 at offset 12579792 (0xBFF3D0):
        Block size 21032 (0x5228), data size 21028 (0x5224), header size 12 (0xC)
        Name: 'Hexagon.jpg'
Block #61 at offset 12600824 (0xC045F8):
        Block size 704 (0x2C0), data size 698 (0x2BA), header size 20 (0x14)
        Name: 'ip_con.hpthemepng'
Block #62 at offset 12601528 (0xC048B8):
        Block size 724 (0x2D4), data size 720 (0x2D0), header size 20 (0x14)
        Name: 'ip_dis.hpthemepng'
Block #63 at offset 12602252 (0xC04B8C):
        Block size 228 (0xE4), data size 224 (0xE0), header size 16 (0x10)
        Name: 'ISPERFECT.prgm'
Block #64 at offset 12602480 (0xC04C70):
        Block size 816 (0x330), data size 812 (0x32C), header size 24 (0x18)
        Name: 'light_grad.hpthemepng'
Block #65 at offset 12603296 (0xC04FA0):
        Block size 880 (0x370), data size 873 (0x369), header size 24 (0x18)
        Name: 'light_menu.hpthemepng'
Block #66 at offset 12604176 (0xC05310):
        Block size 37932 (0x942C), data size 37926 (0x9426), header size 12 (0xC)
        Name: 'Louvre.jpg'
Block #67 at offset 12642108 (0xC0E73C):
        Block size 16020 (0x3E94), data size 16016 (0x3E90), header size 16 (0x10)
        Name: 'Nautilus.jpg'
Block #68 at offset 12658128 (0xC125D0):
        Block size 1588 (0x634), data size 1583 (0x62F), header size 24 (0x18)
        Name: 'nordic_con.hpthemepng'
Block #69 at offset 12659716 (0xC12C04):
        Block size 1660 (0x67C), data size 1654 (0x676), header size 24 (0x18)
        Name: 'nordic_dis.hpthemepng'
Block #70 at offset 12661376 (0xC13280):
        Block size 192 (0xC0), data size 185 (0xB9), header size 20 (0x14)
        Name: 'PERFECTNUMS.prgm'
Block #71 at offset 12661568 (0xC13340):
        Block size 102232 (0x18F58), data size 102228 (0x18F54), header size 20 (0x14)
        Name: 'PrimeSansBold.ttf'
Block #72 at offset 12763800 (0xC2C298):
        Block size 4613556 (0x4665B4), data size 4613552 (0x4665B0), header size 20 (0x14)
        Name: 'PrimeSansFull.ttf'
Block #73 at offset 17377356 (0x109284C):
        Name: 'PrimeSansMono.ttf'
Block #74 at offset 17421612 (0x109D52C):
        Block size 5968 (0x1750), data size 5961 (0x1749), header size 12 (0xC)
        Name: 'Rocket.jpg'
Block #75 at offset 17427580 (0x109EC7C):
        Block size 5204 (0x1454), data size 5198 (0x144E), header size 12 (0xC)
        Name: 'Saturn.jpg'
Block #76 at offset 17432784 (0x10A00D0):
        Block size 21948 (0x55BC), data size 21944 (0x55B8), header size 16 (0x10)
        Name: 'Skatepark.jpg'
Block #77 at offset 17454732 (0x10A568C):
        Block size 25664 (0x6440), data size 25660 (0x643C), header size 12 (0xC)
        Name: 'Slices.jpg'
Block #78 at offset 17480396 (0x10ABACC):
        Block size 16804 (0x41A4), data size 16798 (0x419E), header size 12 (0xC)
        Name: 'Spiral.jpg'
Block #79 at offset 17497200 (0x10AFC70):
        Block size 22364 (0x575C), data size 22360 (0x5758), header size 12 (0xC)
        Name: 'Stairs.jpg'
Block #80 at offset 17519564 (0x10B53CC):
        Block size 27536 (0x6B90), data size 27531 (0x6B8B), header size 12 (0xC)
        Name: 'Stream.jpg'
        Block size 18296 (0x4778), data size 18289 (0x4771), header size 12 (0xC)
        Name: 'Theater.jpg'
Block #82 at offset 17565396 (0x10C06D4):
        Name: 'Tiles.jpg'
Block #83 at offset 17595032 (0x10C7A98):
        Block size 5260 (0x148C), data size 5256 (0x1488), header size 12 (0xC)
        Name: 'Tunnel.prgm'
Block #84 at offset 17600292 (0x10C8F24):
        Block size 1132 (0x46C), data size 1125 (0x465), header size 24 (0x18)
        Name: 'wireless_con.hpthemepng'
Block #85 at offset 17601424 (0x10C9390):
        Block size 1072 (0x430), data size 1067 (0x42B), header size 24 (0x18)
        Name: 'wireless_dis.hpthemepng'
Block #0 'HPPrime.img'
        Hash: A43DBB7A169CC5C38689AC46F4F76CCA59805679418D68328CE666B5CAFAFF41
Block #1 'bootloader.img'
        Hash: 425C822517B753AD49A1FA8ED39C1E89AC5797F8A389174476460D5B74D8C344
Block #2 'files.sig'
        Hash: F3D0E533ADE29D8889E4E0C09BCD6B1245F7AB9574EB6BB40C080EAA977F4860

Il y a ici 3 fichiers principaux: HHPrime.img, bootloader.img, and files.sig.
De plus avec binwalk j'obtiens:
Code: Select all

                                                                  C:\Users\[REDACTED]\Documents\HP_RE\HPPrime_OS_latest.img
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DECIMAL                            HEXADECIMAL                        DESCRIPTION
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4086420                            0x3E5A94                           CRC32 polynomial table, little endian
4145116                            0x3F3FDC                           CRC32 polynomial table, little endian
4150408                            0x3F5488                           AES S-Box
4150664                            0x3F5588                           AES S-Box
5437024                            0x52F660                           Zlib compressed file, total size: 16 bytes
5841018                            0x59207A                           GPG signed file, total size: 12 bytes
7089540                            0x6C2D84                           SHA256 hash constants, little endian
8389808                            0x8004B0                           JPEG image, total size: 5921 bytes
8440596                            0x80CB14                           PNG image, total size: 711 bytes
8441348                            0x80CE04                           PNG image, total size: 724 bytes
8481168                            0x816990                           PNG image, total size: 711 bytes
10190723                           0x9B7F83                           GPG signed file, total size: 8 bytes
10440748                           0x9F502C                           Zlib compressed file, total size: 52 bytes
10450301                           0x9F757D                           Zlib compressed file, total size: 33 bytes
10525628                           0xA09BBC                           Zlib compressed file, total size: 59 bytes
10674499                           0xA2E143                           Zlib compressed file, total size: 11 bytes
10675517                           0xA2E53D                           Zlib compressed file, total size: 84 bytes
10776083                           0xA46E13                           Zlib compressed file, total size: 57 bytes
10964777                           0xA74F29                           GPG signed file, total size: 10 bytes
10964789                           0xA74F35                           GPG signed file, total size: 19 bytes
12378475                           0xBCE16B                           GPG signed file, total size: 63 bytes
12600860                           0xC0461C                           PNG image, total size: 666 bytes
12601564                           0xC048DC                           PNG image, total size: 688 bytes
12602520                           0xC04C98                           PNG image, total size: 776 bytes
12603336                           0xC04FC8                           PNG image, total size: 837 bytes
12658168                           0xC125F8                           PNG image, total size: 1547 bytes
12659756                           0xC12C2C                           PNG image, total size: 1618 bytes
12746683                           0xC27FBB                           GPG signed file, total size: 24 bytes
12746725                           0xC27FE5                           GPG signed file, total size: 20 bytes
14297163                           0xDA284B                           GPG signed file, total size: 28 bytes
15327102                           0xE9DF7E                           Zlib compressed file, total size: 31 bytes
15775173                           0xF0B5C5                           GPG signed file, total size: 18 bytes
16634196                           0xFDD154                           Zlib compressed file, total size: 21 bytes
17457167                           0x10A600F                          Zlib compressed file, total size: 83 bytes
17600332                           0x10C8F4C                          PNG image, total size: 1089 bytes
17601464                           0x10C93B8                          PNG image, total size: 1031 bytes
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

On voit donc des tables CRC32, du SHA256 et du GPG, et là, je suis complètement perdu :~o
Donc voilà ma question est-ce quelqu'un pourrait m'éclairer sur comment ce système d'update fonctionne. Et est-ce que c'est même encore possible de modifier l'OS de cette façon, ou est-ce que HP a commencé à signer ses updates?
Merci d'avance #boing#
User avatar
ayabusa
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 0%
 
Posts: 4
Joined: 06 Feb 2024, 19:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Terminale
GitHub: ayabusa

Online

Re: Modification des fichiers update de la HP Prime G2

Unread postby parisse » Today, 13:56

Les firmwares de la G2 ont toujours été signés. La G2 est déverrouillable uniquement matériellement, mais je ne pense pas que quelqu'un s'en soit servi pour réaliser un firmware tiers.
Sur la G1, il n'y a pas de signature, et on peut certainement faire un firmware tiers si on est suffisamment courageux, en utilisant par exemple https://github.com/Project-Muteki
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 87.4%
 
Posts: 3686
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: Modification des fichiers update de la HP Prime G2

Unread postby ayabusa » Today, 18:55

Ahhh c'est dommage :(
User avatar
ayabusa
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 0%
 
Posts: 4
Joined: 06 Feb 2024, 19:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Terminale
GitHub: ayabusa


Return to Programmation

Who is online

Users browsing this forum: No registered users and 2 guests

-
Search
-
Social TI-Planet
-
Featured topics
Grand Concours 2024-2025 - Programmation Python
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1149 utilisateurs:
>1096 invités
>46 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)