├── .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 | --------------------------------------------------------------------------------