This way iOS 7 will be installed as a secondary os and can be booted without a computer.
Also, I provide pre-patched files so don't worry about it being hard.
A computer running macOS or Windows
Jailbroken iPod Touch 4g on iOS 5 or 6 (6.1.6 is the best option)
Add "nyansatan.github.io/apt" source to cydia and install dualbootstuff, diskdev-cdms , nano, way out and openssh
If your device has been produced before 2012, iPhone 3,1 7.1.2 ipsw
If your device has been produced after 2011, iPhone 3,3 7.1.2 ipsw
7zip (or winrar) and dmg
Open the iPhone3,x_7.1.2_11D57_Restore.ipsw file with 7zip and extract rootfs dmg file
Now open cmd (if on windows) or terminal (if on mac) and decrypt rootfs file :
If your device has been produced before 2012
dmg extract 058-4520-010.dmg decrypted.dmg -k 38d0320d099b9dd34ffb3308c53d397f14955b347d6a433fe173acc2ced1ae78756b3684
If your device has been produced after 2011
dmg extract 058-4110-009.dmg decrypted.dmg -k 423b3503689b7058d1398d1b5d56a7b1ccf4d79e1c3e6ba853122b4f86820a9e3bc911f6
Then convert the decrypted rootfs to UDZO format:
dmg build decrypted.dmg UDZO.dmg
SSH as root to your iPod:
ssh root@device_ip
Default password is alpine, and you won't see any character while you type it
Windows users can use programs like Putty to ssh into iPod
Device ip can be found in settings by going to wifi - select your network and tap the little "i" on the right, then check for "ip address"
Create mount points:
mkdir /mnt1 && mkdir /mnt2
Check for free space:
df -B1
Now take the 1B-blocks value of /dev/disk0s1s2 and substract the value (in bytes) of the space you want to give to iOS 7
Obviously, size of second OS mustn't be greater than available space on Data volume
For example, if current 1B-blocks value is 17179869184, and you want to give iOS 7 4GB: 17179869184 - 4294967296 = 12884901888
So, resize data partition:
hfs_resize /private/var new value (Replace new value with the value you calculated before.)
It may take a while on some devices, don't worry.
Now we need to edit the gpt table: (execute commands in the same order I placed them)
gptfdisk /dev/rdisk0s1
p
i
2
Write down somewhere value of partition unique GUID and attribute flags, it's important, then continue:
d
2
n
2
Leave default first sector
Then calculate last sector with this formula: the value you passed in hfs_resize : 8192 + default first sector value
Leave default code
Then continue:
c
2
Data
x
a
2
Now if attribute flags were 0003000000000000:
48
49
If attribute flags were 0001000000000000:
48
Then continue:
c
2
Write down the unique GUID value you saved before
Then continue:
s
4
m
n
3
Leave default first sector
Then calculate last sector with this formula: mount the udzo dmg image created in previous part and obtain the value of size and then: the value : 8192 + default first sector value
Leave default code
Then continue:
c
3
iOS7SYSTEM
Important: NEVER use "System" as name there
n
4
Leave default first sector
Then calculate last sector with this formula: default value - 5
Leave default code
Then continue:
c
4
iOS7DATA
Important: NEVER use "System" as name there
Make sure you did everything correctly:
p
Check everything and then:
w
Y
Done! If your device is still alive,
execute sync a few times
Create filesystems:
/sbin/newfs_hfs -s -v System -J -b 8192 -n a=8192,c=8192,e=8192 /dev/disk0s1s3
/sbin/newfs_hfs -s -v Data -J -b 8192 -n a=8192,c=8192,e=8192 /dev/disk0s1s4
Mount second os data partition:
mount_hfs /dev/disk0s1s4 /mnt2
Now send UDZO rootfs dmg file to /mnt2 using afc2 or scp
Then:
asr restore --source /mnt2/UDZO.dmg --target /dev/disk0s1s3 --erase
Done
Execute these commands:
umount /mnt2
mount_hfs /dev/disk0s1s3 /mnt1 (after that an alert may appear on device screen, ignore it)
/sbin/newfs_hfs -s -v Data -J -P -b 8192 -n a=8192,c=8192,e=8192 /dev/disk0s1s4
mount_hfs /dev/disk0s1s4 /mnt2
mv -v /mnt1/private/var/* /mnt2
rm -rf /mnt2/mobile/Library/PreinstalledAssets/*
rm -rf /mnt2/mobile/Library/Preferences/.GlobalPreferences.plist
mkdir /mnt2/keybags
cp -a /var/keybags/systembag.kb /mnt2/keybags
umount /mnt2
Now edit fstab:
nano /mnt1/private/etc/fstab
Turn this Into thisExtract wifi.zip
Copy the wifi folder to /mnt1/usr/share/firmware , replacing the existing one
Go to /mnt1/Applications and delete or rename Setup.app
Extract bootchain.zip
Copy all files in /mnt1
Extract bootloader.zip
Copy files in /
Open Way Out
Open settings menu
Set /iBSS as first image
and /iBEC7 as second image
go back
Slide to boot
Wait about 6-7 seconds and press home or power button
Done! You can now enjoy verbose boot and iOS 7 on your iPod Touch 4g!
Thanks a lot to @JonathanSeals, developer of coolbooter
First of all, download these files:
cydia.tar.lzma jbloader.tar.lzma kernelcache.zipMount partitions
mount_hfs /dev/disk0s1s3 /mnt1 && mount_hfs /dev/disk0s1s4 /mnt1/private/var
Extract kernelcache.zip and replace the previous kernelcache file in /mnt1
Put cydia.tar.lzma and jbloader.tar.lzma in /mnt1
From ssh:
tar --lzma -xvf cydia.tar.lzma
tar --lzma -xvf jbloader.tar.lzma
Edit fstab and put rw in disk0s1s3
Done. You can now unmount filesystems if you want
@nyan_satan for the dualboot guide
@Ralph0045, without him all this probably wouldn't have existed
Me (@albyvar25) for the wifi fix
Everyone else who contributed.