Tutorial  Updated

Building iosuhax on windows

In this tutorial I will go over how to build iosuhax from either my branch (for wupserver only) or dimoks branch (for rednand and signature patches) without having anything related installed yet.

Getting python
The first thing you want to do is download python, for this guide you will click download python 3.5, this will give you the current 3.5 32bit installer of python. If you already have a python 2 installation and you dont want to uninstall for python 3 then skip this step but note that you may have to add the python installation path into the PATH variable yourself if you didnt do that during that installation.
After opening the 3.5 32bit installer make sure to enable "Add Python 3.5 to PATH" because we want to be able to call python from anywhere, now let it install.

Installing pycrypto
To easly install pycrypto we will install it from this github page for the current 3.5 or this page for 2.7 if you have that. Open up a command prompt by for example pressing windows+r and typing in "cmd", in this command prompt you want to enter the following (just copy paste this depending on your python version):
PYTHON 3
Python 3.5 32bit:
Code:
pip install --use-wheel --no-index --find-links=https://github.com/sfbahr/PyCrypto-Wheels/raw/master/pycrypto-2.6.1-cp35-none-win32.whl pycrypto
Python 3.5 64bit:
Code:
pip install --use-wheel --no-index --find-links=https://github.com/sfbahr/PyCrypto-Wheels/raw/master/pycrypto-2.6.1-cp35-none-win_amd64.whl pycrypto
PYTHON 2
Python 2.7 32bit:
Code:
pip install --use-wheel --no-index --find-links=https://bitbucket.org/alexandrul/wheels/downloads/pycrypto-2.6.1-cp27-none-win32.whl pycrypto
Python 2.7 64bit:
Code:
pip install --use-wheel --no-index --find-links=https://bitbucket.org/alexandrul/wheels/downloads/pycrypto-2.6.1-cp27-none-win_amd64.whl pycrypto
If you have any older python 2/3 version then maybe just consider upgrading to the current version of python 2/3.
This will automatically install pycrypto for your python version, just let it finish up.

Getting devkitARM
Download the devkitpro updater from here and start it up, it will give you quite a few options on things to install, all you need to select is "Minimal System" and "devkitARM", you can uncheck everything else. Now just let it download and install everything.

Getting armips
For armips you can just download my pre-compiled exe and put it into "C:\devkitPro\msys\bin" so it can be directly used on compilation.

Downloading and preparing iosuhax
Depending on what you want head over to my branch or dimoks branch, click on "Clone or download" and if you have git then clone it, if you dont have git just click "Download ZIP" and extract the contents of it into a new folder on your computer. Make sure that new full folder path does not contain any spaces, a wrong path would be "C:\my folder\iosuhax", a correct folder would be "C:\my_folder\iosuhax".

Now if you have "the 2 keys" already you can edit the getfwimg from the little guide below:
Go into the "bin" folder, right click on getfwimg and select "Edit with IDLE", put the 2 keys in like this:
Code:
wiiu_common_key = "D7000000000000000000000000000000"
starbuck_ancast_key = "B5000000000000000000000000000000"
Of course these are not the full keys but only their first 2 digits. Now just save it.
If you dont have "those 2 keys" you can easly get them from your wiiu itself like this without having to edit any scripts:
Go grab otp2sd and start it via the homebrew launcher, it will just restart you and place a otp.bin on your wiiu sd card. Copy that otp.bin one folder above the iosuhax one so in our example let iosuhax be in "C:\my_folder\iosuhax", so you copy otp.bin into "C:\my_folder", iosuhax will find that otp.bin and use it automatically, you dont need to edit any scripts this way.

Now that you finally prepared iosuhax its time to compile it! Shift-right click in the iosuhax main folder, click on "Open command window here" and just type in "make" and press enter, this will get you a fw.img as output which you can put on you sd card root and use in cfw booter! If it failed to compile because of commands being unknown you may have to reboot your computer to make sure it properly installed all of the software.

I hope with this you were able to successfully compile iosuhax, now have fun with it :)

Note by Cyan:
Dimok branch can now build both CFW with and without NAND redirection to SD card, while Fix94 branch only compile a SysNAND CFW.

Fix94 branch : sysNAND. doesn't have latest cfw patches, but fix94 version contain new wupserver command instead.
Dimok branch : sysNAND and redNAND. This branch has currently more features than fix94 branch (allows HBL channel version installation, unrestricted NAND FTP access, NAND to SD dump, FAT32 USB mount support, etc.)

When you are at the compiling step,
fix94 sysNAND, type : make
dimok sysNAND, type : make cfw
dimok redNAND, type : make redNAND
by default, typing only "make" on dimok branch, it will build redNAND
 
Last edited by Cyan, , Reason: Added new compile steps and differences between Fix94 and Dimok branches.

eric_ruas

Member
Newcomer
Joined
Nov 1, 2016
Messages
5
Trophies
0
Age
40
XP
51
Country
United States
Do you happen to maybe have other software which includes commands such as "make" already? those might cause problems in this case and have to be taken out of your PATH variable/uninstalled.

No, my only source for make is C:\devkitPro\msys\bin\make.exe. Removing "C:\devkitPro\msys\bin' from PATH caused the application to be unrecognized.
 

alecocr20

Member
Newcomer
Joined
Jul 21, 2016
Messages
20
Trophies
0
Age
54
XP
133
Country
Canada
No, my only source for make is C:\devkitPro\msys\bin\make.exe. Removing "C:\devkitPro\msys\bin' from PATH caused the application to be unrecognized.
I had the same issue. I uninstalled devkitPro and installed again.
The only difference I saw was in the PATH, now I have first c:\devkitPro\msys\bin and second C:\windows\system32

Hope it works for you
 

eric_ruas

Member
Newcomer
Joined
Nov 1, 2016
Messages
5
Trophies
0
Age
40
XP
51
Country
United States
I had the same issue. I uninstalled devkitPro and installed again.

That solved the issue for me. When I installed again, I decided to check all of the boxes.

--------------------- MERGED ---------------------------

Here's a message that I am getting when compiling from FIX94's branch:

Code:
arm-none-eabi-gcc -Wall -mbig-endian -std=c99 -march=armv5 -Os -I/c/devkitPro/libnds/include -c source/net_ifmgr_ncl.c -o build/net_ifmgr_ncl.o
source/net_ifmgr_ncl.c: In function 'IFMGRNCL_GetInterfaceStatus':
source/net_ifmgr_ncl.c:52:16: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
  u16* outbuf = (u32*)iobuf2;
                ^

I also got a similar message when compiling from a Ubuntu machine. Is it safe to ignore this warning? The MD5 of both fw.bin is 91aec1450002169e68c86ed1dc75cdbd.
 

FIX94

Former Staff
OP
Former Staff
Joined
Dec 3, 2009
Messages
7,284
Trophies
0
Age
30
Location
???
XP
11,248
Country
Germany
I also got a similar message when compiling from a Ubuntu machine. Is it safe to ignore this warning? The MD5 of both fw.bin is 91aec1450002169e68c86ed1dc75cdbd.
The warning is totally normal and that is indeed the hash you want to get from my branch. Also I just fixed that warning in my branch so people dont get scared by it again ;)
 

FIX94

Former Staff
OP
Former Staff
Joined
Dec 3, 2009
Messages
7,284
Trophies
0
Age
30
Location
???
XP
11,248
Country
Germany
Just removed the need to find the iv, at least in my branch it will now be automatically written into a .py file, I hope dimok will update his branch soon as well to match this updated guide.
 

soulkyo

Well-Known Member
Newcomer
Joined
Nov 3, 2013
Messages
47
Trophies
1
XP
224
Country
United States
Hi, thanks a lot for the REALLY easy guide, followed the steps and obtained the fw.img. Just a question though, is normal to get two files inside the bin folder. One is the fw.img and the other is fw.img.full.bin. They both are the same size.
 

FIX94

Former Staff
OP
Former Staff
Joined
Dec 3, 2009
Messages
7,284
Trophies
0
Age
30
Location
???
XP
11,248
Country
Germany
yes, the fw.img you get is basically the "pure" iosu file which would run in cfw booter (which is pretty pointless for that case) and fw.img.full.bin is the decrypted one that anpack can then use to make it a cfw. Also I just updated the guide again and now both my and dimoks branch only need to get one script edited, everything else should be done automatically now.
 
  • Like
Reactions: soulkyo

soulkyo

Well-Known Member
Newcomer
Joined
Nov 3, 2013
Messages
47
Trophies
1
XP
224
Country
United States
yes, the fw.img you get is basically the "pure" iosu file which would run in cfw booter (which is pretty pointless for that case) and fw.img.full.bin is the decrypted one that anpack can then use to make it a cfw. Also I just updated the guide again and now both my and dimoks branch only need to get one script edited, everything else should be done automatically now.
Thanks for replying and clarifying it for me. Live long and prosper.
 

::Phoenix::

Well-Known Member
Member
Joined
May 11, 2010
Messages
209
Trophies
1
XP
2,348
Country
Italy
@FIX94 Wouldn't be easier to let people decrypt the encrypted fw.img and then apply an xdelta/diff patch to it and then reencrypt it back? It should be easier to distribute new versions of your firmwares.
 

barak06

Well-Known Member
Member
Joined
Apr 4, 2014
Messages
265
Trophies
0
XP
440
Country
France
I got this :

A:\iosuhax>make
somewhat simple 5.5.1 fw.img downloader
downloading osv10 cetk
downloading fw.img
decrypt first
decrypt second
decrypt third
Traceback (most recent call last):
File "getfwimg.py", line 100, in <module>
keys_store.write("key=\""+codecs.encode(starbuck_ancast_key, 'hex')+"\"\n")
TypeError: Can't convert 'bytes' object to str implicitly
make: *** [bin/fw.img.full.bin] Error 1

So is everything good ?
So what is error 1 at the end ?
I have a fw.img and fw.img.full.bin, How do i check crc32 ?
THX !
 

SuperAwesomeMan9

Member
Newcomer
Joined
Oct 31, 2016
Messages
7
Trophies
0
Age
27
XP
63
Country
I got this :

A:\iosuhax>make
somewhat simple 5.5.1 fw.img downloader
downloading osv10 cetk
downloading fw.img
decrypt first
decrypt second
decrypt third
Traceback (most recent call last):
File "getfwimg.py", line 100, in <module>
keys_store.write("key=\""+codecs.encode(starbuck_ancast_key, 'hex')+"\"\n")
TypeError: Can't convert 'bytes' object to str implicitly
make: *** [bin/fw.img.full.bin] Error 1

So is everything good ?
So what is error 1 at the end ?
I have a fw.img and fw.img.full.bin, How do i check crc32 ?
THX !
Yeah, same. I don't think it worked?
 

barak06

Well-Known Member
Member
Joined
Apr 4, 2014
Messages
265
Trophies
0
XP
440
Country
France
I have 78E9F89824EF506F4CA1BDC4B155F281 MD5 checksum for fw.img
and 5983894B5AFC8614CE3C9188C74980C6 for fw.img.full.bin

I have fw.img crc32 d674201b which is good
But f40844dc for fw.img.full.bin instead of 9f2c91ff

Do i have to "make" again after rebooting my PC ?
 
Last edited by barak06,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • K3Nv2 @ K3Nv2:
    I'll reformat and have a 3tb raid0 m. 2 at least
    +1
  • K3Nv2 @ K3Nv2:
    Lmao that sold out fast
    +1
  • Veho @ Veho:
    Yeet the cat.
    +1
  • K3Nv2 @ K3Nv2:
    Good idea
    +1
  • The Real Jdbye @ The Real Jdbye:
    i thought everybody knew cocktails are like 75% ice
  • Veho @ Veho:
    Yeah but not like this.
  • Veho @ Veho:
    It's not like they're complaining that their Slurpee is 99% ice or something, but if the cocktail calls for "shot of vodka, shot of vermouth, shot of gin, shot of Campari, three shots of juice, squirt of lemon" and ends up being a thimbleful of booze, that's a problem.
  • The Real Jdbye @ The Real Jdbye:
    the funny thing is cocktails in norway are only allowed to have 1 20ml shot of booze
  • The Real Jdbye @ The Real Jdbye:
    so..... yeah
  • The Real Jdbye @ The Real Jdbye:
    we're used to only having a thimbleful of booze
  • Veho @ Veho:
    Booo.
  • The Real Jdbye @ The Real Jdbye:
    same thing if you want whisky on the rocks or something, you can't get a double
  • The Real Jdbye @ The Real Jdbye:
    but you could buy as many shots of whisky (or anything else) as you want and ask for a glass of ice and pour them in
  • The Real Jdbye @ The Real Jdbye:
    it's dumb
  • Veho @ Veho:
    Maybe.
  • Veho @ Veho:
    There was a comparison of the number of Ibuprofen poisonings before and after they limited the maximum dosage per box or per pill (i'll look that up). No limit on the number of boxes you can still buy as many as you want, so people argued it was pointless.
  • Veho @ Veho:
    But the number of (accidental) poisonings dropped because drinking an entire package of ibuprofen pills went from "I need a new liver" to "I need a new box of Ibuprofen".
  • Veho @ Veho:
    Here we have ketoprofen that used to be prescription-only because of the risk of toxic dosages, but then they halved the dose per pill and sell them in bottles of six pills apiece instead of twenty and it doesn't need a prescription any more. Yes you can buy more than one bottle but people simply don't.
  • Psionic Roshambo @ Psionic Roshambo:
    Usually accidentally overdose of ibuprofen here is from people taking like cold medicine then ibuprofen for a headache and the combination is over what they need
    Veho @ Veho: https://imgur.com/gallery/QQkYnQu