Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

3DS:Cleaninty: Difference between revisions

From Hacks Guide Wiki
m s/3dsbrew:/3dbrew:
mention MAC address in inspect.log, s/sticky tickets/region-locked tickets/, add mentions & usage of EShopDelete, remove notice in Autosoap script
Line 10: Line 10:
| forlinux = 1
| forlinux = 1
}}
}}
'''cleaninty''' is a PC tool used to communicate with Nintendo's [[wikipedia:SOAP|SOAP]] servers. For a 3DS, these servers deal with managing eShop accounts, downloading eShop titles, and system transfers. It is also the tool used for what is informally known as a "SOAP Transfer".
'''cleaninty''' is a PC tool used to communicate with Nintendo's [[wikipedia:SOAP|SOAP]] servers. For a 3DS, these servers deal with managing eShop accounts, downloading eShop titles, and system transfers. It is also the tool used for what is informally known as a "SOAP transfer".


== Overview ==
== Overview ==
Line 18: Line 18:


The reason this allows for changing eShop regions easily, and at infinite range, are as follows:
The reason this allows for changing eShop regions easily, and at infinite range, are as follows:
* '''Ease of Use''': Tickets for both system software & purchased apps are stored on Nintendo's servers, and some of these tickets are 'sticky' - they refuse to be deleted when trying to delete the console's eShop account. (The most common sticky tickets are from preinstalled games and the [[3dbrew:StreetPass Mii Plaza|Mii Plaza 3.x]] update.) The only way to remove these tickets is to transfer them to another console, and cleaninty is able to move ''only'' the tickets with a single command.  
* '''Ease of Use''': Tickets for both system software & purchased apps are stored on Nintendo's servers, and some of these tickets are region-locked - meaning their presence blocks the console from registering to any other eShop region. (The most common of these tickets are from preinstalled games and the [[3dbrew:StreetPass Mii Plaza|Mii Plaza 3.x]] update.) The only way to remove these tickets is to transfer them to another console, and cleaninty is able to move ''only'' the tickets with a single command.  
* '''Infinite Range:''' System transfers are effectively divided into two parts: the content transfer (done entirely on consoles), and the NNID/title transfer (done entirely on servers).<br>On an actual console, these two must be done at the same time - but if cleaninty sends the commands for a server transfer, it doesn't start a content transfer and thus the consoles do not have to be next to each other. (Technically, this also means a [[3DS:MMM|Manual Movable Transfer]] is the exact opposite of a SOAP transfer.)
* '''Infinite Range:''' System transfers are effectively divided into two parts: the content transfer (done entirely on consoles), and the NNID/title transfer (done entirely on servers).<br>On an actual console, these two must be done at the same time - but if cleaninty sends the commands for a server transfer, it doesn't start a content transfer and thus the consoles do not have to be next to each other. (Technically, this also means a [[3DS:MMM|Manual Movable Transfer]] is the exact opposite of a SOAP transfer.)


Line 28: Line 28:
* <code>GenJson</code>: Compiles the console's data into a single JSON file. This JSON is required for all other commands except <code>RecoverIVS</code>.
* <code>GenJson</code>: Compiles the console's data into a single JSON file. This JSON is required for all other commands except <code>RecoverIVS</code>.
* <code>CheckReg</code>: Obtains the console's eShop status, eShop region, and any titles attached to its eShop account, then updates the JSON file if any differences in the data are found.
* <code>CheckReg</code>: Obtains the console's eShop status, eShop region, and any titles attached to its eShop account, then updates the JSON file if any differences in the data are found.
* <code>SysTransfer</code>: Moves the eShop titles of the source console to the target console. This is the secondary part of what is known informally as a "SOAP Transfer".
* <code>SysTransfer</code>: Moves the eShop titles of the source console to the target console. This is the only part of a SOAP transfer if the console has region-locked tickets, as it will do an <code>EShopDelete</code> as part of the transfer.
** A successful use of this command triggers a 7-day cooldown on system transfers for both consoles, the same as a full system transfer.
** A successful use of this command triggers a 7-day cooldown on system transfers for both consoles, the same as a full system transfer.
* <code>NNIDTransfer</code>: <u>(Still experimental. Use with caution.)</u> Moves only the NNIDs of the source console to the target console. This is not affected by system transfer cooldowns and does not trigger one.   
* <code>NNIDTransfer</code>: <u>(Still experimental. Use with caution.)</u> Moves only the NNIDs of the source console to the target console. This is not affected by system transfer cooldowns and does not trigger one.   
Line 35: Line 35:
* <code>SetIVS</code>: Uploads the chosen JSON's stored <code>movable.sed</code> to the SOAP servers. This will overwrite the current stored movable.
* <code>SetIVS</code>: Uploads the chosen JSON's stored <code>movable.sed</code> to the SOAP servers. This will overwrite the current stored movable.
* <code>RecoverIVS</code>: Tries to recover a console's <code>movable.sed</code> from only its raw <code>otp.bin</code> and eShop region data.
* <code>RecoverIVS</code>: Tries to recover a console's <code>movable.sed</code> from only its raw <code>otp.bin</code> and eShop region data.
* <code>EShopDelete</code>: Deletes the target console's eShop account.  
* <code>EShopDelete</code>: Deletes the target console's eShop account. This is the secondary part of a SOAP transfer, as the console will then automatically register an account in the correct region when it next accesses the eShop.
* <code>EShopRegionChange</code>: Attempts to delete and then recreate the target console's eShop account for the entered region. This is the main part of a "SOAP Transfer", but after a successful SysTransfer the console will do this automatically when it next connects to the eShop.
* <code>EShopRegionChange</code>: Attempts to delete and then recreate the target console's eShop account for the entered region. This is the main part of a SOAP transfer if the console has no region-locked tickets, but an <code>EShopDelete</code> should still be done afterward.
* <code>ETickets</code>/<code>ETicketDownload</code>/<code>ETikTitleDownload</code>: Lists all owned eShop tickets / downloads all tickets / downloads the titles attached to all tickets, respectively, from the given console's eShop account.
* <code>ETickets</code>/<code>ETicketDownload</code>/<code>ETikTitleDownload</code>: Lists all owned eShop tickets / downloads all tickets / downloads the titles attached to all tickets, respectively, from the given console's eShop account.


Line 73: Line 73:
{{critical|Make sure the files for all consoles you compile into a json are accurate before using them in cleaninty, or else the commands may affect a different console than they "should be".  
{{critical|Make sure the files for all consoles you compile into a json are accurate before using them in cleaninty, or else the commands may affect a different console than they "should be".  


The easiest way to do this is by checking the serial sticker(s) on the console against the copy of the serial in [[3dbrew:Nandrw/sys/SecureInfo_A|SecureInfo_A]], and if none of the stickers agree with the SecureInfo, also check against the copy in [[3dbrew:Twln/sys/log/inspect.log|inspect.log]].}}
The easiest way to do this is by checking the serial sticker(s) on the console against the copy of the serial in [[3dbrew:Nandrw/sys/SecureInfo_A|SecureInfo_A]].<br>
If none of the stickers agree with the SecureInfo, also check against the copy in [[3dbrew:Twln/sys/log/inspect.log|inspect.log]] and make sure its listed MAC Address matches the one in '''System Settings -> Internet Settings -> Other Information -> Confirm MAC Address.'''}}


There is no graphical interface for cleaninty. All commands are ran through the command line.
There is no graphical interface for cleaninty. All commands are ran through the command line.
Line 87: Line 88:
# <code>cleaninty ctr CheckReg -C soap_target.json</code>
# <code>cleaninty ctr CheckReg -C soap_target.json</code>
#* The CheckReg commands are not necessary if you are already certain the donor and target have the same region.
#* The CheckReg commands are not necessary if you are already certain the donor and target have the same region.
# <code>cleaninty ctr EShopRegionChange -C soap_target.json -r (new eShop region - required) -c  (country in chosen region - required if region is not JPN/KOR/CHN) -l (language in chosen region - optional)</code>
# <code>cleaninty ctr EShopRegionChange -C soap_target.json -r (eShop region) -c  (eShop country - not required if region is JPN/KOR/CHN)</code>
#* If this succeeds, '''stop here'''. The next command is only needed if this one fails.
#* You can use any region/country for this command other than the one listed in the <code>soap_target.json</code>'s <code>CheckReg</code>.
# <code>cleaninty ctr SysTransfer -s soap_target.json -t soap_donor.json</code>
# Depending on whether the EShopRegionChange was successful or not, only do '''one''' of the following commands.
<tabber>
|-|Succeeded=
<ol>
<li value="7"><code>cleaninty EShopDelete -C soap_target.json</code></li>
</ol>
 
|-|Failed=
<ol>
<li value="7"><code>cleaninty ctr SysTransfer -s soap_target.json -t soap_donor.json</code></li>
</ol>
</tabber>
 


=== Autosoap script ===
=== Autosoap script ===


If you are inexperienced with the command line or just don't want to type the commands manually every time, there is a {{GitHub|StarlitSkies/autosoap|SOAP bash script}} made by StarlitSkies that heavily simplifies the process.
If you are inexperienced with the command line or just don't want to type the commands manually every time, there is a {{GitHub|StarlitSkies/autosoap|SOAP bash script}} made by StarlitSkies that heavily simplifies the process.
<br>The only downside is that if cleaninty has a nonstandard error, the script will be unable to tell you the exact text of the error - meaning you will need to revert back to manual commands anyway in order to debug.


Read the instructions on its page for setup and usage.
Read the instructions on its page for setup and usage.


[[Category:Nintendo 3DS guides]]
[[Category:Nintendo 3DS guides]]