#development
1 messages · Page 115 of 1
k, test me rq on my oop
ask me a question
im too lazy
k
@acoustic imp not so much oop related as much as cs related but what does it mean for a function's return value to be idempotent
no googling
idempotent, thats a word?
maybe like removed or moved from an object to another?
lol nope
its probly sm like simaple as answer
it is quite simple
like data is writen to a value?
wait no
its able to have data written to it
its a state at wich a value is
idk what tho
lol its when you can perform an operation multiple times and always get the same result
in terms of a function its where you call a function and it always returns the same value
@lime pivot hi
What
Wdym by "icon to trailing of a cell"?
icon to the left of the text in a cell
cephei allows for setting a systemIcon there when replacing the normal PSListController with a custom HBListController
im wondering whether LibGcUniversal cells have the same functionality when rendered with this custom list controller
You mean like those icons?
Yeah but in that place I mean
Yeah no… if Cephei doesn't work natively, you can pass an image your self using the icon property
But you'd need to bundle the icon
Sfsymbols aren't supported as of now, though I might think about that for the next version
Feel free to create an issue on the docs repo, and I'll see what I can do for the next update (no promises on when the next update is gonna be though)
its not that big of a deal i would just like to put a small palette on the left of each cell
anyway @radiant idol progress
well it will look better once I customize it lol
BRUH
OH
and the api for it is really nice
<dict>
<key>cell</key>
<string>PSLinkCell</string>
<key>cellClass</key>
<string>FloraPopoverCell</string>
<key>default</key>
<string>Basic</string>
<key>defaults</key>
<string>com.rosiepie.flora</string>
<key>key</key>
<string>mode</string>
<key>id</key>
<string>mode</string>
<key>options</key>
<array>
<dict>
<key>name</key>
<string>Basic</string>
<key>icon</key>
<string>paintpalette.fill</string>
</dict>
<dict>
<key>name</key>
<string>Advanced</string>
<key>icon</key>
<string>sparkles.rectangle.stack.fill</string>
</dict>
</array>
<key>label</key>
<string>Capibilities</string>
</dict>
Yeah, you can just export the desired icon for now and bundle it
ok what the fuck happened to the formatting
ok tyyy
But feel free to make the issue on the repo, that feature isn't a bad idea
soon™️
ok well that animation clearly needs work but
it works!
idk what to call the cell
capibilities doesnt sound right
because both are coloring everything
you just have more fine grained control with advanced mode
true
why do I feel like Capabilities is misspelt there
because it is
ok so I'm not insane
i know you're capable of spelling it properly
anyway the code is really simple for this
(.c so it embeds)
actually
does .x embed
rosie
what is this
better????
no discord doesn't know what logos is
i know but i thought maybe it would embed
aaaaa what extension gives the best syntax highlighting
actually you can just change the language
sometimes i forget this exists
ok
objc
since when does .objc exist
well yes ofc it knows objc
no one
but swift didn't always exist
objc apps on the appstore use mm or something 😭
not related to it being a real extension
it just validates the same way
Could someone who knows Muirey maybe ask him to make his tweaks open source since he made them free anyway?
same reason why you can do this
gm
Me
@radiant idol fixed the lock not showing when you press lock too
neat
send me your code for that since you already implemented it in rune and nexus
that is untrue
it is very true
the things dotn wanna be fixed

I’m trying to make the preview bubble say locked if the chat is locked
I can get it to say locked
but when you unlock
I can’t get it to go back to normal
😭😭
fr
@grave sparrow
darwindarwindarwindarwindarwin
Darwin
23.2.0
you missed version
does convo show if you get a text from that person and open the preview
and the convo is locked
wdym
Like in the notification?
zefram is bad
preach 🙏
i literally sent this to myself
L
I can’t open flex
In springboard
ok now we good
that was on my todo list @ashen birch
So rn the todo list is
- pinned contacts message preview blocking
- fix the compose view
- notification preview
- block notifications (like the text in the actual notification (might be hard to block and unblock))
veqfrqdew qdew qfew œß∑ ewgrth ewfgrq dewrasΩ≈∂ßåå∂ß≈ acdsåß≈ dsxa acdsx qewffdedfv. cdesw≈∂å ç∂∑ acdw dew adesw dfas easa cesz∂Î
?
ANSWER ME
word
word
word
powerpoint
1)An excuse for any kind of illegitamate situation. Covers anything from smoking to sex. 2)Actually going for a walk, possibly to see other people you've been looking for.

does anyone know how to block marking as read
like
basicallt manually mark imessage as read
turn off read receipts?
-[IMChatRegistry _chat_sendReadReceiptForAllMessages:]
im making a tweak in the imessage app and i need to prevent sending read receipts just in case people have them enabled
me personally i dont
however
some might
nice
It’s no2
don't lie you definitely smoke kush
I've never smoked a cig only kush
Honestly good
someone mentioned nicotine i am here
@faint timber ```objc
%hook IMChatRegistry
-(void)_chat_sendReadReceiptForAllMessages:(IMChat *)arg0 {
if ([getLockedHashes() containsObject:arg0.identityHash]) return;
%orig;
}
%end
(i have zero idea if it works)
pov that doesnt have the functionality i was looking for 🧌
Add a 10% chance of deleting /var and sell it under @hasty ruin's Havoc account
just add it as a new feature in nexus

@ashen birch i cant seem to find an instance of CKConversation or IMChat through the view
You using flex on a rootless device?
Hidden root
I see
Does it work on anything but springboard
I tried using a rootless version of flex but it only works on sb :( unless there’s a setting I missed?
it works in everything now
Hmm
What’s the best way to check for when the elapsed time of now playing media has changed?
With a display link?
seems this was solved by subscribing to a delegate of MPUNowPlayingController back then, but that class doesnt exist now... so what am i to use?
Is it mot MPNowPlayingInfoPropertyElapsedPlaybackTime
right but that requires querying MR every second no?
also no that's not it bc MP's is diff
What’s wrong with that 
I have no idea tbh, never used it myself but I w oh nvm then
do you have any idea why this works on SB only ☹️
works in apps for me 
though i'm on 15.8
in Settings im holding on the status bar and it just
doesn't pop up
this is so frustrating
could be why, im on 16
semi? or arm64?
arm64
hmm
and whenever i push to see the AppDelegate tab
3 finger
it says SB
Tap with 3 finger in app
isn't 3 fingers also for the text editing stuff
lol
its uh, also for opening up the demo settings of a demo unit

i thought you guys were talking about that but apparently not
Okay trying to do this now and agghhh
I can’t believe something so simple is so frustrating….
I’ve tried hooking into like 12 classes
MPNowPlayingSession?
- (void)observeValueForKeyPath:
possibly but i'm not sure
No I don’t think that works for SB
I’ll try in a bit
Nope doesn’t work
darn
Works everywhere for me
Yeah fixed it dw
MediaControlsTimeControl seems too obvious but looks promising
Doesn’t work on iOS 14+
YEAH LIKE
Such a headache
i believe mediaplayer.framework is the one that gets used for like video content and files
so that's prob why it doesn't work
hi, i'm trying to build AltList rn but i get the following error: clang: error: SDK settings were ignored as 'SDKSettings.json' could not be parsed [-Werror,-Wdarwin-sdk-settings] make[3]: *** [/Users/jan/theos/makefiles/instance/rules.mk:280: /Users/jan/Downloads/AltList/.theos/obj/arm64/ATLApplicationListMultiSelectionController.m.d7fbbdf7.o] Error 1 i have no clue why that happens, it compiled just fine on my laptop
uhh
maybe fetch the sdks again
already did, currently using skds from theos and the ios 17 ones from xybp888
and what version are you targeting
well altlist makefile targets 7.0-16.2
no the last value is the clang version target
sorry i cant follow rn, how do i check this?
well i'm looking at the makefile
you'd read this as
if using rootless, target ios 16.2 and clang-15 otherwise ios 14.5 and clang 7
ahh alright ok i misunderstood this xD
oh ok, i think this might explain it then: jan@jans-iMac-Pro AltList % clang --version Apple clang version 14.0.0 (clang-1400.0.29.202)
if a makefile targets 16.2 then it should find the iPhoneOS16.5 sdk
unless you have something older there
yeah i got those
keep the 16.5 one and delete the others for 16
the ones from https://github.com/theos/sdks are what are confirmed to work
that’s why all my hooks into it aren’t working.
😭😭😭😭😭
Dude what the actual fuck am I supposed to hook omg
YEAH
And the view is a hosting view for swiftui views
I’m going to die
There’s GOT to be like some kind of NowPlaying media manager that allows u to track this
if its mangled
just
%init
%hook SomeShitSwiftUI
%end
%ctor {
%init(SomeShitSwiftUI = objc_getClass("mangled_name"));
}
No I’m just gonna find another way to do this
btw clang 14 should be fine here unless altlist is using something specific to a newer version but i doubt it
alright thank you!
do mangled classes change between versions
i wouldn't be surprised if they did
zero idea
let me just go diff some headers
can't believe they use swiftui for the media player
no wonder it's so glitchy last time
https://github.com/apple/swift/blob/main/docs/ABI/Mangling.rst
i'm going to assume yes, especially if swift gets updated lol

mangling is supposed to make things unique so if apple decides to just add a bool or change a method then you get a new one
how do you trigger FLEXing again
iirc it just hold status
lmao amazing somehow i had provisioning profiles putting me into safe mode
anyways it works now ty
Does anyone want to try and test my website thats in development? just working on backend things right now http://152.86.127.201:8000/
since when does iOS highlight the not secure text when clicking on a password field
that's cool
remove the tracking info
Bros idea:
⬛
hook the setframe method, it get s called everytime the time chnages
there is no way.
for what class @acoustic imp ? and what iOS version did you test this on
15.1.1 and i got check
15.1.1 :(
oh ur on 16?
yup
ah
would me messing with an ios 16 ipad be helpfull
like is the media player the same?
it seems a whole lot diff
oh ok
I don't have an iOS 15 device to compare with so anything is appreciated
k i gota re jb gime a min
bet
??
Is it theoretically possible to make a re-jailbreak for palera1n based jailbreaks using the kfd/mdc exploit?
LMAO
isn't this what meowbreak is
👍
It works tho 🤷♂️
@slender glade whay does the settframe method not work?
That’s not supporting iOS 16 +
because on iOS 16 it's SwiftUI
ohh
damit apple
doesnt like widgy have a way of getting the curet music time
bc of like widgets?
also jus random question, is the ios 16 notifaction thing swift?
notifs are still objc
one of the websites of all time
anyone have expirence with CSAdjumeant view on the LS media player?
fr
how do u blur the edges of a cashapelayer path?
tf is up with my skip arrow 😭😭
A skill issue
well there's definitelynotajailbreaktool (with a bunch of numbers replacing letters)
lol
ye
odd version number
It’s for rejailbreaking? I thought it’s a new bootstrap
where does it say that it’s for rejailbreaking
the only "bootstrap" it includes is iosbinpack64
so it should work fine with procursus
rh ruined the word bootstrap fr
oh well
it should install procursus if you don't have it already
cause what else would it use
lol
could be like xina and use a hacked up ios 13 bootstrap 
newer than 16.6.1 i meant
trollstar is recent tho
kfd devices were using trollhelper for a bit lel
"icon made by sourcelocation" 



why cant everyone just use ntwerk icon...
if you hate yourself you could reactivate the Procursus X/Twitter and say that you were misled into giving permission for the Procursus icon
who knew a table could do so much
I won’t say anything unless you are fine with me doing so

name a single average user that checks the mastodon
(I’m not the average user, mind you)
true
can I post something on mine then by chance
THEOS_PACKAGE_SCHEME=roothide
😭
the procursus m1 wallpaper did it better
what would it even entail
easy enough 
when i made a 3d rotate + scale animation, if i set the key path value of the scale to 0.0, it doesnt rotate, but if i dont set it to that, it rotates but goes back to scale of 1.0
i tried also making a transform 3d scale and concatinating them but same problem
I mean depending on what that entails sure I don’t mind
why is cydiasubstrate.com down
subbed its last strate
i think imma just host some custom docs for substrate
actually
that seems like a lot of work
just DL the ones on archive 🤷♂️
archive is slow as fuck so it wouldn't be a dumb idea to rehost
how can i stop the backlight from animating the fade when turning off the device?
my idea of setting arg2 to 0.0 crashes to safe mode
header is:
-(void)_animateBacklightToFactor:(float)arg1 duration:(double)arg2 source:(long long)arg3 silently:(BOOL)arg4 completion:(id)arg5
i doubt it was written to just instantly cut to black
that also crashes springboard
it does get called with 0.0
yeah
maybe it was because i was using dispatch queue to delay it?
but i doubt the method can if that makes sense
oh probably
idk what's in the method but i wouldn't be surprised if it just doesn't support having a duration of 0
it gets called by the system with duration of 0
this is my code
-(void)_animateBacklightToFactor:(float)arg1 duration:(double)arg2 source:(long long)arg3 silently:(BOOL)arg4 completion:(id)arg5
{
// source
// 3 = manual lock
// 8 = after timeout
// f = SpringBoard launch
if(
enabled
&& arg2 > 0
&& (!disableInLPM || (![[NSProcessInfo processInfo] isLowPowerModeEnabled]))
&& (arg1 == 0 && [self screenIsOn])
&& !isAnimationInProgress
) {
arg2 = animDuration + 0.1;
[lockMaster playLockAnimation:arg2 - 0.1];
}
%orig(arg1, arg2, arg3, arg4, arg5);
}
because it fades if i call it like the code sample i just posted
just ignores you?
wdym
sorry i'm extremely hungry so my ability to think is limited
bus was late to school and i forgot snack
if i delay it, it runs without fading but after the animation finishes it then crashes
Have you checked the completion handler
on which dispatch queue
See if it's doing any funny business
Bc that sounds like the completion handler breaking
like this
-(void)_animateBacklightToFactor:(float)arg1 duration:(double)arg2 source:(long long)arg3 silently:(BOOL)arg4 completion:(id)arg5
{
// source
// 3 = manual lock
// 8 = after timeout
// f = SpringBoard launch
if(
enabled
&& arg2 > 0
&& (!disableInLPM || (![[NSProcessInfo processInfo] isLowPowerModeEnabled]))
&& (arg1 == 0 && [self screenIsOn])
&& !isAnimationInProgress
) {
[lockMaster playLockAnimation:arg2];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (animDuration + 0.1) * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
%orig(arg1, 0.0, arg3, arg4, arg5);
});
} else {
%orig(arg1, arg2, arg3, arg4, arg5);
}
}
it will play the animation but once it calls %orig it crashes springboard
real
this is my second tweak (first "big" one) so idrk what im doing still
not calling %orig doesnt crash but the screen doesnt turn off
how do i make the list controller update when i change something in a custom cell
do i need to make a delegate
@radiant idol hi how can i send an event to my list controller from my popover cell saying that the value has updated so i can update the ui
im currently trying to do it like this
(cell)
@protocol FloraPopoverCellDelegate <NSObject>
- (void)popoverCellValueDidChange:(NSString *)value forSpecifierKey:(NSString *)specifierKey;
@end
@interface PSTableCell (PrivatePopover)
- (UIViewController *)_viewControllerForAncestor;
@end
@interface FloraPopoverCell : PSTableCell
@property (nonatomic, weak) id<FloraPopoverCellDelegate> delegate;
@end
UIAction *action = [UIAction actionWithTitle:[dict objectForKey:@"name"]
image:[UIImage systemImageNamed:[dict objectForKey:@"icon"]]
identifier:nil
handler:^(UIAction *action) {
[preferences setObject:[dict objectForKey:@"name"] forKey:[self.specifier propertyForKey:@"key"]];
selected = [preferences objectForKey:self.specifier.properties[@"key"]];
[self updatePreview];
NSLog(@"[Flora] Sending %@ with %@", selected, self.specifier.properties[@"key"]);
[self.delegate popoverCellValueDidChange:selected forSpecifierKey:self.specifier.properties[@"key"]];
}];
(list controller)
@interface FloraRootListController : HBListController <FloraPopoverCellDelegate>
@end
- (void)popoverCellValueDidChange:(NSString *)value forSpecifierKey:(NSString *)key {
NSLog(@"[Flora] Received %@ from %@", value, key);
}
and its not being received in the method so im definitely doing something wrong
does anyone here know how to prevent a system daemon from being loaded using launchd hook
this fucker seems to like starting
/System/Library/LaunchDaemons/com.apple.PerfPowerServicesExtended.plist
even though it shouldnt
thats the worst way possible
i dont want to run something in a hook that could be done in the hook
launchd hook
i could just hook the function
why
i only want it to do it in this jb state
cause that spawning doesnt happen stock
xpc_object_t hook_xpc_dictionary_get_value(xpc_object_t dict, const char *key) {
xpc_object_t retval = xpc_dictionary_get_value_orig(dict,key);
if (strcmp(key, "Paths") == 0) {
{
xpc_array_append_value(retval, xpc_string_create("/var/jb/Library/LaunchDaemons"));
xpc_array_append_value(retval, xpc_string_create("/var/jb/System/Library/LaunchDaemons"));
}
}
return retval;
}
``` i mean this adds the extra paths
I doubt it
Some of them arent
that code was originally from palera1n so lol
hmm
I tried making thsi
but uh
its pretty bad
and does not work (launchd hangs)
void hook_xpc_dictionary_set_value(xpc_object_t dict, const char *key, xpc_object_t value) {
if (strcmp(key, "/System/Library/LaunchDaemons/com.apple.PerfPowerServicesExtended.plist")) {
{
return;
}
} else {
xpc_dictionary_set_value_orig(dict, key, value);
}
return;
}```
what should i do lol
i cant
also
it kinda
uh
already does that
it starts
and exits
and starts
and exits
over and over
that is why i want it dead
it does not do this when in normal
it is not there
in normal
no its only true if a file exists
which does not exist
but launchd starts it anyways
i do not know why
how to do this with fishhook
?
wdym
yews
yes
how to prevent that launch daemon from loading in hook
i tried enabling jit in launchd
it wouldnt work
void hook_xpc_dictionary_set_value(xpc_object_t dictionary, const char *key, xpc_object_t value) {
if (strcmp(key, "/System/Library/LaunchDaemons/com.apple.PerfPowerServicesExtended.plist")) {
{
xpc_dictionary_set_value_orig(dictionary, "", value);
return;
}
} else {
xpc_dictionary_set_value_orig(dictionary, key, value);
}
return;
}```
i just tried that
still hang
when its just xpc_dictionary_set_value_orig and return; it works
the daemon not load
thats what launchd uses and palera1n uses for daemons
wat
im trying bro 🙏
ykw idk
let see
This parameter may be NULL, in which case the value corresponding to the specified key is deleted if present
launchd still hangs
ok well then maybe properly hook the code that's responsible for the embedded daemon list
or
yknow
stop crashing the daemon
so what
i would much rather fix whatever issue is causing the daemon to crash rather than spend my time debugging why it is starting
which is probably going to end up being "i did not understand launch daemons"
well does it exit repeatedly on stock
no
then something is causing it to exit
it does not even start on stock
i am 100% sure look ill show a screenshot
is launchd oss @grave sparrow
Uh
Source hasnt been updated in years
that just means it isn't currently running
ive userspace rebooted several times and it just doesnt start
but when i userspace reboot once with custom launchd
it comes up
rip
what exactly are you changing
its just resigned and has the hook in it

i havent figured out the delegate stuff yet to automatically update without leaving the ui
but once i do this will be a bit fancier
Anyone know what arguments xpcproxy runs with?
Try calling “reload” or “reloadSpecifiers” on the controller
http://152.86.127.201:8000/ its ready for yall to break
username field needs some better validation ig
shouldn't be able to have / in it lol
How can I force this to be bigger
alr tried ```objc
-
(void)setFrame: (CGRect)frame{
frame.size.height = 490;
%orig;}```
@faint stag noted thanks
IM HIM, ifgured it out 👍 , silly ios
@slim bramble im FREKING HIM i figured it out
i fixed notifcation bug and buttons not wkoring
NO ROTATION
didn't fix button not wkring tho 🥲
@quaint wagon chatbox should be at bottom not top
Yeah i was thinking that with older chats accending
Im also having a issue with ajax not allowing me to refresh the chat automatically still have to refresh the screen for new chats sadly
Imagine if this had all the repos posted by users i know there are other sites but speificly for this discord that can utilize a discord bot to work with it.
I'm a decent with html css javascript and pythhon and node but i'm not a pro but aye takes time ig
its not centered btw
@lapis vessel https://www.reddit.com/r/TweakBounty/s/ue42F9VNyM lol
@hasty ruin rune 2
i think i fixed the main issue lol
by not renaming the name of launchd????
idk but its not happening anymore
why do people want this
lmao
so broken shit is because powerd is hardcoded to talk to launchd
?
No it just doesnt spawn just like normal mode
But id change it to launchd anyways
Cause i feel like that could fix other issues too that havent been noticed yet
yeah good idea
I’ll try RE the vc in cc for it ig
Seems like MRUNowPlayingController is what it uses, lemme try figure it out
Seems promising so far…
@granite frigate
yeah i think
renaming to launchd
fixes battery usage
lol
pretty sure it does
idk ig we'll see when my phone charges overnight
and ```
THEOS_PACKAGE_SCHEME=rootful
THEOS_PACKAGE_SCHEME=rootless
yeah but i dont know how to send a signal from my cell to the controller that it should reload
thats my issue lol
i have the code ready for if i could
- (void)popoverCellValueDidChange:(NSString *)value forSpecifierKey:(NSString *)key {
NSLog(@"[Flora] Received %@ from %@", value, key);
if (![key isEqualToString:@"mode"]) return;
[self reloadSpecifiers];
}
``` i literally just need to
because in the specifiers function im filtering it already
- (NSArray *)specifiers {
if (!_specifiers) {
NSUserDefaults *preferences = [[NSUserDefaults alloc] initWithSuiteName:BUNDLE_ID];
NSMutableArray *baseSpecifiers = [self loadSpecifiersFromPlistName:@"Root" target:self];
NSString *value = [preferences objectForKey:@"mode"] ?: @"Simple";
_specifiers = [self getSpecifiersWithValue:value specifiers:baseSpecifiers];
}
return _specifiers;
}
so all i need to do is to reload with the new value and it would work
however i dont actually know how to send the event over to make it reload
what if i kill myself
Do it
is there any way i can install tweaks on my phone directly after compiling on mac
you probably can via ssh
Honestly I probably should open source all my old tweaks
I should for Arc definitely because I'm actually proud of the code, but Zenith was something I wrote pretty early on so the code might be a total mess
I remember Flow was pretty hacky too lol
how do i do that from mac?
Don’t worry, we have people like captinc
There is no such thing as standards.
@grave sparrow hi any idea aha
If you have no interest in updating then yeah
Someone else will take over and take that off your shoulder
Yeah I mean the reason I made all my tweaks free is because I don't plan on updating anything
I'm not sure I even have a working theos setup anymore haha
Busy with Cellebrite stuff and uni atm
This tbh
YesBetaPopup
Bitches
Magician
Fiona
best tweaks ever
i have all of them installed actually
i still laugh when i see YesBetaPopup
😭
Hey, whenever I try to run make package in my swift tweak (theos/orion), it gets stuck on this line and throws an error like 15 minutes to 2 hours later:
[5/8] Compiling ArgumentParser BashCompletionsGenerator.swift
(I'm on WSL / Ubuntu btw.)
Does anyone know what could've went wrong?
I’m working on pplrw, but it’s not working on A15/A16.
do you know what is wrong?
@granite frigate yoo when u got dev
when i released my crappy ass serotonin
💀
fire
@naive kraken If you don't mind, could you tell me about it?
thank you
Who pinged
light mode
Light mode is the og one
It was filtered
filtering meow is a problem for me.
because meowbrek2
There is a false positive thing in gir
oh
the panic means it worked
Yeah on A14 and lower, it worked. But on A15, i got others error
I think it’s necessary to write 0x1 to 0x206150020
I have iOS 17 trollstore but no pailrain
I'm sorry about my bad English
I want to ask why it’s not working and is that caused by the register at 0x206150020
HOLY SHIT
I HAD TO WRITE AN OBSERVER TO LISTEN FOR CHANGES TO NSUSERDEFAULTS
#import "FloraPreferenceObserver.h"
@implementation FloraPreferenceObserver {
NSUserDefaults *defaults;
void (^_block)(void);
}
- (instancetype)initWithKey:(NSString *)key withChangeHandler:(void (^)(void))block {
self = [super init];
if (self) {
_key = [key copy];
_block = block;
defaults = [[NSUserDefaults alloc] initWithSuiteName:BUNDLE_ID];
[defaults addObserver:self forKeyPath:key options:NSKeyValueObservingOptionNew context:nil];
}
return self;
}
- (void)dealloc {
[defaults removeObserver:self forKeyPath:self.key];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
_block();
}
@end
👏👏
BECAUSE USING A DELEGATE DIDNT WORK
Is it your own tweak?
lol yea
Is it released
it lets you change most of the ios system colors
Damn that would be in need
lol yep i decided to write it because theres no modern tweak for that for some reason
all the tweaks like spectrum and kaleidoscope are all made for older ios
- (instancetype)init {
self = [super init];
observer = [[FloraPreferenceObserver alloc] initWithKey:@"mode" withChangeHandler:^() {
[self reloadSpecifiers];
}];
return self;
}
- (NSArray *)specifiers {
if (!_specifiers) {
NSUserDefaults *preferences = [[NSUserDefaults alloc] initWithSuiteName:BUNDLE_ID];
NSMutableArray *baseSpecifiers = [self loadSpecifiersFromPlistName:@"Root" target:self];
NSString *value = [preferences objectForKey:@"mode"] ?: @"Simple";
_specifiers = [self getSpecifiersWithValue:value specifiers:baseSpecifiers];
}
return _specifiers;
}
- (NSMutableArray *)getSpecifiersWithValue:(NSString *)value specifiers:(NSArray *)specifiers {
NSMutableArray *specifiersToKeep = [NSMutableArray array];
for (PSSpecifier *specifier in specifiers) {
if (![specifier propertyForKey:@"floraColorType"]) {
[specifiersToKeep addObject:specifier];
continue;
}
if ([[value lowercaseString] isEqualToString:@"simple"] && [[specifier propertyForKey:@"floraColorType"] isEqualToString:@"simple"]) {
[specifiersToKeep addObject:specifier];
continue;
}
if ([[value lowercaseString] isEqualToString:@"advanced"] && [[specifier propertyForKey:@"floraColorType"] isEqualToString:@"advanced"]) {
[specifiersToKeep addObject:specifier];
continue;
}
}
return specifiersToKeep;
}
``` its this easy in the list controller by the way aha
if the specifier has no floraColorType at all then add it to the array
if it has simple but the value of the popover is not simple then ignore it
and vice versa for advanced
then the observer simply updates the specifiers when the value of mode changes
as in all of them have something like this on them
if it doesnt have one then you can assume it shouldnt change and always add it back to the array
i cant really think of a better way
i have no idea about objc or whatever but instead of a observer to the nsuserdefault why is it not possble to just reload the page whenever the setting is changed
i tried to do that for the past day and a half
im pretty sure it requires a delegate
which i cant get working
or maybe the PostNotification thingie but ill need to look into that
does the UI not have a way to execute a callback whenever a thing changes?
that dropdown's the only thing that changes the nsuserdefault right
(in normal operation)
there is a setPreferenceValue but that doesnt work when im working in a custom cell like this because i cant pass it down from the list controller
for example i prompt to respring whenever the enabled key (aka Enable Flora) changes
- (void)setPreferenceValue:(id)value specifier:(PSSpecifier *)specifier {
[super setPreferenceValue:value specifier:specifier];
if ([[specifier propertyForKey:@"key"] isEqualToString:@"enabled"]) {
[self promptToRespring];
}
}
but thats using the default/base cells
this is a custom cell
why dont you subclass the default cell
because i dont know what method the default cell uses to set values
so you mean custom cells don't have a setPreferenceValue?
im already subclassing PSTableCell which should have the method i need
no setPreferenceValue is the for the list controller
theres this
and this extends UITableViewCell
and i cant find any relevant methods on that
because at that point its UIKit and not a private apple framework
maybe you could use frida or something to watch the methods getting called
has to be some info somewhere though
well this whole pref thing is a private framework that apple uses so
yeah i probably could tbh
ok i just did a little search and all i'm getting is that a delegate is needed
idk
in this case i cant use a delegate because cellClass in the specifier requires the class not an instance of it
so i cant alloc, init, and then set the delegate to be used
does cellClass make a instance of the class internally then?
im assuming so yes
it calls this initWithStyle eventually:
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier specifier:(PSSpecifier *)specifier
you have access to the specifier, but even that doesnt have a method to call for setting a pref with the key you pass in
thats wayyy too hacky lmfao
hm does cellClass never expose the actual instance anywhere
my bad i deal with patching binary files way too often
i dont think so but even if it was exposed setting a delegate is probably not worth it at that point anyway
rip
Got a question guys, what is the home bar tweak name for the %hooking? because I want to try and make the home bar color change please, I have already got a colorpicker
use FLEXing to find it
sorry to ask but neww to making tweaks, what is flexing>? or do u mean the tweak flexing 3 beta?
flexing as in the thing to look at springboard views
anyway seems like its called CSHomeAffordanceView
that's what the home bar is called?
i believe so
for the developer.limneos.net?
oh so If I can find it on the developer.limneos.net website, I can try and make it be a different color? right? but anyways I am off. I will be back here in 5 minutes
you dont need to find it on a website lmao
I am new to this, sorry what do u suggest
@interface CSHomeAffordanceView : UIView
@end
%hook CSHomeAffordanceView
- (void)viewDidLoad {
%orig;
self.backgroundColor = [UIColor redColor];
}
%end
``` or something
actually no because thats not the background color
i would recommend looking into flexing and viewing the bar yourself
i figured it out eventually
i made an observer for NSUserDefaults for the key im changing
like this
#import "FloraPreferenceObserver.h"
@implementation FloraPreferenceObserver {
NSUserDefaults *defaults;
void (^_block)(void);
}
- (instancetype)initWithKey:(NSString *)key withChangeHandler:(void (^)(void))block {
self = [super init];
if (self) {
_key = [key copy];
_block = block;
defaults = [[NSUserDefaults alloc] initWithSuiteName:BUNDLE_ID];
[defaults addObserver:self forKeyPath:key options:NSKeyValueObservingOptionNew context:nil];
}
return self;
}
- (void)dealloc {
[defaults removeObserver:self forKeyPath:self.key];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey, id> *)change context:(void *)context {
_block();
}
@end
i can then simply just
observer = [[FloraPreferenceObserver alloc] initWithKey:@"mode" withChangeHandler:^() {
[self reloadSpecifiers];
}];
rosie
UIView's don't have a viewDidLoad
frcoal
nightwind any better way to do it than this
I have no idea what you're doing but I think that should work
yeah it works
but its like
very hacky
basically i want to detect when my popover cell updates the current selected field and rerender the list controller accordingly
im currently doing it by listening to changes for mode in nsuserdefaults
meh
there has to be a better way though surely
oh yeah i also wanted to ask how i can programatically press the button to open the popover
i tried doing it like
- (void)openMenu {
[selectedItemButton sendActionsForControlEvents:UIControlEventTouchUpInside];
}
``` but apparently that crashes settings
..with no exception thrown
so this isn't something to do with the home bar?
how do I look into flex?
you hold on the screen with 3 fingers
Hey y'all
once flexing is installed
does anyone know how to find the pmap_image4_trust_cache offset, I can't find any documentation on how it is found
u talking to me?
yea
Tried asking KpwnZ, but they don't seem to be active on discord atm
where do I hold?
nvm they responded
nope I don't
You have sent a link to a package, you can use the buttons below to open it directly in your preferred package manager.
Yes
why
License violations
oh
just use that
^^^^
got it installed the tweak
what do I look for the home bar? customisatrion?
i just have it hidden
entirely
views
Uses patchfinder64 ?
make sure its visible on the screen
ok, this is what I see
flora is like my first tweak ever so my hooks are very basic lol
KpwnZ responded, dw
you can search
search for what? sorry
well i searched for bar
ok
i dont use misaka or any kfd stuff besides serotonin
HAHAHHAHA
cause why use those
so real
^^^^^ same
so much effort if it panics
(it panics every 2 applies)
- my phone gets boiling hot when it does panic
so pointless to use any tools like misaka anymore
quick question, do u know what the home bar is called for hooking into a tweak?
what'd you hook to return UIImage
did you make 1 big one or split it into 9
That was back when i was on 16.1.2
oh
i just replaced the images with cowabunga
yh
I used this hook
best one tbh
real
#include <CoreGraphics/CGGeometry.h>
%hook MTLumaDodgePillView
// Hide home bar in applications
-(id)initWithFrame:(CGRect)arg1 settings:(id)arg2 graphicsQuality:(long long)arg3 {
return nil;
}
%end```
homebar entirely hidden
I am using this, but my color for the home bar is not changing color based on the color picker
oh is that for both in SB and in apps?
everywhere
%hook MTLumaDodgePillSettings
-(void)setMinWidth:(double)arg1 {
%orig(0);
}
%end
what filter does the tweak need to be for that?
this one is ass
lmfao
the reason is
when you go into apps
that like
make the homebar
that like
hidden
and you try to exit them
you're trapped
you literally cant exit those apps with that hook
go into like
geometry dash
and try to go out of it
what if you simply just make the homebar's color #00000000
yeah it works
I have already got %hook KTLumaDodgePillSettings but when I go to my tweak in settings and click onto the color picker ot change the color of the home bar it doesn't change
lol
it wont update automatically you might need a respring
he was stuck in clash
the worst fate ever
I did respring but still didn't work
show code
(it also happened to me on 14.8 on an xr when playing geometry dash)
all of it? or which part?
the part with the color picker and the hook
ok
so whats stopping you from opening cc and respringing or doing a userspace reboot
or if not that force rebooting
color picker code
// Fetch color from preferences using libcolorpicker
static UIColor *getColorFromLib() {
// Use libcolorpicker to get the selected color
UIColor *color = LCPParseColorString(pillColor, @"#E63B79");
NSLog(@"getColorFromLib: Color fetched: %@", color);
return color;
}
what i did is locked the phone
and quickly swiped up twice
that would get me out of the app
anyways this hook is better
instead of resizing it it just hides it
is this correct?
do you get the NSLog saying the correct color?
where do I find the NSlog
Console.app or Antoine
by the way i would very much recommend that you migrate to libgcuniversal instead of libcolorpicker
I guess I will need to use Console.app, since I cannot use Antoine
it has much nicer apis for working with colors
I have to pay for it
is there any other way for me to test out the NSlog() without using console.log or the Anotine?
uhh no i dont think so
you basically connect your phone via cable, click start recording when it shows up in Console.app, then make sure you put some unique thing in your nslog, i usually put [Flora] at the beginning of mine, then at the top right, search for that unique id. when the NSLog is called, itll appear in the list of things
aka my nslogs look like ```objc
NSLog(@"[Flora] %@", someVariable);
oh
that is how it works thanks will try it now
I will let u know what it does
like this
static UIColor *getColorFromLib() {
UIColor *color = LCPParseColorString(pillColor, @"#E63B79");
NSLog(@"[Testing] getColorFromLib: Color fetched: %@", color);
return color;
}
lol yeah
connect via cable
it should show under your macbook
then you click on the device and click start recording
type-c to lightning
ok
where do I put it [testing]
wait what is this app
interesting
you able to help me pelase. trying to figure out. and check where my NSLog is inside of console.app
Try searching for it?
ok I will try
nothing shows but I did this
static UIColor *getColorFromLib() {
UIColor *color = LCPParseColorString(pillColor, @"#E63B79");
NSLog(@"[Testing] getColorFromLib: Color fetched: %@", color);
return color;
}
are u sure the function is actually getting called


