#development
1 messages · Page 603 of 1
@gentle crescent worked for me
fuck forgot to save
its 30mb wtf
@gentle crescent I DID IT
the final gif
why they do that
whats this
Hi Everyone! I am currently working on Cylinder Remade and I was wondering if there are any developers who want to code their own effects, just as there were developers for the original tweak. Animations are all written in Swift (though technically Objective-C is possible) and there are currently 15 animations that can be used as a guide: https://github.com/ryannair05/Cylinder-Remade/blob/master/tweak/CylinderAnimator.swift
All pull requests are appreciated and each animation gets credited right in the tweak
this looks sick
it’d be cool if effects could be made as separate dylibs rather than having to be integrated into the tweak itself
esp if someone could just drop a .swift file into some folder and it’d compile it into an effect for you
I did want to do this, but I couldn’t think of a feasible solution to make that work. With the right hooks making an extension for it as a MobileSubstrate dylib is possible, of course, but otherwise I don’t know how it would be done, because effect names and selectors also need to be known if there preferences view: https://github.com/ryannair05/Cylinder-Remade/blob/27fd3e973c38c3f67f906c3acb6e8cd84cf1d388/settings/CLEffectsController.m#L64
Also, Swift doesn’t have JIT so how would that even be possible?
you could enumerate dylibs in a particular dir, dlopen them, and then call some function inside the dylib that returns a list of effects
it has an interpreted mode (you can use #!/usr/bin/swift as a shebang) but in this case I’d probably just check for .swift files in some dir and then call swiftc on them
ofc that’d require an entire toolchain so it could be an optional add-on package
and this is why the original used Lua ahahaha
Lua was proving to be a problem. I was talking to rweichler about it and even he said removing it was probably a good call
ok but objs >>
feeling the vaporware :(((
have you considered (ob)js actually
I do plan to keep developing the Lua version, but I really don't think there will be interest for it
it’s open source and I can give you pointers on integrating it
JS for effects seems like a good idea
we stan kabir and all his under appreciated projects
Cylinder seems to really benefit from the advantages of complied languages which is why I'm doing this in the first place. Cylinder animations get called up to 60, 120 on ProMotion, times a second with it having inner loops that can run up to 24 times. The efficiency that JS or any interpreted language simply can't offer makes the tweak work a lot better overall
makes sense, swift is probably your best bet then
consider going all out and using closures + structs instead of classes with objc dispatch
or an Effect protocol maybe
protocol Effect {
var name: String { get }
var developer: String { get }
func apply(to view: UIView, offset: Double)
}
each dylib can provide an array of effects
pro tip: if you create a type with the @main attribute and a static func main() Swift adds a C-compatible int main(void) function to the dylib. This won’t automatically be invoked as an entrypoint but your tweak’s code can look it up and call it with dlsym
now, the real powerful aspect of this is that the aforementioned main function can be provided by an extension. This means you can do something like
public protocol EffectsProvider {
var effects: [Effect] { get }
init()
}
public private(set) var allEffectsProviders: [EffectsProvider] = []
extension EffectsProvider {
public static func main() {
allEffectsProviders.append(Self())
}
}
and then in user code:
@main struct MyEffectsProvider: EffectsProvider {
let effects: [Effect] = …
}
when your tweak then dlopen’s the user dylib, it’ll automatically append the effects provider to allEffectsProvider
have you seen libffi? it’s pretty similar
too late that’s basically what every single language bridge does courtesy of libffi
nah it uses hand rolled assembly
you have to give it the function signature
not necessary
you can do that manually
nah
you have to give it the signature
explicitly
not a string repr
like, you pass it an array of ffi_type
there’s no standard name mangling
that’s why it can’t just use that
depends on the compiler, environment, and language
don’t think libffi supports it yet actually
it supports java, [obj]c[++], and i think go
@grave sparrow You developing an entire cache lookup process like Apple does? https://github.com/madsmtm/objc4-mirror/blob/063e3630eb0e9f5574da7b7e09be1dc1fbce5b29/runtime/Messengers.subproj/objc-msg-arm64.s#L261
~Unofficial mirror of Apple's opensource objc4. Makes it easier to track changes across versions.~ Replaced by https://github.com/apple-oss-distributions/objc4 - objc4-mirror/objc-msg-arm64...
well seeing as you're doing dispatch, maximum performance is totally needed
anyone got iOS 13?
Either way, you should and release a tweak that rewrites objc_msgSend making it faster than all the engineers at Apple can which I totally believe you can do
Seriously though, there would be a drastic performance increase from even making it one instruction faster
I believe the A15 has an objc_msgSend branch predictor which is cool
yeah I know, it's handcoded assembly for a reason, but it would be fun if there was a way
@nimble parcel sup red tinted kabir
@lime pivot hi flame repo kirb
@nimble parcel This is all really cool advice and information, thank you. I was wondering though how saving the position to the CALayer though would be handled. See: https://github.com/ryannair05/Cylinder-Remade/blob/master/tweak/CALayer%2BCylinder.m
There are a handful of effects that need that saved and restored each time the animation is run, because the extension only applies to the one dylib, right? I'm no expert in Swift so I was curious about a way to handle that
Also, out of curiosity, I thought the one of the main advantages of the objc dispatch system was it being great at getting and calling selectors at runtime, if ever needed. Are closures + stucts even better, because they could, I'm guessing, eliminate being dynamic all together and structs are just more lightweight in general?
structs are useful especially for data types since they synthesise an init method for you, and it's also important to keep in mind that they're passed around by copying, rather than sharing the same reference
different tools for different jobs, just good to have the option of both structs and classes available to you
other than those few differences, as far as Swift is concerned they're interchangeable with classes (of course when you bridge to ObjC it's a different story)
I’m using __unsafe_unretained to squeeze every bit of performance I can from Cylinder, because ARC will add the extra calls. Don’t imagine it’s doing much, but still
Do you think structs or classes are better for this? I’m a bit uncertain to be honest
personally I'd think using classes and avoiding objc or dynamic features of swift as often as possible should be the better bet, since there's less semantics to classes than structs, especially the difference in passing copy rather than reference
but I'd be curious what @nimble parcel thinks of my logic
swift does also have unsafe(unowned) as equivalent of __unsafe_unretained, same thing just looks different
i can’t say for sure without looking at disassembly but in this case most effects would be implemented with 2 computed properties, 0 stored properties, and 1 method. That’s effectively an empty struct, which could be entirely inlined into the Effect existential, likely making it more efficient than a class
@lime pivot is definitely right about avoiding objc and dynamism though
tomorrow
wdym it’s literally just a cat
just ask coolstar why big man
shouldn’t we just set PKGCONFIG_LIB_DIR globally when compiling
idk, we didn't for a reason, not sure what that reason was though 
no thanks
cause then I'll have to fix them all 
this is the first issues we've had
What's the best way to kill an app programatically/through a tweak settings page
I found this from a 7 year old reddit comment
That works, thanks
I imported the header file but if you were to copy this you'd need + (id)sharedService; in there too since it's an instance method
Yea you got the arguments right
@grave sparrow Why is your chicken so overpriced.
my brother
gm
fakeroot
@grave sparrow tar -caf whatever @input.mtree
the mtree will contain permission information
look at tar(1) manpage for a description of how to use it
yep
you could also use --uid && --gid to override the owner and group for all entries in the tar
but using mtree will be better
wdym?
@-probably
this is specific to bsd tar
bsdtar is soooo much better than gnu tar
bruh wtf i found a video with a length so long it causes an overflow on the ios mobile app and resets to 1 second
and on discord it turns into -1 💀
well it goes from 0 to the limit then to negatives then back up to 1 eventually
Who wants to test https://github.com/CRKatri/apfs/blob/master/snappy.c
Kek
Does this work on iOS 12
a/b testing moment
oh i replied to wrong messag
a/b testing moment
Not sure if I'm doing something wrong but it's not able to read any values (the null shows as 0 when I use boolForKey)
that embed is stupid
A/B testing (also known as bucket testing or split-run testing) is a user experience research methodology.[1] A/B tests consist of a randomized experiment with two variants, A and B.[2][3][4] It includes application of statistical hypothesis testing or "two-sample hypothesis testing" as used in the field of statistics. A/B testing is a way to compare two versions of a single variable, typically by testing a subject's response to variant A against variant B, and determining which of the two variants is more effective.[5]
+1
i read normal en wikipedia like if i even know what 90% of the terms mean
There is probably a flag about unsafe permissions
@grave sparrow SECURITY ARCHIVE_EXTRACT_OWNER;
/* -p */
bsdtar->extract_flags |= ARCHIVE_EXTRACT_PERM;
bsdtar->extract_flags |= ARCHIVE_EXTRACT_ACL;
bsdtar->extract_flags |= ARCHIVE_EXTRACT_XATTR;
bsdtar->extract_flags |= ARCHIVE_EXTRACT_FFLAGS;
bsdtar->extract_flags |= ARCHIVE_EXTRACT_MAC_METADATA;
}
bsdtar's default flags
@grave sparrow copy all of the flags that bsdtar uses
Are you sure you got them all?
Send test code
did you set your umask
sisters computer go brrrr
how this
Your sister uses Linux? Cringe
Try again
Read through the code
Send minimal example code
And the tarball
usrmerge?
What does it do
mv /bin/* /usr/bin
rmdir /bin
ln -s /usr/bin /bin
What distroare you using, all the ones I use already do that by default
debian does it for new installs but old installs are still split unless you run usrmerge to merge them
is there a complete list of lockdownd keys
limd probably has most documented
where would those be
https://github.com/libimobiledevice probably
send code, I'll fix
no
doesn't matter though
just send the .c/.m
is that in a good code organization way or a can't keep track of open files way?
@grave sparrow oh btw mgask MarketingProductName will return iPadOS/macOS/iOS
wen eta code
why is it so slow 
it's taking a really long time
./a.out foo.tar foo
ik, I decompress it
oh lol
still very slow
it's never reaching ARCHIVE_EOF
???
FreeBSD
no
testing on mac now
looping on mac too
of course
that doesn't make sense
it links fine
oh lol
works fine with full paths
permissions are wrong though
this [redacted] using freebsd
Anyone know why the widget I made with xenhtml doesn’t Appear under the widgets list. Ima also using vs
at this point i'd probably run instruments on it and see how it's setting the perms
@grave sparrow this is why you read docs
If you use chdir(2) to change the current directory between calls to archive_read_extract() or before calling archive_read_close(), you may confuse the permission-setting logic with the result that directory permissions are restored incorrectly.
@grave sparrow
diff --color -u ~/Downloads/main.c main.c
--- /usr/home/cameron/Downloads/main.c 2022-04-20 02:48:48.483898000 +0000
+++ main.c 2022-04-20 02:49:20.776462000 +0000
@@ -131,18 +131,17 @@
retval = 0;
end:
- if (shouldRestoreCWD) {
- chdir(existingCWD);
- }
-
- if (existingCWD != NULL) {
- free(existingCWD);
- }
if (writingArchive != NULL) {
archive_write_free(writingArchive);
}
if (readingArchive != NULL) {
archive_read_free(readingArchive);
+ }
+ if (shouldRestoreCWD) {
+ chdir(existingCWD);
+ }
+ if (existingCWD != NULL) {
+ free(existingCWD);
}
return retval;
you can't chdir() while things are open
> rm -rf foo; mkdir foo; ./a.out /tmp/tmp.0crJhHOBok/foo.tar.xz /tmp/tmp.0crJhHOBok/foo; tree -p foo
Successfully extracted archive
now check the perms of ./foo/relaxed_dir
[drwxr-xr-x] foo
└── [drwxr-xr-x] foo
├── [drwxrwxrwx] relaxed_dir
└── [drwxr-xr-x] stiff_dir

@grave sparrow you better give me some credits in zefram
actually
don't
zefram doesn't seem like it's gonna be good
actually
I do want a credit
my name is on plenty of bad software
like Procursus
Truth
and QuickActions 
add me to the credits
true
readme development at manticore llc
watching anime
do not ping for the next 30 minutes
@vivid dew
@vivid dew
la pendu
False
who
(Wasn’t me :P)
;_;

you know, the black guy with the lightning actually has a good point
Request tweak for Videoringtone for iOS 14
why are you obsessed with kfc
American
Popeyes is better
racially motivated
real
Actually Publix makes great fried chicken 🍗
So does Royal farms l, it's like a fancy gas station believe it or not. Here in this area anyway
Julian Edward Gonzales
you know it
Costco rotisserie chicken
Meh
Did you just meh costco chicken sir?
does anyone knows how to display only the time via html or js
with a clear background
Is there a channel to hire someone to create a tweak?
r/tweakbounty
Cool will check it out do they have a discord tho?
They do
See it thanks
This is what I got so far
Anyone know how to remove the box around the time?

nvm i figured it out 
any help with this?
%hook AFAccount
- (void)setAceHost:(NSString *)aceHost {
NSString *newAceHost = @"st28sa.apple.com";
%orig(newAceHost);
}
%end
it's not working/changing anything at all
https://developer.limneos.net/index.php?ios=6.0&framework=AssistantServices.framework&header=AFAccount.h
this is for iOS 6-8
i'll try
%hook AFAccount
- (void)setAceHost:(NSString *)aceHost {
NSString *newAceHost = @"";
%orig(newAceHost);
}
%end
%hook AFAccount
-(void)setPredefinedServer:(NSString *)predServer {
NSString *newPredServer = @"";
%orig(newPredServer);
}
%end
%hook AFAccount
-(void)setHostname:(NSString *)host {
NSString *newHost = @"";
%orig(newHost);
}
%end```
i've tried this, installed on my iPhone xr, and siri still works, i want to find the one that handles the url
no
and syslog on older devices doesnt work for me, it just says device not found
im on linux btw
idevicesyslog
actually
nvm im dumb
ignore that statement
try getter too 
gm
Gm
why
true
i saw
the amazing fuck you framework
but what does it even do
its just headers for io stuff idk
fr
perhaps
I'm not a car
Cat*
I'm not a car either
catnip mixed with estrogen 500 mg tablet
Is that what you take
500mg of catnip, estrogen, or both?
it's not broken
(I don't actually know if it's broken, I'm just saying that because you're bad)
Wtf is going on
wdym?
Scroll up a bit
xcode? more like cringecode
@grave sparrow why are you Kentucky Fried Capt
Praying for the day that github lets you give people push access only to specific paths
so that I can give people access to individual packages and I don't have to maintain them
although saadat's rewrite will fix that
Or you could just use Visual Studio Code and not have 50gb of bloatware from xcode, lol.
Vscode with vim
Why
It’s great
I do all my dev in vscode
Em
I’m not doing full stack in Xcode when it crashes on simple operations


@restive ether @ashen birch @subtle grail @knotty berry can I add ed to the strap 🥺 👉 👈
I would like to remind y'all that Hayden said vi could go in the strap if I ported adduser, which I did
what's this about, is it just saying that they're making ed (whatever that is) not required?
their entire reason for removing it was "people wouldn't be surprised if it was removed"
but it lessens POSIX compatibility
and ed is used in scripts
what's it used for
editing files
N o .
i’m still behind nano in strap because it’s simple to use
ed is simple to use
i’m gonna argue that ed isn’t as widely used as vi or nano though
even tho it’s “the standard text editor” tr
you basically have end say in what goes into the strap
I hope Hayden is doing well though, miss him :(
lmao ed
so uhm
I think Apple basically made the apps keep alive during respring tweaks for us in iOS 15
just had a springboard crash on stock and all my apps reopened as if nothing happened
sadly I was about to hit play on my music when it crashed or I could have told if music survives the respring
probably yeah, package managers / hooking package triggers might need to be smarter about what they restart
Use the respring shortcut 
Wrong reply but anyway
heheh does anyone have it?
that respring crash was good fun, was trying to open Discord and it kept saying the beta expired, despite that TestFlight says it expires in 90 days
went to toggle airplane mode thinking it was having trouble hitting OCSP but the button wasn't responding, almost rebooted before it did the job for me lmao
like 1-2 years back when Apple OCSP went down and macOS started taking a full minute to open apps
The shortcut you're not supposed to just open
You're supposed to force touch the shortcut and hit share bookmark
wee that does crash
now playing didn't survive, app still running but it's like it got sent a stop playback command
now time to hook that stop command and sell it for $29.99 
do share --> add to home screen, then long press home screen icon --> share bookmark
I can't believe that's still implemented using web clips
it just directly sets it to open a url scheme handled by springboard
web clips is the cursed way Workflow got home screen shortcuts to work in the sandbox
it'd pop open Web.app (the full screen webclip app), then that'd immediately switch apps to Workflow to run the workflow
even the initial version of Shortcuts did it that way which was hilarious to me
my guess is the share button isn't even supposed to be visible, so when you tap, it crashes on an assertion check
as in it sees that the url is shortcuts:// and goes WTF, you're not supposed to be here
oh even better, it does an out of bounds read on a string
god, crash reports are designed to hurt your brain reading them now
settings --> privacy --> analytics --> analytics data shows the contents of ~mobile/Library/Logs/CrashReporter
heh, I'd imagine you meant they are
makes sense though since you're not really supposed to read the crash reports directly, you're meant to use Xcode or a 3rd party tool, but interesting that it's symbolicating symbols now (!)
looks like on iOS 15+ cr4shed will just be reformatting json to a readable txt file lol
Apple engineers have said in the past that it was purely an optimisation, not trying to hide some kind of secret
since it's obv way less work to just print <redacted> than read a bunch of mach-o's into memory and trawl through their structures to find symbol names
but I guess they decided it doesn't matter any more?
optimisation as in reduced energy usage, considering it's not like the phone needs that information, and it can be generated later by Apple's / the 3rd party crash reporter's server
I don't super imagine it takes that much energy to grab symbol names on, ya know, the fastest yet most portable passively-cooled CPU on the market
on a 3GS I'm sure it made a difference lmao
oh yeah absolutely
it always felt wrong that apps did take a noticeable amount of time to become responsive
like, what. I bought the fastest phone on the market. why does it still take 2 secs after the animation finishes for the app to display its first frame of UI
killing backboardd / sbreload will still reload all apps
basically apps are now managed by backboardd afaik
ahaaa, I figured
Well I still want y'all input before I make decisions
lol
you should’ve done pico instead
pico in strap
but killall on SpringBoard alone won’t?
no
that’s cool
honestly im surprised it took them this long to do it
it seemed like apple was trying to move springboard handling that away to some other daemon
I figured this would have already been done in like iOS 12 or so when they were already modularising it further into runningboardd
I get the vibe the whole background app prelaunching thing forced some well-needed refactoring to finally happen
go ahead
do the assignment
pays thousands for education
expects quality
that’s where you messed up
based and dos pilled
Are submodules not good enough? 
so fucking true
@ocean raptor Does your theos linux bootstrap support iOS 15 sdks?
Yeah afaik
iOS 15 kept the same tbd version so everything should still work
3-4 usbc ought to be plenty
i want 2 thunderbolt 4 tho
at least
on my next mb
40gbps

Apple probably don't want to pay the licensing fee and probably think the customer base don't care
This is a Linux user motherboard because it has no graphics
same time when I probably gave a fuck
is there a way to make it so I don't have to ldid every binary i compile for iOS?

pterodactyl
i like brachydios

Yes
use android
true
Did you hack my dms???? Wtf


mf has a whatsapp tab open
for real
gay
where



they have dropbox too 
literally dead
@primal perch can you send your legitimate ida license pls


fat_blob_with_gun
yes
TIL, I need fat_blob_with_gun
true
may i ask how? I would love to know. I couldn't find an answer online.
Linux, mac or iOS
windows
Die
nt kernel better
iOS of course, that's why i'm on the jailbreak server
Your
Ok
Why is everyone in the arch Linux server a drug addict
Or a femboy
And/or a weeb
.
No, what are you compiling on not for
oh nvm i got it working thank you anyway
I’m ready any time now 
no one asked + care + ratio + L + you fuck sharks
How
if you don’t wanna sign everything with ldid just use jtool
#LifeHack
@ocean raptor when you gonna drop the update
Never 
#MakeCameronMotivatedAgain
hard to be motivated when you live in florida
hard to be alive in florida
Don’t
Is ```static BOOL class_wasModified(UIView * self, SEL _cmd) {
return objc_getAssociatedObject(self, @selector(wasModified));
}
static void class_setWasModifiedByCylinder(UIView * self, SEL _cmd, BOOL wasModified) {
objc_setAssociatedObject(self, @selector(wasModified), @(wasModified), OBJC_ASSOCIATION_ASSIGN);
}``` the best way to add a property to a class? Logos generated code uses NSValue and OBJC_ASSOCIATION_RETAIN_NONATOMIC, but this feels more right to me
It's just a BOOL i'm adding to the class
@(wasModified) boxes the variable into an NSValue so you’re doing the same thing
Did you use an ld wrapper or enable the adhoc signing in ld64
If it boxes it into a NSValue OBJC_ASSOCIATION_ASSIGN shouldn't be used?
correct
Why doesn't Objective-C support adding primitive types or am I missing something?
it doesn’t support primitive types as associated objects, probably because limiting the implementation to objects is just easier
and if you need primitives that’s exactly what NSValue exists for
But if you are just making your own class ```@interface MyOwnClass : NSObject
@property (assign, nonatomic) BOOL wasModified;
@end
because associated objects are more or less a hack
defining a class the usual way is a pretty important aspect of objc and it’s definitely worth supporting primitives there, but associated objects are comparatively much less common
and more importantly, they’re a runtime feature which makes it hard to just keep track of the type of the primitive being stored and safely allow retrieval
associated objects aren’t easy to use because apple doesn’t want them to be easy to use — they shouldn’t be the first thing you reach for if you have an option
in most day to day development, people can simply modify the source for a class to add a new property, but of course tweak dev is a different story
you can also use unsafe_unretained to shove a non-object pointer in there
Bro
Costco Chicken is like Walmart Chicken
You are wrong sir
hooking swift possible yet?
@nimble parcel This is good information to know. Thank you! Is just changing to OBJC_ASSOCIATION_RETAIN_NONATOMIC good or do I have to convert from NSValue in the getter?
How would I do this, out of curiosity?
Also, is it a memory leak if assign is used, what basically happens?
can you replace nano with pico pls
actually all of the gnu software pls
🙏 ❤️
i told him to do that
and he doesn’t wanna listen
sad!
Me: can we please add vi to the strap? It's small and very useful
Capt: llvm in strap lol (nothing ever builds for me cause I'm bad)
wait yall mean to tell me you dont use nvim + tmux 😂
no i’m straight
I remember at my first job i got trained to use that ish (not nvim but vim) ... spent more time adjusting configs than coding haha
true bestie ty
if you want to return a primitive BOOL you’ll need to call -boolValue on the NSValue
if you don’t use retain/strong, your target object won’t retain the associated object which means the associated object can be prematurely released while the target still holds a pointer to it — so it won’t cause a memory leak but may in fact result in a use-after-free which is even more dangerous
NSNumber is an NSValue subclass :)
probably, you’d just need to bridge to id
but NSNumber would be as (if not more) efficient since it supports pointer tagging
How should I go about a reactive app that prevents me from altering anything in it? How can I determine what is preventing it from changing? How do I identify out of all the classes and layers what is changing it???? 
macOS already has a BSD userland
I would be interesting in removing the coreutils dependency from the strap
cause apt depends on coreutils
because of gnuisms
Procursus has so many gnuisms moving away from gnu would be way too much work than I have motivation for
hmm?
@ocean raptor question bout Node on Procursus
Why is it going off of a completely separate fork instead of storing patches?
Is it just too many changes or something?
he’s telling you to write some v
Idk, that's a question for @knotty berry, but I think it's either because it's a lot of patches or in hopes of up upstreaming it
Does anyone know how swift playgrounds codesigning works?
terribly probably

trol
tl amor
awooga
capt do anything correctly challenge (IMPOSSIBLE)

Well there's your issue, make commands are more than one letter
@primal perch
I have a multimc and lwjgl3 port on https://git.cameronkatri.com/freebsd-ports
That's what I use
You have to add your Microsoft login api key yourself though
Open BSD has better gaming support
But
It doesn't support any nvidia cards
(Except for some that are like 30 years old)

just RE some drivers 
Trying to figure out why half our Ethernet ports don't work after switching to xfinity is not fun
- xfinity
- xfinity
- xfinity
@primal perch @restive ether
Crypto really be like oops one line mistake
34$ million gone

lol
If you think about it, it balances out the inflation
lmaooo
crypto devs and poor UX that makes it incredibly easy to throw money down a black hole, name a more iconic duo
the issue is that crypto devs are only interested in it for making money, which encourages quick and nasty code with obvious bugs
crypto really be like sorry 1 line of code was wrong
everyone just lost $50 million
5274
623
link it like normal but only supply a static archive
But imho you should dynamically link it
if i know next to nothing about development on ios
where should i start learning?
do you know about development in general?
ive modified 3ds homebrew and ive made a few python discord bots
do you know swift or objc? what do you want to do on iOS? Apps? do you have mac or linux
If apps learn Swift, if tweaks learn objc
so i should learn objective c?
ok
ty
is there any documentation for making tweaks?
ty
I need some big help
wtf do I do if I'm trying to create a tweak for an app but it's sooo fucking reactive I can't even change string?
I don't even know where to start identifying what is preventing it from simply changing some string
balls
I'm a minor
in cat years?
my cat is barely over a year old

🤨
The code isnt the problem
It's right
It's the app
So many things preventing me from changing it
Sounds like a you issue
libzip.a
no the appppp
"No my tweak works it's the app that's broken"
fine gimme a minute I'll show you
skull
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
%hook RCTTextView
- (void)setTextStorage:(NSTextStorage *)textStorage contentFrame:(CGRect)frame descendantViews:(NSArray<UIView *> *)views {
NSLog(@"[LOG] Hello");
%orig(textStorage, frame, views);
}
%end
First of all it's react native so it's naturally going to be a pain in the ass
And what do you expect that code to do differently
you probably aren’t even looking at the right view
I am
discord just be like
It's not discord
RCTVIEW RCTVIEW RCTVIEW RCTVIEW
pain
Yeah the app has the same thing
All this code does differently is add an NSLog
Ok so how am I to identify what is forcing no outcome?
If it doesn't log either the method isn't called, your tweak didn't load or it's Console not logging properly
Yes Ik I had like 2 lines of code that was perfectly fine and I asked for help and that's what I got and it still didn't work and they told me it was reactive
It didn't log
ok so, setup Procursus, and run MEMO_TARGET=iphoneos-arm64 MEMO_CFVER=1500 make libzip && MEMO_TARGET=iphoneos-arm64e MEMO_CFVER=1500 make libzip then run lipo -output libzip.a -create build_stage/iphoneos-arm64{,e}/1700/libzip/usr/lib/libzip.a
pain.
If it was ever gonna happen, I'd do it when we switch to rootless
but I'm burnt out enough
%ctor {
NSLog(@"[LOG] cum");
}
Add this to your Tweak.x file
That'll run when the app launches
why do we have 16 branches...
lotta branches based on open PR’s
like cron
you closed that though
cause it didn’t work or something like that
lots of them are Hayden doing little experiments, like tcc, flang, and tests
why did you do a static libiosexec
nothing
for ramdisks
still nothing
if that doesn't work, lmk and I'll send you a fat one
Are you sure your tweak is loaded, how are you viewing the logs
@weary heath Maybe I've got the wrong view I'm not sure but surely it's RCTTextView and not RCTview
Did the ctor log
Then the method you hooked isn't being called
I'll take an ss
all fine right?
There is about 10 RCTview layers with the same string
and one RCTTextview
I'll look into that and see If I can determine and class with the string
I mean that's the only method with a connection to the string
just don’t react 
oh my
bruh
wait
I found a bool so I called to check sub methods and it's got soooooo much shit to prevent change and whenever I try to call those methods my app just crashes
Like get charvalue or int
WTF
-(id)lowercaseString WHATTTT
I understand now
SO MUCH
SO MUCH
STUFF
SO MANY SUB METHODS HAVE SUB METHODS WHICH HAVE SUB METHODS WHICH ALSO HAVE SUB METHODS
@olive herald looks like libzip doesn't like distributing static libraries
You'll have to build it without Procursus
why did you do an arm64e slice
Cause he wanted his tweak to link it
understandable
Manually
I set CC CFLAGS and LDFLAGS then ran cmake
Basically I built it identical to how procursus would build it but I did it without using procursus
libzip
cumxip
Has anyone tried to enable the Hawkeye framework in 14.3-14.5?
Guys please i need a logical idea
Like for ecommerce app
When admin accept single user order send notification to the user
How is it work!?

or tlam

was looking for something specific actually
my cat is older than me in cat years now 
I mean
older in cat years than me in people years
I had to do something fun to work around an incredibly weird quirk with my keyboard
xinput --float $(xinput list | grep 'ASUSTeK ROG FALCHION System Control' | perl -pe 's/.*\tid=(\d+)\t.*/$1/')
ddg 
--float "disconnects" it from the xinput system, if I don't do this then the keyboard repeatedly sends a keycode that prevents my display from going to sleep (because I'm pressing keys, right?!), and occasionally it gets interpreted as me pressing the power button for some reason
this is like a certified linux moment where both this doesn't happen on Windows/macOS, but also, I was only able to work around it because of how modular Xorg is
--float "disconnects" it from the xinput system, if I don't do this then the keyboard repeatedly sends a keycode that prevents my display from going to sleep (because I'm pressing keys, right?!), and occasionally it gets interpreted as me pressing the power button for some reason
yeah
truth
--float "disconnects" it from the xinput system, if I don't do this then the keyboard repeatedly sends a keycode that prevents my display from going to sleep (because I'm pressing keys, right?!), and occasionally it gets interpreted as me pressing the power button for some reason
--float "disconnects" it from the xinput system, if I don't do this then the keyboard repeatedly sends a keycode that prevents my display from going to sleep (because I'm pressing keys, right?!), and occasionally it gets interpreted as me pressing the power button for some reason
can someone send me a swift playgrounds ipa?
:probablynot:
man

altstore app group doesnt exit
explain?
explain?
explain?
explain?
explain?
no
explain?
explain?
should i go to taco bell
care to take time out of your day in order to explain this to us?
L
twerk?
not funny jayden

what server
true
Guys I’m working on app have a coin building with swiftui and whats the solution to not hacking the coin by dlgmemory something like the tweaks
explain?
but clients can’t be manipulated in any way!!
stream everything 
denuvo v10
this is one of the most unfortunate bugs ever
an oversight leading to steam linux running rm -rf /*
That’ll probably become more prevalent, you can already stream Windows https://www.microsoft.com/en-us/windows-365
Stream your desktop, apps, settings, and content from the Microsoft cloud to any device and have a personalized Windows experience wherever you are.
when the valve is sus

la mort


when the gaming
@hasty ruin @grave sparrow guys i mean I developing a app with swiftui and inside the app have a variable for collecting coin and the app get coin from api but i mean when app call api and get the coin for a user when api fetched i being to static variable i mean somehow secure the app from editing the variable with extrenal tweak like dlgmemory ....
explain?
explain?
please segment what you're saying using commas
if client side security worked, no video game would have hackers
but literally every video game has hackers
just for an example
Any data should be checked by the server too
except gta online. best anticheat known to man

@tepid olive will you be doing that repeatedly for a lot of apps?
still, it'll be blocking a thread
@implementation LSApplicationProxy (AltList)
// Getting the display name is slow (up to 2ms) because it uses an IPC call
// this stacks up if you do it for every single application
// This method provides a faster way (around 0.5ms) to get the display name
// This reduces the overall time needed to sort the applications from ~230 to ~120ms on my test device
- (NSString*)atl_fastDisplayName
{
NSString* cachedDisplayName = [self valueForKey:@"_localizedName"];
if(cachedDisplayName && ![cachedDisplayName isEqualToString:@""])
{
return cachedDisplayName;
}
NSString* localizedName;
NSURL* bundleURL = self.bundleURL;
if(!bundleURL || ![bundleURL checkResourceIsReachableAndReturnError:nil])
{
localizedName = self.localizedName;
}
else
{
NSBundle* bundle = [NSBundle bundleWithURL:bundleURL];
localizedName = [bundle objectForInfoDictionaryKey:@"CFBundleDisplayName"];
if(![localizedName isKindOfClass:[NSString class]]) localizedName = nil;
if(!localizedName || [localizedName isEqualToString:@""])
{
localizedName = [bundle objectForInfoDictionaryKey:@"CFBundleName"];
if(![localizedName isKindOfClass:[NSString class]]) localizedName = nil;
if(!localizedName || [localizedName isEqualToString:@""])
{
localizedName = [bundle objectForInfoDictionaryKey:@"CFBundleExecutable"];
if(![localizedName isKindOfClass:[NSString class]]) localizedName = nil;
if(!localizedName || [localizedName isEqualToString:@""])
{
//last possible fallback: use slow IPC call
localizedName = self.localizedName;
}
}
}
}
[self setValue:localizedName forKey:@"_localizedName"];
return localizedName;
}
@end
add that to your code
then use NSString *appName = [[LSApplicationProxy applicationProxyForIdentifier:[self applicationBundleID]] alt_fastDisplayName];
(Taken from altlist, thanks opa)
(It's MIT)
icons are super easy
Get App Icon
@interface UIImage (Private)
+ (instancetype)_applicationIconImageForBundleIdentifier:(NSString*)bundleIdentifier format:(int)format scale:(CGFloat)scale;
@end
deez nuts
bold underline
I'm just following your pattern

@tepid olive in any case, you have to use -(NSString*)localizedNameForContext:(id)arg1;
arg1 can be nil
-(NSString*)localizedName; does not exist in 12-14
why is limneos' site so slow
It was removed in iOS 11
@grave sparrow does uicache -l show system apps?
can you check?
cause the iphonedevwiki page for LSApplicationProxy says Note: Does not work for system apps
but I don't think that's correct
whos got a jailbroken device?
that's wrong or means something else idk
also best to change the method name to avoid conflicts
(or you could also just depend on AltList)
good, cause I removed it 
well I put this into my Prefs bundle for QuickActions
I couldn't use AltList cause I needed a very specialized view
I mean you could just depend on AltList for the method
seems unnecessary, MIT allows this
if you don't change the method name then I think it's undefined behaviour which method is getting called when both your pref bundle and AltList is loaded
but that really doesn't matter I think
it'll generate a warning my I didn't modify your code at all so it shouldn't be an issue
also, there is no reason that AltList would be loaded into it
uh yeah if another pref bundle uses altlist then it will be loaded into preferences.app
at least if you open that pref bundle before yours
idk it doesn't matter too much I think
you're right 
only really if one implementation changes
I'll change that before my next release
@ocean raptor Who is the developer of the Bot?
Hey @ocean raptor, have a look at this!
Please keep support or jailbreak related messages in #jailbreak, thank you!
When I needed a specialized view, I just did a really hacky spawn of a PSSpecifier and then manually called AltList through it
There's probably a better way to do it but this is what I did: https://git.cameronkatri.com/tweaks/tree/QuickActions/QuickActionsPrefs/QASAppSelectorController.m
$5/m
It's the lowest end digitalocean droplet
Runs my mailserver too
Hmm
Yah I want a mailserver
I just use vercel for everything else, it works great and the serverless stuff is awesome, but I don't have a mail server
The issue with my mailserver is I can't send mail to @severe ravine.com or @heavy island.com cause proofpoint doesn't like me
Lol
Thats a rip
The way you are doing it looks fine
Just a little more verbose that it "has to be"
I was trying to make something like
How would you improve it?
Mm yah, this may have been the only way then
Well like I said you could create your own instance of PSSpecifier and then call altlist through it, but not sure if it would make it any cleaner
I'm trying to remember where I did it
I don't have any jailbroken devices or I'd show you what it looks like
It turned out really nice, a bit slow when manually dealing it from enabled back to disabled because it has to sort it
To figure out where to place it
I write most of my tweaks in swift atm, but this is what I did
I think trying to make it use AltList would add unnecessary complexity
@restive ether was a joke cause @deft beacon ghost pinged me with that message
Probably
julian gonzales
I'm not sure you were ever really a genius
so there's no exit condition or wait timer for the loop
oh
i don't get why people make while loops without a wait timer (so the loop doesn't consume all of the CPU power on the threads running it)
here i am, trying to ensure my code is clean and rewriting my entire app to be as efficient as i can make it and then you have this

lmao
this reminded me of a funny C meme
i get marked less on my code in exams because the examiners refuse to actually use it (it works i tried it (is a paper exam))
will they care if a post a programming meme here?
@grave sparrow are u lack toes and toddler ants
Post It
That shit where u can’t drink milk
lack toes and toddler ants
Someone in Discord linked to this tweet and I figured I'd take a stab at singing it in my totally not awful fake accent: https://twitter.com/bhilburn/status/971019559095427075/photo/1
Download:
WAV: https://kaslai.com/files/program_in_c.wav
MP3: https://kaslai.com/files/program_in_c.mp3
lol
prob the funniest part is the video ends with a segfault
Sounds like arduino, could be fixed if you select the right board
Paper exam

ikr

It works okay(ish), but for larger projects I prefer normal c++ with platformio
cumbending
also lets ignore my program in c meme
i love the segfault at the end
ikr lol
@grave sparrow wen eta professor Anthony bonvetti
py is slow, js is faster
no like because of the terrible code
python is slow compared to other languages, but if it is too slow for you, you probably are writing inefficient code
agreed
oh lol
it is
but python is much better on ram
sleep(0) people be like
agreed
swift

that's almost like saying that your program is designed for fast processors
Wtf @grave sparrow when no genius
objc without arc isn’t too fun
wait my program is slow, lets buy a better cpu













