diff options
-rw-r--r-- | MobileCydia.mm | 6 | ||||
-rw-r--r-- | Sources.mm | 6 | ||||
-rw-r--r-- | postinst.mm | 15 |
3 files changed, 15 insertions, 12 deletions
diff --git a/MobileCydia.mm b/MobileCydia.mm index b8aca93..25215bd 100644 --- a/MobileCydia.mm +++ b/MobileCydia.mm @@ -685,7 +685,7 @@ static _H<UIFont> Font18Bold_; static _H<UIFont> Font22Bold_; static const char *Machine_ = NULL; -static NSString *System_ = nil; +_H<NSString> System_; static NSString *SerialNumber_ = nil; static NSString *ChipID_ = nil; static NSString *BBSNum_ = nil; @@ -714,7 +714,7 @@ static time_t now_; bool IsWildcat_; static CGFloat ScreenScale_; static NSString *Idiom_; -_H<NSString> Firmware_; +static _H<NSString> Firmware_; static NSString *Major_; static _H<NSMutableDictionary> SessionData_; @@ -4621,7 +4621,7 @@ static _H<NSMutableSet> Diversions_; if (Safari_ != nil) application = [NSString stringWithFormat:@"Safari/%@ %@", Safari_, application]; if (System_ != nil) - application = [NSString stringWithFormat:@"Mobile/%@ %@", System_, application]; + application = [NSString stringWithFormat:@"Mobile/%@ %@", (id) System_, application]; if (Product_ != nil) application = [NSString stringWithFormat:@"Version/%@ %@", Product_, application]; @@ -45,7 +45,7 @@ extern _H<NSMutableDictionary> Sources_; extern _H<NSString> CydiaSource_; -extern _H<NSString> Firmware_; +extern _H<NSString> System_; extern bool Changed_; void CydiaWriteSources() { @@ -53,8 +53,8 @@ void CydiaWriteSources() { _assert(file != NULL); NSString *distribution(@"ios"); - if (Firmware_ != nil) - distribution = [distribution stringByAppendingString:[NSString stringWithFormat:@"/%@", (id) Firmware_]]; + if (System_ != nil) + distribution = [distribution stringByAppendingString:[NSString stringWithFormat:@"/%@", (id) System_]]; fprintf(file, "deb http://%s/ %s main\n", [CydiaSource_ UTF8String], diff --git a/postinst.mm b/postinst.mm index f55db81..b11a9ac 100644 --- a/postinst.mm +++ b/postinst.mm @@ -1,7 +1,9 @@ #include <strings.h> #include <Sources.h> -#include <UIKit/UIKit.h> +#include <sys/types.h> +#include <sys/sysctl.h> + #include <CydiaSubstrate/CydiaSubstrate.h> #include "CyteKit/PerlCompatibleRegEx.hpp" @@ -9,7 +11,7 @@ _H<NSMutableDictionary> Sources_; _H<NSString> CydiaSource_; bool Changed_; -_H<NSString> Firmware_; +_H<NSString> System_; int main(int argc, const char *argv[]) { if (argc < 2 || strcmp(argv[1], "configure") != 0) @@ -17,10 +19,11 @@ int main(int argc, const char *argv[]) { NSAutoreleasePool *pool([[NSAutoreleasePool alloc] init]); - Pcre pattern("^([0-9]+\\.[0-9]+)"); - - if (pattern([[UIDevice currentDevice] systemVersion])) - Firmware_ = pattern[1]; + size_t size; + sysctlbyname("kern.osversion", NULL, &size, NULL, 0); + char *osversion = new char[size]; + if (sysctlbyname("kern.osversion", osversion, &size, NULL, 0) != -1) + System_ = [NSString stringWithUTF8String:osversion]; NSDictionary *metadata([[[NSMutableDictionary alloc] initWithContentsOfFile:@"/var/lib/cydia/metadata.plist"] autorelease]); NSUInteger version(0); |