Aller au contenu
DIY Wallet
FR

Compiler l’application

Compiler l’application de bureau OneKey sur votre ordinateur, à partir de son code source.

  • 60 min
  • Sur votre ordinateur
Pièces et options

L’application tourne sur votre ordinateur, affiche vos soldes et prépare les transactions. Vous la compilez à partir du code source pour la même raison que le firmware : pour savoir ce que vous faites tourner.

L’application de bureau est le bon choix ici. Elle contient tout ce qu’il lui faut pour communiquer avec votre portefeuille. L’extension de navigateur et l’application web, elles, chargent cette partie depuis les serveurs de OneKey quand elles s’exécutent.

La seule modification

Quand un appareil se connecte, l’application OneKey vérifie qu’il a été fabriqué par OneKey. Votre appareil échouera toujours à ce contrôle, parce que seule l’usine de OneKey peut donner à un appareil le certificat demandé. Avant de compiler, vous appliquez donc une modification d’une ligne qui saute ce contrôle. Vous pouvez lire toute la modification avant de l’appliquer : app-skip-genuine-check.patch.

Installer les outils

Il vous faut Git et Node.js en version 22 ou 24, sur un Mac ou un ordinateur Linux.

  1. Installez les outils en ligne de commande d’Apple, qui comprennent Git. Dans Terminal, lancez xcode-select --install et suivez les instructions.
  2. Installez Node.js 22 LTS ou 24 LTS depuis nodejs.org.
  1. Installez Git et les outils de compilation habituels, par exemple sous Debian ou Ubuntu : sudo apt install -y git rsync build-essential python3 pkg-config libudev-dev.
  2. Installez Node.js 22 LTS ou 24 LTS, depuis nodejs.org ou depuis votre distribution.

Fermez le terminal et ouvrez-en un nouveau, pour qu’il trouve les nouveaux outils.

Télécharger le code source et appliquer la modification

Sur votre ordinateur
git clone --depth 1 --branch v6.6.3 https://github.com/OneKeyHQ/app-monorepo.git
cd app-monorepo
git log -1 --format=%H

La dernière commande doit afficher d510ab79e622ed042444940b8a848c1b1628ab68, le commit que OneKey a publié comme version v6.6.3.

Sur votre ordinateur
curl -fLO https://raw.githubusercontent.com/rayston92/firmware-classic1s/diy/diy/app-skip-genuine-check.patch
git apply app-skip-genuine-check.patch

git apply n’affiche rien quand tout se passe bien.

Compiler

Ces commandes téléchargent les bibliothèques de l’application et la compilent. Comptez de 30 minutes à une heure, et fermez les autres programmes gourmands : la compilation utilise beaucoup de mémoire.

Sur votre ordinateur
corepack enable
export ONEKEY_FONTS_FORCE_FALLBACK=1
yarn
cd apps/desktop
yarn build:renderer
yarn build:main
yarn install-app-deps

Si corepack enable répond permission denied, lancez plutôt sudo corepack enable, puis continuez.

ONEKEY_FONTS_FORCE_FALLBACK indique à la compilation d’utiliser la police open source Inter, au lieu d’essayer de télécharger la police de marque de OneKey, qui est sous licence et à laquelle vous n’avez pas accès.

Maintenant, transformez-la en un programme que vous pouvez ouvrir :

Sur votre ordinateur
npx electron-builder build --mac --dir --config electron-builder.config.js -c.mac.identity=null --publish never

L’application se trouve dans apps/desktop/build-electron, dans un dossier dont le nom commence par mac. Ouvrez OneKey.app depuis ce dossier. La première fois, macOS peut dire qu’il ne peut pas vérifier le développeur : faites un clic droit sur l’application, choisissez Ouvrir, puis Ouvrir à nouveau.

Sur votre ordinateur
npx electron-builder build --linux --dir --config electron-builder.config.js --publish never
sudo cp public/static/udev/99-onekey.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules

L’application est apps/desktop/build-electron/linux-unpacked/onekey-wallet. La deuxième et la troisième commande lui permettent d’ouvrir la connexion USB du portefeuille sans tourner en root.

Point de contrôle

L’application s’ouvre et affiche son écran d’accueil. Laissez-la ouverte pour l’étape suivante.

C’est fait ? Passer à l’étape 7Connecter et créer votre portefeuille

Dernière vérification avec le code source :