summaryrefslogtreecommitdiffstats
path: root/src/ipsw.c
diff options
context:
space:
mode:
authorGravatar Martin Szulecki2010-07-14 04:13:37 +0200
committerGravatar Martin Szulecki2010-07-14 04:13:37 +0200
commit50c1616ff66ccb4e674405659cb2e6f8207bc915 (patch)
treee1aaa4a7c9dec9d02fc6956b2c0bc94e7b8b8471 /src/ipsw.c
parent38b8439c0b9b4b64aae1c812da322146d0843446 (diff)
downloadidevicerestore-50c1616ff66ccb4e674405659cb2e6f8207bc915.tar.gz
idevicerestore-50c1616ff66ccb4e674405659cb2e6f8207bc915.tar.bz2
Refactor tss request requirements to work with iPhone 3G and iOS 4
This gets rid of the device model checking code and allows devices like the iPhone 3G to get shsh blobs as required by iOS 4. The requirement if the components need to be signed is determined by which kind of manifest filename is within the IPSW.
Diffstat (limited to 'src/ipsw.c')
-rw-r--r--src/ipsw.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/ipsw.c b/src/ipsw.c
index 9cd7290..d3f8839 100644
--- a/src/ipsw.c
+++ b/src/ipsw.c
@@ -173,10 +173,12 @@ int ipsw_extract_to_memory(const char* ipsw, const char* infile, char** pbuffer,
return 0;
}
-int ipsw_extract_build_manifest(const char* ipsw, plist_t* buildmanifest) {
+int ipsw_extract_build_manifest(const char* ipsw, plist_t* buildmanifest, int *tss_enabled) {
int size = 0;
char* data = NULL;
+ *tss_enabled = 0;
+
/* older devices don't require personalized firmwares and use a BuildManifesto.plist */
if (ipsw_extract_to_memory(ipsw, "BuildManifesto.plist", &data, &size) == 0) {
plist_from_xml(data, size, buildmanifest);
@@ -188,6 +190,7 @@ int ipsw_extract_build_manifest(const char* ipsw, plist_t* buildmanifest) {
/* whereas newer devices do not require personalized firmwares and use a BuildManifest.plist */
if (ipsw_extract_to_memory(ipsw, "BuildManifest.plist", &data, &size) == 0) {
+ *tss_enabled = 1;
plist_from_xml(data, size, buildmanifest);
return 0;
}