https://wiki.tiplanet.org/index.php?title=HP_Prime/Firmware_files&feed=atom&action=historyHP Prime/Firmware files - Historique des versions2024-03-28T23:53:42ZHistorique des versions pour cette page sur le wikiMediaWiki 1.40.0https://wiki.tiplanet.org/index.php?title=HP_Prime/Firmware_files&diff=4353&oldid=prevAdriweb le 5 septembre 2022 à 09:212022-09-05T09:21:24Z<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="fr">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Version précédente</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version du 5 septembre 2022 à 10:21</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1">Ligne 1 :</td>
<td colspan="2" class="diff-lineno">Ligne 1 :</td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><div style='text-align: center;'>This is a <del style="font-weight: bold; text-decoration: none;">slightly-updated </del>backup copy of the article from the old "HPWiki" of TI-Planet (that only hosted HP Prime info)</div><hr></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><div style='text-align: center;'>This is a backup copy of the article from the old "HPWiki" of TI-Planet (that only hosted HP Prime info)</div><hr></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Overview ==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== Overview ==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>On the leaked and public versions of the updates files, the 'firmware.zip' archive contained :</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>On the leaked and public versions of the updates files, the 'firmware.zip' archive contained :</div></td></tr>
</table>Adriwebhttps://wiki.tiplanet.org/index.php?title=HP_Prime/Firmware_files&diff=4340&oldid=prevAdriweb : Page créée avec « <div style='text-align: center;'>This is a slightly-updated backup copy of the article from the old "HPWiki" of TI-Planet (that only hosted HP Prime info)</div><hr> == Ove... »2022-09-05T09:19:43Z<p>Page créée avec « <div style='text-align: center;'>This is a slightly-updated backup copy of the article from the old "HPWiki" of TI-Planet (that only hosted HP Prime info)</div><hr> == Ove... »</p>
<p><b>Nouvelle page</b></p><div><div style='text-align: center;'>This is a slightly-updated backup copy of the article from the old "HPWiki" of TI-Planet (that only hosted HP Prime info)</div><hr><br />
== Overview ==<br />
On the leaked and public versions of the updates files, the 'firmware.zip' archive contained :<br />
* the Operating System (leaked: v0.26, v0.30; public: v0.32)<br />
* the Boot Code (v11+)<br />
* an USB tool to install the above versions (having an interface letting you read/write images from/to any memory address - which is clearly not the final interface). From December 2013, the official Prime Connectivity Kit is the official way to upgrade the firmware on a calculator.<br />
<br />
The several files for the calculator side are : <br />
APPSDISK.DAT, armfir.elf, BESTAARM.ROM, BXCBOOT0.BIN, MASTER.DAT.<br />
<br />
See below for a list of experiments with firmware files<br />
<br />
== Analysis == <br />
<br />
=== APPSDISK.DAT === <br />
A 32MB disk image, contains a FAT16 filesystem at offset 8K. On Linux, it can be mounted with e.g.<br />
<pre>mount -o loop,offset=8192 APPSDISK.DAT appsdisk/</pre><br />
<br />
As of the 2013/11/25 firmware upgrade (revision 5447), the FAT16 filesystem contains the following files:<br /><br />
<pre>BESTABFS.IND: empty <br />
WINDOW/SYSTEM/SDKLIB.DLL: PE32 executable (DLL) (Windows CE) ARM, for MS Windows<br />
WINDOW/SYSTEM/KRNLLIB.DLL: PE32 executable (DLL) (Windows CE) ARM, for MS Windows<br />
WINDOW/SYSTEM/COREDLL.DLL: PE32 executable (DLL) (Windows CE) ARM Thumb, for MS Windows<br />
WINDOW/SYSTEM/MD5DLL.DLL: PE32 executable (DLL) (GUI) ARM, for MS Windows<br />
FIRSTRUN.INI: ASCII text, with CRLF line terminators<br />
APPSLIST.INF: data<br />
APPSLIST.MAP: data<br />
programs/tools/bestafir.exe: PE32 executable (console) ARM, for MS Windows<br />
programs/tools/bestafir.dat: DOS executable (block device driver)<br />
programs/tools/hello.exe: PE32 executable (console) ARM, for MS Windows<br />
programs/tools/hello.dat: DOS executable (block device driver)<br />
programs/misc/armfir.elf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, stripped<br />
programs/misc/armhello.dat: DOS executable (block device driver)<br />
programs/misc/diagnose.exe: PE32 executable (GUI) ARM, for MS Windows<br />
programs/misc/diagnose.dat: data<br />
APPSLIST.MD5: ASCII text, with CRLF line terminators<br />
</pre><br />
The programs/misc/armfir.dat file (DOS executable (block device driver)), was there in 2013/08/15 firmware upgrade (revision 5106) but disappeared.<br />
<br />
=== armfir.elf ===<br />
ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, stripped. There's a copy in APPSDISK.DAT/programs/misc/ (although they are not exactly the same according to their different md5 hashes)<br />
<br />
=== BESTAARM.ROM ===<br />
Seems to be part of the bootloader.<br />
<br />
=== BXCBOOT0.BIN ===<br />
Seems to be part of the bootloader.<br />
<br />
Reverse engineering : [[BXCBOOT0.BIN reverse engineering]]<br />
<br />
=== MASTER.DAT ===<br />
<br />
== Experiments on modified firmware == <br />
<br />
* In <ref>August 2013 - on [http://www.omnimaga.org/index.php?topic=16826.msg304321#msg304321 Omnimaga]</ref>, Lionel Debroux described a seemingly failed direct attempt at modifying the Prime's firmware (several strings in there + updating MD5 sump in APPSLIST.MD5): the modified version wasn't accepted by critor's calculator. However, in early November 2013, critor noticed that the modified firmware had not, actually, been transferred at all to the calculator.<br><br />
critor did more tests, managed to trigger a transfer of the modified firmware (downgrading before upgrading seems to do the job)... and the modified firmware was running on the calculator, as shown by the snapshots in <ref>November 2013 - [http://tiplanet.org/forum/viewtopic.php?f=55&t=13329&lang=en TI-Planet news item]</ref>. Needless to say, if we can modify strings so easily, we can also modify other data... and code, which opens the door to a fantastic range of possibilities :)<br><br />
<br><br />
* In early July 2014, Lionel Debroux spent several hours making a crappy PoC for a full-custom third-party armfir.elf, which displays three colored areas on the screen and enters an infinite loop: [http://tiplanet.org/forum/viewtopic.php?f=55&t=14940 First third-party firmware and assembly on the Prime].<br />
<br />
== References ==<br />
{{Reflist}}</div>Adriweb