Flashage de la puce BIOS de mon Lenovo V14 G4 AMN

Salut @juju251 @Feunoir @lithium

J’ai posé la question au support d’Econocom; Flasher ma puce BIOS/UEFI est le seul moyen de réparer mon laptop sans devoir passer par un couteux remplacement de la carte mère.
Mais évidemment ça casse la garantie… De toute façon, il fau absolument que je puisse activer le boot sur USB et la virtualisation (pour docker et virtualbox).

J’ai donc acheté ceci :

J’ai vérifié, c’est bien marqué CH341B sur grosse puce, sur le pcb avec l’USB mâle. Pour le reste, j’ai exactement les mêmes pièces.

Je dispose d’une vieille tour préhistorique avec Windows 10 tout de même, du CH341A, et de mon Lenovo V14 G4 AMN (l’ordi fourni par la Région Grand-Est aux lycéens).


J’ai trouvé ce que je crois être le BIOS de mon ordi :

Téléchargement direct l1cn70ww.exe

Apparemment, c’est une archive 7z. La décompression avec 7zip donne un dossier LenovoBiosUpdateTool, dont voici l’arborescence :

Froz1x@fedora:~/BIOS/LenovoBiosUpdateTool$ tree
.
├── Bios.dll
├── Bios.pdb
├── BiosUpdateTool.dll
├── BiosUpdateTool.pdb
├── Cultures
│   ├── Languages
│   │   └── StringResource_en-US.xaml
│   └── UI
│       └── StringResource_en-US.xaml
├── LenovoBiosUpdateTool.exe
├── LenovoBiosUpdateTool.exe.config
├── LenovoBiosUpdateTool.pdb
├── ManufacturerWMI.dll
├── ManufacturerWMI.pdb
├── MaterialDesignColors.dll
├── MaterialDesignColors.pdb
├── MaterialDesignThemes.Wpf.dll
├── MaterialDesignThemes.Wpf.pdb
├── MaterialDesignThemes.Wpf.xml
├── Microsoft.Xaml.Behaviors.dll
├── Microsoft.Xaml.Behaviors.pdb
├── Microsoft.Xaml.Behaviors.xml
├── Rfs
│   ├── Bin
│   │   └── Taiwan
│   │       ├── X64
│   │       │   ├── WinCapsuleVer.exe
│   │       │   ├── WinFlash64.exe
│   │       │   └── WinSysBiosVer64.exe
│   │       └── X86
│   │           ├── WinCapsuleVer32.exe
│   │           ├── WinFlash32.exe
│   │           └── WinSysBiosVer.exe
│   ├── CompanyLogos
│   │   └── Lenovo.png
│   ├── Fw
│   │   ├── IdeaPad
│   │   │   └── bios.cap
│   │   └── README.txt
│   ├── Lib
│   │   ├── X64
│   │   │   └── Jupiter.dll
│   │   └── X86
│   │       └── Jupiter.dll
│   ├── Profiles
│   │   ├── AppLog.xml
│   │   ├── PhoenixBiosBrand.xml
│   │   └── Taiwan
│   │       ├── BiosUpdateLimit.xml
│   │       ├── FwImageMapping.xml
│   │       ├── IdeaPad
│   │       │   └── LenovoBiosUpdateToolProfile.xml
│   │       └── ThinkBook
│   │           └── LenovoBiosUpdateToolProfile.xml
│   └── StartupImages
│       └── README.txt
├── SwissArmyKnife.dll
├── SwissArmyKnife.pdb
├── System.Runtime.CompilerServices.Unsafe.dll
├── System.Runtime.CompilerServices.Unsafe.xml
├── Unity.Abstractions.dll
├── Unity.Abstractions.pdb
├── Unity.Container.dll
├── Unity.Container.pdb
├── Win32Native.dll
├── Win32Native.pdb
├── WindowsHelper.dll
├── WindowsHelper.pdb
├── WpfExtension.dll
└── WpfExtension.pdb

20 directories, 51 files

Donc beaucoup de fichiers .exe, .dll, .xml, .xaml, .pdb, .config
Et un seul bios.cap.

Ce fichier pèse 17 297 Ko.


GALLERIE

J’ai donc une puce de BIOS

        XMC
25RU128CH10
P3P29700 32
      2329C

J’aurai besoin de tout ce qui est entouré en rouge.

il faut arriver à sortir la capsule (bios.cap) du fichier d’installation.
et surtout trouver la procédure exacte et les adresses de l’eeprom où il faut inscrire.
Pour ça tu va devoir aller chercher dans les tréfonds du web, en anglais, où les geeks barbus ressemblent à des druides :grin:
Prends bien le numéro de modèle de ton PC, tous les identifiants possible de la carte mère aussi

2 « J'aime »

C’est déjà fait, ça reste facile.

@lithium

Je suis un peu perdu.
Je suis ce tuto YT:

J’utilise donc le logiciel NeoProgrammer.

J’ai connecté la puce a ma tour. Quand je clique sur détecter, NeoProg détecte bien pupuce, mais quand je tape le nom de la puce bios, il n’y a rien qui sort…

EDIT

J’ai donc choisi une puce winbond que GPT trouvait similaire, lu le bios, sauvegardé le bios, effacé la puce, pui reprogrammé la puce.

Le PC n’est pas briqué :slight_smile: , mais je ne sait pas comment flashe l bios.cap, il est trop grand pour l puce (buffer owerflow)…

Je ne peux pas t’aider mais t’as tout mon soutient spirituel !

image

1 « J'aime »

il y a des headers uefi à supprimer (les fameuses adresses), des données inutiles pour le programmateur, c’est l’information compliquée à trouver

1 « J'aime »

Du coup, comment faire une image bios propre ?

si tu ne trouve pas l’information exacte je pense que tu devra ouvrir ton dump et la capsule dans un éditeur hexa et trouver le début du bios dans la capsule en cherchant des similarités avecc le dump dans les premiers bits.
Et tu peux expérimenter, en cas de foirage tu a déjà verifié que ton dump est valide donc tu peut le restaurer.

1 « J'aime »

J’ai commencé a chercher des choses avec UEFITools et HxD :

La puce de BIOS (ref ci dessous)du Lenovo v14 g4 amn n’est pas présente dans la base de donées de NeoProgrammer,

XMC
25RU128CH10
P3P29700 32
      2329C

en revanche cette puce (W25Q128FW) est apparemment parfaitement compatible, à ce jour 2025-09-28T22:00:00Z.

Bonne nouvelle @lithium @Hanandano !

J’ai pu me faire prêter un Lenovo V14 G4 AMN dont le BIOS est sain. Je suis en train de faire un dump du BIOS :

Je vais pouvoir écrire ce programme sur mon laptop !

Super !

1 « J'aime »

Ca y est, j’ai terminé le dump. JE vais maintenant flasher mon ordi…

@Ouafi C’est le DDFPT qui m’a prêté un V14 G4 AMN

Let’s gooo ! La bonne nouvelle !

L’écriture semble s’être bien passée.

En revanche, faisant mon premier boot après flashage, en appuyant sur F2, le laptop m’affiche ceci :

PSP found PSP NVRAM exist but not healthy, PSP requiring to clear PSP NVRAM.

Press "Y" to clear fTPM (type 0x04) and RPMC (type 0x54) region.

If you have Bitlocker or encryption enabled, fTPM will NOT enable in new CPU, the system will boot without a recovery key.

Press "N" to keep previous PSP NVRAM and continue system boot.

Ce qui se traduit par (d’après Deepl) :

PSP a détecté la présence d'une mémoire NVRAM PSP, mais celle-ci n'est pas en bon état. PSP doit effacer la mémoire NVRAM PSP.

Appuyez sur « Y » pour effacer les zones fTPM (type 0x04) et RPMC (type 0x54).

Si Bitlocker ou le chiffrement sont activés, fTPM ne s'activera PAS dans le nouveau processeur, le système démarrera sans clé de récupération.

Appuyez sur « N » pour conserver la NVRAM PSP précédente et poursuivre le démarrage du système.

Traduit avec DeepL.com (version gratuite)
1 « J'aime »

Donc t’as appuyé sur quoi ?

Y

Sinon :

:partying_face: :drum:

JE PEUX ACCEDER A MON BIOS ET BOOTER L’OS QUE JE VEUX !

J’ai réparé mon laptop qui avait un bios corrompu :tada: !

3 « J'aime »

Félécitation !!! :+1:t2:

1 « J'aime »

Bien joué !

1 « J'aime »

Bon la prochaine fois tu notes le MDP sur un post-it sur la face interne du capot d’accès à la carte mère, comme tout le monde :grin:

1 « J'aime »