#development
1 messages · Page 230 of 1
Again if you have an issue, use modmail and not hurl insults
You seem to be taking the schizoposting thing too far
Becuase this isn’t the first time
Every time I ask a question
I don't blame them for walking in and the channel looks like this
I’m providing information of what was said happened and I’m asking if that’s believable all you’re responses lack merit read the whole conversation
@slim bramble you’re not helping the case here please leave the chat unless it’s development related

This discussion is over, @tepid olive if you would like to continue DM @hollow scaffold
so anyways, I'll offer a small amount of money to somebody who can make a Taurine fork that implements proper memory hogging on 1TB/2TB M1 iPad Pros (rather than the hideous 131k page approach that works because it hogs memory)
I have Taurine-Trigon 
A10(X) only:
I’m learning how to make tweaks and new to objective c, is there any guide on how i can add a settings option like this
iOS 16.7.8 btw
I believe the best guide is https://github.com/NightwindDev/Tweak-Tutorial
alr thx
Thank god it’s not swift
Cursed
alr
You need to write assembly if you don’t want to use objc at all 💀
Nothing, he just likes to be controversial
It doesn’t matter what language you’re in
Whatever is easiest for you
I just said it was cursed 💀

Tweak entirely in c++
Ewwww
Still better than swift
Technically it’s possible to write a tweak fully in C
literally doesnt matter lmao he's just a weirdo
would you rather a tweak in rust?
I've written in both
🙄🙄🙄
Yes
Ew
I’d rather die
would you write a tweak on paper
You’re bad at it
I think Lucy did write some of their tweaks in Rust back in the day
correct
I think I did that once 💀
I've technically wirtten a tweak in rust
Pongokit-rs 
bad
Nah
Rust is bad
nah like I don't mind rust but it's way more difficult to read than other languages
Swift's fine though
Same, but I disagree
I feel more comfortable writing Rust than C++ and that’s that
Sometimes I wonder if apple engineers were high when they wrote the keywords
what about them
O
This sounds cool but I hate oop
Cursed
give examples
wat
My issue with Swift is how annoying it is to use on Linux and Windows
Watch the Tsoding video
ya I've seen it
as my first tweak im just gonna make a generic status bar thing
It’s so bloated
Something to make for example == return true on a given object
Yeah sure that’s easy enough
I get why but man Apple fell off when they stopped following standards
What is the keyword again
C++ > Rust
Rust cannot be read by non rust devs
It is not that hard to read
It’s almost like Swift
it's like the Swift that "clever" people write
with a lot of templating and whatnot
Agreed
I respect rust but it's just hard to read as a non-rust user
You’re just scared
Play around with it
Read the book
I like unsafe
I read it
Clearly
Clearly not
GCD in Swift/Objective-C is alright
Combine is weird though
That’s why https://fuckingblocksyntax.com exists
I dont have iphone/preference_bundle_modern in my theos selector, can I just use iphone/preference_bundle
yeah
they got rid of the _modern
it's the same thing
they just changed the name
https://github.com/theos/templates-legacy @slim bramble
It’s like learning a new irl language since you have 0 experience you are intimidated
They’re dead anyway
And since it’s not like a Romance one, say you weren’t learning Portuguese and instead a Slavic one it’s more intimidating
@radiant idol do you use the tweak_with_preferences Theos template ?
No
What is y’all’s preferred scripting language?
Py I guess
gnu bash 
also if I wanted to do my status bar tweak I could just enter EXM?
Enter something random enough
yeah it can even be more than three letters
Have any of you tried Zig?
just has to be unique
oh alright
Some friends did
It’s alright
Less bloated than Swift and even Rust
In terms of linking and the compiler since clang is embedded
the Swift runtime is bloated, but I would say that the syntax itself is quite nice
POV: trying to link statically in swift
POV: trying to statically link on macOS
Don’t like the whole promise thing
I just find it weird
what about it
.
¯_(ツ)_/¯
I include the whole if let and guard clauses with that
the objc interop is also pretty nice
Yeah that as well
It’s only one way sadly
wdym
Also what’s broken with hooking non @robust radish functions ?
Oh fuck
Sorry for the ping 💀
Cost of having such name
yo now I get this
n file included from CSBRootListController.m:1:
./CSBRootListController.h:1:9: error: 'CSBRootListController.h' file not found with <angled> include; use "quotes" instead
1 | #import <CSBRootListController.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| "CSBRootListController.h"
./CSBRootListController.h:3:36: error: trying to recursively use 'CSBRootListController' as superclass of 'CSBRootListController'
3 | @interface CSBRootListController : CSBRootListController
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
CSBRootListController.m:5:4: error: expected a type
5 | - (NSArray *)specifiers {
| ^
CSBRootListController.m:6:10: error: use of undeclared identifier '_specifiers'
6 | if (!_specifiers) {
| ^
CSBRootListController.m:7:9: error: use of undeclared identifier '_specifiers'
7 | _specifiers = [self loadSpecifiersFromPlistName:@"Root" target:self];
| ^
CSBRootListController.m:7:29: error: no visible @interface for 'CSBRootListController' declares the selector 'loadSpecifiersFromPlistName:target:'
7 | _specifiers = [self loadSpecifiersFromPlistName:@"Root" target:self];
| ~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CSBRootListController.m
12: error: use of undeclared identifier '_specifiers'
10 | return _specifiers;
| ^
In file included from CSBRootListController.m:1:
./CSBRootListController.h:3:12: error: class 'CSBRootListController' defined without specifying a base class [-Werror,-Wobjc-root-class]
3 | @interface CSBRootListController : CSBRootListController
| ^
./CSBRootListController.h:3:33: note: add a super class to fix this problem
3 | @interface CSBRootListController : CSBRootListController
| ^
8 errors generated.
I made the preferences
ok well
let's go through it one by one
first error: error: 'CSBRootListController.h' file not found with <angled> include; use "quotes" instead
basically you can't use #import <....h>
you have to do #import "....h"
alr that error is gone
next time that you share a snippet of code can you use discord's code markup formatting?
`#import "CSBRootListController.h"
@interface CSBRootListController : CSBRootListController
@end`
try this instead

#import <UIKit/UIKit.h>
#import <Preferences/PSListController.h>
@interface CSBRootListController : PSListController
@end
so close!
it's ok he's learning
use 3 `
we need more develoeprs
develoeprs
whatever
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [/Users/name/Desktop/CustomBar/.theos/obj/debug/arm64/CustomBarPrefs.bundle/CustomBarPrefs] Error 1
make[3]: *** [/Users/name/Desktop/CustomBar/.theos/obj/debug/arm64/CustomBarPrefs.bundle/CustomBarPrefs] Error 2
make[2]: *** [internal-bundle-all_] Error 2
make[1]: *** [CustomBarPrefs.all.bundle.variables] Error 2
make: *** [internal-all] Error 2
Can you show your makefile for the CustomBarPrefs?
this is what theos generated
include $(THEOS)/makefiles/common.mk
BUNDLE_NAME = CustomBarPrefs
CustomBarPrefs_FILES = CSBRootListController.m
CustomBarPrefs_FRAMEWORKS = UIKit
CustomBarPrefs_PRIVATE_FRAMEWORKS = Preferences
CustomBarPrefs_INSTALL_PATH = /Library/PreferenceBundles
CustomBarPrefs_CFLAGS = -fobjc-arc
include $(THEOS_MAKE_PATH)/bundle.mk
I changed 7.0 to 14.0 btw
weird, looks fine
this is my .m file
@implementation CSBRootListController
- (NSArray *)specifiers {
if (!_specifiers) {
_specifiers = [self loadSpecifiersFromPlistName:@"Root" target:self];
}
return _specifiers;
}
@end
that also looks fine 
It’s not in apple headers
should be in the theos sdk
@tepid olive you have to use 14.5:14.0 in order for it to compile
It defaults to macOS sdk
not for me
In latest:14.0
Well this fix works for me
thx bro @slim bramble
Nice
What macOS version are you using ?
Ok so it’s not macOS
I'm also on the latest MacOS with an M1
nice nice
also is the palera1n jb good enough for developing?
Fr thanks
ya
Which ever you want
ye because I kinda don't have a choice
As long as they are not fake jbs 💀
iPhone 8 on iOS 16.7.8
Yeah no choice
battery life is shit without battery health tweaks
but at least it works
also is there any rule that I have to make the tweak open source?
I wanna add it to my repo
hello development channel
@lofty juniper this place feels weird
we should delete it
Ok commie
huh? 😭
ew a frenchie
Ewww
ewwww

<insert insanely wide pukeko.jpg>
Where’s the one leg pukeko
Pukeko

I wonder how I could do prefs in c++
Hooking into Settings.app?
no just use objc_msgSend directly
Oh, i can use it in pure c/c++?


K thanks
pukeko_msgSend
Unironically should have used qt
Less reimplemented wheels
@radiant idol for CustomBarPrefs_FILES = CSBRootListController.m can I just use a comma
to add another file
separate them by spaces
its working thx
👍
also any decent guides on learning OBJ C and apple related stuff?
Picking it up as you go along is the best way
alr
thats what I did for my first programming language
and that worked
Yeah that’s the best option
Ima try to compile trollhelper for something
anyone know of a way to dualboot an ipad 7 with ios 16(its on that rn) and 15 (i have blobs for 15.6rc 🔥 )
how could I do a a userspace reboot in obj c?
look at dopamine app
ok
from code
#import <dlfcn.h>
#import <spawn.h>
// ...
pid_t pid;
const char* args[] = {"launchctl", "reboot", "userspace", NULL};
posix_spawn(&pid, ROOT_PATH("/usr/bin/launchctl"), NULL, NULL, (char* const*)args, NULL);
would something like this work?
{
pid_t pid;
const char* args[] = {"launchctl", "reboot", "userspace", NULL};
posix_spawn(&pid, ROOT_PATH("/usr/bin/launchctl"), NULL, NULL, (char* const*)args, NULL);
}```
then,
#import kernel
delete kernel
yes
310 | posix_spawn(&pid, ROOT_PATH("/usr/bin/launchctl"), NULL, NULL, (char* const*)args, NULL);
| ^
../Shared/TSUtil.m:310:20: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'const char *' [-Wint-conversion]
310 | posix_spawn(&pid, ROOT_PATH("/usr/bin/launchctl"), NULL, NULL, (char* const*)args, NULL);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/andrew/theos/sdks/iPhoneOS16.5.sdk/usr/include/spawn.h:60:64: note: passing argument to parameter here
60 | int posix_spawn(pid_t * __restrict, const char * __restrict,
| ^```
@radiant idol
ah add the #import <rootless.h> header too
read the page about rootless on the tweak tutorial
string >>
literally no reason to use objc++ here
how about
how about pure c++ with direct hooking into stuff
312 | NSString *filePath = ROOT_PATH_NS(@"/var/jb/Library/Application Support/");
| ^~~~~~~~
1 error generated.
just one last one
@radiant idol
{
pid_t pid;
const char* args[] = {"launchctl", "reboot", "userspace", NULL};
posix_spawn(&pid, ROOT_PATH("/usr/bin/launchctl"), NULL, NULL, (char* const*)args, NULL);
NSString *filePath = ROOT_PATH_NS(@"/var/jb/Library/Application Support/");
}```
this is the code btw
does it look alright?
why filePath isnt used anywhere
you can fix the error by disabling that warning
in your makefile add -Wno-unused-variable to
CustomBarPrefs_CFLAGS
do you need the bottommost thing?
that's just bad though
it just works™️
what does that do
-fpermissive
Downgrade some required diagnostics about nonconformant code from errors to warnings. Thus, using -fpermissive allows some nonconforming code to compile. Some C++ diagnostics are controlled only by this flag, but it also downgrades some C and C++ diagnostics that have their own flag

smh
@radiant idol the user space reboot works thx
making a trollstore lite mod instead of the status bar one
what are you adding to it? 🤔
just more utilities
nice
I wanted to add user space reboot because some apps require that
wouldnt resping be enough
I have some utils in my tweak as well, it's in Swift but the gist is the same https://github.com/NightwindDev/PowerSettings/blob/main/Sources/PowerSettingsViewModel.swift
also if I remember correctly objective c and works in swift right?
@radiant idol you got any idea on how to hook/hijack siri?
i'm trying to remake siriplus
however i have 0 idea on how it works
amazing have a great day
you too <3
ida
/s
send me ida pro crack pls
dms
@pallid totem pro tip: also unzip sdk somewhere
thank
reboot3() >
¯_(ツ)_/¯
both work
I've seen the posix_spawn version be used way more often
although I think it does use reboot3 under the hood
i feel like i should have paid for macOS ida 4 years ago and ive just been taking a massive L all these years by not having that tool conveniently accessible
Hexrays were kind enough to make it conveniently accessible a few months ago
should update and ruin any mdc compatibility but be able to use alot more apps. also, I have a tweaked spotify app and i cant put spotify on my watch without the one from the app store
im not sure what to do
correct, due to entitlements
Job Posting: iOS Developer for App Attest Token Generation
Just curious: are you trying to bot a dating app?
No, I am not interest with any adult content.
I got passed the MFI login using flex devices show but clicking does nothing so close yet so far this is FMCA it also might be I don’t have correct accessories idk
how do i find this smh
i guess
Anyone know a good way to force your preferences plist to be readable by others? I need a process running as root to be able to read a plist in mobile
These are the permissions normally, which makes it hard to read from a process running as root, or in my case, installd
nvm, found a workaround
Could this be used in anyway to benefit or is it only a way of reading the file system
If Apple started allowing this, then other such apps can violate your privacy by checking installed apps?
they can already do that lol
alfie
It’s not even that, it’s just a way to determine whether specific apps are installed
smells
fingerprinting
jailbreak detection
Maybe related to this, I haven’t seen internal toggles show up tho
chat what is the tweak that allows you to deconstruct the different NSViews Texts NSImages and what not that make up an app in real time
using ammonia to mess with my mac rn and I wanna theme my messages app
quote unquote example
provided as an example, but I think I understand how to get funky with it
was it flex
yeah it was flex
thanks
where do you download ammonia
What does it do
I can send the .plist for performance trace
Just use cowubunga
Idk if I messed up my install but this was the path on Mac that worked for me
Open finder Command + shift + G
/Users/your user/Documents/com.leemin.CowabungaLite/Workspace/Your UDID/SkipSetup
open ManagedPreferencesDomain
then place .plist in mobile
replace your user with username
And your udid with Your devices
Hi all, does anyone know how to display a UIWindow from the SpringBoard process over the screen/current app on iOS 16 please?
Not sure if I'm down the wrong avenue but my tweak is executing and no UIWindows show up
Contribute to RUGMJ/BrainRot development by creating an account on GitHub.
the relevant part is
class SpringboardHook: ClassHook<SpringBoard> {
func applicationDidFinishLaunching(_ application: Any) {
orig.applicationDidFinishLaunching(application)
let screenSize = UIScreen.main.bounds.size
let halfScreenHeight = screenSize.height / 2
window = BrainRotWindow(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: halfScreenHeight))
window.windowScene = target.connectedScenes.first as? UIWindowScene
window.isHidden = false
window.windowLevel = UIWindow.Level(CGFLOAT_MAX / 2.0)
window.rootViewController = UIViewController()
window.isUserInteractionEnabled = false
window.makeKeyAndVisible()
}
}
Cheers man. Sorry, I realise this is probably dated but I'm still working with Objective-C. Do you know of another tweak that uses alerts?
This might have what you need
~~dont use mine use the sushi one(its what i used for a UIWindo) suishis is interactible, mines interaction is just disabled https://github.com/Skittyblock/Sushi~~
I think the DCP on the 14 pro/pro max series actually renders the island when its unavailable in backboardd/springboard lol
I mean, the phone literally panics when you fuck with the island enough
are all apple shipped macos apps arm64e?

Intel Mac Pro as a Linux machine must be quite nice
it might be but not anything from 2016
why dont they strip x86_64 or arm64e off the binaries on systems that dont need them anyways
waste of space
because they want to ship universal because everyone has gigabit internet obviously
Out here with 100mbps internet
sarcasm
Mine averages to like 50mbps
adsl sucked dick
I have 930 on a good day but usually get 500's
Nah there’s no mmWave in my area
I'm pretty sure Spectrum and Frontier are my only options
Before it was ONLY frontier
For years
Frontier is good
Not with ADSL
My friends house has frontier fiber
I usually go to download large binaries there
💀
my internet used to be so bad i just downloaded big things at my school man
Fios or 5G?
5G C-Band
Nah they throttle the download speed
During the 30d trial period I was getting 600mbps
Afterwards when I was locked into the contract it dropped to 100-200 then later on now it averages to 50-100
This was on c band
I've never in my life got over 200 up lol
I envy people with fiber
unfortunately without 5G SA and carrier aggregation, cellular upload will suck
I know a frenchman who pays €50 p/m for 10gbps fiber
if someone in the house has icloud backup, so good bye to 3am warzone
my phone usually userspace reboots right at about 3am
then does the backup
I hate that you have to restart discord every time you want to send an attachment on the mobile app now because they don’t know how to develop an app
I’ve got a bunch of them
Ok it just didn’t upload
Thanks
I have to do so much god damn QoSing to fix apples stupid ass backups from ruining p2p games
Speaking about internet
its been 1 single developer since 2016
I gotta figure out how to get a newer idevicerestore on nix
compiling is easy
Gonna try to dfu restore my macbook
Not on a steam deck
try muscl
just good for crosscomp on weird hosts
its the reason tsschecker is shipped on risc
musl I mean
are you referring to this https://github.com/richfelker/musl-cross-make ?
Or the actual C std lib project
that might be it its kinda built into actions
ohh
musl.cc provides static cross- and native- musl-based toolchains for Linux, Windows, and macOS, targeting architectures like ARM, MIPS, PowerPC, RISC-V, S/390, and more.
"panicString" : "panic(cpu 0 caller 0xfffffff0442651e8): "LLC Bus error from cpu0: FAR=0xb82011140 LLC_ERR_STS/ADR/INF=0x80/0x300040b82011140/0x1400000002 addr=0xb82011140 cmd=0x18(acc_cifl2c_cmd_rd_ld)" @AppleEverestErrorHandler.cpp
is this anything useful or is my phone just shit
How did you trigger it?
Yet another unofficial speedtest.net client cli interface - taganaka/SpeedTest
Ghud damn
does anyone have an idea why this doesn't work, i am injecting this to launchd (mac), and i cant even launch apps after that
path exists
Is it signed correctly?
Idk I think it was kernal space panic reading it but I don’t really know much was on my 16PM
signing didn't help
@naive kraken you might know this
I don’t think macOS needs a dyld patch or anything…
Hm, that’s really odd
It could be exploitable, but that panic log won’t help determine how it was triggered
I can send the log if you want
it shouldn’t, I just remembering having to ad hoc sign ellekit and it worked
Is SIP off?
ig i have to copy old envp and append the additions
I mean sure but I don’t think that panic log specifically has much info at all
Probably actually
yes, but the goal isnt getting ellekit to work, its hooking launchd to inject a lib to every launched process
Ah ok
with this, i can launch apps but target lib is still not injected
How does turd whatever work? Why does it not need a compatible Sep? Does it do Sep downgrades too?
Weird name
it uses SEP exploit chain. If you have a valid ticket, it will downgrade SEP to that version. If not, it will boot SEPOS using the exploit in a tethered boot every time.
does anyone have any idea what could be causing this?
its happening on devices that havent restored to that path before
I don't think that += is correct
yeah it works in bash but not unix i guess
maybe try
char *newenv = malloc(strlen(oldenv) + strlen(newenv) + 2);
sprintf(newenv, "%s:%s", oldenv, newenv);
i just woke up and i'm on my phone this could be wrong
btw you are leaking memory
ik
can someone explain to me how a baseband exploit attack vector would be?
like would i need to run my own radio station or smth?
I choose Ad-HoC use with cert can sign resign yet I fucking get can not install app try again later my UDID is listed
My old provison profile works still but it expires in 6 months I want to make a new one with updated entitlements does anyone know why this shit is happening been trying 3 fucking days now
I’m about to just set up an appointment at Apple and say I can’t fucking sideload Fix this shit I’m so annoyed
What about (e)sim
how exactly do you decrypt an IPA on iOS 15 12?
I've jailbroken with Ch1mera and have been trying to use Clutch, I've done it a couple times before but it's always a pain and I'm struggling to figure it out
Currently am getting
[2;31mError: Could not obtain mach port, either the process is dead (codesign error?) or entitlements were not properly signed
ya idk
the script gets confused because i have apt-utils installed
yeah I'm not sure, I haven't installed it on linux ever
i removed apt utils and it works
ah
huh, is this compiling the toolchain locally?
perhaps
not sure about linux
on macOS it uses the xcode one
did you select the swift one btw
yes
i've heard swift is quite nice
I've used it in some of my tweaks
very true
mm
objc has arc
you dont need to manually manage memory unless you opt out of arc
well unless you're dealing with C stuff like malloc, then you have to use free
well yeah, but isn't that function "memory allocation" so obviously you'd have to free memory to allocate it
seems like arc was introduced in 2011 with ios 5... that doesnt seem right
but anyway
yeah but what I meant was if you're just allocating an objc class for example you don't need to explicitly free it
modern iOS still relies on UIKit?
well what do you define as modern
There's parts of iOS which are SwiftUI, and that's starting to happen more and more with more recent iOS releases, but a large part is still UIKit
i honestly dont think swiftui could cope with being springboard
eh
Springboard is a perfect mishmash that if anything happens in the incorrect order it explodes regardless 
SpringBoard is complicated but if they just scrapped everything and started over again it might not go super horribly
ive heard the springboard still has elements in it as old as ios 9
why is void in brackets 😭
this barely resembles c++
some parts are nearly identical
ig
cause its not c++ 
oh there's also Objective-C++
forgot to mention
but let's forget that exists for now
okay so
@interface _UIStatusBarForegroundView : UIView
when you interface with something that comes from a higher class, you must specify in this manner?
yep
wdym
a class within a class within a class
@interface A : NSObject
@end
@interface B : A
@end
@interface C : B
@end
ah
so what is that line actually doing, is it telling the compiler "this is where this class inherits from:
yeah pretty much
you can lie to the compiler if you really wanted to
@magic hazel forgot to mention - the best way to actually get better at tweak dev is to just practice
and also look at open source tweaks
its the best way to get good at any programming adjacent thing
yep
ive learnt that the hard way
video tutorials are especially dangerous
it's so easy to just copy what they do and never learn shit
yep
agreed
find some place in iOS that you don't like
for me at the beginning it was the Settings app
that's how I developed OneSettings
yeah and then try and make a tweak addressing it
yep
not particularly
not all headers will be able to be imported that way btw
but big ones yes
you can also use the #include syntax that you may be more familiar with (from C++) but #import is more encouraged
yes
how do i do that
look at substrate_tweaks.md once you get there, if you really cannot live without autocomplete you can use that
nah it's not so much i can't live wihout it, it just helps me learn and explore the entire class
without digging through documentation
actually I'd say digging through the docs is good in this case
the one listed in the tutorial yep
compile error 
do note that you will need to install the old abi package on your phone if it's an arm64e device since you're building on linux
what's the error
`ake package THEOS_PACKAGE_SCHEME=rootless
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
==> Warning: Building for iOS 7.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 Tutorial…
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
==> Preprocessing Tweak.x…
Tweak.x:43: error: dangling %end
make[3]: *** [/home/jwalr/theos/makefiles/instance/rules.mk:400: /home/jwalr/Tutorial/.theos/obj/debug/armv7/Tweak.x.m] Error 255
rm /home/jwalr/Tutorial/.theos/obj/debug/armv7/Tweak.x.m
==> Preprocessing Tweak.x…
Tweak.x:43: error: dangling %end
make[3]: *** [/home/jwalr/theos/makefiles/instance/rules.mk:400: /home/jwalr/Tutorial/.theos/obj/debug/arm64e/Tweak.x.m] Error 255
==> Preprocessing Tweak.x…
Tweak.x:43: error: dangling %end
make[3]: *** [/home/jwalr/theos/makefiles/instance/rules.mk:400: /home/jwalr/Tutorial/.theos/obj/debug/arm64/Tweak.x.m] Error 255
rm /home/jwalr/Tutorial/.theos/obj/debug/arm64e/Tweak.x.m
rm /home/jwalr/Tutorial/.theos/obj/debug/arm64/Tweak.x.m
make[2]: *** [/home/jwalr/theos/makefiles/instance/library.mk:52: /home/jwalr/Tutorial/.theos/obj/debug/armv7/Tutorial.dylib] Error 2
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [/home/jwalr/theos/makefiles/instance/library.mk:52: /home/jwalr/Tutorial/.theos/obj/debug/arm64e/Tutorial.dylib] Error 2
make[2]: *** [/home/jwalr/theos/makefiles/instance/library.mk:52: /home/jwalr/Tutorial/.theos/obj/debug/arm64/Tutorial.dylib] Error 2
make[1]: *** [/home/jwalr/theos/makefiles/instance/library.mk:37: internal-library-all_] Error 2
make: *** [/home/jwalr/theos/makefiles/master/rules.mk:146: Tutorial.all.tweak.variables] Error 2`
long ass error
ok first show your makefile
TARGET := iphone:clang:latest:7.0
INSTALL_TARGET_PROCESSES = SpringBoard
include $(THEOS)/makefiles/common.mk
TWEAK_NAME = Tutorial
Tutorial_FILES = Tweak.x
Tutorial_CFLAGS = -fobjc-arc
include $(THEOS_MAKE_PATH)/tweak.mk
change the topmost line to:
TARGET := iphone:clang:latest:14.0
ARCHS = arm64 arm64e
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
/home/jwalr/theos/toolchain/linux/iphone/bin/clang: /lib64/libtinfo.so.6: no version information available (required by /home/jwalr/theos/toolchain/linux/iphone/bin/clang)
==> Preprocessing Tweak.x…
Tweak.x:43: error: dangling %end
make[3]: *** [/home/jwalr/theos/makefiles/instance/rules.mk
/home/jwalr/Tutorial/.theos/obj/debug/arm64/Tweak.x.m] Error 255
rm /home/jwalr/Tutorial/.theos/obj/debug/arm64/Tweak.x.m
make[2]: *** [/home/jwalr/theos/makefiles/instance/library.mk:52: /home/jwalr/Tutorial/.theos/obj/debug/arm64/Tutorial.dylib] Error 2
make[2]: *** Waiting for unfinished jobs....
==> Preprocessing Tweak.x…
Tweak.x:43: error: dangling %end
make[3]: *** [/home/jwalr/theos/makefiles/instance/rules.mk
/home/jwalr/Tutorial/.theos/obj/debug/arm64e/Tweak.x.m] Error 255
rm /home/jwalr/Tutorial/.theos/obj/debug/arm64e/Tweak.x.m
make[2]: *** [/home/jwalr/theos/makefiles/instance/library.mk:52: /home/jwalr/Tutorial/.theos/obj/debug/arm64e/Tutorial.dylib] Error 2
make[1]: *** [/home/jwalr/theos/makefiles/instance/library.mk:37: internal-library-all_] Error 2
make: *** [/home/jwalr/theos/makefiles/master/rules.mk:146: Tutorial.all.tweak.variables] Error 2
jwalr@fedora:~/Tutorial$
'@import UIKit;
@interface _UIStatusBarForegroundView : UIView
@end
%hook
-(void)didMoveToWindow {
self.hidden = true;
}
%end'
ill do that in a sec
All this does is inject itself into a function or “hook” it after you’ve specified where and what function, and runs a command as if it were a part of the app itself
Kinda
I think
No
ah ok nvm then
was gonna try and relate to that concept but if you're not already familiar it'll make it more confusing
It gets way more complex from here doesn’t it
it does

Eh, jailbreaking is something I very much enjoy and I wanna be able to contribute to helping keeping it alive
It’s not doing so great rn

yeah true
if you want, take a look at some of my open sourced tweaks
just look for the ones that are written in Logos
I’ll do that once I’m a bit further into ur tutorial
What I try and do is take a step and then make something with it
Use the knowledge I’ve leernyto make something original
Even if it’s basic
So I know I actually understand what’s happening
this one is quite simple, not too much fluff added https://github.com/NightwindDev/RecordDot/blob/main/Tweak.x
I’ll probably stuff it up but oh well
Some parts are easy to understand and overall it’s actually very readable
I like your headings
Makes it very easy to follow even if I don’t fully understand what’s going on in them
yeah the stuff that I make open source I try to document
you mean _UIStatusBarForegroundView?
Yep
that's not a function, it's a class
Sorry
Apple sometimes puts _ to denote that the class is "private"
Ah I see
but in objc nothing is really private, you can access everything
it's a standard in a few languages
javascript for one
when there's no built in way to denote if somethings private prefix the name with an underscore
Sh I see
ngl i thought the underscore was just there because yes
I don’t blame you
for whatever reason apple decided to add an extra _ in iOS 15.2
The fact this is a necessary check
Ima see if I can make something else happen with ui view when I get home
Where do I actually find the sub classes
Like this one
you can use FLEX
Ah alr
can just mess around with random places
Awesome
its fun
Does self.hidden work on all classes that are within ui view
there's also alpha which you can use to control the transparency
and a whole lot of other things
Is there documentation for that
Cheers
public API, so you can use apple docs
Awesome
basically there's a distinction in the apple world between public and private APIs
public APIs generally have official documentation and you can browse them
private APIs you can still use but there aren't docs for them
some public APIs include: UIKit, CoreTelephony, Foundation, and others
private APIs: Preferences, SpringBoardServices, FrontBoard, etc
How does one figure out what functions exist for these then
header dumps
💀
sounds good
👀
I’m gonna have to figure out how to sync stuff from my desktop which is on windows to my laptop on fedora
So I can work from home
Theos on windows involves you using WSL so it is technically a Linux env
i didnt install anything on my own 😭
ah
do i need to specify its a float
like in c++
eg 0.1f
@import UIKit;
@interface _UIStatusBarForegroundView : UIView
@end
%hook _UIStatusBarForegroundView
-(void)didMoveToWindow {
self.alpha = 0.5;
}
%end```
grrr
rip
yes
W
make sure to call %orig; though
why
for the original implementation
ah
otherwise you're overriding the entire impl, whatever was once in that method would be fully overriden by your impl
there are times when you don't want the original impl, but in this case you do
ah isee
well it won't compile 
ima just have to start again i've stuffed it
i hate when these things happen
i hate compile errors so much
Okay now I’m seeing the unread shit
Who is deleting messages
I don't know if you got this resolved but iirc this is an issue with Fedora's fakeroot
I had it too, you can fix it by using a different backend (?) for fakeroot
how do i do that
I don't remember the exact command, I'll need to look it up
alr
@magic hazel Try:
sudo alternatives --config fakeroot
When prompted, choose fakeroot-sysv
Try make package maybe
Which file?
nvm its just dolphin being weird
the built file
i fixed it
gonna test on my device
So it works?
Cool
I should probably open an issue about this on GitHub now that I think about it
that should be pinned somehwere
compile for rootless though if you want to test on your rootless device
alr
👍
this is for springboard ocrrect
yes
so it will be injected on the springboard 24/7
yes
and not anywhere else
yes
can i install via sileo
but again make sure you did call %orig
i did
yes
yay
thats so cool
time to do some shenanigans
oh
its globally gotten rid of my status bar
not just on the sprindboard
that's weird
yeah the status bar is really weird
lemme see if i can play with the alpha
it's rendered in springboard most of the time
yay
i dont really unersatnd this bit tho
didMoveToWindow
it seems to have like nothing to do with the status bar
basically didMoveToWindow is one of the many methods each UIView has
think of every app in iOS as a root "window" with contents inside
basically didMoveToWindow gets called whenever the view appears on the screen
i see
can you explain this to me
UIView *ourView = [[UIView alloc] init];
i dont really understand it
i understand what it's doing
just not the syntax
That's how you create objects with Objective-C
+alloc allocates it, -init initializes it
another way to create them is:
UIView *ourView = [UIView new];
I prefer to use that
but they do the same thing in the end
what is the * for
it's a pointer
ignore that for now I suppose
Objective-C objects are never on the stack, therefore they are always used/stored as pointers in code
^
when you're working with Objective-C types you must always use a * because they are always pointers
It's not really releted to initialization
[nearly] everything in objc is dynamic so that's one of the reasons as to why pretty much everything is a pointer
okay
got it
the "viewDidLoad" is a bit iffy lmao
are we literally just finding any function that seems okay
and shoving our code into there
(that lies within that class)
that is a lot of tweak devving
but generally you should find the more "correct" methods to hook
viewDidLoad and didMoveToWindow are both from UIKit
@import UIKit;
@interface SBHomeScreenViewController : UIView
@end
%hook SBHomeScreenViewController
-(void)viewDidLoad {
%orig;
UIView *ourView = [[UIView alloc] init];
ourView.frame = CGRectMake(0, 0, 200, 50);
ourView.backgroundColor = [UIColor greenColor];
[self.view addSubview:ourView];
}
%end```
what did i do wrong
I'm not sure if you're familiar with this so I'll just mention it: methods starting with a + refer to class methods, methods starting with - refer to instance methods
SBHomeScreenViewController is not a UIView subclass
fedora is being picky about where i send
lemme see if i can send through discord
im currently using my email

yep
you can use ssh
Why don't you use ssh?
Omg
hi mineek
Gm nightwind & pixel
gm mineek
becuase i dont want to set it up
there's nothing to set up
there is when you are constantly switching mac addresses and wifi networks
You can run iproxy and use ssh over usb

hold on
ssh -o 'ProxyCommand=inetcat 22' -o 'UserKnownHostsFile /dev/null' -o 'StrictHostKeyChecking no' root@frcoal
