Jump to content

how to use ( if ) command After -(id)


Go to solution Solved by AnotherLurker,

5 posts in this topic

Recommended Posts

Posted (edited)

No  One To Help Me ?


Hi 

I'm New In Theos and i want to learn how to use ( if ) command after (-(id)) for example:

NSDictionary *Mykey = [[NSDictionary alloc] initWithContentsOfFile:@"var/mobile/Library/Preferences/net.iperis.mypkg.plist"];

%hook PSUISoftwareUpdateController
-(id)init{
if([[Mykey objectForKey:@"softwareUpdate"] boolValue]){
%orig(nil);
}else{
return %orig;
}
}
%end

But Not Working , How Fix This Example ...

Updated by iP3S1M
Posted

You can't have NSDictionary initialized as a global variable, instead you should set MyKey to null, then check to see if initialized in init()
Here's an example (Contains a few other fixes as well):

NSDictionary *Mykey = NULL;

%hook PSUISoftwareUpdateController
-(id)init {
    if (!Mykey) {
        Mykey = [NSDictionary dictionaryWithContentsOfFile:@"/User/Library/Preferences/net.iperis.mypkg.plist"];
    }

    if([[Mykey objectForKey:@"softwareUpdate"] boolValue]){
        return %orig(nil);
    }

    return %orig();
}
%end
Posted

 

You can't have NSDictionary initialized as a global variable, instead you should set MyKey to null, then check to see if initialized in init()

Here's an example (Contains a few other fixes as well):

NSDictionary *Mykey = NULL;

%hook PSUISoftwareUpdateController
-(id)init {
    if (!Mykey) {
        Mykey = [NSDictionary dictionaryWithContentsOfFile:@"/User/Library/Preferences/net.iperis.mypkg.plist"];
    }

    if([[Mykey objectForKey:@"softwareUpdate"] boolValue]){
        return %orig(nil);
    }

    return %orig();
}
%end

Not Working 

This is my Tweak.xm

 

NSDictionary *Mykey = NULL;

%hook PSUISoftwareUpdateController
-(id)init {
    if (!Mykey) {
        Mykey = [NSDictionary dictionaryWithContentsOfFile:@"/User/Library/Preferences/net.iperis.mypkg.plist"];
    }

    if([[Mykey objectForKey:@"softwareUpdate"] boolValue]){
        return %orig(nil);
    }

    return %orig();
}
%end

Output In Terminal 

 

iPhone:/var/mobile/projects/mypkg root# make package install
Making all for tweak mypkg...
 Preprocessing Tweak.xm...
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
 Compiling Tweak.xm...
Tweak.xm:37:85: error: too many arguments to function call, expected 2, have 3
  ..._logos_orig$_ungrouped$PSUISoftwareUpdateController$init(self, _cmd, nil);
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             ^~~
/var/mobile/projects/mypkg/theos/sdks/iPhoneOS8.1.sdk/usr/include/MacTypes.h:93:17: note:
      expanded from macro 'nil'
    #define nil __DARWIN_NULL
                ^~~~~~~~~~~~~
/var/mobile/projects/mypkg/theos/sdks/iPhoneOS8.1.sdk/usr/include/sys/_types.h:43:23: note:
      expanded from macro '__DARWIN_NULL'
#define __DARWIN_NULL __null
                      ^~~~~~
1 error generated.
make[2]: *** [obj/Tweak.xm.05f97c77.o] Error 1
make[1]: *** [internal-library-all_] Error 2
make: *** [iOSTool.all.tweak.variables] Error 2
iPhone:/var/mobile/projects/iostool root#

  • Solution
Posted

Not Working 

This is my Tweak.xm

 

NSDictionary *Mykey = NULL;

%hook PSUISoftwareUpdateController
-(id)init {
    if (!Mykey) {
        Mykey = [NSDictionary dictionaryWithContentsOfFile:@"/User/Library/Preferences/net.iperis.mypkg.plist"];
    }

    if([[Mykey objectForKey:@"softwareUpdate"] boolValue]){
        return %orig(nil);
    }

    return %orig();
}
%end
Output In Terminal 

 

iPhone:/var/mobile/projects/mypkg root# make package install
Making all for tweak mypkg...
 Preprocessing Tweak.xm...
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
Constants from lexical variables potentially modified elsewhere are deprecated at /private/var/theos/bin/lib/aliased.pm line 42.
 Compiling Tweak.xm...
Tweak.xm:37:85: error: too many arguments to function call, expected 2, have 3
  ..._logos_orig$_ungrouped$PSUISoftwareUpdateController$init(self, _cmd, nil);
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~             ^~~
/var/mobile/projects/mypkg/theos/sdks/iPhoneOS8.1.sdk/usr/include/MacTypes.h:93:17: note:
      expanded from macro 'nil'
    #define nil __DARWIN_NULL
                ^~~~~~~~~~~~~
/var/mobile/projects/mypkg/theos/sdks/iPhoneOS8.1.sdk/usr/include/sys/_types.h:43:23: note:
      expanded from macro '__DARWIN_NULL'
#define __DARWIN_NULL __null
                      ^~~~~~
1 error generated.
make[2]: *** [obj/Tweak.xm.05f97c77.o] Error 1
make[1]: *** [internal-library-all_] Error 2
make: *** [iOSTool.all.tweak.variables] Error 2
iPhone:/var/mobile/projects/iostool root#

 

Oh, didn't see your other mistake, here you go:

NSDictionary *Mykey = NULL;

%hook PSUISoftwareUpdateController
-(id)init {
    if (!Mykey) {
        Mykey = [NSDictionary dictionaryWithContentsOfFile:@"/User/Library/Preferences/net.iperis.mypkg.plist"];
    }

    if([[Mykey objectForKey:@"softwareUpdate"] boolValue]){
        return nil;
    }

    return %orig();
}
%end
Posted

Oh, didn't see your other mistake, here you go:

NSDictionary *Mykey = NULL;

%hook PSUISoftwareUpdateController
-(id)init {
    if (!Mykey) {
        Mykey = [NSDictionary dictionaryWithContentsOfFile:@"/User/Library/Preferences/net.iperis.mypkg.plist"];
    }

    if([[Mykey objectForKey:@"softwareUpdate"] boolValue]){
        return nil;
    }

    return %orig();
}
%end

 

Special Thanks For You ... Fixed  (y) .

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines