#development
1 messages · Page 232 of 1
am i doing something wrong or should i be able to find the image in the hierachy
this page should mention heap and/or runtime browser imo.
oh wait emoji list is clickable 💀, anyways i meant a bigger explaination like the ones below
oooh there's a cool 3d view thing
helps alot
although i just resprung
dammit
i keep respringing

and the list view is completely useles
finally i found it
okay its a ui image view with the nearest view controller being csnotificationviewcontroller
how do i hook that
im hoping this is correct
@interface CSNotificationViewController :NCNotificationViewController
but i have absolutely 0 clue since i cannot load limneos
i am totally lost lmao
you can search here as well, althought those interfaces don't mean much (so its not that important to get it %100 correct) they are only there so you can compile basically
yeah i have the headers now
but i can't really do shit with it
because i don't know how to obtain the uiimage
i think this is beyond me atm
im reading velvet 2 source code
and i have no clue what is going on
hooking a specific instance of a general class (like uiimage) is kinda hard, you need to be able to get a reference to it or identify it somehow. i suggest starting with something simpler, and looking at open source code of simpler tweaks as well
@radiant idol should i need to know what this means or is it okay to just use it and forget about how it works
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, (CFNotificationCallback)preferencesChanged, CFSTR("com.nightwind.prefbundleexampleprefs-updated"), NULL, CFNotificationSuspensionBehaviorDeliverImmediately);
it works but it doesn't retroactively apply it
that's fine
i think i'll just require a respring
anyone have an open source colour picker?
maybe i dont need to respring
is this good
make[3]: *** [/home/jwalr/theos/makefiles/instance/library.mk:52: /mnt/c/Users/jwalr/NotificationGlow2/.theos/obj/debug/arm64/NotificationGlow2.dylib] Error 1
make[2]: *** [/home/jwalr/theos/makefiles/instance/library.mk:52: /mnt/c/Users/jwalr/NotificationGlow2/.theos/obj/debug/arm64/NotificationGlow2.dylib] Error 2
make[2]: *** Waiting for unfinished jobs....
==> Linking tweak NotificationGlow2 (arm64e)…
ld: library not found for -lGcUniversal
clang-13: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [/home/jwalr/theos/makefiles/instance/library.mk:52: /mnt/c/Users/jwalr/NotificationGlow2/.theos/obj/debug/arm64e/NotificationGlow2.dylib] Error 1
make[2]: *** [/home/jwalr/theos/makefiles/instance/library.mk:52: /mnt/c/Users/jwalr/NotificationGlow2/.theos/obj/debug/arm64e/NotificationGlow2.dylib] Error 2
make[1]: *** [/home/jwalr/theos/makefiles/instance/library.mk:37: internal-library-all_] Error 2
make: *** [/home/jwalr/theos/makefiles/master/rules.mk:146: NotificationGlow2.all.tweak.variables] Error 2
idk whats happening
the color picker wont appear
i dont know why
-(void)viewDidLoad {
%orig;
if (!enableGlow) {
return;
}
//Create a rectangle that matches the shape of the notification
self.notificationView = [[UIView alloc] init];
self.notificationView.backgroundColor = [[UIColor clearColor] colorWithAlphaComponent:0.7];
self.notificationView.layer.cornerRadius = 20;
//Make and outer edge glow for the final effect
UIColor *colorWithFallback = [GcColorPickerUtils colorFromDefaults:@"com.jwi.NotificationGlow2Prefs" withKey:@"YourColor" fallback:@"ffffffff"];
self.notificationView.layer.shadowColor = colorWithFallback.CGColor;
self.notificationView.layer.shadowOpacity = 0.7;
self.notificationView.layer.shadowRadius = 10;
self.notificationView.layer.shadowOffset = CGSizeZero;
[self.view insertSubview:self.notificationView atIndex:0];
}
%end```
seems it's broken lol
surpisingly does not look like chatgpt code even tho the comments look like it
that's because it isn't
and i wrote those comments myself
I just get a blank screen
you spend too much effort writing comments
That's why everyone is able to read code right
the #1 rule in software engineering is that you need to know what you are trying to achieve with your plan that you have in mind
else you will not be able to build anything and keep on failing
When learning a new language, often you forget certain phrases
The same applies to coding
It also helps other people read it
Anyways
if you just write comments for that reason, then it’s lame and makes u seem kinda weak
but if you intend to help other people read it, sure, thats fine
I don't mind what your opinion on my comment writing is, it's my code and I'll do what I feel is best to help me write it

I assume this just retrieves the value
It doesn't actually make the view appear
didn’t say what you should really do, it’s just common practice
anyway
back to ur issue
@radiant idol am I doing something wrong, I've just used the default implementation that the documentation outlines
<key>cell</key>
<string>PSLinkCell</string>
<key>cellClass</key>
<string>GcColorPickerCell</string>
<key>label</key>
<string>Your Color Label</string>
<key>defaults</key>
<string>com.jwi.NotificationGlow2Prefs</string>
<key>key</key>
<string>YourColor</string>
<key>supportsAlpha</key>
<true/>
<key>safeOnDismiss</key>
<true/>
<key>fallback</key>
<string>ffffffff</string>
<key>style</key>
<integer>1</integer>
</dict>```
my plist code

im so lost
ive tried everything
it just will not appear
no matter what i do
even though the documentation says it shoudl
What’s the directory structure of where this plist is located
it’s just the color picker that’s not showing up?
their repo has a plist file in layout/….; do you need/have that?
chances are you forgot linking against the library in your makefile
No I linked it I think
It changes the colour to the default one
hi opa334
hi opa334
hi opa334
hi opa334
hi opa334
hi opa334
hi opa334
433apo ih
ipsw swift-dump?
will try it
the creation is speaking to its creator
@subtle grail happy birthday big man
Happy birthday ;)
@subtle grail happy birthday big man
psa
do NOT use rapidxml
i stayed up until 2am trying to figure out why my wii homebrew was crashing in unique ways every time i changed something in the code
i isolated the issue to rapidxml, i guess it writes out of bounds ?? replacing it with pugixml fixed everything
(i couldn't figure out how to setup a debugger so i may also be lying idk)
help i cant fix it
@subtle grail happy birthday big man
@subtle grail happy birthday!
nah i wasn't lying all of my wii problems magically disappeared
.
@subtle grail happy birthday big man
what are you cooking im really curious
Shijima is an obsession at this point
I want to work on something else but why should I do that when I can make Shijima a little better?
... has been my mindset for like 9 months at this point
Anyway I rewrote Shijima-Wii and it actually works now
The earlier version should have never worked to begin with
In the earlier version rapidxml was doing a lot of out of bounds writes, so I moved around random lines of code until gdb produced a binary that did not corrupt the parts of the stack/heap that I cared about (...is what I assume happened, I have no clue)
@kind herald why did you react with 🏳️⚧️ earlier 
oh
My laptop trackpad SUCKS No more mistakes will occur when i get my dell xps fixed.
mine isn't too good either
sometimes i wonder if it'd be possible to somehow attach a magic trackpad to a regular windows laptop in place of the builtin trackpad
only the highest quality software
^ the wii has 88 MBs of RAM
😭😭 ????
Why is bro using 2^20 bytes of ram
I'm loading user-supplied PNG files from the SD card
The library I'm using for rendering requires the dimensions of textures to be multiples of 4
Many images I need to load don't fit that criteria
So I need to resize them in memory

why don't you resize them before you put them on the sd card
(Me who is currently reversing hikari assembly)
(That's too smart for him)
I'll do that eventually but I don't want to touch Qt for like another month
💀
That's the logical thing to do and I did think of that I'm not that stupid
what's it got to do with Qt 😭
I'll add an "Export to Wii" option to Shijima-Qt
If I make a tool for it it has to be a part of Shijima-Qt, it wouldn't make sense to do it any other way
And I'm not touching that code
other way of doing it is just telling users it has to be a certain size and failing when the wrong size is supplied
well
yeah
but
that's boring
you just want to do the cursed memory okay
it's people like you who cause my iot lightbulbs to crash
"cursed memory" I'm just reserving 1 MB of RAM for image resizing what's wrong with that 😭
this is embedded no?
It's a Wii
did you think I was reserving 50% of the memory for image resizing or something 💀
yep
and how its going so far
I stopped to eat
Probably gonna end up hanging myself
👍
whats the most annoying thing
Update: replacing first instruction with ret made me not require to understand the assembly
you could make an IDA script to mostly recreate control flow, since Hikari's obfuscation uses deterministic transformations
do you speak english per chance?
yeah
i have it
wrong ss
actually it's the wrong commit lmao
i'll update once im home and can commit
@rocky oriole @robust radish it was a joke
you could probably make it
I wish I had the time to make it
hello, im trying to open graphical windows from my fedora laptop over ssh from my macbook
i have x11 forwarding setup but xquartz seems to not support the full opengl profile i need to run things on the gpu
insanity
do you know an alternative window server than xquartz 😭
err erm
idts
Tbf considering how it works yeah probably but I don’t have the time
yall know of any tweak filters that only apply to ssl pinning daemons/executables?
tried com.apple.Security but apparently that injects to everything and thus causes my mac to lock up
I fixed that lockup btw
Bad gateway?
Nvm
Looks cool
Promising

Are you guys developing a iOS 18.2 JB?
@everyone
no bibi fire we are not currently developing an iOS jailbreak for the version 18.2
no bibi fire we are not currently developing an iOS jailbreak for the version 18.2
no bibi fire we are not currently developing an iOS jailbreak for the version 18.2
no bibi fire we are not currently developing an iOS jailbreak for the version 18.2
just in time for deltarune
Deltarune tomorrow sorry
stay white role forever please
srry he just bothered me in incase you missed it or whatever
Mods give that white name orange name thanks
Deltabootloop
Wtf
@radiant idol am i linking correctly
gcuniversal throws an error
says it doesn
exist
which it doesnt
only lgcuniversal does
nvm
it worked
lemme test it
bruh
the colour picker still doesn't work
😭
idk what i'm doing wrong
its just a blank screen
is my plist setup correctly
<string>PSLinkCell</string>
<key>cellClass</key>
<string>GcColorPickerCell</string>
<key>label</key>
<string>Your Color Label</string>
<key>defaults</key>
<string>com.jwi.NotificationGlow2Prefs</string>
<key>key</key>
<string>YourColor</string>
<key>supportsAlpha</key>
<true/>
<key>safeOnDismiss</key>
<true/>
<key>fallback</key>
<string>ffffffff</string>
<key>style</key>
<integer>1</integer>```
wdym by "doesnt work"
yeah idk
could be that "YourColor" thing
try #ffffff or something
same thing
L

any example tweaks

bruh
does this color with the music
no
bruh\
no but you could certainly make it do that
also this
plz start putting screenshots in repos like this 
is this settings, and i GCColorpicker installed?
Yes and yes
ok if u need an example this is how i do it in one of my tweaks https://github.com/TeslaMan3092/PopOutButtons
What is that an example of exactly?
just go thru the files and make sure they are like same/close
like make files/plist files
i mean
the tweak is completely diff
ur having issues in prefs
so look in prefs not the tweak part?
exmple of the plis plist <dict> <key>cell</key> <string>PSLinkCell</string> <key>cellClass</key> <string>GcColorPickerCell</string> <key>label</key> <string>Color</string> <key>defaults</key> <string>com.teslaman3092.popoutbuttonsprefs</string> <key>key</key> <string>globalBorderColor</string> <key>supportsAlpha</key> <true/> <key>safeOnDismiss</key> <true/> <key>fallback</key> <string>5C5C5CFF</string> <key>style</key> <integer>1</integer> <key>PostNotification</key> <string>com.teslaman3092.popoutbuttonsprefs-updated</string> </dict>
yes
TARGET := iphone:clang:latest:13.0
include $(THEOS)/makefiles/common.mk
BUNDLE_NAME = popoutbuttonsprefs
popoutbuttonsprefs_FILES = POBRootListController.m
popoutbuttonsprefs_FRAMEWORKS = UIKit
popoutbuttonsprefs_PRIVATE_FRAMEWORKS = Preferences
popoutbuttonsprefs_INSTALL_PATH = /Library/PreferenceBundles
popoutbuttonsprefs_CFLAGS = -fobjc-arc
popoutbuttonsprefs_LIBRARIES = gcuniversal
include $(THEOS_MAKE_PATH)/bundle.mk```
mine
was that the issue?
percahance
THEOS_PACKAGE_SCHEME=rootless
include $(THEOS)/makefiles/common.mk
BUNDLE_NAME = NotificationGlow2Prefs
NotificationGlow2Prefs_FILES = WXMRootListController.m
NotificationGlow2Prefs_FRAMEWORKS = UIKit
NotificationGlow2Prefs_PRIVATE_FRAMEWORKS = Preferences
NotificationGlow2Prefs_INSTALL_PATH = /Library/PreferenceBundles
NotificationGlow2Prefs_CFLAGS = -fobjc-arc
NotificationGlow2Prefs_LIBRARIES = gcuniversal
include $(THEOS_MAKE_PATH)/bundle.mk```
like so?
why are you sending the debs ?
yes
make do THEOS_DEVICE_IP=urDeviceIP
dont say use ssh because ssh refuses to work on my device
didnt fix it btw
how so
there is no error
just never accepts ur psw ?
well not all reprings kill apps but ok
i killed it
hold on leme boot up my test device
same result
ik
what you're gonna decompile it?
jus gonna use this ?
ita gotta JB tho one sec
btw remove this from ur pref make file, un-needed
It’s needed to not have to specify it building to rootless each time
I’d rather just run make package
just use the up arrow instead of re typing it ?
I switch devices
?, ones rootless one rootfull ?
still use up arrow ?
also why two ?
.
tweak make file
TARGET := iphone:clang:16.5:14.0
INSTALL_TARGET_PROCESSES = SpringBoard
# THEOS_PACKAGE_SCHEME=rootless
include $(THEOS)/makefiles/common.mk
TWEAK_NAME = NotificationGlow2
NotificationGlow2_FILES = Tweak.x
NotificationGlow2_CFLAGS = -fobjc-arc
NotificationGlow2_LIBRARIES = gcuniversal
include $(THEOS_MAKE_PATH)/tweak.mk
SUBPROJECTS += NotificationGlow2Prefs
include $(THEOS_MAKE_PATH)/aggregate.mk
prefs make file
TARGET := iphone:clang:16.5:14.0
THEOS_PACKAGE_SCHEME=rootless
include $(THEOS)/makefiles/common.mk
BUNDLE_NAME = NotificationGlow2Prefs
NotificationGlow2Prefs_FILES = WXMRootListController.m
NotificationGlow2Prefs_FRAMEWORKS = UIKit
NotificationGlow2Prefs_PRIVATE_FRAMEWORKS = Preferences
NotificationGlow2Prefs_INSTALL_PATH = /Library/PreferenceBundles
NotificationGlow2Prefs_CFLAGS = -fobjc-arc
NotificationGlow2Prefs_LIBRARIES = gcuniversal
include $(THEOS_MAKE_PATH)/bundle.mk
@magic hazel ^
also please just do make do THEOS_DEVICE_IP=deviceIP THEOS_PACKAGE_SCHEME=rootless
I do
maybe not those older ones
but newer ones I do
@magic hazel got it working, is it working for you ???
No and I can’t test it right now I have to wait until I have access to my device
What did you change
In either of them
I can’t tell
just removed un-needed thing in the main make file, maybe fixed it there and added the 16.5 in the target thing
Why did you change it to 16.5
I’m running iOS 15
okay
lemme install theos and the library
oh
i have to rebuild the toolchain
breh
did you change anything here
i will try it
but i doubt it will work
r u using mac os ?
No
libfakeroot: connect: Permission denied
make: *** [/home/jwalr/theos/makefiles/package/deb.mk:70: internal-package] Error 141
wtf
why is there a permission erro
oh right
same thign as last time
where was that
fixed it
oh btw it says connection refused
lmao
unsurprising
hopefully it works
it worked
lmao
so which change actually fixed it
is the question
yooo
changing the colour works too
it actually applies
lets gooo
time to setup a repo
does anyone have an open source repo?
😭
it wont work
it says it can't find the release file
i don't understand
what did i do wrong
OMG I FIXED IT
yoooo
i have a working repo now

what does the "real" part mean here
<dict>
<key>cell</key>
<string>PSSliderCell</string>
<key>default</key>
<real>66</real>
<key>min</key>
<integer>0</integer>
<key>max</key>
<integer>50</integer>
</dict>```
Probably isn't a type that applies to plists maybe
ah i see
I think real type is a more generic way of referring to it
ig so
using repo to push changes is slightly slower than just using discord but eh
dammit it broke

<dict>
<key>cell</key>
<string>PSSliderCell</string>
<key>label</key>
<string>Glow Radius</string>
<key>key</key>
<string>glowRadius</key>
<key>default</key>
<real>10</real>
<key>min</key>
<integer>0</integer>
<key>max</key>
<integer>20</integer>
</dict>```
static void preferencesChanged() {
NSUserDefaults *prefs = [[NSUserDefaults alloc] initWithSuiteName:@"com.jwi.NotificationGlow2Prefs"];
enableGlow = [prefs objectForKey:@"enableGlow"] ? [prefs boolForKey:@"enableGlow"] : YES;
glowRadius = [prefs objectForKey:@"glowRadius"] ? [prefs floatForKey:@"glowRadius"] : 10;
}```
apparently i just cannot give it a key
so
i have absolutely no clue how to retrieve a value from it
god this is annoying
just having a key there makes it not work but i cant get a value without a key
i fixed it!

real asf
im cooking rn
alr ive made the package even better now
it has a glow radius and opacity slider
thinking of what else i can implement
v78 = objc_retainAutoreleasedReturnValue(
+[NSNumber numberWithBool:](
&OBJC_CLASS___NSNumber,
"numberWithBool:",
+AppsFlyerUtils isWifiAvailable));
-[AppsFlyerDictionary setParameter:forKey:](v7, "setParameter:forKey:", v78, CFSTR("wifi"));
objc_release(v78);
if ( -AppsFlyerLib VPNCollectionEnabled )
{
v79 = objc_retainAutoreleasedReturnValue(
+[NSNumber numberWithBool:](
&OBJC_CLASS___NSNumber,
"numberWithBool:",
+AppsFlyerUtils isVPNConnected));
-[AppsFlyerDictionary setParameter:forKey:](v7, "setParameter:forKey:", v79, CFSTR("ivc"));
objc_release(v79);
}
based on this code i found in Pseudocode-A in IDA PRO, can i make the app see i have vpn off with something like :
%hook AppsFlyerUtils
- (BOOL)isVPNConnected {
return NO;VPN status
}
%end
maybe :3
uh
its a bit laggy
idk why tho
why does this cause a safe mode reboot
@implementation NCNotificationViewController
- (void)addGlowEffect {
if (!self.notificationView) {
self.notificationView = [[UIView alloc] initWithFrame:self.view.bounds];
self.notificationView.backgroundColor = [UIColor clearColor];
self.notificationView.layer.cornerRadius = 20.0f;
self.notificationView.layer.shadowOpacity = 0.7f;
self.notificationView.layer.shadowRadius = 10.0f;
self.notificationView.layer.shadowOffset = CGSizeZero;
[self.view insertSubview:self.notificationView atIndex:0];
}
}
@end```
check/send logs
i think its because the class wont accept new methods
probably
im probably going to end up making a 3rd version of it
Send the log…
I can't
Not only can I not access the device but I also don't know where the log would be
how is it crashing if u cant access the device ??
im in class now
Thb I think there are more things that you need to hook, since sc games are obfuscated
Meighler goes one day without using the term obfuscate challenge (difficulty: impossible)
i'd suggest moving this into the hook and only declaring the method in the interface, so
@interface NCNotificationViewController : UIViewController
- (void)addGlowEffect;
@end
%hook NCNotificationViewController
// … rest of your code
%new
- (void)addGlowEffect {
if (!self.notificationView) {
self.notificationView = [[UIView alloc] initWithFrame:self.view.bounds];
self.notificationView.backgroundColor = [UIColor clearColor];
self.notificationView.layer.cornerRadius = 20.0f;
self.notificationView.layer.shadowOpacity = 0.7f;
self.notificationView.layer.shadowRadius = 10.0f;
self.notificationView.layer.shadowOffset = CGSizeZero;
[self.view insertSubview:self.notificationView atIndex:0];
}
}
%end```
It is a somewhat common question to me: how do we write C in curl to make it safe and secure for billions of installations? Some precautions we take and decisions we make. There is no silver bullet, just guidelines. As I think you can see for yourself below they are also neither strange nor … Continue reading Writing C for curl →
Yeah that’s what I had originally
And I reverted to that now
you did not just put 🗣️🔥 to your own statement
any devs know why i can't inject into nsurlsessiond with a regular tweak filter (either nsurlsessiond in Filter.Executables or com.apple.nsurlsessiond in Filter.Bundles for good measure) but i can do it fine with frida
what jailbreak
your tweakloader may exclude it
libhooker explicitly excludes nsurlsessiond when injecting stuff. if one tweakloader does it others probably do too
how can i make a .dylib have all the neccesarry info from the .deb , so i can use the tweak just by injecting the .dylib with sideloadly ?
(I don't see any references to nsurlsessiond in ellekit's code)
interesting
reddit moment
it does work when i inject to it using frida though so
lol literally mentions reddit
i do wish there were explicit bypasses to these
if you can set dyld_insert_libraries, probably?
back in my days I was using libsyringe to inject it manually
what a W name
hey guys. whats the default hook i need to make for apps to see my VPN as off ? i see all reputable tweak makers have this but i want to do it myself, but for some reason, all hooks chat gpt or claude give me, are useless and apps still see vpn as on. im sure there is a super simple and basic hook i need to do but i dont find it
idk how to but since it's probabaly a public api. just google how to see if the vpn is off, then figure out which function is used to check and hook it
LOL
Cooking rn
i made a tweak that makes apps see my VPN as off by hooking CFNetworkCopySystemProxySettings . It works good on my iph X ios 16.7.10 with palera.
My question is how can i turn the .deb into a .dylib that works when injected with sideloadly in a app, on a non jb phone ?
for other tweaks, i just got the dylib and injected it, and they worked. but with this tweak, it causes the app to not load while having vpn connected, but when vpn is disconnected, the app works good
the flash 
im trying to figure out why it doesnt work for a little bit after respring
is this spotify
it does it for any app
o
i think its just the way im getting artwork
is there any good way
to get
artwork pictures
like what method should i be hooking
the good way is thru thoes like music funcs
one sec there sm tweak
its that like windows10 LS one
- (void)setNowPlayingInfo:(id)arg1 { // set now playing info
%orig;
MRMediaRemoteGetNowPlayingInfo(dispatch_get_main_queue(), ^(CFDictionaryRef information) {
if (information) {
NSDictionary* dict = (__bridge NSDictionary *)information;
if (dict) {
if (dict[(__bridge NSString *)kMRMediaRemoteNowPlayingInfoArtworkData]) {
UIImage* artwork = [UIImage imageWithData:[dict objectForKey:(__bridge NSString*)kMRMediaRemoteNowPlayingInfoArtworkData]];
if (artworkTransitionSwitch) {
[UIView transitionWithView:[coverSheetView diaryArtworkView] duration:0.2 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
[[coverSheetView diaryArtworkView] setImage:artwork];
} completion:nil];
} else {
[[coverSheetView diaryArtworkView] setImage:artwork];
}
if (adaptiveMediaPlayerBackgroundSwitch) [[coverSheetView diaryPlayerView] setBackgroundColor:[libKitten backgroundColor:artwork]];
}
if (dict[(__bridge NSString *)kMRMediaRemoteNowPlayingInfoTitle]) [[coverSheetView diarySongTitleLabel] setText:[NSString stringWithFormat:@"%@", [dict objectForKey:(__bridge NSString*)kMRMediaRemoteNowPlayingInfoTitle]]];
if (dict[(__bridge NSString *)kMRMediaRemoteNowPlayingInfoArtist])[[coverSheetView diaryArtistLabel] setText:[NSString stringWithFormat:@"%@", [dict objectForKey:(__bridge NSString*)kMRMediaRemoteNowPlayingInfoArtist]]];
[[coverSheetView diaryPlayerView] setHidden:NO];
}
} else {
[[coverSheetView diaryPlayerView] setHidden:YES];
}
[[NSNotificationCenter defaultCenter] postNotificationName:@"diaryUpdateNotificationList" object:nil];
});
}``` @visual meadow
jus shave off wtv u need
~~idk y id didnt jus send link 🤦♂️ ~~ https://github.com/kaethchen/Diary/blob/79a2a69b2e06fed93c3737e9127a2fd1a9232d71/Tweak/iPhone/Diary.x#L2182
ughhhhhhhhhhh thats the sammmee code im using
oh.
%hook SBMediaController
-(void)setNowPlayingInfo:(id)arg1 {
%orig;
MRMediaRemoteGetNowPlayingInfo(dispatch_get_main_queue(), ^(CFDictionaryRef information) {
NSDictionary *dict = (__bridge NSDictionary *)(information);
if(!dict) return;
NSData *artworkData = [dict objectForKey:(__bridge NSString *)kMRMediaRemoteNowPlayingInfoArtworkData];
__block UIImage *artwork = [UIImage imageWithData:artworkData];
[UIView animateWithDuration:0.3 animations:^{
velvetArtworkBackground.backgroundColor = [artwork velvetAverageColor];
}];
});
}
%end```
anyone? 😦
u could do some frickery like checking if the song changed then only updating the image then
go ask in theos server
#import "Headers.h"
#import "MediaPlayer.h"
#import "VelvetPrefs.h"
#import "ColorSupport.h"
@interface CSActivityItemContentView : UIView
@end
UIView *velvetArtworkBackground;
%hook CSActivityItemContentView
- (void)didMoveToWindow {
%orig;
static bool once = NO;
if (once == NO) {
once = YES;
velvetArtworkBackground = self;
}
}
%end
%hook SBMediaController
-(void)setNowPlayingInfo:(id)arg1 {
%orig;
MRMediaRemoteGetNowPlayingInfo(dispatch_get_main_queue(), ^(CFDictionaryRef information) {
NSDictionary *dict = (__bridge NSDictionary *)(information);
if(!dict) return;
NSData *artworkData = [dict objectForKey:(__bridge NSString *)kMRMediaRemoteNowPlayingInfoArtworkData];
__block UIImage *artwork = [UIImage imageWithData:artworkData];
[UIView animateWithDuration:0.3 animations:^{
velvetArtworkBackground.backgroundColor = [artwork velvetAverageColor];
}];
});
}
%end
%ctor {
preferences = [VelvetPrefs sharedInstance];
if ([preferences boolForKey:@"enableMediaplayer"]) {
%init;
}
}```
Basically its a super trimmed down version of velvets thing
But trimmed and highly modified
the link is on theri website...
how do i build for rootful with a command
Gonna make a 3rd notification tweaking tool
gotta learn a decent amount more about obj c tho
i want this one to be a bit larger
I have a cool name for it
inspired by turdus

@acoustic imp
bro
this is all i needed
%hook MRUNowPlayingContainerView
- (void)layoutSubviews {
%orig;
velvetArtworkBackground = self.superview;
}
%end
%hook MRUArtworkView
-(void)setArtworkImage:(UIImage *)artwork {
%orig;
[UIView animateWithDuration:0.3 animations:^{
velvetArtworkBackground.backgroundColor = [artwork velvetAverageColor];
}];
}
%end```
i was gonna recomend that but i thought it was bad, this is also how i did it in 16p tho
- (void)layoutSubviews {
%orig;
velvetArtworkBackground = self.superview;
}``` 
only thing is
u gonna have to handle nil some times, also that get spammed a bunch
what i did for the spamming, was just store a UIImage var and compare it with it, if its not the same then update/animate
~~%prop time
~~
%hook MRUNowPlayingContainerView
- (void)layoutSubviews {
%orig;
if (self.superview != velvetArtworkBackground) {
velvetArtworkBackground = self.superview;
}
}
%end```
what about that lol
I did initially
Now its basically not velvets source anymore besides the average color thing
layoutSubviews hook 🔥 🔥
someone please tell me why the app doesnt have internet connection (iph XR 18.4) , when using a app i sideloadled, the app was previously injected with a dylib of a tweak that returns VPN status as off.
The thing is other 2 dylibs dont cause the app to not have internet, on the same iph XRios 18.4. only that one.
i also changed the tweak so it doesnt hook system level stuff so it causes problems, it just hooks apps api, not system level.
what could the issue be? if anyone can help i would appreciate it so much!
if you have no idea, at least tell me how you would make a tweak->dylib that you would inject with sideloadly in a normal app, and cause that app on a non jb ios 18 , to see ur vpn as off, thanks again!! 🙂
#import <Foundation/Foundation.h>
// Minimal implementation targeting only AppsFlyerUtils.isVPNConnected
%hook AppsFlyerUtils
- (BOOL)isVPNConnected {
return NO;
}
%end
so ?
Remove layoutsubviews hook all together 😭
Hook like did add subview on the superview
I'll try later today
I’d look into how the function that sets isvpnconnected is implemented
or didMoveToSuperview
hm i need a way to automate this such that it autoinjects whenever it starts up
because nsurlsessiond and backupd are only alive for as long as they're needed
if i do this
when i restart music
like when the widget disappears
it no longer changes color
I need something that gets called every single time it reappears
yeah idk
%hook MRUNowPlayingView
- (void)didMoveToSuperview {
%orig;
velvetArtworkBackground = self;
}
%end```
my bad 🙏
W
hooking it on the actual view i change the color on works
now i need to figure out the botched animation shit
fixed
yes I did that in my daemon
do you have it open sourced by any chance?
no that's crane
oh
there is multiple things I did
like for instance I developed a system where it will auto detect if a dylib is not injected
and stop everything else from doing is thing if one hook is not active
and then I added a fallback case for taurine where it spawned libsyringe with the path on the cfprefsd pid
and return success instead if it worked
but the thing is there was a second thing I had to do too on taurine that I don't fully remember
what does viewforpreview and superview do
you know the basics of uikit right?
.
i was advised specifically not to learn shit beforehand "part of the fun"
ok well you should maybe learn things during but anyway
uikit works by layering views
oh i know that part
there's more that goes into it which i won't explain just yet
but as a basic
every ios app starts off with a root UIView and everything else is layered over that
a UIButton is a subclass of a UIView, UISlider, UITextField etc etc
you can layer more views on top of views! so you can put a UIScrollView on the root view
Yeah i got that much
then some UIButtons in the UIScrollView
i do that in my notification tweak
so, from the perspective of the UIScrollView:
- the UIButtons are subviews
- the root view is the superview
got it
Views that are layered in front/on top of your view are subviews, ones layered behind/in back of your view are superviews
It's same terminology as subclasses/superclasses
got it
lmao
I don't bother with xcode previews too slow
Fascinating
https://github.com/JWIMaster/NotificationGlow2
i need help, currently my main code for the glow is causing lag, im not sure what other function to hook it into tho
layoutSubviews moment
yeah cause layoutSubviews is called all the damn time
see if you can hook into the init function or smth idk
One of my tweaks reads a plist then does a bunch of time zone math every time the time updates my status bar i do not care abt optimization
idk what that is
a plist?
no
obv i know
what a plist is
idk what the init function is
well
ive tried viewdidappear
but it does nothing
try viewDidLoad
cause it also gets called a bunch
what if i ran all the code in viewdidlayoutsubviews
Try it and see
more lag

so much more lag
somehow velvet2 gets away with running their shit in layout subviews
nearly
in clang you can pass --sysroot/-isysroot/-isystem
gcc also has sysroot iirc
You can always do -I
@frail crater have you considered migrating that gentoo thing to llvm? I already built applellvm19
This function does not change the value of tex itself, hence it still points to the same (now invalid) location.
well yeah obv
it's only passed a pointer value so it cant actually modify the pointer itself
This function does not change the value of tex itself, hence it still points to the same (now invalid) location.
This function does not change the value of tex itself, hence it still points to the same (now invalid) location.
This function does not change the value of tex itself, hence it still points to the same (now invalid) location.
This function does not change the value of tex itself, hence it still points to the same (now invalid) location.
This function does not change the value of tex itself, hence it still points to the same (now invalid) location.
I'm gonna make my own free library called libfree that implements void free(void *&pt) and zeroes pt after freeing
.noitacol )dilavni won( emas eht ot stniop llits ti ecneh ,flesti xet fo eulav eht egnahc ton seod noitcnuf sihT
then suddenly decide to remove it from github 10 years later and take down 90% of the world wide web
You can supply either arm64 or aarch64
aarch64-apple-darwin[darwin ver]
Yes, llvm has support for both
ios is in fact, based on darwin
send error logs
@frail crater ima lowkey try to get that gentoo thing running under llvm
Possibility of bootstrapping via Clang (DARWIN_USE_GCC=0)
Sorry for 5 pings
I don’t have a mac and vm is gonna be pretty slow :)
I guess I’m am either patching gcc and binutils to death or fixing (essentially writing new parts) gentoo scripts
You know, gnu stuff seems to be less painful
Same
Yea im gonna look into bunutils this weekend (gcc and apple cctools don’t really love each other)
I’m building on my gnu pc anyways
hm
gentoo prefix for my iOS device :)
yeees :P
Since there are arm64 gentoo bins, you could try changing platform values using vtool
O, seems like a gcc issue
I really hope that you used ians’s fork, which does fix this?
inb4 kill me now x2
also c++ > c
c++ makes life easier
Mfw __Z3literally_unreadableii
That is what lazy ass programmers say 
fr
can u codesign without the name?
email is fine
nvm needs to be notorized by apple to even sign for it anyway lol
Depends on the target device, on a Mac you can do ad-hoc signing but it only works on the current device
It’s very easy to get an app notorized
they would not notorize nugget lol
distributing for mac
They don’t even test the software
It’s an automated check
As long as it’s not malware they notarize it
Yes notarization is dead simple
But nugget has sparserestore
try to notarize it
It costs you nothing
one command in the terminal
How do I code sign windows
buy a cert
What counts as a malware here ? Only private apis ? Or stuff like task_for_pid as well
I think it’s solely malware
Like really you can notarize anything
Nugget triggers false positives because of pyinstaller tho
Windows defender is a moron anyway
Maybe windows defender was really just run by copilot all this time
And it was in development for years

does anyone here want claude ai? i got $15,000 in anthropic api credits and im willing to share an api key that doesnt surpass like max $50 lol
void ai be hitting ig

u want a key?
yes please
ok dm
sure why not
chatgpt be cutting corners lately i cant lie
Claude is the worst one

dms
Can i get one
If u unblock me 😭
U are
i did
Application violated contract by causing UIApplicationMain() to return. This incident will be reported.
Application violated contract by causing UIApplicationMain() to return. This incident will be reported.
wait
fym contract 😭😭😭😭
i want to stop getting github issues about it being a virus
doesnt help that it points to the crypto library as malicious
use openssl
applications "sign a contract" saying that UIApplicationMain won't return, it will continually run
it starts and the runs the app into infinity
the app's process can be killed, but that function never returns
so if the function returns that violates the contact/means unexpected behavior
im not communicating over networks
if it is then its pymobiledevice not nugget
meowning

How is that even possible ?
Memory patching ret instructions or something ?
Mf cried to the kernel 
can i run it from dolphinios?
(yes, i dont have 5$ for tweak)
Shijima has weak drm
Like bypassable with <=5 instructions level of weak

Whyfr
🤨
You heard me
ok
can i run it from dolphinios?
(i dont have 5$ for tweak)
oh that makes sense
does CFBundleGetBundleWithIdentifier return the (apps) main bundle as well ? or is it only for other loaded bundles
The CFBundleGetBundleWithIdentifier function in Core Foundation is designed to retrieve a CFBundleRef corresponding to a specified bundle identifier. This function searches among the bundles that are currently loaded into the application. If the main application bundle has already been loaded, and you provide its bundle identifier to CFBundleGetBundleWithIdentifier, it will return a reference to the main bundle. - gpt from apple dev .com or wtv
Probably
I mostly tested it with Dolphin before I tried it on a real Wii, so
But why would you do that
I don't have 5 for tweak, so why not?
there is no publicly available version of Shijima available for the wii at the moment

the homebrew is ready but you need to use shijima-qt to prepare the files for it
and i didn't actually add that feature to shijima-qt yet 
check dms
Chat, i js spent 3 days working on a userscript cuz i was bored right, and it was like a cheat engine userscript kinda like cheat engine js ported to browsers right, bro guess what i js found out, i cant access the memory unless i have an unrestricted browser with absolutely no sandbox. Wtf
That stupid bro, anywhooo anyone know a browser that fits this requirment? Becuase im not gon make a whole electron app js to make a cheat engine for browser games
Nd im not gon constantly update it every time it breaks through frida so this is the path of least resistance
Shi’s over 1,500 lines 😭😭😭
1500 lines, 1 class 💀
make the browser as well
U want me to make a whole ass browser😭
…
Anyone here have experience making browsers?
I think chromium browsers can just be passed a flag to disable the sandbox
Hi guys
Does anybody knows if its possible to vibe code objective c apps ?
Or the ai is dumb since the language is old?
depends how you define "apps"
i imagine it would fail miserably on anything semi-complex, but it is good at overall objc help
thanks
i recently had to totally reinstall wsl, and now i have issues with the toolchain, can someone give me a link to Apple cross-compiler toolchain ?
Do you specifically don't want to use theos ?
Chromium browsers no sandbox flag only disables the browsers security not the JS runtime
So javascript would still be sandboxed by v8
I’d need a browser with memory bridges
Or i could js rewrite my whole script for frida 😭
Fuck it ima js improve everything wasm related
Fuck ts not gon be a dom cheat engine finna be a wasm cheat engine for newer browser games ykwim
since ur workin on a new browser any chance u could add some dev/testing flags?
R u building from scratch or forking off chromium?
Im talkin like no sandbox for javascript runtimes too not just the browser, that way v8 doesn’t isolate stuff
Nd u think it would be possible to add
like memory bridges or shared memory access from userscripts so i can mess w raw memory
What exactly do u mean by header browser. like is it just for spoofing headers or u got deeper features in it? R u tryna make it a full on testing sandbox type beat or js lightweight header edit tool yk?
Asking cuz im currently otr so im unable to check it out currently
Oh wait nvm lemme look
I would suggest adding a Raw button to the header view pages
so you can view the file itself in web browser, vs requiring a download
chat can i get shijma to work with 6mb ram in total
that somehow significantly less than the wii has
i found this out while trying to figure out why my stb_image was failing to load my png, turns out you can't decompress 3mb of pixel data into the heap when you have 6mb of heap in total
I feel like images are going to be the hardest part
i thought it'd be very funny to port it to the switch to but 6mb is extremely little
maybe i can run the decompressor/png reader every frame and decompress directly to the framebuffer?
the png with all of the sprites is only 200kb so it fits in the memory
but idk if that's a good idea
and idk if that's even possible with a png
also, sidenote, the framebuffer they use has a format of rgba4444
at first it seemed stupid but yeah it makes sense now
oh did i mention the part that the nro itself is also on the heap
the nro i have is around 900kb right now
so that's 5mb of available memory
@manic forum shijima in assembly
I'm sorry idk what nro is
i'm too stupid to even do it properly in c++, the fact that it worked on the wii is a miracle
oh okay
the code
what does it stand for?
i don't remember
it has to decompressed at some point
but not all at once?
i just checked, upx is only really useful to reduce size during transit, not execution
this seems to imply that it's fully decompressed before execution https://upx.github.io
UPX homepage: the Ultimate Packer for eXecutables
home made compression?
or I guess can youy load stuff from disk on the fly?
decompressing pngs every frame seems to be the way to go tbh
yeah, something like that
could work
I mean you could decompress the png store the result then unload the png decompression code
I guess it depends if you can use your framebuffer for temporary memory or if that risks drawing corrupt data to the screen
i have a packed texture that takes about 3mb of memory after decompression, that's not an option (malloc() fails with that size)
yeah I guess just converting it raw to the buffer is probably the best solution
idk how much extra memory that uses
also it might be worth telling to compiler to optimize for space and see if the binrary can be reduced in size
also potentially optimzing the images beforehand
i hadn't thought of that, yeah i could definitely do that
@manic forum c?
since i'm limited to 4 bits per color i might as well convert the colors beforehand
?
This blog post presents several techniques to make the binaries resulting from C or C++ compilation smaller with GCC (or Clang). Please note...
guys how to troubleshoot memleaks
all this thing does is play a module, but mem usage keeps rising
does anyone know of a C library to parse dylib headers (specifically exports)?
Xcode Instruments has a leaks tool
if i delete the macos sdk from xcode will it give me an option to reinstall, i modified it and want to have the original files again
download xcode from apple developpers and extract it then copy the sdk from the .app
git spare checkout 
No that's installed by default
Get it from a second copy of Xcode
i just git cloned this whole thing 
How does Sideloadly inject frameworks into an app? Does it just add a LC_LOAD_DYLIB entry into the main executable, then codesign?
Does anyone know of a tweak or dylib that hooks into CLLocationManager to spoof GPS within any app it’s injected into? Works with jailbreak or sideloaded
you could RE pogo
most likely
@cloud yacht @harsh junco i figured it out
i converted each frame to raw RGBA4444, compressed them with zlib deflate and put them all in one file (alongside their widths and heights as metadata)
on each frame i decompress the required image directly to the framebuffer
i'm pretty sure this would be completely unusable with more than one shimeji on screen
but i probably don't have enough memory for that anyway
wii swap when
?
i am NOT using an sd card as swap
also this is a nintendo switch not a wii
the wii one is separate
oh
the thing has 4gb of memory but they limited overlay developers to 6mb
????
6mb???
yes
thats only like 6 million (prob more) characters only
hold on i'll find the line that limits it to 6mb
yea
You are working with jailbroken consoles after all
but?
Then try it??????
but this is funnier
ok so i looked into it a bit more and i'm not sure if i want to mess with whatever this is doing
https://github.com/WerWolv/nx-ovlloader/blob/c78178ae66388f4f9ba4d7aafe90cd208dceac73/source/main.c#L161
@twilit jungle happy birthday big man


BAN
?
@thin valley petition for me to regain delete perms 🙏
Why were they removed?
bc i was trolling maxine, with deleting reactions, ig it wasnt funny idk, nooka removed them iirc
idk if theres sm like thing i gota do 🤷♂️?
Should be good now. Obviously don’t do again
alr, thx
@harsh junco could you not ruin the chain, thanks
literally 1984
Some people, when confronted with a problem, think
“I know, I'll use regular expressions.” Now they have two problems.
nerd
says webshitter
o
suuuuuuuper late reply, but I finally got around to picking this project up again and gdb-remote was exactly the step I was missing!
As I also noticed with IDA's debugger, the debugger actually starts suspended in dyld instead of the main app but nothing I can't work around
Set a breakpoint at _main and continue is usually what I do
Or whatever the entrypoint is for an app, idr
thats actually better lol
how can i make it like that
happens when I launch suspended from pymobiledevice3
pymobiledevice3 developer dvt launch [bundle id] --suspended
tried to break _start but I don't think that's a real symbol. I don't wanna have to read LC_MAIN at runtime to find the entry 😭
^ try _main
I think _main was stripped in this binary. IDA doesn't see it anyway. Wonder if I can be cheeky and break in UIApplicationMain instead
Could you read it statically and then get the slide with LLDB?
yea that might also work
Use the --break-at-entry flag of LLDB
It’s a flag of the process command
i'll give it a shot but wont that also just stop in dyld_start?
I’m pretty sure it wouldn’t
Oh mb it’s stop at entry
Not break at entry
my lldb doesn't really like either (I can't use process launch because i'm not jailbroken)
I can get the slide with p/x (uint64_t)_dyld_get_image_vmaddr_slide(0) but when I apply the slide to my address it doesn't seem to work. I think my IDA database got corrupted at some point because a lot of the addresses don't seem to line up properly anymore so I'm gonna reload from scratch
yea my address was totally wrong lol. explains why i've been bashing my head for hours today
because i'm not jailbroken
so are you using this https://github.com/doraorak/Spawn_debugserver perchance 👀 if not how do you setup the debugserver, just raw pymobiledevice3 ?
yea just pymobiledevice3
the steps in that repo seem to match the process I was doing anyway
can you post the exact command when you get a chance
for which part?
setting up the debugserver part
(in an admin window) pymobiledevice3 remote tunneld
(in a non-admin window)
pymobiledevice3 mounter auto-mount
pymobiledevice3 developer debugserver start-server
pymobiledevice3 developer dvt launch [bundle id] --suspended
I am on Windows. It's prob the same for macOS and Linux but not tested
right, thanks. just wanted to make sure if it was the same thing with the command used on repo (it was copy paste from somewhere else and idrk pm3 lol)
how do i decompile swift?

binary ninja does not seem up for the task
You do not
Unless you wanna lose braincells till you don’t have any left
ae i wanna figure out the api calls for posterboard
it uses a private api to set wallpapers, i think any app might be able to call it and set it
has anyone worked with bsservice connections?
i have the service idk what to do with it
tried this but it doesnt call the function
Trace the calls
how do i do that on an unjailbroken deivce
not sure but wouldn't you be able to use nm to check the only definition/export of the app and set that as a breakpoint
in this example it's _main, could've been different on ur app
What a chain to follow
Sir you have too much time in your hands
hate u

it'd be hilarious if i deleted one of those
fr
And make it a dangling pointer
fr
some apps let you call arbitrary functions: https://apps.apple.com/app/id1610447913, https://apps.apple.com/app/id1016290003

both use ios_system, maybe LibTerm is also vulnerable?
How do these work?
It’s not doing WASM or something like that?


