├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
└── iMultiBoot
├── iMultiBoot.sln
├── iMultiBoot
├── App.config
├── AppleMobileDevice.cs
├── Devices
│ ├── k94ap.xml
│ ├── n81ap.xml
│ └── n90ap.xml
├── ISecureShell.cs
├── Keys
│ ├── iPad2,2_5.1.1_9B206_Restore.xml
│ └── iPod4,1_5.1_9B176_Restore.xml
├── OperatingSystem.cs
├── Partition.cs
├── Patches
│ ├── iPad2,2_5.1.1_9B206_Restore
│ │ ├── DeviceTree.k94ap.xml
│ │ ├── DeviceTree.k94ap_custom.xml
│ │ ├── LLB.k94ap.RELEASE.xml
│ │ ├── applelogo.s5l8940x.xml
│ │ ├── iBoot.k94ap.RELEASE.xml
│ │ └── recoverymode-ipad.s5l8940x.xml
│ └── iPod4,1_5.1_9B176_Restore
│ │ ├── DeviceTree.n81ap.xml
│ │ ├── DeviceTree.n81ap_custom.xml
│ │ ├── LLB.n81ap.RELEASE.xml
│ │ ├── applelogo@2x.s5l8930x.xml
│ │ ├── iBoot.n81ap.RELEASE.xml
│ │ └── recoverymode@2x~iphone.s5l8930x.xml
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── SecureShell.cs
├── Tools
│ ├── attach.deb
│ ├── detach.deb
│ ├── gptfdisk.deb
│ ├── hfsresize.deb
│ ├── ios5bootstrap.deb
│ ├── kloader6.deb
│ ├── rsync.deb
│ └── xpwntool.deb
├── WinSCP.exe
├── dmg.exe
├── frmConfigureOS.Designer.cs
├── frmConfigureOS.cs
├── frmConfigureOS.resx
├── frmDeviceSelection.Designer.cs
├── frmDeviceSelection.cs
├── frmDeviceSelection.resx
├── frmMain.Designer.cs
├── frmMain.cs
├── frmMain.resx
├── frmPartitionManager.Designer.cs
├── frmPartitionManager.cs
├── frmPartitionManager.resx
├── frmSelectionOS.Designer.cs
├── frmSelectionOS.cs
├── frmSelectionOS.resx
├── frmSoftwareConfiguration.Designer.cs
├── frmSoftwareConfiguration.cs
├── frmSoftwareConfiguration.resx
├── iMultiBoot.csproj
├── iMultiBootController.cs
├── idevicerestore.exe
├── libcrypto.dll
├── libcurl-4.dll
├── libeay32.dll
├── libgcc_s_dw2-1.dll
├── libiconv-2.dll
├── libimobiledevice.dll
├── libirecovery.dll
├── libplist.dll
├── libpng12.dll
├── libssl.dll
├── libusbmuxd.dll
├── libxml2-2.dll
├── libzip-2.dll
├── main.cs
├── packages.config
├── ssleay32.dll
├── xpwntool.exe
└── zlib1.dll
└── iMultiBoot_Installer
├── iMultiBoot_Installer.isl
└── iMultiBoot_Installer.isproj
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.suo
8 | *.user
9 | *.userosscache
10 | *.sln.docstates
11 |
12 | # User-specific files (MonoDevelop/Xamarin Studio)
13 | *.userprefs
14 |
15 | # Build results
16 | [Dd]ebug/
17 | [Dd]ebugPublic/
18 | [Rr]elease/
19 | [Rr]eleases/
20 | x64/
21 | x86/
22 | bld/
23 | [Bb]in/
24 | [Oo]bj/
25 | [Ll]og/
26 |
27 | # Visual Studio 2015 cache/options directory
28 | .vs/
29 | # Uncomment if you have tasks that create the project's static files in wwwroot
30 | #wwwroot/
31 |
32 | # MSTest test Results
33 | [Tt]est[Rr]esult*/
34 | [Bb]uild[Ll]og.*
35 |
36 | # NUNIT
37 | *.VisualState.xml
38 | TestResult.xml
39 |
40 | # Build Results of an ATL Project
41 | [Dd]ebugPS/
42 | [Rr]eleasePS/
43 | dlldata.c
44 |
45 | # .NET Core
46 | project.lock.json
47 | project.fragment.lock.json
48 | artifacts/
49 | **/Properties/launchSettings.json
50 |
51 | *_i.c
52 | *_p.c
53 | *_i.h
54 | *.ilk
55 | *.meta
56 | *.obj
57 | *.pch
58 | *.pdb
59 | *.pgc
60 | *.pgd
61 | *.rsp
62 | *.sbr
63 | *.tlb
64 | *.tli
65 | *.tlh
66 | *.tmp
67 | *.tmp_proj
68 | *.log
69 | *.vspscc
70 | *.vssscc
71 | .builds
72 | *.pidb
73 | *.svclog
74 | *.scc
75 |
76 | # Chutzpah Test files
77 | _Chutzpah*
78 |
79 | # Visual C++ cache files
80 | ipch/
81 | *.aps
82 | *.ncb
83 | *.opendb
84 | *.opensdf
85 | *.sdf
86 | *.cachefile
87 | *.VC.db
88 | *.VC.VC.opendb
89 |
90 | # Visual Studio profiler
91 | *.psess
92 | *.vsp
93 | *.vspx
94 | *.sap
95 |
96 | # TFS 2012 Local Workspace
97 | $tf/
98 |
99 | # Guidance Automation Toolkit
100 | *.gpState
101 |
102 | # ReSharper is a .NET coding add-in
103 | _ReSharper*/
104 | *.[Rr]e[Ss]harper
105 | *.DotSettings.user
106 |
107 | # JustCode is a .NET coding add-in
108 | .JustCode
109 |
110 | # TeamCity is a build add-in
111 | _TeamCity*
112 |
113 | # DotCover is a Code Coverage Tool
114 | *.dotCover
115 |
116 | # Visual Studio code coverage results
117 | *.coverage
118 | *.coveragexml
119 |
120 | # NCrunch
121 | _NCrunch_*
122 | .*crunch*.local.xml
123 | nCrunchTemp_*
124 |
125 | # MightyMoose
126 | *.mm.*
127 | AutoTest.Net/
128 |
129 | # Web workbench (sass)
130 | .sass-cache/
131 |
132 | # Installshield output folder
133 | [Ee]xpress/
134 |
135 | # DocProject is a documentation generator add-in
136 | DocProject/buildhelp/
137 | DocProject/Help/*.HxT
138 | DocProject/Help/*.HxC
139 | DocProject/Help/*.hhc
140 | DocProject/Help/*.hhk
141 | DocProject/Help/*.hhp
142 | DocProject/Help/Html2
143 | DocProject/Help/html
144 |
145 | # Click-Once directory
146 | publish/
147 |
148 | # Publish Web Output
149 | *.[Pp]ublish.xml
150 | *.azurePubxml
151 | # TODO: Comment the next line if you want to checkin your web deploy settings
152 | # but database connection strings (with potential passwords) will be unencrypted
153 | *.pubxml
154 | *.publishproj
155 |
156 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
157 | # checkin your Azure Web App publish settings, but sensitive information contained
158 | # in these scripts will be unencrypted
159 | PublishScripts/
160 |
161 | # NuGet Packages
162 | *.nupkg
163 | # The packages folder can be ignored because of Package Restore
164 | **/packages/*
165 | # except build/, which is used as an MSBuild target.
166 | !**/packages/build/
167 | # Uncomment if necessary however generally it will be regenerated when needed
168 | #!**/packages/repositories.config
169 | # NuGet v3's project.json files produces more ignorable files
170 | *.nuget.props
171 | *.nuget.targets
172 |
173 | # Microsoft Azure Build Output
174 | csx/
175 | *.build.csdef
176 |
177 | # Microsoft Azure Emulator
178 | ecf/
179 | rcf/
180 |
181 | # Windows Store app package directories and files
182 | AppPackages/
183 | BundleArtifacts/
184 | Package.StoreAssociation.xml
185 | _pkginfo.txt
186 |
187 | # Visual Studio cache files
188 | # files ending in .cache can be ignored
189 | *.[Cc]ache
190 | # but keep track of directories ending in .cache
191 | !*.[Cc]ache/
192 |
193 | # Others
194 | ClientBin/
195 | ~$*
196 | *~
197 | *.dbmdl
198 | *.dbproj.schemaview
199 | *.jfm
200 | *.pfx
201 | *.publishsettings
202 | orleans.codegen.cs
203 |
204 | # Since there are multiple workflows, uncomment next line to ignore bower_components
205 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
206 | #bower_components/
207 |
208 | # RIA/Silverlight projects
209 | Generated_Code/
210 |
211 | # Backup & report files from converting an old project file
212 | # to a newer Visual Studio version. Backup files are not needed,
213 | # because we have git ;-)
214 | _UpgradeReport_Files/
215 | Backup*/
216 | UpgradeLog*.XML
217 | UpgradeLog*.htm
218 |
219 | # SQL Server files
220 | *.mdf
221 | *.ldf
222 | *.ndf
223 |
224 | # Business Intelligence projects
225 | *.rdl.data
226 | *.bim.layout
227 | *.bim_*.settings
228 |
229 | # Microsoft Fakes
230 | FakesAssemblies/
231 |
232 | # GhostDoc plugin setting file
233 | *.GhostDoc.xml
234 |
235 | # Node.js Tools for Visual Studio
236 | .ntvs_analysis.dat
237 | node_modules/
238 |
239 | # Typescript v1 declaration files
240 | typings/
241 |
242 | # Visual Studio 6 build log
243 | *.plg
244 |
245 | # Visual Studio 6 workspace options file
246 | *.opt
247 |
248 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
249 | *.vbw
250 |
251 | # Visual Studio LightSwitch build output
252 | **/*.HTMLClient/GeneratedArtifacts
253 | **/*.DesktopClient/GeneratedArtifacts
254 | **/*.DesktopClient/ModelManifest.xml
255 | **/*.Server/GeneratedArtifacts
256 | **/*.Server/ModelManifest.xml
257 | _Pvt_Extensions
258 |
259 | # Paket dependency manager
260 | .paket/paket.exe
261 | paket-files/
262 |
263 | # FAKE - F# Make
264 | .fake/
265 |
266 | # JetBrains Rider
267 | .idea/
268 | *.sln.iml
269 |
270 | # CodeRush
271 | .cr/
272 |
273 | # Python Tools for Visual Studio (PTVS)
274 | __pycache__/
275 | *.pyc
276 |
277 | # Cake - Uncomment if you are using it
278 | # tools/**
279 | # !tools/packages.config
280 |
281 | # Telerik's JustMock configuration file
282 | *.jmconfig
283 |
284 | # BizTalk build output
285 | *.btp.cs
286 | *.btm.cs
287 | *.odx.cs
288 | *.xsd.cs
289 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # iMultiBoot
2 | A software to install and manage multiple operating systems on 32-bit Apple iOS devices.
3 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iMultiBoot", "iMultiBoot\iMultiBoot.csproj", "{B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}"
7 | EndProject
8 | Project("{6141683F-8A12-4E36-9623-2EB02B2C2303}") = "iMultiBoot_Installer", "iMultiBoot_Installer\iMultiBoot_Installer.isproj", "{9E3434DE-2C59-458D-8AB8-2E4BC5E52C82}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | CD_ROM|Any CPU = CD_ROM|Any CPU
13 | Debug|Any CPU = Debug|Any CPU
14 | DVD-5|Any CPU = DVD-5|Any CPU
15 | Release|Any CPU = Release|Any CPU
16 | SingleImage|Any CPU = SingleImage|Any CPU
17 | EndGlobalSection
18 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
19 | {B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
20 | {B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
21 | {B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
22 | {B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}.Debug|Any CPU.Build.0 = Debug|Any CPU
23 | {B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
24 | {B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
25 | {B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}.Release|Any CPU.ActiveCfg = Release|Any CPU
26 | {B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}.Release|Any CPU.Build.0 = Release|Any CPU
27 | {B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
28 | {B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}.SingleImage|Any CPU.Build.0 = Release|Any CPU
29 | {9E3434DE-2C59-458D-8AB8-2E4BC5E52C82}.CD_ROM|Any CPU.ActiveCfg = CD_ROM
30 | {9E3434DE-2C59-458D-8AB8-2E4BC5E52C82}.CD_ROM|Any CPU.Build.0 = CD_ROM
31 | {9E3434DE-2C59-458D-8AB8-2E4BC5E52C82}.Debug|Any CPU.ActiveCfg = DVD-5
32 | {9E3434DE-2C59-458D-8AB8-2E4BC5E52C82}.Debug|Any CPU.Build.0 = DVD-5
33 | {9E3434DE-2C59-458D-8AB8-2E4BC5E52C82}.DVD-5|Any CPU.ActiveCfg = DVD-5
34 | {9E3434DE-2C59-458D-8AB8-2E4BC5E52C82}.DVD-5|Any CPU.Build.0 = DVD-5
35 | {9E3434DE-2C59-458D-8AB8-2E4BC5E52C82}.Release|Any CPU.ActiveCfg = SingleImage
36 | {9E3434DE-2C59-458D-8AB8-2E4BC5E52C82}.Release|Any CPU.Build.0 = SingleImage
37 | {9E3434DE-2C59-458D-8AB8-2E4BC5E52C82}.SingleImage|Any CPU.ActiveCfg = SingleImage
38 | {9E3434DE-2C59-458D-8AB8-2E4BC5E52C82}.SingleImage|Any CPU.Build.0 = SingleImage
39 | EndGlobalSection
40 | GlobalSection(SolutionProperties) = preSolution
41 | HideSolutionNode = FALSE
42 | EndGlobalSection
43 | EndGlobal
44 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/AppleMobileDevice.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace iMultiBoot
8 | {
9 | [Serializable]
10 | public class AppleMobileDevice
11 | {
12 | public string InternalCodeName { get; set; }
13 | public int NandTotalCapacity { get; set; }
14 | public int NandBlockSize { get; set; }
15 | public string PartitionTableType { get; set; }
16 | public bool UseLwVM { get; set; }
17 | public Partition SystemPartition { get; set; }
18 | public Partition DataPartition { get; set; }
19 | public List PartitionList { get; set; }
20 |
21 | public AppleMobileDevice(string pInternalCodeName)
22 | {
23 | InternalCodeName = pInternalCodeName;
24 | PartitionList = new List();
25 | }
26 |
27 | public AppleMobileDevice(string pInternalCodeName, Partition pSystemPartition, Partition pDataPartition)
28 | {
29 | InternalCodeName = pInternalCodeName;
30 | SystemPartition = pSystemPartition;
31 | DataPartition = pDataPartition;
32 | PartitionList = new List();
33 | PartitionList.Add(pSystemPartition);
34 | PartitionList.Add(pDataPartition);
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Devices/k94ap.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | k94ap
4 |
5 | 64000
6 | GPT
7 | True
8 | 3200
9 | 28800
10 |
11 |
12 | 32000
13 | GPT
14 | True
15 | 3200
16 | 28800
17 |
18 |
19 | 16000
20 | GPT
21 | True
22 | 2800
23 | 13200
24 |
25 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Devices/n81ap.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | n81ap
4 |
5 | 32000
6 | GPT
7 | True
8 | 3200
9 | 28800
10 |
11 |
12 | 16000
13 | GPT
14 | True
15 | 2800
16 | 13200
17 |
18 |
19 | 8000
20 | GPT
21 | True
22 | 2800
23 | 6200
24 |
25 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Devices/n90ap.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | n90ap
4 |
5 | 32000
6 | GPT
7 | True
8 | 3200
9 | 28800
10 |
11 |
12 | 16000
13 | GPT
14 | True
15 | 2800
16 | 13200
17 |
18 |
19 | 8000
20 | GPT
21 | True
22 | 2800
23 | 6200
24 |
25 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/ISecureShell.cs:
--------------------------------------------------------------------------------
1 | namespace iMultiBoot
2 | {
3 | interface ISecureShell
4 | {
5 | void ExecuteRemoteCommand(string CommandToExecute);
6 | string ExecuteRemoteCommandWithOutput(string CommandToExecute);
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Keys/iPad2,2_5.1.1_9B206_Restore.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | RootFS
5 | 038-4295-007.dmg
6 | NA
7 | bfad4f78f140886ae081e97857d29c86ec4eebd43d56812e061e2a59815e0e0f7f71dd01
8 |
9 |
10 | AppleLogo
11 | applelogo.s5l8940x.img3
12 | 4483b5408a57951012116e8b752d2da4
13 | f49f103199ae215f3266332584dc070f14ec847ec85f7b7535e1891859c849a7
14 |
15 |
16 | RecoveryModeLogo
17 | recoverymode-ipad.s5l8940x.img3
18 | 00f8f5a6f10c6b04a4ff1eabce97e27a
19 | 9730cf37aa96d7356a443f3ba1f301c2d2616f7e624d4aef0561c7d75bddbd47
20 |
21 |
22 | DeviceTree
23 | DeviceTree.k94ap.img3
24 | e6260394fd6908bba070f237635f9c47
25 | c80af9672b7dad42ff98ded87fbf98253daac53f55df0affa300c0b1690381d5
26 |
27 |
28 | DeviceTree_iOS6
29 | DeviceTree.k94ap_custom.img3
30 | 43fdbf9046da468ecc944bb4bee19879
31 | dbb0ade4c92ec6e561dd51f513ea0332b490f89f4a168f11efc1e9967c02847d
32 |
33 |
34 | LLB
35 | LLB.k94ap.RELEASE.img3
36 | c172151ebfad9332afc7b992f270958d
37 | d2fd52d63353c8f0844e733705682a20c2fdcd545147d14d639b22d2b8979d13
38 |
39 |
40 | iBoot
41 | iBoot.k94ap.RELEASE.img3
42 | b0e330590e05c07aa27fee89638afaa4
43 | 570fee074c1727e1afb0deaf59038008dbecb863c51f135e5c4aa265ee10906f
44 |
45 |
46 | Kernelcache
47 | kernelcache.release.n81
48 | ff7d200240e2d4882ad8c0a5cd738ad2
49 | ff652f403d51ab6408e33a8b75b6797b8b8cb542d69c153f671e7eb14da39398
50 |
51 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Keys/iPod4,1_5.1_9B176_Restore.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | RootFS
5 | 038-1765-165.dmg
6 | NA
7 | 1ab3765d93aaf106b918829db85c18e724473e51106ad89f3d10e863cc3864974c2852f5
8 |
9 |
10 | AppleLogo
11 | applelogo@2x.s5l8930x.img3
12 | 9d8c3366e67a76fba95288c2da08f677
13 | b165b5f5eaa3f9c4caa1ead70db3075f80f2d9ad86be84cfa42188fac3ef3c09
14 |
15 |
16 | RecoveryModeLogo
17 | recoverymode@2x~iphone.s5l8930x.img3
18 | c5644001b41bf69c802d0cc8062dbc7a
19 | dbed1f3ddd7de7f56eb9363fb45e84b0a3cdfbaf125d4e90f13490b96bbbe0dd
20 |
21 |
22 | DeviceTree
23 | DeviceTree.n81ap.img3
24 | b59e73fad51f62ff4c70b45c0ae5b29f
25 | 43218cea11263379a601c3cb8b4eb4c703171d9341ca83f09d78289e1308caca
26 |
27 |
28 | DeviceTree_iOS6
29 | DeviceTree.n81ap_custom.img3
30 | 830c518baddc2e82ad27de186a56e451
31 | fd12079909ae24b2f8140720854608d12c066def4dc07b66f142259d2970426c
32 |
33 |
34 | LLB
35 | LLB.n81ap.RELEASE.img3
36 | 3f6f5128ae1198f57adf559123b1da1c
37 | 28dde68d793c8fa7abae54b479da5ce75369ae8cece745f7a435a5bf3b22e6bb
38 |
39 |
40 | iBoot
41 | iBoot.n81ap.RELEASE.img3
42 | 16641c07fe97051c445d21258722f3d1
43 | d302a0ba7253453bce4431dd5a2a04fbf4da9868c340eae633a0202fe0995155
44 |
45 |
46 | Kernelcache
47 | kernelcache.release.n81
48 | 54f4e3ccb841cd9dcdd9d863534f73ee
49 | c1223786e83a731e3302e8b8226577428710db176e46a741582c2479cc6d61eb
50 |
51 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/OperatingSystem.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using IPSWlib;
3 | using System.Collections.Generic;
4 | using System.IO;
5 |
6 | namespace iMultiBoot
7 | {
8 | [Serializable]
9 | public class OperatingSystem
10 | {
11 | public OperatingSystem(string pSystemVersion, string pSystemBuildNumber)
12 | {
13 | SystemVersion = pSystemVersion;
14 | SystemBuildNumber = pSystemBuildNumber;
15 | }
16 |
17 | public OperatingSystem(string pFilePathIPSW)
18 | {
19 | FileNameIPSW = Path.GetFileNameWithoutExtension(pFilePathIPSW);
20 | FilePathIPSW = pFilePathIPSW;
21 |
22 | string[] SplittedFileName = FileNameIPSW.Split('_');
23 | SystemVersion = SplittedFileName[1];
24 | SystemBuildNumber = SplittedFileName[2];
25 | }
26 |
27 | public string FilePathIPSW { get; set; }
28 | public string FileNameIPSW { get; set; }
29 | public Editor FirmwarePackage { get; set; }
30 | public List ImagesToFlash { get; set; }
31 | public string SystemVersion { get; set; }
32 | public string SystemBuildNumber { get; set; }
33 | public char SystemID { get; set; }
34 | public string InstanceID { get; set; }
35 | public string LocalWorkingDirectory { get; set; }
36 | public string RemoteWorkingDirectory { get; set; }
37 | public Partition SystemPartition { get; set; }
38 | public Partition DataPartition { get; set; }
39 | public string LowLevelBootloader { get; set; }
40 | public string iBoot { get; set; }
41 | public string DeviceTree { get; set; }
42 | public string BootLogo { get; set; }
43 | public string RecoveryLogo { get; set; }
44 | public string KernelCache { get; set; }
45 | public string RootFileSystem { get; set; }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Partition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace iMultiBoot
8 | {
9 | [Serializable]
10 | public class Partition
11 | {
12 | public string Name { get; set; }
13 | public int Size { get; set; }
14 | public string Number { get; set; }
15 | public string MountPoint { get; set; }
16 | public string DiskDevicePath { get; set; }
17 | public bool JournaledFlag { get; set; }
18 | public bool ProtectedFlag { get; set; }
19 |
20 | public Partition(string pName, int pSize)
21 | {
22 | Name = pName;
23 | Size = pSize;
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPad2,2_5.1.1_9B206_Restore/DeviceTree.k94ap.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IMG3 Header Type
5 | 00000010
6 | 62
7 |
8 |
9 | IMG3 Tag Type
10 | 00000020
11 | 62
12 |
13 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPad2,2_5.1.1_9B206_Restore/DeviceTree.k94ap_custom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IMG3 Header Type
5 | 00000010
6 | 62
7 |
8 |
9 | IMG3 Tag Type
10 | 00000020
11 | 62
12 |
13 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPad2,2_5.1.1_9B206_Restore/LLB.k94ap.RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | iBoot Image Type
5 | 000008C4
6 | 62
7 |
8 |
9 | Signature Check
10 | 0000FEF8
11 | 00201860
12 |
13 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPad2,2_5.1.1_9B206_Restore/applelogo.s5l8940x.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IMG3 Header Type
5 | 00000010
6 | 62
7 |
8 |
9 | IMG3 Tag Type
10 | 00000020
11 | 62
12 |
13 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPad2,2_5.1.1_9B206_Restore/iBoot.k94ap.RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IMG3 Header Type
5 | 00000010
6 | 62
7 |
8 |
9 | IMG3 Tag Type
10 | 00000020
11 | 62
12 |
13 |
14 | Bootlogo Image Type
15 | 00000D2A
16 | 62
17 |
18 |
19 | Recovery Logo Image Type
20 | 00000F16
21 | 62
22 |
23 |
24 | DeviceTree Image Type
25 | 00013B14
26 | 62
27 |
28 |
29 | IMG3 Tag Check 1
30 | 00016640
31 | 00200020
32 |
33 |
34 | IMG3 Tag Check 2
35 | 00016666
36 | 00200020
37 |
38 |
39 | IMG3 Tag Check 3
40 | 000166A4
41 | 00200020
42 |
43 |
44 | IMG3 Tag Check 4
45 | 000166C8
46 | 00200020
47 |
48 |
49 | IMG3 Tag Check 5
50 | 000166F4
51 | 00200020
52 |
53 |
54 | IMG3 Tag Check 6
55 | 00016718
56 | 00200020
57 |
58 |
59 | IMG3 Tag Check 7
60 | 0001673C
61 | 00200020
62 |
63 |
64 | IMG3 Tag Check 8
65 | 00016766
66 | 00200020
67 |
68 |
69 | Boot-Args Redirection
70 | 00017840
71 | 01
72 |
73 |
74 | Signature Check 1
75 | 0001F932
76 | 00200020
77 |
78 |
79 | Signature Check 2
80 | 0001F938
81 | 00200020
82 |
83 |
84 | Custom Boot-Args
85 | 0003599C
86 | 616D66693D307866662063735F656E666F7263656D656E745F64697361626C653D312070696F2D6572726F723D30202D762072643D6469736B307331733300
87 |
88 |
89 | KernelCache Path
90 | 00036531
91 | 62
92 |
93 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPad2,2_5.1.1_9B206_Restore/recoverymode-ipad.s5l8940x.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IMG3 Header Type
5 | 00000010
6 | 62
7 |
8 |
9 | IMG3 Tag Type
10 | 00000020
11 | 62
12 |
13 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPod4,1_5.1_9B176_Restore/DeviceTree.n81ap.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IMG3 Header Type
5 | 00000010
6 | 62
7 |
8 |
9 | IMG3 Tag Type
10 | 00000020
11 | 62
12 |
13 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPod4,1_5.1_9B176_Restore/DeviceTree.n81ap_custom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IMG3 Header Type
5 | 00000010
6 | 62
7 |
8 |
9 | IMG3 Tag Type
10 | 00000020
11 | 62
12 |
13 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPod4,1_5.1_9B176_Restore/LLB.n81ap.RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | iBoot Image Type
5 | 000008C4
6 | 62
7 |
8 |
9 | IMG3 Tag Check 1
10 | 0000D794
11 | 00200020
12 |
13 |
14 | IMG3 Tag Check 2
15 | 0000D7BA
16 | 00200020
17 |
18 |
19 | IMG3 Tag Check 3
20 | 0000D7F8
21 | 00200020
22 |
23 |
24 | IMG3 Tag Check 4
25 | 0000D81C
26 | 00200020
27 |
28 |
29 | IMG3 Tag Check 5
30 | 0000D848
31 | 00200020
32 |
33 |
34 | IMG3 Tag Check 6
35 | 0000D86C
36 | 00200020
37 |
38 |
39 | IMG3 Tag Check 7
40 | 0000D890
41 | 00200020
42 |
43 |
44 | IMG3 Tag Check 8
45 | 0000D8BA
46 | 00200020
47 |
48 |
49 | IMG3 Tag Check 8
50 | 0000D8BA
51 | 00200020
52 |
53 |
54 | Signature Check 1
55 | 000126A6
56 | 00200020
57 |
58 |
59 | Signature Check 2
60 | 000126AC
61 | 00200020
62 |
63 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPod4,1_5.1_9B176_Restore/applelogo@2x.s5l8930x.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IMG3 Header Type
5 | 00000010
6 | 62
7 |
8 |
9 | IMG3 Tag Type
10 | 00000020
11 | 62
12 |
13 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPod4,1_5.1_9B176_Restore/iBoot.n81ap.RELEASE.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IMG3 Header Type
5 | 00000010
6 | 62
7 |
8 |
9 | IMG3 Tag Type
10 | 00000020
11 | 62
12 |
13 |
14 | Kernelcache Patch
15 | 00000144
16 | 04A213681B1C03D05068C8500832F8E77047000074480400A26A01232C890400FF2804BFF86D0B0000000000FC6D0B0000000000006E0B0000000000046E0B000000000018375900002001217CB55A00000021221CB65A000078012320B65A00012304D094529A0018040020
17 |
18 |
19 | Bootlogo Image Type
20 | 00000D2A
21 | 62
22 |
23 |
24 | Recovery Logo Image Type
25 | 00000F16
26 | 62
27 |
28 |
29 | DeviceTree Image Type
30 | 000113EC
31 | 62
32 |
33 |
34 | IMG3 Tag Check 1
35 | 00013F18
36 | 00200020
37 |
38 |
39 | IMG3 Tag Check 2
40 | 00013F3E
41 | 00200020
42 |
43 |
44 | IMG3 Tag Check 3
45 | 00013F7C
46 | 00200020
47 |
48 |
49 | IMG3 Tag Check 4
50 | 00013FA0
51 | 00200020
52 |
53 |
54 | IMG3 Tag Check 5
55 | 00013FCC
56 | 00200020
57 |
58 |
59 | IMG3 Tag Check 6
60 | 00013FF0
61 | 00200020
62 |
63 |
64 | IMG3 Tag Check 7
65 | 00014014
66 | 00200020
67 |
68 |
69 | IMG3 Tag Check 8
70 | 0001403E
71 | 00200020
72 |
73 |
74 | Enable Kernelcache Patch
75 | 00014FC4
76 | EBF7BEF8
77 |
78 |
79 | Boot-Args Redirection
80 | 00015100
81 | 01
82 |
83 |
84 | Signature Check 1
85 | 0001CAC8
86 | 00200020
87 |
88 |
89 | Signature Check 2
90 | 0001CAD4
91 | 00200020
92 |
93 |
94 | Custom Boot-Args
95 | 000328BB
96 | 616D66693D307866662063735F656E666F7263656D656E745F64697361626C653D312070696F2D6572726F723D30202D762072643D6469736B307331733300
97 |
98 |
99 | KernelCache Path
100 | 0003320A
101 | 62
102 |
103 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Patches/iPod4,1_5.1_9B176_Restore/recoverymode@2x~iphone.s5l8930x.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | IMG3 Header Type
5 | 00000010
6 | 62
7 |
8 |
9 | IMG3 Tag Type
10 | 00000020
11 | 62
12 |
13 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // Les informations générales relatives à un assembly dépendent de
6 | // l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
7 | // associées à un assembly.
8 | [assembly: AssemblyTitle("iMultiBoot")]
9 | [assembly: AssemblyDescription("A software to install and manage multiple operating systems on 32-bit Apple iOS devices.")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("PMBonneau")]
12 | [assembly: AssemblyProduct("iMultiBoot")]
13 | [assembly: AssemblyCopyright("Copyright ©2017 Pierre-Marc Bonneau")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
18 | // aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
19 | // COM, affectez la valeur true à l'attribut ComVisible sur ce type.
20 | [assembly: ComVisible(false)]
21 |
22 | // Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM
23 | [assembly: Guid("b655ac5a-41b0-4b33-96cb-ea1c5eaadc7f")]
24 |
25 | // Les informations de version pour un assembly se composent des quatre valeurs suivantes :
26 | //
27 | // Version principale
28 | // Version secondaire
29 | // Numéro de build
30 | // Révision
31 | //
32 | // Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
33 | // en utilisant '*', comme indiqué ci-dessous :
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("0.6.0917.1")]
36 | [assembly: AssemblyFileVersion("0.6.0917.1")]
37 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Ce code a été généré par un outil.
4 | // Version du runtime :4.0.30319.42000
5 | //
6 | // Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
7 | // le code est régénéré.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace iMultiBoot.Properties
12 | {
13 |
14 |
15 | ///
16 | /// Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées.
17 | ///
18 | // Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder
19 | // à l'aide d'un outil, tel que ResGen ou Visual Studio.
20 | // Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen
21 | // avec l'option /str ou régénérez votre projet VS.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Retourne l'instance ResourceManager mise en cache utilisée par cette classe.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("iMultiBoot.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Remplace la propriété CurrentUICulture du thread actuel pour toutes
56 | /// les recherches de ressources à l'aide de cette classe de ressource fortement typée.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace iMultiBoot.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/SecureShell.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using WinSCP;
3 |
4 | namespace iMultiBoot
5 | {
6 | [Serializable]
7 | public class SecureShell
8 | {
9 | public SessionOptions sessionOptions;
10 | public Session session;
11 |
12 | public SecureShell()
13 | {
14 |
15 | }
16 |
17 | public void Connect(string DeviceHostName, string UserName, string UserPassword)
18 | {
19 | try
20 | {
21 | sessionOptions = new SessionOptions
22 | {
23 | Protocol = Protocol.Sftp,
24 | HostName = DeviceHostName,
25 | UserName = UserName,
26 | Password = UserPassword
27 | };
28 |
29 | sessionOptions.GiveUpSecurityAndAcceptAnySshHostKey = true;
30 | //sessionOptions.TimeoutInMilliseconds = 60000;
31 |
32 | session = new Session();
33 | session.Open(sessionOptions);
34 |
35 | return;
36 | }
37 | catch (Exception e)
38 | {
39 | Console.WriteLine("Error: {0}", e);
40 | return;
41 | }
42 | }
43 |
44 | public void Disconnect()
45 | {
46 | session.Close();
47 | }
48 |
49 | public void ExecuteRemoteCommand(string CommandToExecute)
50 | {
51 | session.ExecuteCommand(CommandToExecute).Check();
52 | }
53 |
54 | public string ExecuteRemoteCommandWithOutput(string CommandToExecute)
55 | {
56 | return session.ExecuteCommand(CommandToExecute).Output;
57 | }
58 |
59 | public void UploadFile(string pLocalFilePath, string pRemoteFilePath)
60 | {
61 | TransferOptions transferOptions = new TransferOptions();
62 | transferOptions.TransferMode = TransferMode.Binary;
63 | TransferOperationResult transferResult;
64 | transferResult = session.PutFiles(pLocalFilePath, pRemoteFilePath, false, transferOptions);
65 | }
66 | }
67 | }
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Tools/attach.deb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/Tools/attach.deb
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Tools/detach.deb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/Tools/detach.deb
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Tools/gptfdisk.deb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/Tools/gptfdisk.deb
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Tools/hfsresize.deb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/Tools/hfsresize.deb
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Tools/ios5bootstrap.deb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/Tools/ios5bootstrap.deb
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Tools/kloader6.deb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/Tools/kloader6.deb
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Tools/rsync.deb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/Tools/rsync.deb
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/Tools/xpwntool.deb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/Tools/xpwntool.deb
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/WinSCP.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/WinSCP.exe
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/dmg.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/dmg.exe
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmConfigureOS.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace iMultiBoot
2 | {
3 | partial class frmConfigureOS
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.gbFirmwareSection = new System.Windows.Forms.GroupBox();
32 | this.btnRootFileSystem = new System.Windows.Forms.Button();
33 | this.txtRootFileSystem = new System.Windows.Forms.TextBox();
34 | this.lblRootFileSystem = new System.Windows.Forms.Label();
35 | this.btnBootLogo = new System.Windows.Forms.Button();
36 | this.txtBootLogo = new System.Windows.Forms.TextBox();
37 | this.lblBootLogo = new System.Windows.Forms.Label();
38 | this.btnSecondaryStageBootloader = new System.Windows.Forms.Button();
39 | this.btnFirstStageBootloader = new System.Windows.Forms.Button();
40 | this.txtSecondaryStageBootloader = new System.Windows.Forms.TextBox();
41 | this.txtFirstStageBootloader = new System.Windows.Forms.TextBox();
42 | this.lblSecondaryStageBootloader = new System.Windows.Forms.Label();
43 | this.lblFirstStageBootloader = new System.Windows.Forms.Label();
44 | this.btnDeviceTree = new System.Windows.Forms.Button();
45 | this.txtDeviceTree = new System.Windows.Forms.TextBox();
46 | this.lblDeviceTree = new System.Windows.Forms.Label();
47 | this.gbFileSystemSection = new System.Windows.Forms.GroupBox();
48 | this.btnSetData = new System.Windows.Forms.Button();
49 | this.btnSetSystem = new System.Windows.Forms.Button();
50 | this.txtDataPartition = new System.Windows.Forms.TextBox();
51 | this.txtSystemPartition = new System.Windows.Forms.TextBox();
52 | this.lblDataPartition = new System.Windows.Forms.Label();
53 | this.lblSystemPartition = new System.Windows.Forms.Label();
54 | this.lblCurrentPartitionTable = new System.Windows.Forms.Label();
55 | this.lbPartitionTable = new System.Windows.Forms.ListBox();
56 | this.btnSaveSettings = new System.Windows.Forms.Button();
57 | this.gbFirmwareSection.SuspendLayout();
58 | this.gbFileSystemSection.SuspendLayout();
59 | this.SuspendLayout();
60 | //
61 | // gbFirmwareSection
62 | //
63 | this.gbFirmwareSection.Controls.Add(this.btnRootFileSystem);
64 | this.gbFirmwareSection.Controls.Add(this.txtRootFileSystem);
65 | this.gbFirmwareSection.Controls.Add(this.lblRootFileSystem);
66 | this.gbFirmwareSection.Controls.Add(this.btnBootLogo);
67 | this.gbFirmwareSection.Controls.Add(this.txtBootLogo);
68 | this.gbFirmwareSection.Controls.Add(this.lblBootLogo);
69 | this.gbFirmwareSection.Controls.Add(this.btnSecondaryStageBootloader);
70 | this.gbFirmwareSection.Controls.Add(this.btnFirstStageBootloader);
71 | this.gbFirmwareSection.Controls.Add(this.txtSecondaryStageBootloader);
72 | this.gbFirmwareSection.Controls.Add(this.txtFirstStageBootloader);
73 | this.gbFirmwareSection.Controls.Add(this.lblSecondaryStageBootloader);
74 | this.gbFirmwareSection.Controls.Add(this.lblFirstStageBootloader);
75 | this.gbFirmwareSection.Controls.Add(this.btnDeviceTree);
76 | this.gbFirmwareSection.Controls.Add(this.txtDeviceTree);
77 | this.gbFirmwareSection.Controls.Add(this.lblDeviceTree);
78 | this.gbFirmwareSection.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
79 | this.gbFirmwareSection.ForeColor = System.Drawing.Color.White;
80 | this.gbFirmwareSection.Location = new System.Drawing.Point(12, 12);
81 | this.gbFirmwareSection.Name = "gbFirmwareSection";
82 | this.gbFirmwareSection.Size = new System.Drawing.Size(507, 273);
83 | this.gbFirmwareSection.TabIndex = 0;
84 | this.gbFirmwareSection.TabStop = false;
85 | this.gbFirmwareSection.Text = "Firmware Section";
86 | //
87 | // btnRootFileSystem
88 | //
89 | this.btnRootFileSystem.Enabled = false;
90 | this.btnRootFileSystem.ForeColor = System.Drawing.Color.Black;
91 | this.btnRootFileSystem.Location = new System.Drawing.Point(406, 229);
92 | this.btnRootFileSystem.Name = "btnRootFileSystem";
93 | this.btnRootFileSystem.Size = new System.Drawing.Size(75, 23);
94 | this.btnRootFileSystem.TabIndex = 15;
95 | this.btnRootFileSystem.Text = "Browse";
96 | this.btnRootFileSystem.UseVisualStyleBackColor = true;
97 | //
98 | // txtRootFileSystem
99 | //
100 | this.txtRootFileSystem.Enabled = false;
101 | this.txtRootFileSystem.Location = new System.Drawing.Point(141, 230);
102 | this.txtRootFileSystem.Name = "txtRootFileSystem";
103 | this.txtRootFileSystem.Size = new System.Drawing.Size(244, 22);
104 | this.txtRootFileSystem.TabIndex = 14;
105 | //
106 | // lblRootFileSystem
107 | //
108 | this.lblRootFileSystem.AutoSize = true;
109 | this.lblRootFileSystem.Location = new System.Drawing.Point(19, 233);
110 | this.lblRootFileSystem.Name = "lblRootFileSystem";
111 | this.lblRootFileSystem.Size = new System.Drawing.Size(116, 16);
112 | this.lblRootFileSystem.TabIndex = 13;
113 | this.lblRootFileSystem.Text = "Root File System :";
114 | //
115 | // btnBootLogo
116 | //
117 | this.btnBootLogo.ForeColor = System.Drawing.Color.Black;
118 | this.btnBootLogo.Location = new System.Drawing.Point(406, 184);
119 | this.btnBootLogo.Name = "btnBootLogo";
120 | this.btnBootLogo.Size = new System.Drawing.Size(75, 23);
121 | this.btnBootLogo.TabIndex = 12;
122 | this.btnBootLogo.Text = "Browse";
123 | this.btnBootLogo.UseVisualStyleBackColor = true;
124 | this.btnBootLogo.Click += new System.EventHandler(this.btnBootLogo_Click);
125 | //
126 | // txtBootLogo
127 | //
128 | this.txtBootLogo.Location = new System.Drawing.Point(108, 184);
129 | this.txtBootLogo.Name = "txtBootLogo";
130 | this.txtBootLogo.Size = new System.Drawing.Size(278, 22);
131 | this.txtBootLogo.TabIndex = 11;
132 | //
133 | // lblBootLogo
134 | //
135 | this.lblBootLogo.AutoSize = true;
136 | this.lblBootLogo.Location = new System.Drawing.Point(19, 187);
137 | this.lblBootLogo.Name = "lblBootLogo";
138 | this.lblBootLogo.Size = new System.Drawing.Size(76, 16);
139 | this.lblBootLogo.TabIndex = 10;
140 | this.lblBootLogo.Text = "Boot Logo :";
141 | //
142 | // btnSecondaryStageBootloader
143 | //
144 | this.btnSecondaryStageBootloader.ForeColor = System.Drawing.Color.Black;
145 | this.btnSecondaryStageBootloader.Location = new System.Drawing.Point(406, 83);
146 | this.btnSecondaryStageBootloader.Name = "btnSecondaryStageBootloader";
147 | this.btnSecondaryStageBootloader.Size = new System.Drawing.Size(75, 23);
148 | this.btnSecondaryStageBootloader.TabIndex = 9;
149 | this.btnSecondaryStageBootloader.Text = "Browse";
150 | this.btnSecondaryStageBootloader.UseVisualStyleBackColor = true;
151 | this.btnSecondaryStageBootloader.Click += new System.EventHandler(this.btnSecondaryStageBootloader_Click);
152 | //
153 | // btnFirstStageBootloader
154 | //
155 | this.btnFirstStageBootloader.ForeColor = System.Drawing.Color.Black;
156 | this.btnFirstStageBootloader.Location = new System.Drawing.Point(406, 31);
157 | this.btnFirstStageBootloader.Name = "btnFirstStageBootloader";
158 | this.btnFirstStageBootloader.Size = new System.Drawing.Size(75, 23);
159 | this.btnFirstStageBootloader.TabIndex = 8;
160 | this.btnFirstStageBootloader.Text = "Browse";
161 | this.btnFirstStageBootloader.UseVisualStyleBackColor = true;
162 | this.btnFirstStageBootloader.Click += new System.EventHandler(this.btnFirstStageBootloader_Click);
163 | //
164 | // txtSecondaryStageBootloader
165 | //
166 | this.txtSecondaryStageBootloader.Location = new System.Drawing.Point(214, 84);
167 | this.txtSecondaryStageBootloader.Name = "txtSecondaryStageBootloader";
168 | this.txtSecondaryStageBootloader.Size = new System.Drawing.Size(171, 22);
169 | this.txtSecondaryStageBootloader.TabIndex = 6;
170 | //
171 | // txtFirstStageBootloader
172 | //
173 | this.txtFirstStageBootloader.Location = new System.Drawing.Point(173, 32);
174 | this.txtFirstStageBootloader.Name = "txtFirstStageBootloader";
175 | this.txtFirstStageBootloader.Size = new System.Drawing.Size(212, 22);
176 | this.txtFirstStageBootloader.TabIndex = 5;
177 | //
178 | // lblSecondaryStageBootloader
179 | //
180 | this.lblSecondaryStageBootloader.AutoSize = true;
181 | this.lblSecondaryStageBootloader.Location = new System.Drawing.Point(19, 87);
182 | this.lblSecondaryStageBootloader.Name = "lblSecondaryStageBootloader";
183 | this.lblSecondaryStageBootloader.Size = new System.Drawing.Size(189, 16);
184 | this.lblSecondaryStageBootloader.TabIndex = 4;
185 | this.lblSecondaryStageBootloader.Text = "Secondary Stage Bootloader :";
186 | //
187 | // lblFirstStageBootloader
188 | //
189 | this.lblFirstStageBootloader.AutoSize = true;
190 | this.lblFirstStageBootloader.Location = new System.Drawing.Point(19, 35);
191 | this.lblFirstStageBootloader.Name = "lblFirstStageBootloader";
192 | this.lblFirstStageBootloader.Size = new System.Drawing.Size(145, 16);
193 | this.lblFirstStageBootloader.TabIndex = 3;
194 | this.lblFirstStageBootloader.Text = "Low-Level Bootloader :";
195 | //
196 | // btnDeviceTree
197 | //
198 | this.btnDeviceTree.ForeColor = System.Drawing.Color.Black;
199 | this.btnDeviceTree.Location = new System.Drawing.Point(406, 134);
200 | this.btnDeviceTree.Name = "btnDeviceTree";
201 | this.btnDeviceTree.Size = new System.Drawing.Size(75, 23);
202 | this.btnDeviceTree.TabIndex = 2;
203 | this.btnDeviceTree.Text = "Browse";
204 | this.btnDeviceTree.UseVisualStyleBackColor = true;
205 | this.btnDeviceTree.Click += new System.EventHandler(this.btnDeviceTree_Click);
206 | //
207 | // txtDeviceTree
208 | //
209 | this.txtDeviceTree.Location = new System.Drawing.Point(111, 135);
210 | this.txtDeviceTree.Name = "txtDeviceTree";
211 | this.txtDeviceTree.Size = new System.Drawing.Size(274, 22);
212 | this.txtDeviceTree.TabIndex = 1;
213 | //
214 | // lblDeviceTree
215 | //
216 | this.lblDeviceTree.AutoSize = true;
217 | this.lblDeviceTree.Location = new System.Drawing.Point(19, 138);
218 | this.lblDeviceTree.Name = "lblDeviceTree";
219 | this.lblDeviceTree.Size = new System.Drawing.Size(86, 16);
220 | this.lblDeviceTree.TabIndex = 0;
221 | this.lblDeviceTree.Text = "DeviceTree :";
222 | //
223 | // gbFileSystemSection
224 | //
225 | this.gbFileSystemSection.Controls.Add(this.btnSetData);
226 | this.gbFileSystemSection.Controls.Add(this.btnSetSystem);
227 | this.gbFileSystemSection.Controls.Add(this.txtDataPartition);
228 | this.gbFileSystemSection.Controls.Add(this.txtSystemPartition);
229 | this.gbFileSystemSection.Controls.Add(this.lblDataPartition);
230 | this.gbFileSystemSection.Controls.Add(this.lblSystemPartition);
231 | this.gbFileSystemSection.Controls.Add(this.lblCurrentPartitionTable);
232 | this.gbFileSystemSection.Controls.Add(this.lbPartitionTable);
233 | this.gbFileSystemSection.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
234 | this.gbFileSystemSection.ForeColor = System.Drawing.Color.White;
235 | this.gbFileSystemSection.Location = new System.Drawing.Point(13, 304);
236 | this.gbFileSystemSection.Name = "gbFileSystemSection";
237 | this.gbFileSystemSection.Size = new System.Drawing.Size(506, 131);
238 | this.gbFileSystemSection.TabIndex = 1;
239 | this.gbFileSystemSection.TabStop = false;
240 | this.gbFileSystemSection.Text = "FileSystem Section";
241 | //
242 | // btnSetData
243 | //
244 | this.btnSetData.ForeColor = System.Drawing.Color.Black;
245 | this.btnSetData.Location = new System.Drawing.Point(184, 81);
246 | this.btnSetData.Name = "btnSetData";
247 | this.btnSetData.Size = new System.Drawing.Size(75, 41);
248 | this.btnSetData.TabIndex = 10;
249 | this.btnSetData.Text = "Set as Data";
250 | this.btnSetData.UseVisualStyleBackColor = true;
251 | this.btnSetData.Click += new System.EventHandler(this.btnSetData_Click);
252 | //
253 | // btnSetSystem
254 | //
255 | this.btnSetSystem.ForeColor = System.Drawing.Color.Black;
256 | this.btnSetSystem.Location = new System.Drawing.Point(184, 34);
257 | this.btnSetSystem.Name = "btnSetSystem";
258 | this.btnSetSystem.Size = new System.Drawing.Size(75, 41);
259 | this.btnSetSystem.TabIndex = 9;
260 | this.btnSetSystem.Text = "Set as System";
261 | this.btnSetSystem.UseVisualStyleBackColor = true;
262 | this.btnSetSystem.Click += new System.EventHandler(this.btnSetSystem_Click);
263 | //
264 | // txtDataPartition
265 | //
266 | this.txtDataPartition.Enabled = false;
267 | this.txtDataPartition.Location = new System.Drawing.Point(391, 94);
268 | this.txtDataPartition.Name = "txtDataPartition";
269 | this.txtDataPartition.Size = new System.Drawing.Size(100, 22);
270 | this.txtDataPartition.TabIndex = 8;
271 | //
272 | // txtSystemPartition
273 | //
274 | this.txtSystemPartition.Enabled = false;
275 | this.txtSystemPartition.Location = new System.Drawing.Point(391, 43);
276 | this.txtSystemPartition.Name = "txtSystemPartition";
277 | this.txtSystemPartition.Size = new System.Drawing.Size(100, 22);
278 | this.txtSystemPartition.TabIndex = 7;
279 | //
280 | // lblDataPartition
281 | //
282 | this.lblDataPartition.AutoSize = true;
283 | this.lblDataPartition.Location = new System.Drawing.Point(290, 97);
284 | this.lblDataPartition.Name = "lblDataPartition";
285 | this.lblDataPartition.Size = new System.Drawing.Size(94, 16);
286 | this.lblDataPartition.TabIndex = 6;
287 | this.lblDataPartition.Text = "Data Partition :";
288 | //
289 | // lblSystemPartition
290 | //
291 | this.lblSystemPartition.AutoSize = true;
292 | this.lblSystemPartition.Location = new System.Drawing.Point(275, 46);
293 | this.lblSystemPartition.Name = "lblSystemPartition";
294 | this.lblSystemPartition.Size = new System.Drawing.Size(110, 16);
295 | this.lblSystemPartition.TabIndex = 5;
296 | this.lblSystemPartition.Text = "System Partition :";
297 | //
298 | // lblCurrentPartitionTable
299 | //
300 | this.lblCurrentPartitionTable.AutoSize = true;
301 | this.lblCurrentPartitionTable.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
302 | this.lblCurrentPartitionTable.ForeColor = System.Drawing.Color.White;
303 | this.lblCurrentPartitionTable.Location = new System.Drawing.Point(10, 29);
304 | this.lblCurrentPartitionTable.Name = "lblCurrentPartitionTable";
305 | this.lblCurrentPartitionTable.Size = new System.Drawing.Size(146, 16);
306 | this.lblCurrentPartitionTable.TabIndex = 4;
307 | this.lblCurrentPartitionTable.Text = "Current Partition Table :";
308 | //
309 | // lbPartitionTable
310 | //
311 | this.lbPartitionTable.FormattingEnabled = true;
312 | this.lbPartitionTable.ItemHeight = 16;
313 | this.lbPartitionTable.Location = new System.Drawing.Point(13, 48);
314 | this.lbPartitionTable.Name = "lbPartitionTable";
315 | this.lbPartitionTable.Size = new System.Drawing.Size(150, 68);
316 | this.lbPartitionTable.TabIndex = 0;
317 | this.lbPartitionTable.SelectedIndexChanged += new System.EventHandler(this.lbPartitionTable_SelectedIndexChanged);
318 | //
319 | // btnSaveSettings
320 | //
321 | this.btnSaveSettings.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
322 | this.btnSaveSettings.Location = new System.Drawing.Point(390, 441);
323 | this.btnSaveSettings.Name = "btnSaveSettings";
324 | this.btnSaveSettings.Size = new System.Drawing.Size(129, 40);
325 | this.btnSaveSettings.TabIndex = 2;
326 | this.btnSaveSettings.Text = "Save Settings";
327 | this.btnSaveSettings.UseVisualStyleBackColor = true;
328 | this.btnSaveSettings.Click += new System.EventHandler(this.btnSaveSettings_Click);
329 | //
330 | // frmConfigureOS
331 | //
332 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
333 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
334 | this.BackColor = System.Drawing.Color.Black;
335 | this.ClientSize = new System.Drawing.Size(531, 493);
336 | this.Controls.Add(this.btnSaveSettings);
337 | this.Controls.Add(this.gbFileSystemSection);
338 | this.Controls.Add(this.gbFirmwareSection);
339 | this.Name = "frmConfigureOS";
340 | this.Text = "Configure Operating System";
341 | this.gbFirmwareSection.ResumeLayout(false);
342 | this.gbFirmwareSection.PerformLayout();
343 | this.gbFileSystemSection.ResumeLayout(false);
344 | this.gbFileSystemSection.PerformLayout();
345 | this.ResumeLayout(false);
346 |
347 | }
348 |
349 | #endregion
350 |
351 | private System.Windows.Forms.GroupBox gbFirmwareSection;
352 | private System.Windows.Forms.Button btnDeviceTree;
353 | private System.Windows.Forms.TextBox txtDeviceTree;
354 | private System.Windows.Forms.Label lblDeviceTree;
355 | private System.Windows.Forms.Button btnSecondaryStageBootloader;
356 | private System.Windows.Forms.Button btnFirstStageBootloader;
357 | private System.Windows.Forms.TextBox txtSecondaryStageBootloader;
358 | private System.Windows.Forms.TextBox txtFirstStageBootloader;
359 | private System.Windows.Forms.Label lblFirstStageBootloader;
360 | private System.Windows.Forms.Label lblSecondaryStageBootloader;
361 | private System.Windows.Forms.GroupBox gbFileSystemSection;
362 | private System.Windows.Forms.ListBox lbPartitionTable;
363 | private System.Windows.Forms.Label lblCurrentPartitionTable;
364 | private System.Windows.Forms.Button btnSetData;
365 | private System.Windows.Forms.Button btnSetSystem;
366 | private System.Windows.Forms.TextBox txtDataPartition;
367 | private System.Windows.Forms.TextBox txtSystemPartition;
368 | private System.Windows.Forms.Label lblDataPartition;
369 | private System.Windows.Forms.Label lblSystemPartition;
370 | private System.Windows.Forms.Button btnRootFileSystem;
371 | private System.Windows.Forms.TextBox txtRootFileSystem;
372 | private System.Windows.Forms.Label lblRootFileSystem;
373 | private System.Windows.Forms.Button btnBootLogo;
374 | private System.Windows.Forms.TextBox txtBootLogo;
375 | private System.Windows.Forms.Label lblBootLogo;
376 | private System.Windows.Forms.Button btnSaveSettings;
377 | }
378 | }
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmConfigureOS.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Windows.Forms;
4 |
5 | namespace iMultiBoot
6 | {
7 | public partial class frmConfigureOS : Form
8 | {
9 | OperatingSystem OperatingSystem;
10 | iMultiBootController Controller;
11 | Partition SelectedPartition;
12 |
13 | public frmConfigureOS()
14 | {
15 | InitializeComponent();
16 | }
17 |
18 | public frmConfigureOS(OperatingSystem pOperatingSystem, iMultiBootController pController)
19 | {
20 | InitializeComponent();
21 | OperatingSystem = pOperatingSystem;
22 | Controller = pController;
23 | for (int i = 0; i < Controller.getAppleMobileDevice().PartitionList.Count; i++)
24 | {
25 | lbPartitionTable.Items.Add(Controller.getAppleMobileDevice().PartitionList[i].Name);
26 | }
27 | }
28 |
29 | private void btnDeviceTree_Click(object sender, EventArgs e)
30 | {
31 | OpenFileDialog vOpenFileDialog = new OpenFileDialog();
32 | vOpenFileDialog.Title = "Select Custom DeviceTree Image";
33 | vOpenFileDialog.Filter = "IMG3 Files|*.img3";
34 | DialogResult result = vOpenFileDialog.ShowDialog();
35 | txtDeviceTree.Text = vOpenFileDialog.FileName;
36 |
37 | string GenericDeviceTreeFileName = "DeviceTree." + Controller.getAppleMobileDevice().InternalCodeName + "_custom.img3";
38 |
39 | if (Directory.Exists(Controller.getWorkingDirectory()) == false)
40 | {
41 | Directory.CreateDirectory(Controller.getWorkingDirectory());
42 | }
43 |
44 | File.Copy(vOpenFileDialog.FileName, Controller.getWorkingDirectory() + "\\" + GenericDeviceTreeFileName);
45 | OperatingSystem.DeviceTree = Controller.getWorkingDirectory() + "\\" + GenericDeviceTreeFileName;
46 | }
47 |
48 | private void btnFirstStageBootloader_Click(object sender, EventArgs e)
49 | {
50 | OpenFileDialog vOpenFileDialog = new OpenFileDialog();
51 | vOpenFileDialog.Title = "Select Custom First Stage Bootloader Image";
52 | vOpenFileDialog.Filter = "IMG3 Files|*.img3";
53 | DialogResult result = vOpenFileDialog.ShowDialog();
54 | txtFirstStageBootloader.Text = vOpenFileDialog.FileName;
55 |
56 | string GenericFirstStageBootloaderFileName = "LLB." + Controller.getAppleMobileDevice().InternalCodeName + ".RELEASE.img3";
57 |
58 | if (Directory.Exists(Controller.getWorkingDirectory()) == false)
59 | {
60 | Directory.CreateDirectory(Controller.getWorkingDirectory());
61 | }
62 |
63 | File.Copy(vOpenFileDialog.FileName, Controller.getWorkingDirectory() + "\\" + GenericFirstStageBootloaderFileName);
64 | OperatingSystem.LowLevelBootloader = Controller.getWorkingDirectory() + "\\" + GenericFirstStageBootloaderFileName;
65 | }
66 |
67 | private void btnSecondaryStageBootloader_Click(object sender, EventArgs e)
68 | {
69 | OpenFileDialog vOpenFileDialog = new OpenFileDialog();
70 | vOpenFileDialog.Title = "Select Custom Secondary Stage Bootloader Image";
71 | vOpenFileDialog.Filter = "IMG3 Files|*.img3";
72 | DialogResult result = vOpenFileDialog.ShowDialog();
73 | txtSecondaryStageBootloader.Text = vOpenFileDialog.FileName;
74 |
75 | string GenericSecondaryStageBootloaderFileName = "iBoot." + Controller.getAppleMobileDevice().InternalCodeName + ".RELEASE.img3";
76 |
77 | if (Directory.Exists(Controller.getWorkingDirectory()) == false)
78 | {
79 | Directory.CreateDirectory(Controller.getWorkingDirectory());
80 | }
81 |
82 | File.Copy(vOpenFileDialog.FileName, Controller.getWorkingDirectory() + "\\" + GenericSecondaryStageBootloaderFileName);
83 | OperatingSystem.iBoot = Controller.getWorkingDirectory() + "\\" + GenericSecondaryStageBootloaderFileName;
84 | }
85 |
86 | private void btnBootLogo_Click(object sender, EventArgs e)
87 | {
88 | OpenFileDialog vOpenFileDialog = new OpenFileDialog();
89 | vOpenFileDialog.Title = "Select Custom Boot Logo Image";
90 | vOpenFileDialog.Filter = "IMG3 Files|*.img3";
91 | DialogResult result = vOpenFileDialog.ShowDialog();
92 | txtBootLogo.Text = vOpenFileDialog.FileName;
93 |
94 | string GenericBootLogoImageFileName = "applelogo." + Controller.getAppleMobileDevice().InternalCodeName + "_custom.img3";
95 |
96 | if (Directory.Exists(Controller.getWorkingDirectory()) == false)
97 | {
98 | Directory.CreateDirectory(Controller.getWorkingDirectory());
99 | }
100 |
101 | File.Copy(vOpenFileDialog.FileName, Controller.getWorkingDirectory() + "\\" + GenericBootLogoImageFileName);
102 | OperatingSystem.BootLogo = Controller.getWorkingDirectory() + "\\" + GenericBootLogoImageFileName;
103 | }
104 |
105 | private void lbPartitionTable_SelectedIndexChanged(object sender, EventArgs e)
106 | {
107 | SelectedPartition = Controller.getAppleMobileDevice().PartitionList[lbPartitionTable.SelectedIndex];
108 | }
109 |
110 | private void btnSetSystem_Click(object sender, EventArgs e)
111 | {
112 | if (lbPartitionTable.SelectedIndex == 0 || lbPartitionTable.SelectedIndex == 1)
113 | {
114 | MessageBox.Show("Can't set " + SelectedPartition.Name + " as system partition for a secondary OS instance.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
115 | return;
116 | }
117 | OperatingSystem.SystemPartition = SelectedPartition;
118 | txtSystemPartition.Text = SelectedPartition.Name;
119 |
120 | }
121 |
122 | private void btnSetData_Click(object sender, EventArgs e)
123 | {
124 | if (lbPartitionTable.SelectedIndex == 0 || lbPartitionTable.SelectedIndex == 1)
125 | {
126 | MessageBox.Show("Can't set " + SelectedPartition.Name + " as data partition for a secondary OS instance.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
127 | return;
128 | }
129 | OperatingSystem.DataPartition = SelectedPartition;
130 | txtDataPartition.Text = SelectedPartition.Name;
131 | }
132 |
133 | private void btnSaveSettings_Click(object sender, EventArgs e)
134 | {
135 | Close();
136 | }
137 | }
138 | }
139 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmConfigureOS.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmDeviceSelection.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace iMultiBoot
2 | {
3 | partial class frmDeviceSelection
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.cmbCapacitySelection = new System.Windows.Forms.ComboBox();
32 | this.cmbDeviceSelection = new System.Windows.Forms.ComboBox();
33 | this.btnSaveSettings = new System.Windows.Forms.Button();
34 | this.lblSelectDevice = new System.Windows.Forms.Label();
35 | this.lblTotalCapacity = new System.Windows.Forms.Label();
36 | this.SuspendLayout();
37 | //
38 | // cmbCapacitySelection
39 | //
40 | this.cmbCapacitySelection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
41 | this.cmbCapacitySelection.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
42 | this.cmbCapacitySelection.FormattingEnabled = true;
43 | this.cmbCapacitySelection.Items.AddRange(new object[] {
44 | "8 GB",
45 | "16 GB",
46 | "32 GB",
47 | "64 GB",
48 | "128 GB"});
49 | this.cmbCapacitySelection.Location = new System.Drawing.Point(210, 25);
50 | this.cmbCapacitySelection.Name = "cmbCapacitySelection";
51 | this.cmbCapacitySelection.Size = new System.Drawing.Size(125, 24);
52 | this.cmbCapacitySelection.TabIndex = 1;
53 | //
54 | // cmbDeviceSelection
55 | //
56 | this.cmbDeviceSelection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
57 | this.cmbDeviceSelection.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
58 | this.cmbDeviceSelection.FormattingEnabled = true;
59 | this.cmbDeviceSelection.Location = new System.Drawing.Point(12, 25);
60 | this.cmbDeviceSelection.Name = "cmbDeviceSelection";
61 | this.cmbDeviceSelection.Size = new System.Drawing.Size(179, 24);
62 | this.cmbDeviceSelection.TabIndex = 2;
63 | //
64 | // btnSaveSettings
65 | //
66 | this.btnSaveSettings.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
67 | this.btnSaveSettings.Location = new System.Drawing.Point(350, 62);
68 | this.btnSaveSettings.Name = "btnSaveSettings";
69 | this.btnSaveSettings.Size = new System.Drawing.Size(99, 38);
70 | this.btnSaveSettings.TabIndex = 3;
71 | this.btnSaveSettings.Text = "Save Settings";
72 | this.btnSaveSettings.UseVisualStyleBackColor = true;
73 | this.btnSaveSettings.Click += new System.EventHandler(this.btnSaveSettings_Click);
74 | //
75 | // lblSelectDevice
76 | //
77 | this.lblSelectDevice.AutoSize = true;
78 | this.lblSelectDevice.ForeColor = System.Drawing.Color.White;
79 | this.lblSelectDevice.Location = new System.Drawing.Point(9, 9);
80 | this.lblSelectDevice.Name = "lblSelectDevice";
81 | this.lblSelectDevice.Size = new System.Drawing.Size(80, 13);
82 | this.lblSelectDevice.TabIndex = 6;
83 | this.lblSelectDevice.Text = "Select Device :";
84 | //
85 | // lblTotalCapacity
86 | //
87 | this.lblTotalCapacity.AutoSize = true;
88 | this.lblTotalCapacity.ForeColor = System.Drawing.Color.White;
89 | this.lblTotalCapacity.Location = new System.Drawing.Point(207, 9);
90 | this.lblTotalCapacity.Name = "lblTotalCapacity";
91 | this.lblTotalCapacity.Size = new System.Drawing.Size(81, 13);
92 | this.lblTotalCapacity.TabIndex = 7;
93 | this.lblTotalCapacity.Text = "Total Capacity :";
94 | //
95 | // frmDeviceSelection
96 | //
97 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
98 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
99 | this.BackColor = System.Drawing.Color.Black;
100 | this.ClientSize = new System.Drawing.Size(461, 112);
101 | this.Controls.Add(this.lblTotalCapacity);
102 | this.Controls.Add(this.lblSelectDevice);
103 | this.Controls.Add(this.btnSaveSettings);
104 | this.Controls.Add(this.cmbDeviceSelection);
105 | this.Controls.Add(this.cmbCapacitySelection);
106 | this.Name = "frmDeviceSelection";
107 | this.Text = "Device Selection";
108 | this.ResumeLayout(false);
109 | this.PerformLayout();
110 |
111 | }
112 |
113 | #endregion
114 | private System.Windows.Forms.ComboBox cmbCapacitySelection;
115 | private System.Windows.Forms.ComboBox cmbDeviceSelection;
116 | private System.Windows.Forms.Button btnSaveSettings;
117 | private System.Windows.Forms.Label lblSelectDevice;
118 | private System.Windows.Forms.Label lblTotalCapacity;
119 | }
120 | }
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmDeviceSelection.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace iMultiBoot
5 | {
6 | public partial class frmDeviceSelection : Form
7 | {
8 | public frmDeviceSelection()
9 | {
10 | InitializeComponent();
11 | }
12 |
13 | iMultiBootController Controller;
14 | AppleMobileDevice iDevice;
15 |
16 | public frmDeviceSelection(iMultiBootController pController)
17 | {
18 | InitializeComponent();
19 | Controller = pController;
20 |
21 | string[] AvailableDevices = Controller.getAvailableDevices();
22 | for (int i = 0; i < AvailableDevices.Length; i++)
23 | {
24 | switch (AvailableDevices[i])
25 | {
26 | case "k94ap":
27 | cmbDeviceSelection.Items.Add("iPad 2nd (K94AP)");
28 | break;
29 | case "n81ap":
30 | cmbDeviceSelection.Items.Add("iPod Touch 4th (N81AP)");
31 | break;
32 | case "n88ap":
33 | cmbDeviceSelection.Items.Add("iPhone 3Gs (N88AP)");
34 | break;
35 | case "n90ap":
36 | cmbDeviceSelection.Items.Add("iPhone 4 (N90AP)");
37 | break;
38 | default:
39 | cmbDeviceSelection.Items.Add(AvailableDevices[i]);
40 | break;
41 | }
42 | }
43 | }
44 |
45 | private void btnSaveSettings_Click(object sender, EventArgs e)
46 | {
47 | string InternalCodeName = "";
48 | int NandTotalCapacity = 32000;
49 | int NandBlockSize = 0;
50 |
51 | switch (Convert.ToString(cmbDeviceSelection.SelectedItem))
52 | {
53 | case "iPad 2nd (K94AP)":
54 | InternalCodeName = "k94ap";
55 | NandBlockSize = 8192;
56 | break;
57 | case "iPod Touch 4th (N81AP)":
58 | InternalCodeName = "n81ap";
59 | NandBlockSize = 8192;
60 | break;
61 | case "iPhone 3Gs (N88AP)":
62 | InternalCodeName = "n88ap";
63 | NandBlockSize = 8192;
64 | break;
65 | case "iPhone 4 (N90AP)":
66 | InternalCodeName = "n90ap";
67 | NandBlockSize = 8192;
68 | break;
69 | }
70 |
71 | switch (Convert.ToString(cmbCapacitySelection.SelectedItem))
72 | {
73 | case "8 GB":
74 | NandTotalCapacity = 8000;
75 | break;
76 | case "16 GB":
77 | NandTotalCapacity = 16000;
78 | break;
79 | case "32 GB":
80 | NandTotalCapacity = 32000;
81 | break;
82 | case "64 GB":
83 | NandTotalCapacity = 64000;
84 | break;
85 | case "128 GB":
86 | NandTotalCapacity = 128000;
87 | break;
88 | }
89 |
90 | iDevice = new AppleMobileDevice(InternalCodeName);
91 |
92 | iDevice.NandTotalCapacity = NandTotalCapacity;
93 | iDevice.NandBlockSize = NandBlockSize;
94 |
95 | Controller.setAppleMobileDevice(iDevice);
96 |
97 | Close();
98 | }
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmDeviceSelection.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmMain.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace iMultiBoot
2 | {
3 | partial class frmMain
4 | {
5 | ///
6 | /// Variable nécessaire au concepteur.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Nettoyage des ressources utilisées.
12 | ///
13 | /// true si les ressources managées doivent être supprimées ; sinon, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Code généré par le Concepteur Windows Form
24 |
25 | ///
26 | /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
27 | /// le contenu de cette méthode avec l'éditeur de code.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.pnlMain = new System.Windows.Forms.Panel();
32 | this.gbConnectionSSH = new System.Windows.Forms.GroupBox();
33 | this.txtUserPassword = new System.Windows.Forms.TextBox();
34 | this.lblUserPassword = new System.Windows.Forms.Label();
35 | this.txtUserName = new System.Windows.Forms.TextBox();
36 | this.lblUserName = new System.Windows.Forms.Label();
37 | this.txtDeviceHostName = new System.Windows.Forms.TextBox();
38 | this.lblDeviceHostName = new System.Windows.Forms.Label();
39 | this.btnManagePartitions = new System.Windows.Forms.Button();
40 | this.btnInstallOperatingSystems = new System.Windows.Forms.Button();
41 | this.btnConfigureSoftware = new System.Windows.Forms.Button();
42 | this.btnBuildFirmware = new System.Windows.Forms.Button();
43 | this.btnSelectOperatingSystems = new System.Windows.Forms.Button();
44 | this.btnSelectDevice = new System.Windows.Forms.Button();
45 | this.lblTitle = new System.Windows.Forms.Label();
46 | this.btnBegin = new System.Windows.Forms.Button();
47 | this.lblCopyrights = new System.Windows.Forms.Label();
48 | this.btnCredits = new System.Windows.Forms.Button();
49 | this.pnlMain.SuspendLayout();
50 | this.gbConnectionSSH.SuspendLayout();
51 | this.SuspendLayout();
52 | //
53 | // pnlMain
54 | //
55 | this.pnlMain.Controls.Add(this.gbConnectionSSH);
56 | this.pnlMain.Controls.Add(this.btnManagePartitions);
57 | this.pnlMain.Controls.Add(this.btnInstallOperatingSystems);
58 | this.pnlMain.Controls.Add(this.btnConfigureSoftware);
59 | this.pnlMain.Controls.Add(this.btnBuildFirmware);
60 | this.pnlMain.Controls.Add(this.btnSelectOperatingSystems);
61 | this.pnlMain.Controls.Add(this.btnSelectDevice);
62 | this.pnlMain.Location = new System.Drawing.Point(2, 38);
63 | this.pnlMain.Name = "pnlMain";
64 | this.pnlMain.Size = new System.Drawing.Size(579, 272);
65 | this.pnlMain.TabIndex = 1;
66 | this.pnlMain.Visible = false;
67 | //
68 | // gbConnectionSSH
69 | //
70 | this.gbConnectionSSH.Controls.Add(this.txtUserPassword);
71 | this.gbConnectionSSH.Controls.Add(this.lblUserPassword);
72 | this.gbConnectionSSH.Controls.Add(this.txtUserName);
73 | this.gbConnectionSSH.Controls.Add(this.lblUserName);
74 | this.gbConnectionSSH.Controls.Add(this.txtDeviceHostName);
75 | this.gbConnectionSSH.Controls.Add(this.lblDeviceHostName);
76 | this.gbConnectionSSH.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
77 | this.gbConnectionSSH.ForeColor = System.Drawing.Color.White;
78 | this.gbConnectionSSH.Location = new System.Drawing.Point(359, 7);
79 | this.gbConnectionSSH.Name = "gbConnectionSSH";
80 | this.gbConnectionSSH.Size = new System.Drawing.Size(211, 201);
81 | this.gbConnectionSSH.TabIndex = 6;
82 | this.gbConnectionSSH.TabStop = false;
83 | this.gbConnectionSSH.Text = "SSH Connection";
84 | //
85 | // txtUserPassword
86 | //
87 | this.txtUserPassword.Enabled = false;
88 | this.txtUserPassword.Location = new System.Drawing.Point(9, 144);
89 | this.txtUserPassword.Name = "txtUserPassword";
90 | this.txtUserPassword.Size = new System.Drawing.Size(100, 22);
91 | this.txtUserPassword.TabIndex = 5;
92 | this.txtUserPassword.UseSystemPasswordChar = true;
93 | //
94 | // lblUserPassword
95 | //
96 | this.lblUserPassword.AutoSize = true;
97 | this.lblUserPassword.Location = new System.Drawing.Point(6, 125);
98 | this.lblUserPassword.Name = "lblUserPassword";
99 | this.lblUserPassword.Size = new System.Drawing.Size(106, 16);
100 | this.lblUserPassword.TabIndex = 4;
101 | this.lblUserPassword.Text = "User Password :";
102 | //
103 | // txtUserName
104 | //
105 | this.txtUserName.Enabled = false;
106 | this.txtUserName.Location = new System.Drawing.Point(9, 92);
107 | this.txtUserName.Name = "txtUserName";
108 | this.txtUserName.Size = new System.Drawing.Size(100, 22);
109 | this.txtUserName.TabIndex = 3;
110 | //
111 | // lblUserName
112 | //
113 | this.lblUserName.AutoSize = true;
114 | this.lblUserName.Location = new System.Drawing.Point(6, 73);
115 | this.lblUserName.Name = "lblUserName";
116 | this.lblUserName.Size = new System.Drawing.Size(83, 16);
117 | this.lblUserName.TabIndex = 2;
118 | this.lblUserName.Text = "User Name :";
119 | //
120 | // txtDeviceHostName
121 | //
122 | this.txtDeviceHostName.Enabled = false;
123 | this.txtDeviceHostName.Location = new System.Drawing.Point(9, 38);
124 | this.txtDeviceHostName.Name = "txtDeviceHostName";
125 | this.txtDeviceHostName.Size = new System.Drawing.Size(125, 22);
126 | this.txtDeviceHostName.TabIndex = 1;
127 | //
128 | // lblDeviceHostName
129 | //
130 | this.lblDeviceHostName.AutoSize = true;
131 | this.lblDeviceHostName.Location = new System.Drawing.Point(6, 19);
132 | this.lblDeviceHostName.Name = "lblDeviceHostName";
133 | this.lblDeviceHostName.Size = new System.Drawing.Size(128, 16);
134 | this.lblDeviceHostName.TabIndex = 0;
135 | this.lblDeviceHostName.Text = "Device Host Name :";
136 | //
137 | // btnManagePartitions
138 | //
139 | this.btnManagePartitions.Enabled = false;
140 | this.btnManagePartitions.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
141 | this.btnManagePartitions.Location = new System.Drawing.Point(10, 119);
142 | this.btnManagePartitions.Name = "btnManagePartitions";
143 | this.btnManagePartitions.Size = new System.Drawing.Size(211, 35);
144 | this.btnManagePartitions.TabIndex = 5;
145 | this.btnManagePartitions.Text = "Manage Partitions";
146 | this.btnManagePartitions.UseVisualStyleBackColor = true;
147 | this.btnManagePartitions.Click += new System.EventHandler(this.btnManagePartitions_Click);
148 | //
149 | // btnInstallOperatingSystems
150 | //
151 | this.btnInstallOperatingSystems.Enabled = false;
152 | this.btnInstallOperatingSystems.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
153 | this.btnInstallOperatingSystems.Location = new System.Drawing.Point(359, 226);
154 | this.btnInstallOperatingSystems.Name = "btnInstallOperatingSystems";
155 | this.btnInstallOperatingSystems.Size = new System.Drawing.Size(211, 35);
156 | this.btnInstallOperatingSystems.TabIndex = 4;
157 | this.btnInstallOperatingSystems.Text = "Install Operating Systems";
158 | this.btnInstallOperatingSystems.UseVisualStyleBackColor = true;
159 | this.btnInstallOperatingSystems.Click += new System.EventHandler(this.btnInstallOperatingSystems_Click);
160 | //
161 | // btnConfigureSoftware
162 | //
163 | this.btnConfigureSoftware.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
164 | this.btnConfigureSoftware.Location = new System.Drawing.Point(10, 14);
165 | this.btnConfigureSoftware.Name = "btnConfigureSoftware";
166 | this.btnConfigureSoftware.Size = new System.Drawing.Size(211, 35);
167 | this.btnConfigureSoftware.TabIndex = 3;
168 | this.btnConfigureSoftware.Text = "Configure Software";
169 | this.btnConfigureSoftware.UseVisualStyleBackColor = true;
170 | this.btnConfigureSoftware.Click += new System.EventHandler(this.btnConfigureSoftware_Click);
171 | //
172 | // btnBuildFirmware
173 | //
174 | this.btnBuildFirmware.Enabled = false;
175 | this.btnBuildFirmware.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
176 | this.btnBuildFirmware.Location = new System.Drawing.Point(10, 226);
177 | this.btnBuildFirmware.Name = "btnBuildFirmware";
178 | this.btnBuildFirmware.Size = new System.Drawing.Size(211, 35);
179 | this.btnBuildFirmware.TabIndex = 2;
180 | this.btnBuildFirmware.Text = "Build Firmware Package (IPSW)";
181 | this.btnBuildFirmware.UseVisualStyleBackColor = true;
182 | this.btnBuildFirmware.Click += new System.EventHandler(this.btnBuildFirmware_Click);
183 | //
184 | // btnSelectOperatingSystems
185 | //
186 | this.btnSelectOperatingSystems.Enabled = false;
187 | this.btnSelectOperatingSystems.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
188 | this.btnSelectOperatingSystems.Location = new System.Drawing.Point(10, 173);
189 | this.btnSelectOperatingSystems.Name = "btnSelectOperatingSystems";
190 | this.btnSelectOperatingSystems.Size = new System.Drawing.Size(211, 35);
191 | this.btnSelectOperatingSystems.TabIndex = 1;
192 | this.btnSelectOperatingSystems.Text = "Select Operating Systems";
193 | this.btnSelectOperatingSystems.UseVisualStyleBackColor = true;
194 | this.btnSelectOperatingSystems.Click += new System.EventHandler(this.btnSelectOperatingSystems_Click);
195 | //
196 | // btnSelectDevice
197 | //
198 | this.btnSelectDevice.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
199 | this.btnSelectDevice.Location = new System.Drawing.Point(10, 66);
200 | this.btnSelectDevice.Name = "btnSelectDevice";
201 | this.btnSelectDevice.Size = new System.Drawing.Size(211, 35);
202 | this.btnSelectDevice.TabIndex = 0;
203 | this.btnSelectDevice.Text = "Select Device";
204 | this.btnSelectDevice.UseVisualStyleBackColor = true;
205 | this.btnSelectDevice.Click += new System.EventHandler(this.btnSelectDevice_Click);
206 | //
207 | // lblTitle
208 | //
209 | this.lblTitle.AutoSize = true;
210 | this.lblTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
211 | this.lblTitle.ForeColor = System.Drawing.Color.White;
212 | this.lblTitle.Location = new System.Drawing.Point(230, 6);
213 | this.lblTitle.Name = "lblTitle";
214 | this.lblTitle.Size = new System.Drawing.Size(120, 29);
215 | this.lblTitle.TabIndex = 2;
216 | this.lblTitle.Text = "iMultiBoot";
217 | //
218 | // btnBegin
219 | //
220 | this.btnBegin.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
221 | this.btnBegin.Location = new System.Drawing.Point(305, 264);
222 | this.btnBegin.Name = "btnBegin";
223 | this.btnBegin.Size = new System.Drawing.Size(131, 36);
224 | this.btnBegin.TabIndex = 3;
225 | this.btnBegin.Text = "Click Here to Begin";
226 | this.btnBegin.UseVisualStyleBackColor = true;
227 | this.btnBegin.Click += new System.EventHandler(this.btnBegin_Click);
228 | //
229 | // lblCopyrights
230 | //
231 | this.lblCopyrights.AutoSize = true;
232 | this.lblCopyrights.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
233 | this.lblCopyrights.ForeColor = System.Drawing.Color.White;
234 | this.lblCopyrights.Location = new System.Drawing.Point(254, 313);
235 | this.lblCopyrights.Name = "lblCopyrights";
236 | this.lblCopyrights.Size = new System.Drawing.Size(323, 18);
237 | this.lblCopyrights.TabIndex = 4;
238 | this.lblCopyrights.Text = "©2017 Pierre-Marc Bonneau, all rights reserved.";
239 | //
240 | // btnCredits
241 | //
242 | this.btnCredits.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
243 | this.btnCredits.Location = new System.Drawing.Point(441, 264);
244 | this.btnCredits.Name = "btnCredits";
245 | this.btnCredits.Size = new System.Drawing.Size(131, 36);
246 | this.btnCredits.TabIndex = 5;
247 | this.btnCredits.Text = "Credits";
248 | this.btnCredits.UseVisualStyleBackColor = true;
249 | this.btnCredits.Click += new System.EventHandler(this.btnCredits_Click);
250 | //
251 | // frmMain
252 | //
253 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
254 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
255 | this.BackColor = System.Drawing.Color.Black;
256 | this.ClientSize = new System.Drawing.Size(584, 340);
257 | this.Controls.Add(this.lblCopyrights);
258 | this.Controls.Add(this.pnlMain);
259 | this.Controls.Add(this.btnBegin);
260 | this.Controls.Add(this.lblTitle);
261 | this.Controls.Add(this.btnCredits);
262 | this.Name = "frmMain";
263 | this.Text = "iMultiBoot v0.6 (0F0917a)";
264 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmMain_FormClosing);
265 | this.pnlMain.ResumeLayout(false);
266 | this.gbConnectionSSH.ResumeLayout(false);
267 | this.gbConnectionSSH.PerformLayout();
268 | this.ResumeLayout(false);
269 | this.PerformLayout();
270 |
271 | }
272 |
273 | #endregion
274 |
275 | private System.Windows.Forms.Panel pnlMain;
276 | private System.Windows.Forms.Label lblTitle;
277 | private System.Windows.Forms.Button btnBegin;
278 | private System.Windows.Forms.Label lblCopyrights;
279 | private System.Windows.Forms.Button btnSelectOperatingSystems;
280 | private System.Windows.Forms.Button btnSelectDevice;
281 | private System.Windows.Forms.Button btnBuildFirmware;
282 | private System.Windows.Forms.Button btnConfigureSoftware;
283 | private System.Windows.Forms.Button btnInstallOperatingSystems;
284 | private System.Windows.Forms.Button btnManagePartitions;
285 | private System.Windows.Forms.GroupBox gbConnectionSSH;
286 | private System.Windows.Forms.TextBox txtUserPassword;
287 | private System.Windows.Forms.Label lblUserPassword;
288 | private System.Windows.Forms.TextBox txtUserName;
289 | private System.Windows.Forms.Label lblUserName;
290 | private System.Windows.Forms.TextBox txtDeviceHostName;
291 | private System.Windows.Forms.Label lblDeviceHostName;
292 | private System.Windows.Forms.Button btnCredits;
293 | }
294 | }
295 |
296 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmMain.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace iMultiBoot
5 | {
6 | public partial class frmMain : Form
7 | {
8 | iMultiBootController Controller;
9 |
10 | public frmMain()
11 | {
12 | InitializeComponent();
13 | MessageBox.Show("Some features of iMultiBoot require flashing low-level components which might contain critical information needed by the iOS device to work properly. This software is provided as-is without warranty, iMultiBoot can cause permanent damages to iOS devices. I'm not responsible of any damages this software may do to any of your equipment. By clicking OK, you understand this.", "Disclaimer", MessageBoxButtons.OK, MessageBoxIcon.Information);
14 | Controller = new iMultiBootController();
15 | }
16 |
17 | private void btnBegin_Click(object sender, EventArgs e)
18 | {
19 | pnlMain.Visible = true;
20 | }
21 |
22 | private void btnConfigureSoftware_Click(object sender, EventArgs e)
23 | {
24 | frmSoftwareConfiguration SoftwareConfiguration = new frmSoftwareConfiguration(Controller);
25 | SoftwareConfiguration.Show();
26 | }
27 |
28 | private void btnSelectDevice_Click(object sender, EventArgs e)
29 | {
30 | frmDeviceSelection DeviceSelection = new frmDeviceSelection(Controller);
31 | DeviceSelection.Show();
32 | btnManagePartitions.Enabled = true;
33 | }
34 |
35 | private void btnSelectOperatingSystems_Click(object sender, EventArgs e)
36 | {
37 | frmSelectionOS SelectionOS = new frmSelectionOS(Controller);
38 | SelectionOS.Show();
39 | btnBuildFirmware.Enabled = true;
40 | }
41 |
42 | private void btnBuildFirmware_Click(object sender, EventArgs e)
43 | {
44 | DialogResult DialogResult = MessageBox.Show("This will build the firmware package (IPSW) then erase restore the iOS device. Click OK only if you are ready to erase restore your iOS device, otherwise click cancel.", "Build Firmware Package and Restore iOS Device", MessageBoxButtons.OKCancel);
45 | if (DialogResult == DialogResult.OK)
46 | {
47 | MessageBox.Show("Set your iOS device in DFU Mode or Recovery Mode, then click OK.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
48 | Controller.PrepareMainOperatingSystemFirmwarePackage();
49 | gbConnectionSSH.Enabled = true;
50 | txtDeviceHostName.Enabled = true;
51 | txtUserName.Enabled = true;
52 | txtUserPassword.Enabled = true;
53 | btnInstallOperatingSystems.Enabled = true;
54 | }
55 | else if (DialogResult == DialogResult.Cancel)
56 | {
57 | return;
58 | }
59 | }
60 |
61 | private void btnManagePartitions_Click(object sender, EventArgs e)
62 | {
63 | frmPartitionManager PartitionManager = new frmPartitionManager(Controller.getAppleMobileDevice(), Controller);
64 | PartitionManager.Show();
65 | btnSelectOperatingSystems.Enabled = true;
66 | }
67 |
68 | private void btnInstallOperatingSystems_Click(object sender, EventArgs e)
69 | {
70 | Controller.ConnectSSH(txtDeviceHostName.Text, txtUserName.Text, txtUserPassword.Text);
71 | MessageBox.Show("Connected to iOS device, click OK to start the install process.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
72 | Controller.InstallRequiredTools();
73 | Controller.PartitionDeviceStorage();
74 | Controller.RestoreOperatingSystems();
75 | MessageBox.Show("Installation successfully completed.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
76 | }
77 |
78 | private void btnCredits_Click(object sender, EventArgs e)
79 | {
80 | MessageBox.Show("This project would not be possible without help from :" + Environment.NewLine + "@xerub" + Environment.NewLine + "@winocm" + Environment.NewLine + "@iH8Sn0w" + Environment.NewLine + "@JonathanSeals" + Environment.NewLine + "@danzatt", "Credits", MessageBoxButtons.OK, MessageBoxIcon.Information);
81 | }
82 |
83 | private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
84 | {
85 | Controller.CleanupWorkingDirectory();
86 | }
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmMain.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmPartitionManager.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace iMultiBoot
2 | {
3 | partial class frmPartitionManager
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.lblDeviceAvailableStorage = new System.Windows.Forms.Label();
32 | this.txtDeviceAvailableStorage = new System.Windows.Forms.TextBox();
33 | this.lbPartitionTable = new System.Windows.Forms.ListBox();
34 | this.label1 = new System.Windows.Forms.Label();
35 | this.gbPartitionInformation = new System.Windows.Forms.GroupBox();
36 | this.lblPartitionInformationSize = new System.Windows.Forms.Label();
37 | this.txtPartitionInformationSize = new System.Windows.Forms.TextBox();
38 | this.txtPartitionInformationNumber = new System.Windows.Forms.TextBox();
39 | this.lblPartitionInformationNumber = new System.Windows.Forms.Label();
40 | this.gbPartitionCreation = new System.Windows.Forms.GroupBox();
41 | this.cbJournaled = new System.Windows.Forms.CheckBox();
42 | this.cbProtected = new System.Windows.Forms.CheckBox();
43 | this.txtPartitionCreationSize = new System.Windows.Forms.TextBox();
44 | this.lblPartitionCreationSize = new System.Windows.Forms.Label();
45 | this.txtPartitionCreationName = new System.Windows.Forms.TextBox();
46 | this.lblPartitionCreationName = new System.Windows.Forms.Label();
47 | this.btnDeletePartition = new System.Windows.Forms.Button();
48 | this.btnCreatePartition = new System.Windows.Forms.Button();
49 | this.btnResizeDataPartition = new System.Windows.Forms.Button();
50 | this.btnSaveSettings = new System.Windows.Forms.Button();
51 | this.gbPartitionTablePreparation = new System.Windows.Forms.GroupBox();
52 | this.txtNewDataPartitionSize = new System.Windows.Forms.TextBox();
53 | this.lblDataPartitionSize = new System.Windows.Forms.Label();
54 | this.gbPartitionInformation.SuspendLayout();
55 | this.gbPartitionCreation.SuspendLayout();
56 | this.gbPartitionTablePreparation.SuspendLayout();
57 | this.SuspendLayout();
58 | //
59 | // lblDeviceAvailableStorage
60 | //
61 | this.lblDeviceAvailableStorage.AutoSize = true;
62 | this.lblDeviceAvailableStorage.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
63 | this.lblDeviceAvailableStorage.ForeColor = System.Drawing.Color.White;
64 | this.lblDeviceAvailableStorage.Location = new System.Drawing.Point(13, 474);
65 | this.lblDeviceAvailableStorage.Name = "lblDeviceAvailableStorage";
66 | this.lblDeviceAvailableStorage.Size = new System.Drawing.Size(199, 16);
67 | this.lblDeviceAvailableStorage.TabIndex = 0;
68 | this.lblDeviceAvailableStorage.Text = "Device Available Storage (MB) :";
69 | //
70 | // txtDeviceAvailableStorage
71 | //
72 | this.txtDeviceAvailableStorage.Enabled = false;
73 | this.txtDeviceAvailableStorage.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
74 | this.txtDeviceAvailableStorage.Location = new System.Drawing.Point(218, 471);
75 | this.txtDeviceAvailableStorage.Name = "txtDeviceAvailableStorage";
76 | this.txtDeviceAvailableStorage.ReadOnly = true;
77 | this.txtDeviceAvailableStorage.Size = new System.Drawing.Size(83, 22);
78 | this.txtDeviceAvailableStorage.TabIndex = 1;
79 | //
80 | // lbPartitionTable
81 | //
82 | this.lbPartitionTable.FormattingEnabled = true;
83 | this.lbPartitionTable.Location = new System.Drawing.Point(12, 26);
84 | this.lbPartitionTable.Name = "lbPartitionTable";
85 | this.lbPartitionTable.Size = new System.Drawing.Size(168, 56);
86 | this.lbPartitionTable.TabIndex = 2;
87 | this.lbPartitionTable.SelectedIndexChanged += new System.EventHandler(this.lbPartitionTable_SelectedIndexChanged);
88 | //
89 | // label1
90 | //
91 | this.label1.AutoSize = true;
92 | this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
93 | this.label1.ForeColor = System.Drawing.Color.White;
94 | this.label1.Location = new System.Drawing.Point(9, 7);
95 | this.label1.Name = "label1";
96 | this.label1.Size = new System.Drawing.Size(146, 16);
97 | this.label1.TabIndex = 3;
98 | this.label1.Text = "Current Partition Table :";
99 | //
100 | // gbPartitionInformation
101 | //
102 | this.gbPartitionInformation.Controls.Add(this.lblPartitionInformationSize);
103 | this.gbPartitionInformation.Controls.Add(this.txtPartitionInformationSize);
104 | this.gbPartitionInformation.Controls.Add(this.txtPartitionInformationNumber);
105 | this.gbPartitionInformation.Controls.Add(this.lblPartitionInformationNumber);
106 | this.gbPartitionInformation.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
107 | this.gbPartitionInformation.ForeColor = System.Drawing.Color.White;
108 | this.gbPartitionInformation.Location = new System.Drawing.Point(12, 210);
109 | this.gbPartitionInformation.Name = "gbPartitionInformation";
110 | this.gbPartitionInformation.Size = new System.Drawing.Size(463, 70);
111 | this.gbPartitionInformation.TabIndex = 4;
112 | this.gbPartitionInformation.TabStop = false;
113 | this.gbPartitionInformation.Text = "Partition Information";
114 | //
115 | // lblPartitionInformationSize
116 | //
117 | this.lblPartitionInformationSize.AutoSize = true;
118 | this.lblPartitionInformationSize.Location = new System.Drawing.Point(286, 30);
119 | this.lblPartitionInformationSize.Name = "lblPartitionInformationSize";
120 | this.lblPartitionInformationSize.Size = new System.Drawing.Size(71, 16);
121 | this.lblPartitionInformationSize.TabIndex = 11;
122 | this.lblPartitionInformationSize.Text = "Size (MB) :";
123 | //
124 | // txtPartitionInformationSize
125 | //
126 | this.txtPartitionInformationSize.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
127 | this.txtPartitionInformationSize.Location = new System.Drawing.Point(365, 27);
128 | this.txtPartitionInformationSize.Name = "txtPartitionInformationSize";
129 | this.txtPartitionInformationSize.ReadOnly = true;
130 | this.txtPartitionInformationSize.Size = new System.Drawing.Size(83, 22);
131 | this.txtPartitionInformationSize.TabIndex = 10;
132 | //
133 | // txtPartitionInformationNumber
134 | //
135 | this.txtPartitionInformationNumber.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
136 | this.txtPartitionInformationNumber.Location = new System.Drawing.Point(82, 27);
137 | this.txtPartitionInformationNumber.Name = "txtPartitionInformationNumber";
138 | this.txtPartitionInformationNumber.ReadOnly = true;
139 | this.txtPartitionInformationNumber.Size = new System.Drawing.Size(83, 22);
140 | this.txtPartitionInformationNumber.TabIndex = 8;
141 | //
142 | // lblPartitionInformationNumber
143 | //
144 | this.lblPartitionInformationNumber.AutoSize = true;
145 | this.lblPartitionInformationNumber.Location = new System.Drawing.Point(15, 30);
146 | this.lblPartitionInformationNumber.Name = "lblPartitionInformationNumber";
147 | this.lblPartitionInformationNumber.Size = new System.Drawing.Size(62, 16);
148 | this.lblPartitionInformationNumber.TabIndex = 0;
149 | this.lblPartitionInformationNumber.Text = "Number :";
150 | //
151 | // gbPartitionCreation
152 | //
153 | this.gbPartitionCreation.Controls.Add(this.cbJournaled);
154 | this.gbPartitionCreation.Controls.Add(this.cbProtected);
155 | this.gbPartitionCreation.Controls.Add(this.txtPartitionCreationSize);
156 | this.gbPartitionCreation.Controls.Add(this.lblPartitionCreationSize);
157 | this.gbPartitionCreation.Controls.Add(this.txtPartitionCreationName);
158 | this.gbPartitionCreation.Controls.Add(this.lblPartitionCreationName);
159 | this.gbPartitionCreation.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
160 | this.gbPartitionCreation.ForeColor = System.Drawing.Color.White;
161 | this.gbPartitionCreation.Location = new System.Drawing.Point(15, 338);
162 | this.gbPartitionCreation.Name = "gbPartitionCreation";
163 | this.gbPartitionCreation.Size = new System.Drawing.Size(463, 110);
164 | this.gbPartitionCreation.TabIndex = 5;
165 | this.gbPartitionCreation.TabStop = false;
166 | this.gbPartitionCreation.Text = "Partition Creation";
167 | //
168 | // cbJournaled
169 | //
170 | this.cbJournaled.AutoSize = true;
171 | this.cbJournaled.Location = new System.Drawing.Point(362, 84);
172 | this.cbJournaled.Name = "cbJournaled";
173 | this.cbJournaled.Size = new System.Drawing.Size(87, 20);
174 | this.cbJournaled.TabIndex = 15;
175 | this.cbJournaled.Text = "Journaled";
176 | this.cbJournaled.UseVisualStyleBackColor = true;
177 | //
178 | // cbProtected
179 | //
180 | this.cbProtected.AutoSize = true;
181 | this.cbProtected.Location = new System.Drawing.Point(362, 58);
182 | this.cbProtected.Name = "cbProtected";
183 | this.cbProtected.Size = new System.Drawing.Size(85, 20);
184 | this.cbProtected.TabIndex = 14;
185 | this.cbProtected.Text = "Protected";
186 | this.cbProtected.UseVisualStyleBackColor = true;
187 | //
188 | // txtPartitionCreationSize
189 | //
190 | this.txtPartitionCreationSize.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
191 | this.txtPartitionCreationSize.Location = new System.Drawing.Point(362, 26);
192 | this.txtPartitionCreationSize.Name = "txtPartitionCreationSize";
193 | this.txtPartitionCreationSize.Size = new System.Drawing.Size(83, 22);
194 | this.txtPartitionCreationSize.TabIndex = 13;
195 | //
196 | // lblPartitionCreationSize
197 | //
198 | this.lblPartitionCreationSize.AutoSize = true;
199 | this.lblPartitionCreationSize.Location = new System.Drawing.Point(285, 29);
200 | this.lblPartitionCreationSize.Name = "lblPartitionCreationSize";
201 | this.lblPartitionCreationSize.Size = new System.Drawing.Size(71, 16);
202 | this.lblPartitionCreationSize.TabIndex = 12;
203 | this.lblPartitionCreationSize.Text = "Size (MB) :";
204 | //
205 | // txtPartitionCreationName
206 | //
207 | this.txtPartitionCreationName.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
208 | this.txtPartitionCreationName.Location = new System.Drawing.Point(79, 26);
209 | this.txtPartitionCreationName.Name = "txtPartitionCreationName";
210 | this.txtPartitionCreationName.Size = new System.Drawing.Size(83, 22);
211 | this.txtPartitionCreationName.TabIndex = 12;
212 | //
213 | // lblPartitionCreationName
214 | //
215 | this.lblPartitionCreationName.AutoSize = true;
216 | this.lblPartitionCreationName.Location = new System.Drawing.Point(15, 29);
217 | this.lblPartitionCreationName.Name = "lblPartitionCreationName";
218 | this.lblPartitionCreationName.Size = new System.Drawing.Size(51, 16);
219 | this.lblPartitionCreationName.TabIndex = 12;
220 | this.lblPartitionCreationName.Text = "Name :";
221 | //
222 | // btnDeletePartition
223 | //
224 | this.btnDeletePartition.Enabled = false;
225 | this.btnDeletePartition.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
226 | this.btnDeletePartition.Location = new System.Drawing.Point(351, 286);
227 | this.btnDeletePartition.Name = "btnDeletePartition";
228 | this.btnDeletePartition.Size = new System.Drawing.Size(125, 33);
229 | this.btnDeletePartition.TabIndex = 6;
230 | this.btnDeletePartition.Text = "Delete Partition";
231 | this.btnDeletePartition.UseVisualStyleBackColor = true;
232 | this.btnDeletePartition.Click += new System.EventHandler(this.btnDeletePartition_Click);
233 | //
234 | // btnCreatePartition
235 | //
236 | this.btnCreatePartition.Enabled = false;
237 | this.btnCreatePartition.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
238 | this.btnCreatePartition.Location = new System.Drawing.Point(353, 466);
239 | this.btnCreatePartition.Name = "btnCreatePartition";
240 | this.btnCreatePartition.Size = new System.Drawing.Size(125, 33);
241 | this.btnCreatePartition.TabIndex = 7;
242 | this.btnCreatePartition.Text = "Create Partition";
243 | this.btnCreatePartition.UseVisualStyleBackColor = true;
244 | this.btnCreatePartition.Click += new System.EventHandler(this.btnCreatePartition_Click);
245 | //
246 | // btnResizeDataPartition
247 | //
248 | this.btnResizeDataPartition.Enabled = false;
249 | this.btnResizeDataPartition.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
250 | this.btnResizeDataPartition.ForeColor = System.Drawing.Color.Black;
251 | this.btnResizeDataPartition.Location = new System.Drawing.Point(289, 31);
252 | this.btnResizeDataPartition.Name = "btnResizeDataPartition";
253 | this.btnResizeDataPartition.Size = new System.Drawing.Size(159, 33);
254 | this.btnResizeDataPartition.TabIndex = 8;
255 | this.btnResizeDataPartition.Text = "Resize Data Partition";
256 | this.btnResizeDataPartition.UseVisualStyleBackColor = true;
257 | this.btnResizeDataPartition.Click += new System.EventHandler(this.btnResizeDataPartition_Click);
258 | //
259 | // btnSaveSettings
260 | //
261 | this.btnSaveSettings.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
262 | this.btnSaveSettings.Location = new System.Drawing.Point(353, 506);
263 | this.btnSaveSettings.Name = "btnSaveSettings";
264 | this.btnSaveSettings.Size = new System.Drawing.Size(125, 33);
265 | this.btnSaveSettings.TabIndex = 9;
266 | this.btnSaveSettings.Text = "Save Settings";
267 | this.btnSaveSettings.UseVisualStyleBackColor = true;
268 | this.btnSaveSettings.Click += new System.EventHandler(this.btnSaveSettings_Click);
269 | //
270 | // gbPartitionTablePreparation
271 | //
272 | this.gbPartitionTablePreparation.BackColor = System.Drawing.Color.Black;
273 | this.gbPartitionTablePreparation.Controls.Add(this.txtNewDataPartitionSize);
274 | this.gbPartitionTablePreparation.Controls.Add(this.lblDataPartitionSize);
275 | this.gbPartitionTablePreparation.Controls.Add(this.btnResizeDataPartition);
276 | this.gbPartitionTablePreparation.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
277 | this.gbPartitionTablePreparation.ForeColor = System.Drawing.Color.White;
278 | this.gbPartitionTablePreparation.Location = new System.Drawing.Point(12, 99);
279 | this.gbPartitionTablePreparation.Name = "gbPartitionTablePreparation";
280 | this.gbPartitionTablePreparation.Size = new System.Drawing.Size(463, 85);
281 | this.gbPartitionTablePreparation.TabIndex = 10;
282 | this.gbPartitionTablePreparation.TabStop = false;
283 | this.gbPartitionTablePreparation.Text = "Partition Table Preparation";
284 | //
285 | // txtNewDataPartitionSize
286 | //
287 | this.txtNewDataPartitionSize.Location = new System.Drawing.Point(174, 36);
288 | this.txtNewDataPartitionSize.Name = "txtNewDataPartitionSize";
289 | this.txtNewDataPartitionSize.Size = new System.Drawing.Size(60, 22);
290 | this.txtNewDataPartitionSize.TabIndex = 13;
291 | //
292 | // lblDataPartitionSize
293 | //
294 | this.lblDataPartitionSize.AutoSize = true;
295 | this.lblDataPartitionSize.Location = new System.Drawing.Point(15, 39);
296 | this.lblDataPartitionSize.Name = "lblDataPartitionSize";
297 | this.lblDataPartitionSize.Size = new System.Drawing.Size(154, 16);
298 | this.lblDataPartitionSize.TabIndex = 12;
299 | this.lblDataPartitionSize.Text = "Data Partition Size (MB) :";
300 | //
301 | // frmPartitionManager
302 | //
303 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
304 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
305 | this.BackColor = System.Drawing.Color.Black;
306 | this.ClientSize = new System.Drawing.Size(490, 551);
307 | this.Controls.Add(this.gbPartitionTablePreparation);
308 | this.Controls.Add(this.btnSaveSettings);
309 | this.Controls.Add(this.btnCreatePartition);
310 | this.Controls.Add(this.btnDeletePartition);
311 | this.Controls.Add(this.gbPartitionCreation);
312 | this.Controls.Add(this.gbPartitionInformation);
313 | this.Controls.Add(this.label1);
314 | this.Controls.Add(this.lbPartitionTable);
315 | this.Controls.Add(this.txtDeviceAvailableStorage);
316 | this.Controls.Add(this.lblDeviceAvailableStorage);
317 | this.Name = "frmPartitionManager";
318 | this.Text = "Partitions Manager";
319 | this.gbPartitionInformation.ResumeLayout(false);
320 | this.gbPartitionInformation.PerformLayout();
321 | this.gbPartitionCreation.ResumeLayout(false);
322 | this.gbPartitionCreation.PerformLayout();
323 | this.gbPartitionTablePreparation.ResumeLayout(false);
324 | this.gbPartitionTablePreparation.PerformLayout();
325 | this.ResumeLayout(false);
326 | this.PerformLayout();
327 |
328 | }
329 |
330 | #endregion
331 |
332 | private System.Windows.Forms.Label lblDeviceAvailableStorage;
333 | private System.Windows.Forms.TextBox txtDeviceAvailableStorage;
334 | private System.Windows.Forms.ListBox lbPartitionTable;
335 | private System.Windows.Forms.Label label1;
336 | private System.Windows.Forms.GroupBox gbPartitionInformation;
337 | private System.Windows.Forms.Label lblPartitionInformationSize;
338 | private System.Windows.Forms.TextBox txtPartitionInformationSize;
339 | private System.Windows.Forms.TextBox txtPartitionInformationNumber;
340 | private System.Windows.Forms.Label lblPartitionInformationNumber;
341 | private System.Windows.Forms.GroupBox gbPartitionCreation;
342 | private System.Windows.Forms.Button btnDeletePartition;
343 | private System.Windows.Forms.Button btnCreatePartition;
344 | private System.Windows.Forms.TextBox txtPartitionCreationSize;
345 | private System.Windows.Forms.Label lblPartitionCreationSize;
346 | private System.Windows.Forms.TextBox txtPartitionCreationName;
347 | private System.Windows.Forms.Label lblPartitionCreationName;
348 | private System.Windows.Forms.Button btnResizeDataPartition;
349 | private System.Windows.Forms.Button btnSaveSettings;
350 | private System.Windows.Forms.GroupBox gbPartitionTablePreparation;
351 | private System.Windows.Forms.TextBox txtNewDataPartitionSize;
352 | private System.Windows.Forms.Label lblDataPartitionSize;
353 | private System.Windows.Forms.CheckBox cbJournaled;
354 | private System.Windows.Forms.CheckBox cbProtected;
355 | }
356 | }
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmPartitionManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace iMultiBoot
5 | {
6 | public partial class frmPartitionManager : Form
7 | {
8 | AppleMobileDevice Device;
9 | iMultiBootController Controller;
10 | int DeviceAvailableStorage = 0;
11 |
12 | public frmPartitionManager(AppleMobileDevice pDevice, iMultiBootController pController)
13 | {
14 | InitializeComponent();
15 | Device = pDevice;
16 | Controller = pController;
17 | if (pDevice != null)
18 | {
19 | lbPartitionTable.Items.Add(Device.SystemPartition.Name);
20 | lbPartitionTable.Items.Add(Device.DataPartition.Name);
21 | }
22 | txtDeviceAvailableStorage.Text = Convert.ToString(DeviceAvailableStorage);
23 | }
24 |
25 | private void btnResizeDataPartition_Click(object sender, EventArgs e)
26 | {
27 | Device.PartitionList.RemoveAt(1);
28 | Partition NewPartition = new Partition("Data", Convert.ToInt32(txtNewDataPartitionSize.Text));
29 | Device.DataPartition = NewPartition;
30 | Device.PartitionList.Add(NewPartition);
31 | DeviceAvailableStorage = Device.NandTotalCapacity - Device.SystemPartition.Size - Device.DataPartition.Size;
32 | txtDeviceAvailableStorage.Text = Convert.ToString(DeviceAvailableStorage);
33 | btnCreatePartition.Enabled = true;
34 | btnDeletePartition.Enabled = true;
35 | }
36 |
37 | private void lbPartitionTable_SelectedIndexChanged(object sender, EventArgs e)
38 | {
39 | btnResizeDataPartition.Enabled = false;
40 | if (lbPartitionTable.SelectedIndex == 1)
41 | {
42 | btnResizeDataPartition.Enabled = true;
43 | }
44 | txtPartitionInformationNumber.Text = Convert.ToString(lbPartitionTable.SelectedIndex + 1);
45 | txtPartitionInformationSize.Text = Convert.ToString(Device.PartitionList[lbPartitionTable.SelectedIndex].Size);
46 | }
47 |
48 | private void btnDeletePartition_Click(object sender, EventArgs e)
49 | {
50 | if (lbPartitionTable.SelectedIndex == 0 || lbPartitionTable.SelectedIndex == 1)
51 | {
52 | MessageBox.Show("Can't delete primary operating system partitions.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
53 | return;
54 | }
55 | lbPartitionTable.SelectedIndex--;
56 | lbPartitionTable.Items.RemoveAt(Convert.ToInt32(txtPartitionInformationNumber.Text));
57 | DeviceAvailableStorage = DeviceAvailableStorage + Device.PartitionList[Convert.ToInt32(txtPartitionInformationNumber.Text)].Size;
58 | Device.PartitionList.RemoveAt(Convert.ToInt32(txtPartitionInformationNumber.Text));
59 | txtDeviceAvailableStorage.Text = Convert.ToString(DeviceAvailableStorage);
60 | }
61 |
62 | private void btnCreatePartition_Click(object sender, EventArgs e)
63 | {
64 | if ((DeviceAvailableStorage - Convert.ToInt32(txtPartitionCreationSize.Text)) < 256)
65 | {
66 | MessageBox.Show("Not enough disk space is available to create the new partition.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
67 | return;
68 | }
69 | Partition NewPartition = new Partition(txtPartitionCreationName.Text,Convert.ToInt32(txtPartitionCreationSize.Text));
70 | NewPartition.Number = Convert.ToString(Device.PartitionList.Count + 1);
71 | if (cbJournaled.Checked == true)
72 | {
73 | NewPartition.JournaledFlag = true;
74 | }
75 |
76 | if (cbProtected.Checked == true)
77 | {
78 | NewPartition.ProtectedFlag = true;
79 | }
80 | Device.PartitionList.Add(NewPartition);
81 | lbPartitionTable.Items.Add(NewPartition.Name);
82 | DeviceAvailableStorage = DeviceAvailableStorage - NewPartition.Size;
83 | txtDeviceAvailableStorage.Text = Convert.ToString(DeviceAvailableStorage);
84 | txtPartitionCreationName.Text = "";
85 | txtPartitionCreationSize.Text = "";
86 | }
87 |
88 | private void btnSaveSettings_Click(object sender, EventArgs e)
89 | {
90 | Close();
91 | }
92 | }
93 | }
94 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmPartitionManager.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmSelectionOS.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace iMultiBoot
2 | {
3 | partial class frmSelectionOS
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.btnSelectMainOS = new System.Windows.Forms.Button();
32 | this.lblSelectedMainOS = new System.Windows.Forms.Label();
33 | this.btnSelectSecondaryOS = new System.Windows.Forms.Button();
34 | this.btnSelectThirdOS = new System.Windows.Forms.Button();
35 | this.btnSelectFourthOS = new System.Windows.Forms.Button();
36 | this.lblSelectSecondaryOS = new System.Windows.Forms.Label();
37 | this.lblSelectThirdOS = new System.Windows.Forms.Label();
38 | this.lblSelectFourthOS = new System.Windows.Forms.Label();
39 | this.btnSaveSettings = new System.Windows.Forms.Button();
40 | this.btnConfigureMainOS = new System.Windows.Forms.Button();
41 | this.btnConfigureSecondaryOS = new System.Windows.Forms.Button();
42 | this.btnConfigureThirdOS = new System.Windows.Forms.Button();
43 | this.btnConfigureFourthOS = new System.Windows.Forms.Button();
44 | this.SuspendLayout();
45 | //
46 | // btnSelectMainOS
47 | //
48 | this.btnSelectMainOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
49 | this.btnSelectMainOS.Location = new System.Drawing.Point(12, 12);
50 | this.btnSelectMainOS.Name = "btnSelectMainOS";
51 | this.btnSelectMainOS.Size = new System.Drawing.Size(149, 37);
52 | this.btnSelectMainOS.TabIndex = 0;
53 | this.btnSelectMainOS.Text = "Select Main OS";
54 | this.btnSelectMainOS.UseVisualStyleBackColor = true;
55 | this.btnSelectMainOS.Click += new System.EventHandler(this.btnSelectMainOS_Click);
56 | //
57 | // lblSelectedMainOS
58 | //
59 | this.lblSelectedMainOS.AutoSize = true;
60 | this.lblSelectedMainOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
61 | this.lblSelectedMainOS.ForeColor = System.Drawing.Color.White;
62 | this.lblSelectedMainOS.Location = new System.Drawing.Point(213, 22);
63 | this.lblSelectedMainOS.Name = "lblSelectedMainOS";
64 | this.lblSelectedMainOS.Size = new System.Drawing.Size(137, 16);
65 | this.lblSelectedMainOS.TabIndex = 1;
66 | this.lblSelectedMainOS.Text = "No Main OS Selected";
67 | //
68 | // btnSelectSecondaryOS
69 | //
70 | this.btnSelectSecondaryOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
71 | this.btnSelectSecondaryOS.Location = new System.Drawing.Point(12, 75);
72 | this.btnSelectSecondaryOS.Name = "btnSelectSecondaryOS";
73 | this.btnSelectSecondaryOS.Size = new System.Drawing.Size(149, 37);
74 | this.btnSelectSecondaryOS.TabIndex = 2;
75 | this.btnSelectSecondaryOS.Text = "Select Secondary OS";
76 | this.btnSelectSecondaryOS.UseVisualStyleBackColor = true;
77 | this.btnSelectSecondaryOS.Click += new System.EventHandler(this.btnSelectSecondaryOS_Click);
78 | //
79 | // btnSelectThirdOS
80 | //
81 | this.btnSelectThirdOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
82 | this.btnSelectThirdOS.Location = new System.Drawing.Point(12, 141);
83 | this.btnSelectThirdOS.Name = "btnSelectThirdOS";
84 | this.btnSelectThirdOS.Size = new System.Drawing.Size(149, 37);
85 | this.btnSelectThirdOS.TabIndex = 3;
86 | this.btnSelectThirdOS.Text = "Select Third OS";
87 | this.btnSelectThirdOS.UseVisualStyleBackColor = true;
88 | //
89 | // btnSelectFourthOS
90 | //
91 | this.btnSelectFourthOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
92 | this.btnSelectFourthOS.Location = new System.Drawing.Point(12, 210);
93 | this.btnSelectFourthOS.Name = "btnSelectFourthOS";
94 | this.btnSelectFourthOS.Size = new System.Drawing.Size(149, 37);
95 | this.btnSelectFourthOS.TabIndex = 4;
96 | this.btnSelectFourthOS.Text = "Select Fourth OS";
97 | this.btnSelectFourthOS.UseVisualStyleBackColor = true;
98 | //
99 | // lblSelectSecondaryOS
100 | //
101 | this.lblSelectSecondaryOS.AutoSize = true;
102 | this.lblSelectSecondaryOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
103 | this.lblSelectSecondaryOS.ForeColor = System.Drawing.Color.White;
104 | this.lblSelectSecondaryOS.Location = new System.Drawing.Point(213, 85);
105 | this.lblSelectSecondaryOS.Name = "lblSelectSecondaryOS";
106 | this.lblSelectSecondaryOS.Size = new System.Drawing.Size(105, 16);
107 | this.lblSelectSecondaryOS.TabIndex = 5;
108 | this.lblSelectSecondaryOS.Text = "No OS Selected";
109 | //
110 | // lblSelectThirdOS
111 | //
112 | this.lblSelectThirdOS.AutoSize = true;
113 | this.lblSelectThirdOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
114 | this.lblSelectThirdOS.ForeColor = System.Drawing.Color.White;
115 | this.lblSelectThirdOS.Location = new System.Drawing.Point(213, 151);
116 | this.lblSelectThirdOS.Name = "lblSelectThirdOS";
117 | this.lblSelectThirdOS.Size = new System.Drawing.Size(105, 16);
118 | this.lblSelectThirdOS.TabIndex = 6;
119 | this.lblSelectThirdOS.Text = "No OS Selected";
120 | //
121 | // lblSelectFourthOS
122 | //
123 | this.lblSelectFourthOS.AutoSize = true;
124 | this.lblSelectFourthOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
125 | this.lblSelectFourthOS.ForeColor = System.Drawing.Color.White;
126 | this.lblSelectFourthOS.Location = new System.Drawing.Point(213, 220);
127 | this.lblSelectFourthOS.Name = "lblSelectFourthOS";
128 | this.lblSelectFourthOS.Size = new System.Drawing.Size(105, 16);
129 | this.lblSelectFourthOS.TabIndex = 7;
130 | this.lblSelectFourthOS.Text = "No OS Selected";
131 | //
132 | // btnSaveSettings
133 | //
134 | this.btnSaveSettings.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
135 | this.btnSaveSettings.Location = new System.Drawing.Point(462, 280);
136 | this.btnSaveSettings.Name = "btnSaveSettings";
137 | this.btnSaveSettings.Size = new System.Drawing.Size(119, 37);
138 | this.btnSaveSettings.TabIndex = 8;
139 | this.btnSaveSettings.Text = "Save Settings";
140 | this.btnSaveSettings.UseVisualStyleBackColor = true;
141 | this.btnSaveSettings.Click += new System.EventHandler(this.btnSaveSettings_Click);
142 | //
143 | // btnConfigureMainOS
144 | //
145 | this.btnConfigureMainOS.Enabled = false;
146 | this.btnConfigureMainOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
147 | this.btnConfigureMainOS.Location = new System.Drawing.Point(462, 12);
148 | this.btnConfigureMainOS.Name = "btnConfigureMainOS";
149 | this.btnConfigureMainOS.Size = new System.Drawing.Size(122, 37);
150 | this.btnConfigureMainOS.TabIndex = 9;
151 | this.btnConfigureMainOS.Text = "Configure";
152 | this.btnConfigureMainOS.UseVisualStyleBackColor = true;
153 | this.btnConfigureMainOS.Click += new System.EventHandler(this.btnConfigureMainOS_Click);
154 | //
155 | // btnConfigureSecondaryOS
156 | //
157 | this.btnConfigureSecondaryOS.Enabled = false;
158 | this.btnConfigureSecondaryOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
159 | this.btnConfigureSecondaryOS.Location = new System.Drawing.Point(462, 75);
160 | this.btnConfigureSecondaryOS.Name = "btnConfigureSecondaryOS";
161 | this.btnConfigureSecondaryOS.Size = new System.Drawing.Size(122, 37);
162 | this.btnConfigureSecondaryOS.TabIndex = 10;
163 | this.btnConfigureSecondaryOS.Text = "Configure";
164 | this.btnConfigureSecondaryOS.UseVisualStyleBackColor = true;
165 | this.btnConfigureSecondaryOS.Click += new System.EventHandler(this.btnConfigureSecondaryOS_Click);
166 | //
167 | // btnConfigureThirdOS
168 | //
169 | this.btnConfigureThirdOS.Enabled = false;
170 | this.btnConfigureThirdOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
171 | this.btnConfigureThirdOS.Location = new System.Drawing.Point(462, 141);
172 | this.btnConfigureThirdOS.Name = "btnConfigureThirdOS";
173 | this.btnConfigureThirdOS.Size = new System.Drawing.Size(122, 37);
174 | this.btnConfigureThirdOS.TabIndex = 11;
175 | this.btnConfigureThirdOS.Text = "Configure";
176 | this.btnConfigureThirdOS.UseVisualStyleBackColor = true;
177 | //
178 | // btnConfigureFourthOS
179 | //
180 | this.btnConfigureFourthOS.Enabled = false;
181 | this.btnConfigureFourthOS.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
182 | this.btnConfigureFourthOS.Location = new System.Drawing.Point(462, 210);
183 | this.btnConfigureFourthOS.Name = "btnConfigureFourthOS";
184 | this.btnConfigureFourthOS.Size = new System.Drawing.Size(122, 37);
185 | this.btnConfigureFourthOS.TabIndex = 12;
186 | this.btnConfigureFourthOS.Text = "Configure";
187 | this.btnConfigureFourthOS.UseVisualStyleBackColor = true;
188 | //
189 | // frmSelectionOS
190 | //
191 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
192 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
193 | this.BackColor = System.Drawing.Color.Black;
194 | this.ClientSize = new System.Drawing.Size(593, 329);
195 | this.Controls.Add(this.btnConfigureFourthOS);
196 | this.Controls.Add(this.btnConfigureThirdOS);
197 | this.Controls.Add(this.btnConfigureSecondaryOS);
198 | this.Controls.Add(this.btnConfigureMainOS);
199 | this.Controls.Add(this.btnSaveSettings);
200 | this.Controls.Add(this.lblSelectFourthOS);
201 | this.Controls.Add(this.lblSelectThirdOS);
202 | this.Controls.Add(this.lblSelectSecondaryOS);
203 | this.Controls.Add(this.btnSelectFourthOS);
204 | this.Controls.Add(this.btnSelectThirdOS);
205 | this.Controls.Add(this.btnSelectSecondaryOS);
206 | this.Controls.Add(this.lblSelectedMainOS);
207 | this.Controls.Add(this.btnSelectMainOS);
208 | this.Name = "frmSelectionOS";
209 | this.Text = "Operating Systems Selection";
210 | this.ResumeLayout(false);
211 | this.PerformLayout();
212 |
213 | }
214 |
215 | #endregion
216 |
217 | private System.Windows.Forms.Button btnSelectMainOS;
218 | private System.Windows.Forms.Label lblSelectedMainOS;
219 | private System.Windows.Forms.Button btnSelectSecondaryOS;
220 | private System.Windows.Forms.Button btnSelectThirdOS;
221 | private System.Windows.Forms.Button btnSelectFourthOS;
222 | private System.Windows.Forms.Label lblSelectSecondaryOS;
223 | private System.Windows.Forms.Label lblSelectThirdOS;
224 | private System.Windows.Forms.Label lblSelectFourthOS;
225 | private System.Windows.Forms.Button btnSaveSettings;
226 | private System.Windows.Forms.Button btnConfigureMainOS;
227 | private System.Windows.Forms.Button btnConfigureSecondaryOS;
228 | private System.Windows.Forms.Button btnConfigureThirdOS;
229 | private System.Windows.Forms.Button btnConfigureFourthOS;
230 | }
231 | }
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmSelectionOS.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 | using System.IO;
11 |
12 | namespace iMultiBoot
13 | {
14 | public partial class frmSelectionOS : Form
15 | {
16 | iMultiBootController Controller;
17 | AppleMobileDevice iDevice;
18 |
19 | public frmSelectionOS()
20 | {
21 | InitializeComponent();
22 | }
23 |
24 | public frmSelectionOS(iMultiBootController pController)
25 | {
26 | InitializeComponent();
27 | Controller = pController;
28 | iDevice = Controller.getAppleMobileDevice();
29 | }
30 |
31 | private void btnSelectMainOS_Click(object sender, EventArgs e)
32 | {
33 | OpenFileDialog vOpenFileDialog = new OpenFileDialog();
34 | vOpenFileDialog.Title = "Select Main OS IPSW";
35 | vOpenFileDialog.Filter = "IPSW File|*.ipsw";
36 | DialogResult result = vOpenFileDialog.ShowDialog();
37 | Controller.setMainOperatingSystemPathIPSW(vOpenFileDialog.FileName);
38 | Controller.CreateOperatingSystemInstance(vOpenFileDialog.FileName,0);
39 | lblSelectedMainOS.Text = Path.GetFileName(vOpenFileDialog.FileName);
40 | btnConfigureMainOS.Enabled = true;
41 | }
42 |
43 | private void btnSelectSecondaryOS_Click(object sender, EventArgs e)
44 | {
45 | OpenFileDialog vOpenFileDialog = new OpenFileDialog();
46 | vOpenFileDialog.Title = "Select Secondary OS IPSW";
47 | vOpenFileDialog.Filter = "IPSW File|*.ipsw";
48 | DialogResult result = vOpenFileDialog.ShowDialog();
49 | Controller.setSecondaryOperatingSystemPathIPSW(vOpenFileDialog.FileName);
50 | Controller.CreateOperatingSystemInstance(vOpenFileDialog.FileName,1);
51 | lblSelectSecondaryOS.Text = Path.GetFileName(vOpenFileDialog.FileName);
52 | btnConfigureSecondaryOS.Enabled = true;
53 | }
54 |
55 | private void btnConfigureMainOS_Click(object sender, EventArgs e)
56 | {
57 | frmConfigureOS ConfigureOS = new frmConfigureOS(Controller.getOperatingSystemInstance(0), Controller);
58 | ConfigureOS.Show();
59 | }
60 |
61 | private void btnConfigureSecondaryOS_Click(object sender, EventArgs e)
62 | {
63 | frmConfigureOS ConfigureOS = new frmConfigureOS(Controller.getOperatingSystemInstance(1), Controller);
64 | ConfigureOS.Show();
65 | }
66 |
67 | private void btnSaveSettings_Click(object sender, EventArgs e)
68 | {
69 | Close();
70 | }
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmSelectionOS.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmSoftwareConfiguration.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace iMultiBoot
2 | {
3 | partial class frmSoftwareConfiguration
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.lblWorkingDirectory = new System.Windows.Forms.Label();
32 | this.txtWorkingDirectory = new System.Windows.Forms.TextBox();
33 | this.btnBrowseTempDir = new System.Windows.Forms.Button();
34 | this.lblDeviceWorkingDirectory = new System.Windows.Forms.Label();
35 | this.txtDeviceWorkingDirectory = new System.Windows.Forms.TextBox();
36 | this.btnSaveSettings = new System.Windows.Forms.Button();
37 | this.btnSerializeController = new System.Windows.Forms.Button();
38 | this.btnDeserializeController = new System.Windows.Forms.Button();
39 | this.SuspendLayout();
40 | //
41 | // lblWorkingDirectory
42 | //
43 | this.lblWorkingDirectory.AutoSize = true;
44 | this.lblWorkingDirectory.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
45 | this.lblWorkingDirectory.ForeColor = System.Drawing.Color.White;
46 | this.lblWorkingDirectory.Location = new System.Drawing.Point(12, 23);
47 | this.lblWorkingDirectory.Name = "lblWorkingDirectory";
48 | this.lblWorkingDirectory.Size = new System.Drawing.Size(121, 16);
49 | this.lblWorkingDirectory.TabIndex = 0;
50 | this.lblWorkingDirectory.Text = "Working Directory :";
51 | //
52 | // txtWorkingDirectory
53 | //
54 | this.txtWorkingDirectory.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
55 | this.txtWorkingDirectory.Location = new System.Drawing.Point(156, 20);
56 | this.txtWorkingDirectory.Name = "txtWorkingDirectory";
57 | this.txtWorkingDirectory.Size = new System.Drawing.Size(236, 22);
58 | this.txtWorkingDirectory.TabIndex = 1;
59 | //
60 | // btnBrowseTempDir
61 | //
62 | this.btnBrowseTempDir.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
63 | this.btnBrowseTempDir.Location = new System.Drawing.Point(412, 15);
64 | this.btnBrowseTempDir.Name = "btnBrowseTempDir";
65 | this.btnBrowseTempDir.Size = new System.Drawing.Size(83, 32);
66 | this.btnBrowseTempDir.TabIndex = 2;
67 | this.btnBrowseTempDir.Text = "Browse";
68 | this.btnBrowseTempDir.UseVisualStyleBackColor = true;
69 | this.btnBrowseTempDir.Click += new System.EventHandler(this.btnBrowseTempDir_Click);
70 | //
71 | // lblDeviceWorkingDirectory
72 | //
73 | this.lblDeviceWorkingDirectory.AutoSize = true;
74 | this.lblDeviceWorkingDirectory.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
75 | this.lblDeviceWorkingDirectory.ForeColor = System.Drawing.Color.White;
76 | this.lblDeviceWorkingDirectory.Location = new System.Drawing.Point(12, 65);
77 | this.lblDeviceWorkingDirectory.Name = "lblDeviceWorkingDirectory";
78 | this.lblDeviceWorkingDirectory.Size = new System.Drawing.Size(167, 16);
79 | this.lblDeviceWorkingDirectory.TabIndex = 3;
80 | this.lblDeviceWorkingDirectory.Text = "Device Working Directory :";
81 | //
82 | // txtDeviceWorkingDirectory
83 | //
84 | this.txtDeviceWorkingDirectory.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
85 | this.txtDeviceWorkingDirectory.Location = new System.Drawing.Point(185, 62);
86 | this.txtDeviceWorkingDirectory.Name = "txtDeviceWorkingDirectory";
87 | this.txtDeviceWorkingDirectory.ReadOnly = true;
88 | this.txtDeviceWorkingDirectory.Size = new System.Drawing.Size(207, 22);
89 | this.txtDeviceWorkingDirectory.TabIndex = 4;
90 | this.txtDeviceWorkingDirectory.Text = "//var";
91 | //
92 | // btnSaveSettings
93 | //
94 | this.btnSaveSettings.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
95 | this.btnSaveSettings.Location = new System.Drawing.Point(393, 162);
96 | this.btnSaveSettings.Name = "btnSaveSettings";
97 | this.btnSaveSettings.Size = new System.Drawing.Size(105, 36);
98 | this.btnSaveSettings.TabIndex = 5;
99 | this.btnSaveSettings.Text = "Save Settings";
100 | this.btnSaveSettings.UseVisualStyleBackColor = true;
101 | this.btnSaveSettings.Click += new System.EventHandler(this.btnSaveSettings_Click);
102 | //
103 | // btnSerializeController
104 | //
105 | this.btnSerializeController.Enabled = false;
106 | this.btnSerializeController.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
107 | this.btnSerializeController.Location = new System.Drawing.Point(18, 108);
108 | this.btnSerializeController.Name = "btnSerializeController";
109 | this.btnSerializeController.Size = new System.Drawing.Size(164, 36);
110 | this.btnSerializeController.TabIndex = 6;
111 | this.btnSerializeController.Text = "Serialize Controller";
112 | this.btnSerializeController.UseVisualStyleBackColor = true;
113 | this.btnSerializeController.Click += new System.EventHandler(this.btnSerializeController_Click);
114 | //
115 | // btnDeserializeController
116 | //
117 | this.btnDeserializeController.Enabled = false;
118 | this.btnDeserializeController.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
119 | this.btnDeserializeController.Location = new System.Drawing.Point(18, 162);
120 | this.btnDeserializeController.Name = "btnDeserializeController";
121 | this.btnDeserializeController.Size = new System.Drawing.Size(164, 36);
122 | this.btnDeserializeController.TabIndex = 7;
123 | this.btnDeserializeController.Text = "Deserialize Controller";
124 | this.btnDeserializeController.UseVisualStyleBackColor = true;
125 | this.btnDeserializeController.Click += new System.EventHandler(this.btnDeserializeController_Click);
126 | //
127 | // frmSoftwareConfiguration
128 | //
129 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
130 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
131 | this.BackColor = System.Drawing.Color.Black;
132 | this.ClientSize = new System.Drawing.Size(510, 211);
133 | this.Controls.Add(this.btnDeserializeController);
134 | this.Controls.Add(this.btnSerializeController);
135 | this.Controls.Add(this.btnSaveSettings);
136 | this.Controls.Add(this.txtDeviceWorkingDirectory);
137 | this.Controls.Add(this.lblDeviceWorkingDirectory);
138 | this.Controls.Add(this.btnBrowseTempDir);
139 | this.Controls.Add(this.txtWorkingDirectory);
140 | this.Controls.Add(this.lblWorkingDirectory);
141 | this.Name = "frmSoftwareConfiguration";
142 | this.Text = "Configure Software";
143 | this.ResumeLayout(false);
144 | this.PerformLayout();
145 |
146 | }
147 |
148 | #endregion
149 |
150 | private System.Windows.Forms.Label lblWorkingDirectory;
151 | private System.Windows.Forms.TextBox txtWorkingDirectory;
152 | private System.Windows.Forms.Button btnBrowseTempDir;
153 | private System.Windows.Forms.Label lblDeviceWorkingDirectory;
154 | private System.Windows.Forms.TextBox txtDeviceWorkingDirectory;
155 | private System.Windows.Forms.Button btnSaveSettings;
156 | private System.Windows.Forms.Button btnSerializeController;
157 | private System.Windows.Forms.Button btnDeserializeController;
158 | }
159 | }
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmSoftwareConfiguration.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 | using System.IO;
4 | using System.Runtime.Serialization;
5 | using System.Runtime.Serialization.Formatters.Binary;
6 |
7 | namespace iMultiBoot
8 | {
9 | public partial class frmSoftwareConfiguration : Form
10 | {
11 | iMultiBootController Controller;
12 | public frmSoftwareConfiguration()
13 | {
14 | InitializeComponent();
15 | }
16 |
17 | public frmSoftwareConfiguration(iMultiBootController pController)
18 | {
19 | InitializeComponent();
20 | Controller = pController;
21 | txtWorkingDirectory.Text = pController.getWorkingDirectory();
22 | }
23 |
24 | private void btnBrowseTempDir_Click(object sender, EventArgs e)
25 | {
26 | FolderBrowserDialog vFolderBrowserDialog = new FolderBrowserDialog();
27 | vFolderBrowserDialog.Description = "Select Working Directory";
28 | DialogResult result = vFolderBrowserDialog.ShowDialog();
29 | if (vFolderBrowserDialog.SelectedPath != "")
30 | {
31 | Controller.setWorkingDirectory(vFolderBrowserDialog.SelectedPath);
32 | }
33 | txtWorkingDirectory.Text = Controller.getWorkingDirectory();
34 | }
35 |
36 | private void btnSaveSettings_Click(object sender, EventArgs e)
37 | {
38 | Controller.setDeviceWorkingDirectory(txtDeviceWorkingDirectory.Text);
39 | Close();
40 | }
41 |
42 | private void btnSerializeController_Click(object sender, EventArgs e)
43 | {
44 | SaveFileDialog vSaveFileDialog = new SaveFileDialog();
45 | DialogResult result = vSaveFileDialog.ShowDialog();
46 | Stream DataStream = File.Open(vSaveFileDialog.FileName, FileMode.Create);
47 | BinaryFormatter ObjectToBinary = new BinaryFormatter();
48 | ObjectToBinary.Serialize(DataStream, Controller);
49 | DataStream.Close();
50 | }
51 |
52 | private void btnDeserializeController_Click(object sender, EventArgs e)
53 | {
54 | OpenFileDialog vOpenFileDialog = new OpenFileDialog();
55 | DialogResult result = vOpenFileDialog.ShowDialog();
56 | Stream DataStream = File.Open(vOpenFileDialog.FileName, FileMode.Open);
57 | BinaryFormatter ObjectFromBinary = new BinaryFormatter();
58 | Controller = (iMultiBootController)ObjectFromBinary.Deserialize(DataStream);
59 | DataStream.Close();
60 | }
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/frmSoftwareConfiguration.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/iMultiBoot.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {B655AC5A-41B0-4B33-96CB-EA1C5EAADC7F}
8 | WinExe
9 | Properties
10 | iMultiBoot
11 | iMultiBoot
12 | v4.5.2
13 | 512
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 | false
35 |
36 |
37 |
38 | ..\..\..\BinaryPatcher\BinaryPatcher\BinaryPatcherLib\bin\Release\BinaryPatcherLib.dll
39 |
40 |
41 | ..\..\..\iOS-DiskUtility\iOS-DiskUtility\DiskUtilityLib\bin\Release\DiskUtilityLib.dll
42 |
43 |
44 | ..\..\..\IPSW-Editor\IPSWlib\IPSWlib\bin\Release\IPSWlib.dll
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | ..\..\..\ToolsManager\ToolsManagerLib\ToolsManagerLib\bin\Release\ToolsManagerLib.dll
59 |
60 |
61 | ..\packages\WinSCP.5.9.6\lib\WinSCPnet.dll
62 | True
63 |
64 |
65 |
66 |
67 |
68 | Form
69 |
70 |
71 | frmConfigureOS.cs
72 |
73 |
74 | Form
75 |
76 |
77 | frmDeviceSelection.cs
78 |
79 |
80 | Form
81 |
82 |
83 | frmMain.cs
84 |
85 |
86 | Form
87 |
88 |
89 | frmPartitionManager.cs
90 |
91 |
92 | Form
93 |
94 |
95 | frmSelectionOS.cs
96 |
97 |
98 | Form
99 |
100 |
101 | frmSoftwareConfiguration.cs
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 | frmConfigureOS.cs
112 |
113 |
114 | frmDeviceSelection.cs
115 |
116 |
117 | frmMain.cs
118 |
119 |
120 | frmPartitionManager.cs
121 |
122 |
123 | frmSelectionOS.cs
124 |
125 |
126 | frmSoftwareConfiguration.cs
127 |
128 |
129 | ResXFileCodeGenerator
130 | Resources.Designer.cs
131 | Designer
132 |
133 |
134 | True
135 | Resources.resx
136 |
137 |
138 |
139 | SettingsSingleFileGenerator
140 | Settings.Designer.cs
141 |
142 |
143 | True
144 | Settings.settings
145 | True
146 |
147 |
148 | PreserveNewest
149 |
150 |
151 | PreserveNewest
152 |
153 |
154 | PreserveNewest
155 |
156 |
157 | PreserveNewest
158 |
159 |
160 | PreserveNewest
161 |
162 |
163 | PreserveNewest
164 |
165 |
166 | PreserveNewest
167 |
168 |
169 | PreserveNewest
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 | PreserveNewest
178 |
179 |
180 | PreserveNewest
181 |
182 |
183 | PreserveNewest
184 |
185 |
186 | PreserveNewest
187 |
188 |
189 | PreserveNewest
190 |
191 |
192 | PreserveNewest
193 |
194 |
195 | PreserveNewest
196 |
197 |
198 | PreserveNewest
199 |
200 |
201 | PreserveNewest
202 |
203 |
204 | PreserveNewest
205 |
206 |
207 | PreserveNewest
208 |
209 |
210 | PreserveNewest
211 |
212 |
213 | PreserveNewest
214 |
215 |
216 | PreserveNewest
217 |
218 |
219 | PreserveNewest
220 |
221 |
222 | PreserveNewest
223 |
224 |
225 | PreserveNewest
226 |
227 |
228 | PreserveNewest
229 |
230 |
231 | PreserveNewest
232 |
233 |
234 | PreserveNewest
235 |
236 |
237 | PreserveNewest
238 |
239 |
240 | PreserveNewest
241 |
242 |
243 | PreserveNewest
244 |
245 |
246 | PreserveNewest
247 |
248 |
249 | PreserveNewest
250 |
251 |
252 | PreserveNewest
253 |
254 |
255 | PreserveNewest
256 |
257 |
258 | PreserveNewest
259 |
260 |
261 | PreserveNewest
262 |
263 |
264 | PreserveNewest
265 |
266 |
267 | PreserveNewest
268 |
269 |
270 | PreserveNewest
271 |
272 |
273 | PreserveNewest
274 |
275 |
276 | PreserveNewest
277 |
278 |
279 | PreserveNewest
280 |
281 |
282 | PreserveNewest
283 |
284 |
285 |
286 |
287 |
294 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/idevicerestore.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/idevicerestore.exe
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libcrypto.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libcrypto.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libcurl-4.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libcurl-4.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libeay32.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libeay32.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libgcc_s_dw2-1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libgcc_s_dw2-1.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libiconv-2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libiconv-2.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libimobiledevice.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libimobiledevice.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libirecovery.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libirecovery.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libplist.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libplist.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libpng12.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libpng12.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libssl.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libssl.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libusbmuxd.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libusbmuxd.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libxml2-2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libxml2-2.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/libzip-2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/libzip-2.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/main.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace iMultiBoot
8 | {
9 | static class main
10 | {
11 | ///
12 | /// Point d'entrée principal de l'application.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new frmMain());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/ssleay32.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/ssleay32.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/xpwntool.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/xpwntool.exe
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot/zlib1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmbonneau/iMultiBoot/a2ff6801d506be2633ed91c2bfdbe2d0d5700552/iMultiBoot/iMultiBoot/zlib1.dll
--------------------------------------------------------------------------------
/iMultiBoot/iMultiBoot_Installer/iMultiBoot_Installer.isproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Express
6 |
7 | Debug
8 | $(Configuration)
9 |
10 |
11 |
12 |
13 |
14 |
15 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
29 |
30 |
31 |
--------------------------------------------------------------------------------