Aller au contenu


Photo

[Tuto] Redimensionner la partition USER d'un dump de NAND (pour emuMMC Atmosphère)


  • Veuillez vous connecter pour répondre
45 réponses à ce sujet

Posté 19 juin 2019 - 16:00

#1
giga300

giga300

    Sunriseur avancé

  • Members
  • PipPipPip
  • 344 messages

Tutoriel - Redimensionner la partition USER d'un dump de NAND (pour emuMMC Atmosphère) - OBSELETE

Utiliser NXNANDMANAGER A PLACE (https://github.com/e.../NxNandManager)

Attention: Les manipulations décrites sont parfois assez complexes mais tout le monde peut y arriver en suivant bien les explications, si vous avez une question n’hésitez pas à la poser
Attention: Même si les manipulations décrites ne vont pas affecter directement votre Nintendo Switch, elles vont affecter votre dump de NAND donc veillez à bien à en avoir une copie de côté
  
Introduction:
 
Ce tutoriel va intéresser les amateurs de l'emuMMC intégré dernièrement au CFW Atmosphère. En effet, vous avez maintenant la possibilité sur AMS de lancer une NAND "alternatif" stockée sur votre carte SD (au lieu d'utiliser celle sur la puce mémoire de votre switch appellé sysNAND). Le redimensionnement de la partition USER (qui contient vos données utilisateur) est utile dans le cas d'un emuMMC/emuNAND pour récupérer une partie du stockage perdu (en moyenne 20Go), en effet il est inutile d'avoir un emuMMC de 32Go puisque vous installez tous vos jeux dans la SD et le dossier Nintendo.
 
Ancienne méthode (présente des problèmes de démarrage, longue, uniquement sur système Linux, déconseillé)
 

Spoiler

 
Nouvelle méthode:
 
Dans cette nouvelle méthode, nous allons utiliser un script Python qui utilisera des librairies compatibles toutes plateformes donc vous pourrez redimensionner la partition USER du dump de votre NAND sur Windows, macOS et Linux. Je tiens à remercier ckurtz22 pour ce script ;)
 
Pré-requis:
 
- Un ordinateur sous Windows, macOS ou Linux
 
- Avoir Python3 sur sa machine
 
- Un dump de NAND (splitté ou non) réalisable très facilement avec Hekate, il vous faudra à la fin les fichiers BOOT0 BOOT1 et RAWNAND.BIN (ou RAWNAND.BIN.00, RAWNAND.BIN.01... dans le cas d'un dump splitté)
 
- Votre fichier prod.keys contenant vos BIS KEY 3 (permettant de decrypter la partition USER) que vous pouvez obtenir via le payload LockpickRCM
 
Etape 1 - Préparation des fichiers:
 
Nous allons commencer par fusionner les fichiers du dump de NAND en un seul fichier nommé emummc.bin.
 
Dans le cas d'un dump non-splitté:

cat BOOT0 BOOT1 rawnand.bin > emummc.bin # Sur macOS ou Linux
copy /b BOOT0+BOOT1+rawnand.bin emummc.bin # Sur Windows 

Dans le cas d'un dump splitté:

cat BOOT0 BOOT1 rawnand.bin.* > emummc.bin # Sur macOS ou Linux
copy /b BOOT0+BOOT1+rawnand.bin.* emummc.bin # Sur Windows

Nous nous retrouvons maintenant en possession de notre fichier emummc.bin
 

Etape 1B - Uniquement utilisateur macOS

 

Cette étape vous est destine uniquement si vous êtes un utilisateur de macOS. Merci à @shadow_shd pour les précisions.

 

Installer mbedtls via Homebrew (brew)

brew install mbedtls

Si vous n'avez pas le gestionnaire de paquet Homebrew sur votre installation macOS, ça s'installe très facilement avec:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubus.../master/install)"

Etape 2 - Récupération du script:
 
1) Télécharger le script sur https://gist.github....75f2720a1e5e486, sur la page cliquez sur  Download ZIP afin de récupérer une archive contenant le script resize-user.py
 
2) Installer la dépendance mbedtls avec PIP pour que le script puisse fonctionner:
 

python3 -m pip install -U python-mbedtls # Sur macOS ou Linux
py -3 -m pip install -U python-mbedtls # Sur Windows

 
Etape 3 - Redimensionner la partition USER:
 
Placez-vous dans le dossier contenant le script resize-user.py et mettez dans le même dossier vos fichiers emummc.bin et prod.keys. Exécuter la commande ci-dessous:
 

python3 resize_user.py emummc.bin <nouvelle taille de la partition en GiB> prod.keys

 
Le fichier est automatiquement redimensionné, si vous indiquez une taille invalide le script la refusera, ne spécifiez pas l'unité G après votre taille donnez uniquement un nombre.
 
Si vous comptez réaliser un emuMMC sur Atmosphère en mode partition caché, vous pouvez vous arrêtez ici et écrire le fichier emummc.bin sur la partition de votre carte SD.
 
Si vous voulez récupérer les fichiers de votre dump BOOT0 BOOT1 et rawnand.bin afin de réaliser un emuMMC en mode fichier ou quelque chose d'autre. Vous pouvez passer à l'étape 4.
 
(OPTIONNELLE) Etape 4 - Extraire le BOOT0 BOOT1 & rawnand.bin à partir d'un emummc.bin:
 
Pour se faire nous allons utiliser la commande DD de Linux et macOS, si vous êtes sur Windows vous pouvez récupérer le binaire de DD à cette adresse: http://www.chrysocome.net/dd
 
Ensuite utilisez les commandes ci-dessous:

dd bs=1c count=4194304 if=emummc.bin of=boot0.bin
dd bs=1c skip=4194304 count=4194304 if=emummc.bin of=boot1.bin
dd bs=1c skip=8388609 if=emummc.bin of=rawnand.bin

 
Merci à shadow256 pour les commandes même si elles sont très longues, en l'attente d'une nouvelle façon de faire ;)
 
Terminé, vous avez redimensionné votre dump, vous pouvez aller le tester ;) Dans ce tutoriel je l'ai réduit de environ 10Go mais on aurait pu très largement viser plus haut. De cette façon on récupéré une grande partie de l'espace du dump.


Modifié par giga300, 07 avril 2020 - 00:04.


Posté 19 juin 2019 - 16:00

#2
giga300

giga300

    Sunriseur avancé

  • Members
  • PipPipPip
  • 344 messages

Réservé


  • Retour en haut

Posté 19 juin 2019 - 16:23

#3
shadow256

shadow256

    Sunriseur PRIVILEGE

  • Members
  • PipPipPipPipPip
  • 11 602 messages
  • Sexe:Male
Très bonne idée de l'avoir traduit. Pour extraire BOOT0 et BOOT1 du fichier emunand.bin je pense qu'il suffit d'extraire, pour BOOT0, les 4194304 premiers octets et pour le BOOT1 les 4194304 suivants, avec dd par exemple c'est plutôt simple, à tester car je ne l'ai pas encore fait. Ensuite et toujours d'après cette logique, pour la Rawnand on extrait à partir de l'octet 8388609 jusqu'à la fin et on peut ainsi récupérer le tout.
Mes créations:
Ultimate-Switch-Hack-Script, mon plus gros projet
Switch_AIO_LS_pack, mon pack pour la Switch
Ultimate Wii U Hack Script, mon premier projet, plutôt complet
Ultimate PS3 Hack Script, un projet peut utile aujourd'hui

Si vous aimez mon travail, vous pouvez me faire une donation via paypal en cliquant ici, pensez que même un euro se sera déjà beaucoup et très apprécié.

Matériel:
Spoiler
  • Retour en haut

Posté 19 juin 2019 - 16:26

#4
giga300

giga300

    Sunriseur avancé

  • Members
  • PipPipPip
  • 344 messages

Très bonne idée de l'avoir traduit. Pour extraire BOOT0 et BOOT1 du fichier emunand.bin je pense qu'il suffit d'extraire, pour BOOT0, les 4194304 premiers octets et pour le BOOT1 les 4194304 suivants, avec dd par exemple c'est plutôt simple, à tester car je ne l'ai pas encore fait. Ensuite et toujours d'après cette logique, pour la Rawnand on extrait à partir de l'octet 8388609 jusqu'à la fin et on peut ainsi récupérer le tout.

 

Merci pour le retour j'essayerais ;)


  • Retour en haut

Posté 19 juin 2019 - 16:55

#5
shadow256

shadow256

    Sunriseur PRIVILEGE

  • Members
  • PipPipPipPipPip
  • 11 602 messages
  • Sexe:Male

Merci pour le retour j'essayerais ;)

Je confirme que ça fonctionne, voici les commandes:

dd bs=1c count=4194304 if=emunand_partition.bin of=boot0.bin
dd bs=1c skip=4194304 count=4194304 if=emunand_partition.bin of=boot1.bin
dd bs=1c skip=8388609 if=emunand_partition.bin of=rawnand.bin


J'ajouterai cette fonctionnalité à mon script dans la prochaine version de celui-ci, ça pourra toujours servir.

Modifié par shadow256, 19 juin 2019 - 17:00.

Mes créations:
Ultimate-Switch-Hack-Script, mon plus gros projet
Switch_AIO_LS_pack, mon pack pour la Switch
Ultimate Wii U Hack Script, mon premier projet, plutôt complet
Ultimate PS3 Hack Script, un projet peut utile aujourd'hui

Si vous aimez mon travail, vous pouvez me faire une donation via paypal en cliquant ici, pensez que même un euro se sera déjà beaucoup et très apprécié.

Matériel:
Spoiler
  • Retour en haut

Posté 19 juin 2019 - 17:11

#6
giga300

giga300

    Sunriseur avancé

  • Members
  • PipPipPip
  • 344 messages

Je confirme que ça fonctionne, voici les commandes:

J'ajouterai cette fonctionnalité à mon script dans la prochaine version de celui-ci, ça pourra toujours servir.

 

Merci j'ai edit ;)


  • Retour en haut

Posté 19 juin 2019 - 17:44

#7
eliboa

eliboa

    Développeur

  • Members
  • PipPipPipPipPip
  • 2 112 messages
  • Sexe:Male

Merci bien pour ce tuto, beau boulot


Tuto Switch : Bloquer les maj | Supprimer les maj téléchargées | Lancer Linux | Lancer des payloads

switch-h4x0r |`FW max conseillé sur Switch => 4.1

 

  • Retour en haut

Posté 19 juin 2019 - 22:24

#8
Z0rP

Z0rP

    Sunriseur

  • Members
  • PipPip
  • 163 messages
Nice job :)

J'ai trouvé cela pour avoir un dual boot emuNAND (Soit SX OS et Atmosphere en dual). À voir pour qui y trouvera son intérêt ^^

https://gbatemp.net/...-emummc.541060/

Modifié par Z0rP, 19 juin 2019 - 22:25.

  • Retour en haut

Posté 20 juin 2019 - 17:31

#9
giga300

giga300

    Sunriseur avancé

  • Members
  • PipPipPip
  • 344 messages

Par contre, je ne sais pas comment adapter le tutoriel à Windows, ne serait-ce que pour monter l'EMUMMC.BIN puis de le repartionner avec GDISK. J'avais essayé avec le WSL (Windows Subsystem for Linux) mais y a pas les LOOP devices pour faire le montage.


Modifié par giga300, 20 juin 2019 - 17:31.

  • Retour en haut

Posté 20 juin 2019 - 18:00

#10
shadow256

shadow256

    Sunriseur PRIVILEGE

  • Members
  • PipPipPipPipPip
  • 11 602 messages
  • Sexe:Male

Par contre, je ne sais pas comment adapter le tutoriel à Windows, ne serait-ce que pour monter l'EMUMMC.BIN puis de le repartionner avec GDISK. J'avais essayé avec le WSL (Windows Subsystem for Linux) mais y a pas les LOOP devices pour faire le montage.

Faudrait peut-être regarder du côté de Msys 2.0, je vais essayer de m'y pencher pour voir.
Edit: Ouai bon clairement faut faire çà sous Linux, juste sous Windows pas moyen j'ai l'impression, faut que je regarde encore du côté de Diskpart histoire de voir si on peut faire quelque chose avec çà. Après, peut-être qu'avec des manipulations incongrues on pourrait y arriver sous Windows mais franchement au pire ça vaut mieux de faire une Virtualbox avec un Linux histoire de faire les manipulations.

Modifié par shadow256, 20 juin 2019 - 18:40.

Mes créations:
Ultimate-Switch-Hack-Script, mon plus gros projet
Switch_AIO_LS_pack, mon pack pour la Switch
Ultimate Wii U Hack Script, mon premier projet, plutôt complet
Ultimate PS3 Hack Script, un projet peut utile aujourd'hui

Si vous aimez mon travail, vous pouvez me faire une donation via paypal en cliquant ici, pensez que même un euro se sera déjà beaucoup et très apprécié.

Matériel:
Spoiler
  • Retour en haut

Posté 21 juin 2019 - 16:56

#11
giga300

giga300

    Sunriseur avancé

  • Members
  • PipPipPip
  • 344 messages

Bon, j'ai essayé d'utiliser un DUMP redimensionné sur l'emuMMC, ça ne fonctionne pas pour une raison que j'ignore. Quand j'ouvre le dump avec Hacdiskmount, j'ai des erreurs GPT alors que je corrige pourtant bien les headers dans gdisk, si quelqu'un a une solution ? :(


  • Retour en haut

Posté 22 juin 2019 - 13:48

#12
giga300

giga300

    Sunriseur avancé

  • Members
  • PipPipPip
  • 344 messages

V2 du tutoriel en approche, ça sera bien plus court et facile avec la compatibilité Windows et ça résout enfin le problème des headers GPT, testé avec succès sur l'emuMMC de AMS en mode partition caché. Avec les fichiers j'ai pas testé, la commande pour dumper le rawnand du emummc.bin de shadow est très très lente, mais j'essayerais peut être prochainement.

 

SYvH0DQ.jpg


Modifié par giga300, 22 juin 2019 - 13:49.

  • Retour en haut

Posté 22 juin 2019 - 16:19

#13
giga300

giga300

    Sunriseur avancé

  • Members
  • PipPipPip
  • 344 messages

Nouvelle méthode publiée j’espère que ça vous plaira ;)


Modifié par giga300, 22 juin 2019 - 16:45.

  • Retour en haut

Posté 02 juillet 2019 - 01:25

#14
shadow256

shadow256

    Sunriseur PRIVILEGE

  • Members
  • PipPipPipPipPip
  • 11 602 messages
  • Sexe:Male
Excellent le script python, je sais déjà quelle va être la nouvelle fonctionnalité que je vais ajouter à mon script dans les prochains jours.

Pour les commandes via dd on peut les accélérer en augmentant le paramètre "bs" et en recalculant la taille à extraire ou/et à éviter d'extraire, les commandes que j'avais données étaient juste les commandes les plus simples et surtout permettant une précision maximale pour le contrôle d'erreurs, en effet avec la commande qui travail bloque par bloque au moins aucun risque de corruption ou autre ou sinon ça plantera direct. Après il est normal que la commande prenne du temps, ça prend en fait le temps de copier 29 giga. Après on peut peut-être faire un truc permettant d'extraire BOOT0 et BOOT1 parce que çà ça va vite avec DD puis il faudrait utiliser une commande supprimant les premiers octets du fichier "emunand.bin" pour le transformer en fichier "rawnand.bin", ceci pourrait probablement être bien plus rapide mais j'ai jamais fait ça, ceci dit je pense qu'avec les outils GNU de base je suis certain qu'un truc pareil est facilement faisable.

Modifié par shadow256, 02 juillet 2019 - 01:35.

Mes créations:
Ultimate-Switch-Hack-Script, mon plus gros projet
Switch_AIO_LS_pack, mon pack pour la Switch
Ultimate Wii U Hack Script, mon premier projet, plutôt complet
Ultimate PS3 Hack Script, un projet peut utile aujourd'hui

Si vous aimez mon travail, vous pouvez me faire une donation via paypal en cliquant ici, pensez que même un euro se sera déjà beaucoup et très apprécié.

Matériel:
Spoiler
  • Retour en haut

Posté 02 juillet 2019 - 07:24

#15
tralala

tralala

    \0/ Postman \0/

  • Newser Expert
  • 12 979 messages
  • Sexe:Male

merci, impressionnant . 


  • Retour en haut

Posté 02 juillet 2019 - 10:00

#16
morganno

morganno

    Sunriseur

  • Members
  • PipPip
  • 25 messages
Salut, Une question bête comme tu accède à la partition cachée. Windows ne la reconnaît pas?
merci
  • Retour en haut

Posté 02 juillet 2019 - 12:05

#17
shadow256

shadow256

    Sunriseur PRIVILEGE

  • Members
  • PipPipPipPipPip
  • 11 602 messages
  • Sexe:Male

Salut, Une question bête comme tu accède à la partition cachée. Windows ne la reconnaît pas?
merci

Et bien à aucun moment on a besoin d'accéder à la partition cachée sauf si on veut écrire le fichier finalisé dessus, dans ce cas la version de dd pour Windows détectera très bien la partition supplémentaire.
Mes créations:
Ultimate-Switch-Hack-Script, mon plus gros projet
Switch_AIO_LS_pack, mon pack pour la Switch
Ultimate Wii U Hack Script, mon premier projet, plutôt complet
Ultimate PS3 Hack Script, un projet peut utile aujourd'hui

Si vous aimez mon travail, vous pouvez me faire une donation via paypal en cliquant ici, pensez que même un euro se sera déjà beaucoup et très apprécié.

Matériel:
Spoiler
  • Retour en haut

Posté 02 juillet 2019 - 14:21

#18
morganno

morganno

    Sunriseur

  • Members
  • PipPip
  • 25 messages
Merci beaucoup pour ta réponse en gros, je pensais que c’était une partition type Linux ext
Donc on ne peut pas y avoir accès comme un disque dur
  • Retour en haut

Posté 02 juillet 2019 - 14:23

#19
giga300

giga300

    Sunriseur avancé

  • Members
  • PipPipPip
  • 344 messages

Merci beaucoup pour ta réponse en gros, je pensais que c’était une partition type Linux ext
Donc on ne peut pas y avoir accès comme un disque dur

C'est une partition avec un système de fichier spécial pour la Switch, c'est illisible sur tous les OS en plus d'être chiffré.


  • Retour en haut

Posté 02 juillet 2019 - 20:09

#20
morganno

morganno

    Sunriseur

  • Members
  • PipPip
  • 25 messages
Donc la solution la plus simple pour manipulé la Nand c’est en fichier *.bin
  • Retour en haut




0 utilisateur(s) li(sen)t ce sujet

0 invité(s) et 0 utilisateur(s) anonyme(s)