# 🔐 SHA256 Verification

## 🎯 Objective

Verify that the downloaded Ledger Live AppImage has not been corrupted or altered before replacing the existing binary.

This adds a simple integrity check to the update workflow.

---

## 🧠 Why This Matters

An AppImage is a standalone executable.

Before moving it into the permanent location, it is good practice to verify:

- the download completed properly
- the file is not corrupted
- the checksum matches the official release value

This is especially useful when manually managing binaries.

---

## ✅ Step 1 — Generate the local SHA256 hash

Run:

<div class="relative w-full mt-4 mb-1" id="bkmrk-sha256sum-%7E%2Fdownload"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-sha256sum-%7E%2Fdownload-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">sha256sum ~/Downloads/ledger-live-desktop-2*.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Example output:

<div class="relative w-full mt-4 mb-1" id="bkmrk-abcd1234...-%2Fhome%2Fco"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-abcd1234...-%2Fhome%2Fco-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">abcd1234... /home/coolbaron/Downloads/ledger-live-desktop-2.145.0-linux-x86_64.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## ✅ Step 2 — Compare with the official hash

Check the SHA256 value published by Ledger for that exact version and verify that:

- the version matches
- the filename matches
- the hash matches exactly

If the hashes differ, do **not** use the file.

---

## ⚠️ Important

A valid file size alone is not enough.

Example:

- correct size → suggests a complete download
- matching SHA256 → confirms integrity

Both checks are useful, but SHA256 is the stronger verification.

---

## ✅ Recommended Verification Flow

### 1. Check file size

<div class="relative w-full mt-4 mb-1" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-ls--lh-%7E%2Fdownloads-%7C-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">ls</span> <span class="ͼu">-lh</span> ~/Downloads | <span class="ͼs">grep</span> ledger</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>### 2. Check SHA256

<div class="relative w-full mt-4 mb-1" id="bkmrk-sha256sum-%7E%2Fdownload-2"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-sha256sum-%7E%2Fdownload-3"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly">sha256sum ~/Downloads/ledger-live-desktop-2*.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>### 3. Compare with official release hash

### 4. Move only after verification

<div class="relative w-full mt-4 mb-1" id="bkmrk-mv-%7E%2Fdownloads%2Fledge"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-mv-%7E%2Fdownloads%2Fledge-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">mv</span> ~/Downloads/ledger-live-desktop-2*.AppImage ~/AppImages/ledger-live.AppImage  
<span class="ͼs">chmod</span> <span class="ͼn">+</span>x ~/AppImages/ledger-live.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>---

## ❌ If the Hash Does Not Match

Do not move the file into `~/AppImages`.

Instead:

<div class="relative w-full mt-4 mb-1" id="bkmrk-rm-%7E%2Fdownloads%2Fledge"><div class=""><div class="relative"><div class="h-full min-h-0 min-w-0"><div class="h-full min-h-0 min-w-0"><div class="border border-token-border-light border-radius-3xl corner-superellipse/1.1 rounded-3xl"><div class="h-full w-full border-radius-3xl bg-token-bg-elevated-secondary corner-superellipse/1.1 overflow-clip rounded-3xl lxnfua_clipPathFallback"><div class=""><div class="relative z-0 flex max-w-full"><div class="q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch ͼk ͼy" dir="ltr" id="bkmrk-rm-%7E%2Fdownloads%2Fledge-1"><div class="cm-scroller"><div class="cm-content q9tKkq_readonly"><span class="ͼs">rm</span> ~/Downloads/ledger-live-desktop-2*.AppImage</div></div></div></div></div></div></div></div></div><div class=""><div class="">  
</div></div></div></div></div>Then download it again and repeat the check.

---

## 🧩 Practical Note

For routine use, checking file size may be enough to catch obvious failures such as the earlier **75-byte corrupted AppImage**.

For stronger assurance, especially with wallet-related software, SHA256 verification is the better habit.

---

## 💡 Guiding Principle

> Verify first. Replace second.