#development
1 messages · Page 119 of 1
_UIBatteryView
go back another
or i think u can just hook _UIBatteryView
so you want to hook sm higher in the Hierarchy Tree and self.view.view down or sm
well if u have widgets
Those aren’t _UIBatteryView
oh
What
@visual meadow jus search for UIBattery views, see how many come up
nvm
?
i give up lol
ok
can u help me
this is crashing SB or watchdog or what ever
numtosubspaceonsupview = spacing*2 + self.remainingTimeLabel.frame.size.width + self.elapsedTimeLabel.frame.size.width;
why
@radiant idol ?
spacing = 0 btw
does it no like that?
oh no
see what
I’m gonna send it to him in DMs
noooooooo
not CGRect oop again 🙈
CGFloats did not work
can var names be to long?
Realistically no
does anyone know if fork() will retain kfd in the child process?
evil eliza be like
What do I do?
you use the number
not the name
e.g you want 17 for iphone/tweak
is there a way to set the number of lines for a PSTableCell
nvm i just made a custom cellClass
do i need to like define the like self.view's as like CGFloats?
well this is assuming you're using arm64 since arm64e after a certain version requires a fork fix
try it and see i guess?
yoo, without any springboard injection, its not possible to shift the dynamic island down? maybe I guess a tweak could do it in specific applications, but currently stuck with mine halfway through the XS Max's notch lmao
enable reachability easy
you'd need to hook springboard lol
it's not an app so
@tepid olive lets try the forkfix
@radiant idol @hasty ruin , it kinda works BUT it likes to crash SB/hang threads/watchdog
(The bounce is ArtFull issue)
skill issue

has anyone here ever used _UISheetPresentationController on iOS 14 or before?
ye, but i thought i saw someone already make a shifter tweak in general, atleast that way I can enjoy it in applications lol
🥲
no that thing is in SpringBoard afaik
so
maybe somone know? (this method gets called when ever layoutsubview is called)
-(void)setlabelsandsizing{
CGRect eltempframe = self.elapsedTimeLabel.frame;
CGRect remtempframe = self.remainingTimeLabel.frame;
CGRect elapsedTrackOrigFrame = self.elapsedTrack.frame;
CGRect remainingTrackOrigFrame = self.remainingTrack.frame;
CGRect selfframetemp = self.frame;
if (isSmallDeviceSB()) {
issmallsbnum = 4;
} else {
issmallsbnum = 5;
}
CGFloat inbet = eltempframe.size.width + remtempframe.size.width + 20;
selfframetemp.origin.x = eltempframe.size.width + 10;//fillscubbar;
//selfframetemp.origin.y = controlsviewhight - 79 - playeradjwhenLARGO;
CGFloat superviewWidth = self.superview.bounds.size.width;
selfframetemp.size.width = superviewWidth - inbet;//(fillscubbar*2);
self.frame = selfframetemp;
eltempframe.origin.y = (elapsedTrackOrigFrame.size.height+issmallsbnum - self.elapsedTimeLabel.frame.size.height)/2 + elapsedTrackOrigFrame.origin.y;//(self.frame.size.height - self.elapsedTimeLabel.frame.size.height)/2;
//eltempframe.origin.x = -(eltempframe.size.width + 10);
self.elapsedTimeLabel.frame = eltempframe;
remtempframe.origin.y = (remainingTrackOrigFrame.size.height+issmallsbnum - self.remainingTimeLabel.frame.size.height)/2 + remainingTrackOrigFrame.origin.y;
//remtempframe.origin.x = self.frame.size.width + 10;
self.remainingTimeLabel.frame = remtempframe;
}```
should i just put this in layout subview method?
now that's an aggressive comment
kwk true
Guys, which is the command to see the installed packages and more info ?
Like it shows allso the apple logo printed in the term
neofetch
i mean, UISheetPresentationController is an iOS 15+ thing
if i'm reading the docs right
oh
i mean well i see that in uikit in the 14 headers
but it seems like it's an interface for UIPresentationController
Correct, I was asking if anyone used it for iOS 14 or below bc i was having certain issues
Guys, can someone help me with this simple error ? Please.
It’s a memory error. I want to know a way to fix it. I’m using 18.16 nodejs and im on iOS
Idk if the terminal is limited to not use so much memory. But my script is very simple
And i want to know how to unlock the term to use more memory
CocoaTop says that i have 150-200mb free
look at jailbreakd of dopamine
you have to disable jetsam
in the process
jailbrakd of dopamine does this
<@&355177983398641674> How do I remove the nsfw filter from ChatGPT im tryna see some AI cooch

https://chariz.com/buy/kiyoharu/ yo this looks kinda cool..
bootloop > malawexus
bro thinks im Capt
nvm hayden made that joke

How do i do that?
told ya, take a looksie at dopamine's jailbreakd
Okay thanks
So. Sudo chmod +x jailbreakd (in /jb/basbin) and then ./jailbreakd —help ???
Idk how to do it
Is there something like samjet for dopamine?
just use https://shuttleai.app/
@hasty ruin use*
I didn’t write the guide
nice ig
Should’ve added a bootloop to the token logger. Missed opportunity on your part fr
@radiant idol how can i like have to dif hooks and like be able to call a method from one to the other? or do i need to do the like postn otifaction thing and listener?
huh
How could I like call a method on one of the above views from the now playing view, without sowing self.superview a billion times
you'd get a reference to the view somehow and then call the method using that
how would i get a referance?
like can i put the referance in a like variable? (idk)
like UIView *someview; then %hook thatview
self = someview; ?
@hasty ruin 😭
omg
you may be able to find a property/ivar on a parent view or viewcontroller, which references the view you're looking for (or one closer to it)
k, il look
well all im trying to do is add a UIImageView to the hooked view then when you close the player it just sets the alpha of the image to 0, then when you make the player big again, set the alpha to 1
i mean self.superview.superview and so on would work, its just is that a bad idea?
@radiant idol is it a bad idea to like just leav a UIImageView like active VS removing when your done ?
like would it decrease memory usage?
nvm
this is probably pointless to ask here but
does anyone know if theres a addon for the casio fx-cg50 for symbolic derivatives like partial derivatives
CAS addons can only solve numerical derivatives and indefinite integrals
but when it comes to symbolic ones i cant find any addon online or heck even any information online at all, noone is asking if it exists
it, of course, would be hell to write my own, because i would either have to write my own CAS in c or extend the CAS from the addon
so
Why does visual studio recognize plain text instead of .x
How?
it's certainly something
Heres the new one I forgot to fill the corner
@hasty ruin rate fr
at least it's not stolen from some production company or something
What would you rate it 1/10
static const char needle[] = { 0x08, 0x4E, 0xA8, 0x52, 0x00, 0x01, 0x27, 0x1E };
const char *path = [[NSBundle mainBundle] executablePath].UTF8String;
int fd = open(path, O_RDONLY | O_CLOEXEC);
off_t length = lseek(fd, 0, SEEK_END);
lseek(fd, 0, SEEK_SET);
void *map = mmap(nil, length, PROT_READ, MAP_SHARED, fd, 0);
void *result = memmem(map, length, needle, sizeof(needle));
NSLog(@"[gameseagull] result: %p", result);
uhhh what am i doin wrong
in terms of like
aslr addresses
MessagesExtension [gameseagull] result: 0x106842d60
MessagesExtension [gameseagull] result: 0x109042d60
MessagesExtension [gameseagull] result: 0x10496ad60
got different values all different times
alr
something like this makes more sense to me
still kinda ugly tho idk
idk exactly what im doing
the font is too spiky
true
looks like quartzo or something
this one makes me uncomfortable
consider piximisa
i dont have that one

anyway asking me to design something is not a good idea
Yes!
i think the issue is rather the colors than the font
decrease the saturation by 36% and increase the lightness by 16%
when you pass an array to a function it is passed as a pointer to the first element of the array
thats so specific
so there is effectively no difference between array and &array unless if you're doing some very specific type shenanigans
well it worked
looks like shit now 😭
Capt is shit
Whats that?
ShitSplasher
we'e just experiementing to see if we can make a better icon for your tweak
Okay
Use AI 
ai generates great music @turbid fjord
This is good?
just thought I’d let you know
Cheers

also its very specific because usually you can gauge how much the saturation needs to change and when you do you subtract 20 and use that as lightness lol
its a guideline i go by
low key @placid kraken
much better with a gradient wow
is that radial?
yea
🤓
looks great
Ban icraze for rule 1
No one else has a brown icon
It’s fine
LOL
Zefram sucks then
make the font be big enough so that the space between the screen bounds and the lettering is the same as the letter kerning if that makes sense

like this?
yep
tbf you made that very small
if you put that icon into a pref it would be a bit bigger
it’s big for him
soadjbajd

mud
rosie
you should make an icon too
lets compare
tbf all of them will look like a pile of poo
so
MudSplashed
done!!!!
no but that's too long
ok let me make a real icon
it looks bad as a tweak icon
You could resize the text in figma
no you're not getting it
tweak icons have to be simple, descriptive, recognizable, and (normally) without text
i will make one of my tweak icons the declaration of independence
22nm lithography
jk
.
@gritty crystal wake up dead fuck
nightwind
where the fuck
is rune
the only two icons in this screenshot which have text are your own 😭
technically 3 if you include bolders
Just need a logo
forgot copylog
@grave sparrow if you couldnt tell, im adding a patchfinder to gameseagull so hopefully i dont need to update the next time gamepigeon updates
or at least
im trying to add a patchfinder
ok true
not installed rn :)

So true
gir is a moderator
☝️🤓Erm ackshually
GIR never works = GIR cant moderate = GIR is not a mod
2 of the admins dont moderate
theyre still admins
moderators are held to higher standards
why the fuck would you side with nightwind

it is the truth tho
one of our "developers" doesnt develop anything anymore yet he's still a "developer"
otherwise hydrate would be mod abusing more
@next wadi
im talking about you idiot

luz
luz
why no luz emote
take what
smh he deleted the gif too
this is what i could come up with in like 10 mins, i could do better given more time
i dont like the gradient on the 2 things
when you try to search in FLEX but the keyboard doesnt open 
does anyone know how to make memmem start looking for the needle starting at a custom location
like instead of searching the whole file map, start looking example, the second half
mmmm bad contrast here
make middle darker rather than lighter
yea true
chat gpt gave me this
but idk if its safe
void *custom_memmem(const void *haystack, size_t haystack_len, const void *needle, size_t needle_len, const void *start) {
const char *haystack_ptr = (const char *)haystack;
const char *needle_ptr = (const char *)needle;
const char *haystack_end = haystack_ptr + haystack_len;
const char *start_ptr = (const char *)start;
const char *p;
// Ensure start pointer is within bounds
if (start_ptr < haystack_ptr || start_ptr >= haystack_end)
return NULL;
while ((p = memchr(start_ptr, *needle_ptr, haystack_end - start_ptr)) != NULL) {
// Check if remaining haystack length is smaller than needle length
if (haystack_end - p < (ptrdiff_t)needle_len)
return NULL;
// Check if the substring matches the needle
if (memcmp(p, needle_ptr, needle_len) == 0)
return (void *)p;
// Move start pointer to the next position
start_ptr = p + 1;
}
return NULL;
}
Whats that?
.
i feel like i've seen this before
@native orbit i feel like you'd know
he has something like this in str_patcher
ok i got a dum idea
The real question is does Eliza's icon fit here?
I tired didn't know how
skill issue
nerd
Yeah that's why I'm not good at design
I took some cool photos earlier today
But idk if I have the equipment to get them off the camera rn
i dont get whats different from this compared to regular memmem
faster algorithm
ok but still i need it to start at a certain location
so im looking for a certain instruction and i know where it can at least be
its inside a specific method
and i know where the method is
Which one do I recommend
?
Icons
very
What should I add?
dat shit ass I’m Sorry .
How did you manage to make it worse
Idk magic
Yo wtf
My message is pinned
can't be that hard to make a repo icon 
@tepid olive could you maybe dm?
==> Notice: Build may be slow as Theos isn’t using all available CPU cores on this computer. Consider upgrading GNU Make: https://theos.dev/docs/parallel-building
==> Warning: Building for iOS 9.0, but the current toolchain can’t produce arm64e binaries for iOS earlier than 14.0. More information: https://theos.dev/docs/arm64e-deployment
> Making all for tweak 16player…
==> Preprocessing Tweak.xm…
==> Compiling Tweak.xm (arm64)…
In file included from Tweak.xm:1:
/Users/tesla3092/tweaks/16player/Tweak.h:184:20: error: unknown type name 'SBUIBackgroundView'
@property (strong) SBUIBackgroundView *backgroundView;
^
/Users/tesla3092/tweaks/16player/Tweak.h:184:1: error: property with 'retain (or strong)' attribute must be of object type
@property (strong) SBUIBackgroundView *backgroundView;
^
2 errors generated.```
my .h file
```objc
@interface CSCoverSheetView : UIView
@property (strong) SBUIBackgroundView *backgroundView;
@end
@interface SBUIBackgroundView : UIView
-(void)hidetheBGimgview:(CGFloat)arg0;
-(void)inittheplayerbgimage;
@end```
CSCoverSheetView *coversheetview = (CSCoverSheetView *)self.superview.superview.superview.superview.superview.superview.superview.superview.superview.superview.superview.superview.superview;
SBUIBackgroundView *backgroundView = MSHookIvar<SBUIBackgroundView *>(coversheetview, "backgroundView");
[backgroundView inittheplayerbgimage];
[backgroundView hidetheBGimgview:1];```
could somone help me fix this error, idk what it means really
i tried getting the SBUIBackgroundView.h and importing it but it didnt really work
@grave sparrow i request help
(void *)[%c(PoolScene) instanceMethodForSelector:@selector(mMove)] doesnt return the address displayed in ida
do i need some slide or something
This is unreadable even at a large scale
is it like _dyld_get_image_header or something
i have solved my problem 👍
so should i cast both instanceMeth and _dyld as what
void *
if its uintptr_t do i still gotta do sizeof(void)
Anyone around here familiar with the setuid fix used by palera1n/dopamine and other modern jaibreaks? I'm hoping to add support for setuid to definitlynotajailbreak
yeah that did not work 💀
MudSplashed - A new tweak I made to change your status bar
anyone here know how to programatically send an imessage in cli on an iphone
pypush
why would you give nathan the permissions to text people automatically
no not that
good point
RIP
@grave sparrow ```
[gameseagull] result = 0x105ec6d60
[gameseagull] slide = 0x1059d4000
[gameseagull] method = 0x104fc85b8
[gameseagull] offset = 10533448
```objc
void *method = (void *)[%c(PoolScene) instanceMethodForSelector:@selector(mMove)];
void *slide = (void *)_dyld_get_image_header(0);
NSLog(@"[gameseagull] slide = %p", slide);
NSLog(@"[gameseagull] method = %p", method);
NSLog(@"[gameseagull] offset = %ld", slide - method);
thats the base not slide
capt lied
if you get this working i can make an app that injects this into app store game pigeon
_dyld_get_image_vmaddr_slide(0) is for slide
Why not just sideload it
bc instead of having 5 trollstore apps hed rather have 10 apps called "__patcher"
so wait what should i do, method - _dyld_get_image_vmaddr_slide?
Do you have to open the injector every time you want to open the app
no
i dont give you permission to that sir

what if you dont know i do it for myself
no ill know
bc youll either do 1 of 2 things
dm me asking for support bc smething isnt working
or youll post you got it working stock in every channel here
we all know that’s not possible
what if it is possible
then idk ask what happened to the real nathan bc thats not possible
that would give the unslide addr yes
stop asking what if and just do it
well i will do it once you figure out pool hacks without jit
you know you can set teamid now when signing and can just injecting into appstore apps
what youre still gonna need jit
bruh
what tf did you think this was
my brother in christ
thats what ive been doing
oh
uintptr_t method = (uintptr_t)[%c(PoolScene) instanceMethodForSelector:@selector(mMove)];
uintptr_t slide = (uintptr_t)_dyld_get_image_vmaddr_slide(0);
NSLog(@"[gameseagull] slide = %lu", slide);
NSLog(@"[gameseagull] method = %lu", method);
NSLog(@"[gameseagull] offset = %ld", method - slide);
yeah so uhh
that didnt work
Can someone test my deb file?
@"0x%lx", variable
right
dawg that was a negative number
someone finally caught on
yall mfs thought i was a graphic designer 😭
its the twitter emoji on top of a gradient
@native orbit
[gameseagull] slide = 0x101340000
[gameseagull] method = 0x1009345b8
[gameseagull] offset = 0xffffffffff5f45b8
[gameseagull] header = 0x101340000
header - method should be fine
@hasty ruin
@primal perch

Oh no
?
nothing
Yea
0x1000E45B8
Am a beginner for logo
it get a whole different one??
offset = 0xb07a48
uintptr_t method = (uintptr_t)[%c(PoolScene) instanceMethodForSelector:@selector(mMove)];
uintptr_t header = (uintptr_t)_dyld_get_image_header(0);```
offset = header - method
im sorry but my beginner logos were at least a little better than that
like no hate
i think you need to use class_getInstanceMethod or class_getClassMethod to get the method addr @indigo peak
oh you is using instanceMethodForSelector lol
was it for a calculator
calculatorhistory
so should i still use class_getInstanceMethod or class_getClassMethod
pretty sure it the exact same
class* ones are just objc runtime ones
make a patchfinder for gameseagull
so i dont have to manually update the offsets for extended lines
you do memory patching and shit then? not just hooking

are you trying to patch something in that method?
yeah
so basically
here
in gamepigeon
mov w8, #0x42700000
and thats just 60.0
and thats inside -[PoolScene mMove]
and just gotta overwrite the mov instruction with a large number instead of 60.0
like
mov w8, #0x4e6e0000
so im just tryna just patchfind the mov w8, #0x42700000 instruction to replace it later with MSHookMemory
just memmem for 0x52a84e08 (that mov inst) starting at the method addr
thats what ive been trying to do
did you endian flip the inst
no
uint8_t needle[4] = {
0x08, 0x4e, 0xa8, 0x52
};
mov w8, #0x42700000
fmov s0, w8
084EA852
0001271E```
```C
static const char needle[] = { 0x08, 0x4E, 0xA8, 0x52, 0x00, 0x01, 0x27, 0x1E };
try that
@native orbit
struct stat status = {};
uint8_t needle[4] = { 0x08, 0x4e, 0xa8, 0x52 };
const char *path = [[NSBundle mainBundle] executablePath].UTF8String;
int fd = open(path, O_RDONLY);
fstat(fd, &status);
size_t length = (size_t)(status.st_size);
void *map = mmap(NULL, length, PROT_READ, MAP_SHARED, fd, 0);
void *result = boyermoore_horspool_memmem(map, length, needle, sizeof(needle));
NSLog(@"result = %p", result);
result = 0x104842d60
do a *(uint32_t *)result and check if its the right inst
patch that addr and you should be good 
I meant the programming language

i was trying to make it
compat wth my old hooking function
but ig not 
did it take an addr? or what
nah
int (*__LHPatchMemory)(const struct LHMemoryPatch *patches, int count);
int PatchMemory(const struct LHMemoryPatch *patches, int count) {
static dispatch_once_t onceToken;
dispatch_once (&onceToken, ^{
void* lhImage = dlopen((ROOT_PATH("/usr/lib/libhooker.dylib")), RTLD_NOW);
if(lhImage) {
__LHPatchMemory = (void*)dlsym(lhImage, "LHPatchMemory");
}
});
if(__LHPatchMemory) {
return __LHPatchMemory(patches, count);
} else {
for(int i = 0; i < count; i++)
{
struct LHMemoryPatch patch = patches[i];
MSHookMemory(patch.destination, patch.data, patch.size);
}
return 0;
}
}
void HookMemory(Class class, SEL selector, uint64_t offset, uint32_t data) {
void *final_offset = (void *)[class instanceMethodForSelector:selector] + offset;
struct LHMemoryPatch patch;
patch.destination = final_offset;
patch.data = &data;
patch.size = sizeof(data);
patch.options = NULL;
PatchMemory(&patch, 1);
}```
well kinda
i mean, i can rewrite it im just lazy lmao
is the offset the number bytes from the method addr?
uhhh
number of bytes??
no idea
offset is
for example
__text:00000001000E4E18 MOV W8, #0x4E6E0000
__text:00000001000E45B8 ; void __cdecl -[PoolScene mMove](PoolScene *self, SEL)
1000E4E18 - 1000E45B8
assuming thats bytes but yeah
just HookMemory(<cls>, <sel>, <result - method>, data)
alr lets see if that works
result addr - method addr should be the offset for that
what should i be casting result and method as
@solemn cloak would you be so kind as to tell me the method for when the music player goes away off the LS or how musicbackground knows to hide the artwork background?
do uintptr_t or uint64_t
did not work lmao
default 21:13:45.305522-0500 MessagesExtension 1090a2d60
default 21:13:45.305594-0500 MessagesExtension 104b185b8
default 21:13:45.305627-0500 MessagesExtension 458a7a8
it goes
result, method, offset
thats the order
well that was uint64_t result = (uint64_t)boyermoore_horspool_memmem(map, length, needle, sizeof(needle));
ok but how do i do that
read each inst at the method addr until you hit a ret or retab
yea
ok but how :intjpray:
or couldnt i like
while result is less than method recalc result?
uint64_t bh_memmem(const uint8_t* haystack, size_t hlen, const uint8_t* needle, size_t nlen) {
size_t last, scan = 0;
size_t bad_char_skip[UCHAR_MAX + 1];
if (nlen <= 0 || !haystack || !needle) return 0;
for (scan = 0; scan <= UCHAR_MAX; scan = scan + 1) bad_char_skip[scan] = nlen;
last = nlen - 1;
for (scan = 0; scan < last; scan = scan + 1)
bad_char_skip[needle[scan]] = last - scan;
while (hlen >= nlen) {
for (scan = last; haystack[scan] == needle[scan]; scan = scan - 1) {
if (scan == 0) return (uint64_t)haystack;
if (*(uint32_t *)haystack == 0xd65f03c0) return 0; // reached ret
if (*(uint32_t *)haystack == 0xd65f0fff) return 0; // reached retab
}
hlen -= bad_char_skip[haystack[last]];
haystack += bad_char_skip[haystack[last]];
}
return 0;
}
@indigo peak
is that all i have to change?
void *map = mmap(NULL, length, PROT_READ, MAP_SHARED, fd, 0);
uint64_t method = (uint64_t)[%c(PoolScene) instanceMethodForSelector:@selector(mMove)];
uint64_t result = bh_memmem(map, length, needle, 4);
?
bh_memmem((const uint8_t*)method, length, needle, 4);

uint64_t method = (uint64_t)[%c(PoolScene) instanceMethodForSelector:@selector(mMove)];
uint64_t result = bh_memmem((const uint8_t*)method, length, needle, 4);
close(fd);
HookMemory(%c(PoolScene), @selector(mMove), (result - method), patch);
:intjpray:
tytytyty
no not really
yessir
there was 2 updates in 2 years LOL
and the 2 updates didnt change the instructions
💀

@native orbit is there any way to get the end of the method
or like
not need the lenght of the file
for the bh_memmem
this made me remember the issue we had where you were trying to store a 64 bit uint in a 32 bit uint
frcoal
__CFString flashbacks
for real
the one i send you does that, just put the len at like 0x1000 for something
@native orbit W
if (extendLines) {
uint32_t patch = 0x52a9cdc8;
uint8_t needle[4] = { 0x08, 0x4e, 0xa8, 0x52 };
for (NSString *class in @[@"PoolScene", @"PoolScene2", @"PoolScene3"]) {
uint64_t method = (uint64_t)[NSClassFromString(class) instanceMethodForSelector:@selector(mMove)];
uint64_t result = bh_memmem((const uint8_t*)method, 0x1000, needle, 4);
HookMemory(NSClassFromString(class), @selector(mMove), (result - method), patch);
}
}
@radiant idol legit for the first time ever i see class as a objc keyword
funny that you mentioned that earlier today
what cheat is even being made
im updating pool hacks
oh
idk amy said to make a patchfinder like
3 years ago
but i didnt know how they worked back then
i think it was amy
heyyyyyy
i made an offset finder for gamepigeon
👍
just like 500 days later lmao
(i meaning it was my idea but saturnz helped a decent bit)
i didnt know how to do it back then
@native orbit where was bh_memmem from
this one.
yeah this is closest i got to sending a message programatically:
BOOL success = [[CTMessageCenter sharedMessageCenter] sendSMSWithText:@"test" serviceCenter:nil toAddress:@"1234"];
NSLog (@"Sending the message was %@", success ? @"successful" : @"unsuccessful");
}
from my computer
its not imessage though
would you like credits
so
idc
not objc tho, objc++
bro do you want your name in a comment or not 💀
nah it fine
Icon but actually align it properly
Cringe
oh trust me
there was more builds 😭
i deleted my packages dir
AND
this is also a rewrite
theres more
@radiant idol @native orbit in 2022 i said: "i have 1,324 builds for gameseagull"
bro wtf is this
NSDictionary *getPreferences() {
static NSDictionary *preferences;
if (!preferences) {
CFArrayRef keyList = CFPreferencesCopyKeyList(CFSTR("com.fiore.gameseagullprefs"), kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
if (keyList) {
preferences = (__bridge NSDictionary *)CFPreferencesCopyMultiple(keyList, CFSTR("com.fiore.gameseagullprefs"), kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
CFRelease(keyList);
}
if (!preferences) {
preferences = [[NSDictionary alloc] initWithContentsOfFile:ROOT_PATH_NS(@"/var/mobile/Library/Preferences/com.fiore.gameseagullprefs.plist")];
}
}
return preferences;
}
where did i steal this from
@primal perch did i take this from you
Probably
real
That looks like something scoob wrote
Not that I care
That has all my conventions tho it's ours
i yoinked a tweak that i knew worked
I would always name it getPreferences and use that static dict
It is
Lines
Lines
lines porfavor
could you add a like faded "type here" to each
i fg what thoes things are called
placeholder
@radiant idol
so after reading docs
the icon is for the condensed mode
which is that
404
right one (no icon)
n also, should it be GameSeagull or gameseagull
Right one
alr ty
1
@radiant idol what should placeholder text be for winspoofer
"..."?
Bc I feel like anything is too repetitive yk
Its fixed
I tested it
Now it doesn't crash your app
thanks to derootifier
for converting to the supported version
should I release it?
hello Swift question
var abc: Bool {
// blah blah blah
}
is this evaluated every time i use the variable, or only once?
welp
ok
yea you're right
simple solution though
var abc = {
// blah blah blah
}()
just evaluate the closure
ez
i declare a closure but immediately evaluate it, and set the variable to the result
i cant get placeholder to work in PSEditableTableCell
because i dont need to check for rootless every 0.1 seconds
why do prefs neber work for me
there is no init
well i could probably add an init but idk swift
wait
i dont even need a computed property
bruh im stupid
#if os(iOS)
let rootless = FileManager.default.fileExists(atPath: "/var/jb")
#endif
``` ez
ok problem solved
If you wanted to, you could just put like random numbers in each every time you like open the page.

no this is computed property, thats the term for it
This would not help
yes
#if os(iOS)
let rootless = FileManager.default.fileExists(atPath: "/var/jb")
#endif```
same shit
basically im updating gameseagull and making the winspoofer prefs display the actual number of wins in the placeholder
yes i already posted this mf
oh whoops
Good idea
well anyways
i have access to the wins stored in a nsstring
but i cant figure out the placeholder text
like in the plist if i do <key>placeholder</key> that works
but nothing inside the .m works
look at line 54
What are you making
me?
Yeah
ellekit 1.1.1 update
Type shit
need to stop unconditional 2GB log file generation
because the line for checking the marker file to enabling logging got removed
so it was unconditionally logging
in a bunch of places
I havent seen evelyn in a while
wait i might be return
Mud - Mud is life
when all else fails just look at github results for PSEditableTableCell
GOT IT
ok so the theos definition for pseditcell thingy doesnt have set placeholder
so i had to add
@interface PSEditableTableCell ()
- (void)setPlaceholderText:(id)arg1;
@end
and then, for some reason
NSString *wins = [dictionaryContents objectForKey:
was a __NSCFNumber and not a NSString
so it was crashing when i called setPlaceholderText
bc it was trying to call -[__NSCFNumber length]
what is it gonna do
@grave sparrow
:D
gonna text align to the right
@radiant idol
left or right align
left
dont manually change it to iphoneos-arm64
that'll cause issues
Theos handles it for you
dam i was told right by someone else
^
what's your tweak gon do?
THEOS_PACKAGE_SCHEME=rootless
mud
it will show mud in your phone
I wasn't asking to show mud
what
nvm
Name says it all
you dont have to ping for every message :)
Name says it all
ok
sorry
wont happen again
piss off fiore
you son of a
what you doing?
ios
also what is that font oh my goodness
iOhS
Forgot to change my font
Its in development
fuck kfd
is u using a 1998 computer mf turn on anti-aliasing
My font yea I know
whats the rule for piracy in tweaks
like if theres a method for example -[Class hasPaidItem] and hook to always be true thats piracy
but what if -[Class hasPaidItem] sets a bool in the apps preferences called userHasPaidItem and then instead of actually calling the method to do that, i just write the file myself. is that piracy?
pircay
if you have to ask you already know the answer
no bc i remember at one point cam told me there was a difference
¯_(ツ)_/¯
ok i trust capt more than nightwind
cam would have the best response then
i agree with right as well
left doesnt make sense
but it was like 3 years ago
so i dont remember exactly what was said
all i know is i was walking into school while he told me
concept

this is stupid

why would you trust CAPT
it looks bad in terms of iOS standards smh
this is my first time actually typing on my actual keyboard in so long
are you good
ive been on my mac for the past week
yes
how does a giant gap on the right look good
how does a giant gap in the middle look good
because it looks aligned??
WHY
no swift
for real for real
swift is so weirdly like rust
A rust enthusiast told me they have a long history of stealing features from each other
¯_(ツ)_/¯
Shortcuts
You can use uri schemes to call them
In Shortcuts, the URL scheme also supports running a shortcut that is saved in your shortcuts collection.
Good morning Guys but has palera1n become compatible with arm64e? Don't exploit checkm8 which was solved by A12+?
i fw them
same
well, why wouldn't it be I guess is how I would answer it
Kirb > fw
program says you must pay to have these features
you didn't pay but you have these features
what is that called if not piracy?
it being a poor implementation doesn't mean you aren't still bypassing it
why is it pink lmao i love it
no
arm64 devices only
Yes
if you're giving access to something that isn't available via any paid option, then it's not piracy
last time youtube didn't have premium but the adblocker tweaks still worked because it hooked some allowbackgroundplayback thing
now idk
if there is a paid option and you're using the tweak to allow these options without paying then yeah it is
The original tweak was a lighter pink but as I was updating I realized how bright it was with light mode
are all of them good?
like are there any I should change
Find a better one for “disable hard mode”
The others are good
GitHub copilot came up with that one
I couldn’t think of anything else
It looks like light mode dark mode symbol
So I can see it getting a little confusing
how can i see if the LS media player is still showing/visbile ?
musicbackground has a way but ETHN doesnt want to respond
this is when you start your journey of reverse engineering
i mean im thinking if a few ways of telling
seeing if the pllayer is hidden or theres sm bool on sm view that says, or theres a method that gets called when it hidden
i just need to find it
or
just need to figure out how to figure that out
basically MRMediaRemoteGetNowPlayingInfo( dispatch_get_main_queue(), ^(CFDictionaryRef result) { if (result) { NSDictionary *resultDict = (__bridge NSDictionary *)result; NSData *artworkData = [result objectForKey:@"kMRMediaRemoteNowPlayingInfoArtworkData"]; UIImage *artworkImage = [UIImage imageWithData:artworkData]; } });
it's on macOS as well
is it that bad xD?
it's garbage
the times don't update properly
sometimes one field will update, sometimes another field will
you mean like the elapsed / remaining times?
yeah also noticed that and because of that: dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.7 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ [self updateNowPlayingInfo]; }); most of the time fixes it xD
you get elapsed time & timestamp
I hate this API so much
why is this: "kMRMediaRemoteNowPlayingInfoTitle" returning the title with a bullet point like if you try to get the artist via kMRMediaRemoteNowPlayingInfoArtist it returns nil iirc
are there any alternatives to that?
kMRMediaRemoteNowPlayingInfoTimestamp = "2024-01-28 17:34:30 +0000"; kMRMediaRemoteNowPlayingInfoElapsedTime = "1.553"; kMRMediaRemoteNowPlayingInfoDuration = "174.853";


so you basically have to manually calculate it
no but let me find a comment in my code that shows you how horrible this API is
(The only comment in the entire tweak)
in what measurement is 174.853 even
seconds
ahh alright i thought this was like 174 thousand secodns lol
lol nah
someone make an alternative media API so i dont have to use mediaremote ever again pretty please thank you very much
more MediaRemote cursedness
ofc it delays the swipe by one frame as well
how do i like see all the data in the dict? and like would something return nil if the player wasn't there ?(jus to prefice idk much of anything ab objc n stuff)
i want to die
oh is this why that bug i found exist
no protection when in hard mode ✅





