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

436 visiteurs sur le site | S'incrire

Accédez aux coordonnées de l’ensemble des techniciens professionnels recommandés par logic-sunrise 20 derniers dossiers et tutoriaux

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


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.
 
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 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.
Posté : dimanche 07 juillet 2019, 12:16 par giga300.
07 juillet 2019, 12:44
Approuver ce commentaire (+1)
Merci pour le tuto, je test sa des que j'ai un peu de temps x)
Répondre à ce commentaire
07 juillet 2019, 13:00
Approuver ce commentaire (+1)
Est-ce que certainnes personnes utilisent un Emmuemmc pour les hacks et jouent en ligne sur Sysemmc ?
Juste pour savoir si certains ont déjà tenté sans ce faire ban.
Répondre à ce commentaire
08 juillet 2019, 19:11
Approuver ce commentaire (+1)

Salut,
 
Je suis sur macOS Mojave et pour que l'installation de python-mbedtls réussisse sans erreur il faut au préalable installer mbedtls via la commande :

brew install mbedtls

Sinon on tombe systématiquement sur l'erreur :

'mbedtls/platform_util.h' file not found

Lors de l'installation de la dépendance python-mbedtls.
 
Pour installer Homebrew ouvrir un terminal et entrer la commande :

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

Merci pour ce tuto qui me sera très utile ; il est en effet inutile d'avoir une partition User de 32 Go qui ne servira à rien ;)
 
 
Edit :
 
Pour l'étape 4 optionnelle, sous macOS la bonne syntaxe des commandes est :

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

La dernière commande peut nécessiter un temps important, pour une taille réduite à 10 Go il a fallu environ 14 heures à mon Mac Mini 2014 SSD pour créer le fichier rawnand.bin :)

Répondre à ce commentaire
09 juillet 2019, 09:59
Approuver ce commentaire (+1)
merci !

un très bon tuto, il manque juste quelques images mais il est très complet !
Répondre à ce commentaire
10 juillet 2019, 11:59
Approuver ce commentaire (+1)

Salut,
 
Je suis sur macOS Mojave et pour que l'installation de python-mbedtls réussisse sans erreur il faut au préalable installer mbedtls via la commande :
brew install mbedtls

Sinon on tombe systématiquement sur l'erreur :
'mbedtls/platform_util.h' file not found

Lors de l'installation de la dépendance python-mbedtls.
 
Pour installer Homebrew ouvrir un terminal et entrer la commande :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubus.../master/install)"


Merci pour ce tuto qui me sera très utile ; il est en effet inutile d'avoir une partition User de 32 Go qui ne servira à rien ;)
 
 
Edit :
 
Pour l'étape 4 optionnelle, sous macOS la bonne syntaxe des commandes est :
dd bs=1 count=4194304 if=emummc.bin of=boot0.bin:)
dd bs=1 skip=4194304 count=4194304 if=emummc.bin of=boot1.bin
dd bs=1 skip=8388609 if=emummc.bin of=rawnand.bin

La dernière commande peut nécessiter un temps important, pour une taille réduite à 10 Go il a fallu environ 14 heures à mon Mac Mini 2014 SSD pour créer le fichier rawnand.bin :)


Merci beaucoup pour toutes ces précisions, j’éditerai le tutoriel ;)
Répondre à ce commentaire
11 juillet 2019, 08:04
Approuver ce commentaire (+1)
Merci à toi surtout @Giga300 ;)
Répondre à ce commentaire
Cliquer ici pour continuer sur le forum
Envoyer