#development
1 messages · Page 117 of 1
thanks for the reminder
feels like something people would find interesting, I feel inspired by MattKC's streams on doing funny business like porting .NET 2.0 to Windows 95
ok funny build system 2.0 out rootless support eta now
eta wen RH support fr
also helps it's not a moving target, the foundation is as stable as it'll ever be
Mattkc streams my beloved
Filter bypass :/
lmao
cry
face it icraze you like aussie accents
.
I mean I gotta put up with yours bc you can’t shut the fuck up when you’re at home

you would think so but I'm usually pretty quiet and focused at home lol
what is this lore
I’m in his walls
he lives in my walls
oh

i thought he lived in my walls
I occasionally feed him when I feel like being humane
did he movoe away
since when 
since yesterday
oh
how did you move to the other side of the world in 24 hours
legs
oh
yeah I’m pretty fast init
i was aboutta say you took a plane but then I remembered you're british and obviously ALL brits carry a dagger with them at all times so that cant be it
unless they confiscated it 🤔
@hasty ruin is this true
no comment
why not
recently got contracted to make an iOS program (for AppStore release, not JB related), which will act as a way to get live news from the source person who asked for it to be created, the current way im thinking of, is a sort of RSS feed approach, where itll dynamically parse and load things like videos and podcast audio and allow the download of that kinda stuff, im thinking of using Swift/SwiftUI (yeah, just cause why not), any ideas of any other good ways to tackle this? The application should be able to present : Text announcements, podcast mp3 audio streaming, and video streaming
RSS seems like your best bet, then you can plug it right into something like WordPress and not have to worry about building a backend
oh my goodness i did not expect an essay when i came bacak
weak definition of essay
yeah thats true, im also thinking it would make it easier to host all of that content
and there are probably WP plugins for videos and podcasts being directly embedded in the RSS in the "standard" way to do that
I didn't realise lightmann did all that work on dragon honestly, that's awesome
how good does this look as a starter for understanding the way to implement?
that seems like definitely what you want
he's basically single-handedly pulled it off of life support its been really lovely to see
He’s cheating on theos wtf
been so swamped w/ work and then having to pick which of 6 large projects to try and fuck with when i just want to draw birds n stuff
dudes on fire
item.enclosure gets you the video/audio url and such, which has you covered there
item.content gives you the body text of the post
draw elon a new bird logo pls
man I feel that
this is probably the last thing im gonna attempt, how would you tackle the ability for users to make an account/login to comment? since thats prob gonna be its own hurdle entirely, thatll be the very last thing tbh
sounds like it should also be possible with WordPress's built in commenting system honestly, there may be plugins to require users to sign up to comment that would handle that part
or well, I'm pretty sure I've seen WP sites that require login before commenting
Mmm even better, the client already uses wordpress to host their main site luckily
sounds doable then!
oh awesome, so they'll be totally familiar with it. sounds like a winner for both you and them
nah literally, praydge worked
oh this also happened i need to full-regenerate the headers site eventually https://github.com/0cyn/ktool/releases/tag/2.0.0
Oh yeah whilst you’re here, what does it mean when ktool produces headers with methods commented out?
https://github.com/0cyn/ktool/blob/master/src/ktool/loader.py#L371 main draw is this sexy block of code 4 loading chained fixups
it means ktool thinks it'd be an invalid type definition for a header, and it tries to build headers you can compile against, so it leaves them commented out so you still know that method exists
ahh makes sense ty
eh, i think having it be entirely different is good for distinction against it being something like a regular objc call
yea
dont wanna confuse it with a super call which is does something v different
no clue

it's S for sharp 👍
was evan's latest name for it
there’s an old project with the same name
misinformation :/
:/
my main reason for not touching it for a while
that's the primary reason it makes me sad objcs can't be more viable
u have to hold so much info in your brain to work on it
tweak development and figuring out tweak conflicts:
trying to fix your tweak for an iOS that you dont have any devices on:
help me
ok now imagine having a conflict with the dynamic island, without a proper jb
im not getting correlium
trying to write rootless stuff but i have no jailbreakable idevices
pov my code works on: iOS 14, 15, 16, and then boom just crashes on iOS 17 for some stupid reason
16.7.X?
thats only for A11 and below, no?
16.7.2
huh
interesting
honestly if you're really interesting in tweak dev again, it might be worth it to just pick up a cheap used iphone 8 on iOS 16 and develop for that
or even an ipod on ios 15
oh 11s are cheap now wtf
yea something like that
get one on iOS 16.5.1 or below, those have a "semi jailbreak" available rn
(basically a full jb but different technique)
Well u can’t inject into daemons but SB and app injection work
(I think)
Also @radiant idol what do you think ?
i think thats right
looks good
make sure to try landscape mode too
how the hell did you get so far with tweak dev so fast tho lol
u kinda sucked at it
find n rce in mediaserverd so we can have that one funny tweak
fr
Well copy paste is nice, but it’s not that much. Just a bunch of methods, CGRects
, and math, CGFLoats, and ints
Oh and stealing prefs from bolsters reborn 
Not actually tho
if you do take code, just credit properly
Isn’t it 16.6.1
16.5.1 is for the ppl bypass
Kinda freaked but idk what Idk what I’d do
oh right
yea not ideal
best to figure something out
I would like to add custom like landscape/portrait motif offsets but idk like how to see if orientation was changed
I have some idea but need a method that gets called or Rosie told me about adding like a listener for an chnage for an ivra I fg which but I could find it
This would also ad iPad suport which is little broken atm bc ^
-100 noti offset (thanks nexus)
Little buggy w the artwork
put the controls under the time
on the left
artwork on the right
move the three dot thing to the top right of the screen so there's enough space
nexus is open source???
I’m rewriting the whole code lol dw
No it’s protected by icraze drm
animate the out animation, when you close it it kinda just pops out of view
It’s not that simple
The artwork is the stock artwork, I just made the player bigger. But if I move it out the way to the side it would just scroll up with the rest of the player also, the tap function would not work
any idea where this KP stems from?
currently doing light research on what could be causing it
Your processor doesn't support it.
its an ARM processor, of course it doesn't
its an error in the TCG emulation though, i'm trying to fix that
host acceleration on x86_64 processor with qemu -> works flawlessly, full speed
emulation on x86_64 processor with qemu -> works fine, boots but isn't speedy obviously
emulation on ARM64 processor with qemu -> KP on anything older than Lion, doesn't boot at all due to commpage error
and no krw yet 
but implementing a krw api probably needs some form of jailbreakd (i think)
at that point just make a whole ass jb
(not) today i learned: MSHookMemory doesn't work at all for read only memory
some code from github works though
#define ENSURE_KERN_SUCCESS(ret) \
if (ret != KERN_SUCCESS) { \
NSLog(@"it overload.. (write failed)"); \
return; \
} \
#include <mach/mach.h> // mach_task_self, vm_protect
void write_memory(void* destination, const void* data, size_t size) {
mach_port_t our_port = mach_task_self();
ENSURE_KERN_SUCCESS(vm_protect(our_port, (vm_address_t)destination, size, false, VM_PROT_READ | VM_PROT_WRITE))
ENSURE_KERN_SUCCESS(vm_write(our_port, (vm_address_t)destination, (vm_offset_t)data, size))
ENSURE_KERN_SUCCESS(vm_protect(our_port, (vm_address_t)destination, size, false, VM_PROT_READ))
}
well yeah it's just supposed to be an implementation for "safely" writing to memory but there's nothing there to get around memory protection
(in my case it just crashed lol)
read write worked fine
¯_(ツ)_/¯
i think it's a const region
in security.framework
basically the thing i'm doing is, i'm trying to add newer ssl ciphers for ios 6
obviously this alone won't work because there's no code to handle GCM
so i've been copying aes gcm code from coreTLS/corecrypto that's in ios 9.3.5 for the last couple of days 💀
and trying to make them work with ios 6's libsecurity stuff
need a jailbreakd with krw handoff for that
@radiant idol can you accept my f req 🙏
@radiant idol can you ignore my f req 🙏
Yes
@cloud yacht eta wen pr for tweak tutorial
Hasn't been 31 hours yet
I might be a bit later, I have some homework I have to do as well
31h is when I start it btw
smfh
anyone have a m1 mac to test some exploit code on?
a m1 ipad could work but idk
if anyone does ping me. i'm working on a fork of a project that bypasses PAC on all M1 SoC's and need to test it (since i don't know if it works)
the project is going on github soon so i guess i'll ask when that happens
i have a few
i do have a m2 ipad
nice, as soon as i've finished the main exploit code i'll get back to you
cheers
won't work, uses a hardware exploit on M1 SoC's only
does this vuln have a cve assigned to it
it forges kernel PACs from userspace
i'm unaware of any CVEs as i believe the team behind this did not file one
i could be wrong
the original dev made a fork in rust
so i'm just forking that into c
because why not
good practise with pointers and just exploit development in general
no
you're already in launchd
the problem is you only control the launchd after the userspace reboot so you can't persist krw
So you would have to rerun the exploit from launchd
that sounds like a easy way to cause panics
you'd only need to do it once
and from there you can have a proper forkfix aswell
and if you userspace reboot again you can probably pass krw to the next launchd like dopamine does but you have to figure out krw handoff
lmfao
what things even use libkrw? I can only think of dimentio/shshd, but saving blobs are kind of pointless now
messing with vnodes 
i'm not sure if vnodebypass works on iOS 16
i mean, it does, but not the tweak version
dimentio doesn't either iirc
probably offsets
dimentio uses a kpf though
i don't think vnode does tho, hence why it had to be updated for 15
though vnode shouldn't be as much of a requirement when you can just unlink /var/jb now
static decryption is another thing
but none of the tools are up to date for that afaik
some tweaks still pollute /var/mobile
why do we still have tweaks writing outside of /var/jb man
i can't think of a reason
now i can see why rh does the symlink patch
how many times are you gonna say you have a cfprefsd hook
12
Until its added to serotonin
i'm lazy
Un lazy yourself
i don't want to hardcode stuff
Bro is trying to credit now
@azure sail did you see this lol
yeah 😭
A true artist.
@azure sail
Chair cursus
put some food on there
what kind of food tbh
Debian packages
@indigo peak your chair back looks painful to lean on
I made it in 5 min give me a break 😭😭
half of the 5 minutes was finding the PSD for the table
💀
there's no way this is real
roothide and procurus having the same icon is wild
was not approved by procursus team btw
its not hard to make an original icon ngl
roothide officialy lost it
what's a good comment to put to describe what this does?? i put // Source file for interacting with PAC addresses but it's a bit vague
(i have no clue why it says  before the © btw)
wait...
could THAT be why SnowBoard and Jade dont wont properly?
wait no
nvm
disregard
no I don't think so
I can't pinpoint the issue with that, if it works fine on e then something may be wrong with bootstrapd or Ellekit on arm64
I still think it may be a dlopen issue
snowboard and jade work fine for me on serotonin if thats relevant at all
is there a way to start up a jbd with krw before userspace reboot and have it persist through the userspace reboot? how does Taurine do that?
however i believe snowboard causes sb to crash randomly sometimes
I just build tweaks on linux
they dont work on arm64 for some reason
#import <objc/runtime.h> maybe?
Send error
Probably need to include something else too but i dont knoww what
are you including include $(THEOS)/makefiles/common.mk in your primary makefile?
yes
why ?
Ok recloned the repo
it seem to work
but I still have a lot of random errors
(it builds fine on mac)
I feel like this is a missing UIKit import (idk what I'm talking about)
@import UIKit;
do you have a proper SDK?
nullptr_t
bestie all of these errors lead me to believe you may have a broken theos installation
Just reinstalled it
i would recommend that you reinstall theos altogether and see if that fixes anything
like 5mins ago
I have a real mac
ikik
oh ok youre building on win?
WSL
maybe its an issue with your sdk
I've tried a bunch of sdks
hmmmmm
yeah this is trolling me
😭😭
Why can't I upload
bruh
Ig I still have github action to compile
is there a way i can add a sublabel to my cell without making a custom cell for that altogether
like surely there has to be a native cell that does that
is there a way i can have a double slider in settings
just close the cocaotop and stop worring about it
lmao i made an icon and the difference between no cc and cc is insane
the corrections are minor anyway
i used the twemoji lotus emoji for this c:<
@indigo peak lol
to springboard path lol
damn it
it still didnt work
im trying to do a more simplistic approach at replacing daemon paths
instead of just constantly hooking posix_spawn path
less system resource usage
i feel
@grave sparrow
void hook_xpc_dictionary_set_string(xpc_object_t dictionary, const char *key, const char *value) {
if (!strcmp(value, "/System/Library/CoreServices/SpringBoard.app/SpringBoard")) {
{
xpc_dictionary_set_string_orig(dictionary, key, "/var/jb/System/Library/CoreServices/SpringBoard.app/SpringBoard");
}
} else {
xpc_dictionary_set_string_orig(dictionary, key, value);
}
return;
}```
what is wrong with this
now it works but springboard is still normal
(i forgot the ! and thats why panic above)
hm
oh thats how people make icons so good, they just steal public domain art
well i did make some changes to it lol
- the color corrections
diffusion with 80% size makes it look less flat
chromatic aberration makes the edges stand out more when at a small size
etc
Yeah but I made all my icons from scratch
what do your icons look like?
i think thats a big improvement because its hd now too
if u wanna be fancy
make it so that when the toggle is disabled, theres no glow
when enabled, glow
const char *hook_xpc_dictionary_get_string(xpc_object_t dictionary, const char *key) {
const char *retval;
if (!strcmp(key, "/System/Library/CoreServices/SpringBoard.app/SpringBoard")) {
{
retval = xpc_dictionary_get_string_orig(dictionary, "/var/jb/System/Library/CoreServices/SpringBoard.app/SpringBoard");
}
} else {
retval = xpc_dictionary_get_string_orig(dictionary, key);
}
return retval;
}```
i edited and now it boots but springboard is not replace sadness
nightwind this is amazing
hmmm i see
i have made some icons on my own in the past lmao
lemme see if i can find any
fancy prefs
I wanna redo gameseagull but hideroot dev doesn’t have gamepigeon on the app
😢
ofc, all my settings pages have been fancy
youve seen my enmity plugins
game
but other than that idk what it is
Let's play 8 Ball!
iMessage games
ah i see
Let's play 8 Ball!
fr
by the way why do i need to make my pref icon so small
it looks terrible in the ui
but if i make it bigger it breaks sizing in the page
wait get ready for this
animate between them
i dont know how to do that lmao
how are you switching between them
would transitionWithView work here
I should add prefrences to my next tweak but not a preference page and just tell users to use defaults
im calling setImage on my UIImageView
you just have 1 largeTextCell which says like "USE DEFAULTS STOP BEING PICKY"
okk ill try
@cloud yacht has it been 31 hours yet
@cloud yacht has it been 31 hours yet
why did it double ping
I'm in the middle of class rn
Nah just like in the depitction tell them
doesnt work lmao am i not doing it correctly
[UIView transitionWithView:self.imageView
duration:0.5
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
[self.imageView setImage:updatedImage];
}
completion:nil];
can you even interpolate with setImage
hm
hmmmmmm
it worked with just transitionWithView lmao
i wonder if i can find a way to signal to the user that they need to respring to see changes without an obnoxious alert every time they toggle
I mean depends how crazy you want to be with forcing the user
if i force to respring altogether that kinda defeats the point of animating the icon at all
Ive seen a button on top right that says respring when you edit something that needs a respring + footer that says this setting requires a respring
because you wont get to seee it
or exit button alert (if user just closes the app they don't see the alert)
you're using MBL on a photo? kwk
@radiant idol when using keyframe to animate somthing. is it bad if i your transfrom to make it go to a certian size (in like the px thing) by using math?
what
nvm il ask in real english when i get ther
@radiant idol ik having a dif issue, why is this doing this ??
self.controlsView.headerView.artworkView.transform = CGAffineTransformMakeScale(6,6);
uh
can you not scale a view like bigger than it self?
well that probly wounldt chnage anything, just like clip the increase
its infact off in these
L then
🥲
hey y'all!
so I'm doing some kfd stuff
and I'm trying to grab the ipc_port object from an allocated port
but the address gotten from the is_table is always out of the kernel memory space
and I can't figure out why
yeah i was also thinking respring button in corner if prefs changed
but make it whatever system red is and bold ig
Make like the top bar like flash/like hover in and out red or sm color, and little text “respring needed to apply changes” or sm
The easiest and probably the best way (it seems to me) is to do as in the screenshot
PSLinkListCell
PSLinkListCell
PSLinkListCell
v
v
PSLinkListCell
PSLinkListCell
PSLinkListCell
PSLinkListCell
PSLinkListCell
guess whatd ay it is
national annoy capt day
(everyday)
fr
OI ITS CHEWSDAY INNIT BRUV
🙏
@indigo peak Reminder!
omg I’m so sorry
@graceful gate so i remember there was a user who was helping me test the app at one point and the image files (even though they existed) came up as 0kb (non existent) on their device
do you have the right file names to match your info.plist?
%hook _UIBatteryView
-(void)setShowsPercentage:(BOOL)enabled {
%orig(YES);
}
%end```
new 1.99$ tweak on havoc
Havoc in a nutshell
yes absolutely
why not lightroom & PS /s
i use ae for most of my designs surprisingly enough
i dont know
ive gotten very used to ae
i can work very fast in it
not really i have sapphire and trapcode, shine, etc
i also main AE, but, yknow, compositing software, not photo manipulation software
yeah the Red Giant suite, ofc
i use all a decent amount
true
i have no idea why i use ae
its literally just muscle memory to open it atp
heres a model i made in blender a few years back
look how much better it looks with CC (MADE IN AE)
i can be way more productive on ae i guess
:>
if you get this working lmk
animated and persistent
im really happy with how this respring button turned out
its also red but i overwrite the color so you cant tell
lmao
pog
bit redundant since the bottom respring button's still there
the one at the top is to signal to the user that they need to respring to apply changes
the respring button at the bottom is just for utility to use at any time
oh aight
linux 2
ok nice, I'll ask here when I have some questions, thanks
can someone tell me what this crash means
Do you happen to have access to the source code
Idk wtf it is
nop
They are trying to wait inside of a thread
could it be missing jit
Spinlock
A spinlock don’t really crack iOS does it
Got it to work, don’t mind the blue background I’m testing shit
Idk why it won’t animate after first one
@lyric heron ```No, the crash stack trace you provided does not suggest a spinlock issue. The crash appears to be an abort() call, and the stack trace shows a thread waiting on a condition variable, likely related to multi-threading.
Here's a breakdown of the relevant parts of the stack trace:
The thread with ID 0 (Thread 0) is waiting on a condition variable, as indicated by the functions from libsystem_kernel.dylib, libsystem_pthread.dylib, and libc++.1.dylib.
The crash seems to be occurring in the Sudachi application, specifically in functions at addresses like 0x102913120, 0x1029ef2c8, etc.
The crash may be related to UI layout, as it involves functions from UIKitCore and QuartzCore responsible for layout and rendering.
Without more context or information about the application and its codebase, it's challenging to pinpoint the exact cause of the crash. However, it seems to be related to threading and possibly synchronization issues. It might be worth checking the code around the mentioned addresses, especially in the Sudachi application, to understand the context of the crash and investigate any potential race conditions or deadlock scenarios.
If you have access to the source code, examining the sections of code related to multi-threading and synchronization would be beneficial. Additionally, reviewing any relevant crash logs or error messages leading up to this crash might provide more insights into the root cause.```
ChatGPT’s essay on it
I got animations, ppl said what got looked good 👍
Well it’s not working
After first one
I didn’t push yet
Well before you push integrate the last thing I added
@acoustic imp
Also
Don’t mind commit names
It was driving me crazy
Lol, idc
😁
Also I’ve fixed the platterView thing
We can simplify the code
And remove like 25 lines of bloat
Check animatetolarge
how did you set the color of the music player?
Did some magic
And it worked
(Exactly like I added rounded corners on iOS 14)
is it the MTMaterialView or sommething else
PLPlatterView?
Yup
My code is legit platterView.backgroundColor = settingsColor;
(It’s set to nil by default)
Looks like setting it on MTMaterialView also works
Also to support iOS 14 you’ll need a little more magic
i was thinking maybe i'd have to change the material thing but idk how that works
Same there is a backgroundColor thing
Now the real question, how does it look without your font
ill turn off flora and my font soon
did you ever get it to work inside other sandboxed apps
like calculator
Why
cuz theos broken on my wsl
did you install with trollstore
yes
no not yet
app launches and says jit enabled
so it crashes when you try to load something
yes
abort was called by thread 27
thread 27 is an instance of VkPipelineBuilder
it's just gonna be an issue the dev has to fix
@indigo peak no flora coloring, no snowboard font, no settingsrevamped
big ass switch
ill make it bigger soon
sick
should take up an entire page
both vertically and horizontally
im not a guy but sure
would this even be something i can do
without proper app injection in serotonin
I know the AppEnabler thing exists but does that enable tweak injection? if so what do i need to change
i should look at libsandy again later
i thought that was the intention
like, the entire reason why people were bootstrapping to begin with
lol
yes i linked you how to do this the other day
FYI you can tint switches too
i know i purposefully didnt tint it so that it can be tinted by flora
add a separate option for switches if you didn't already 
idk lmao
lmao it's just tinted by systemGreenColor
yeah ik
so this tweak only effects things that use the system colours, right?
nope
So if I use hsv will it change colours?
it also tints redColor, greenColor, etc aswell as dynamicXyzColor, tableXyzColor, externalXyzColor, etc
basically as many relevant colors from UIColor as possible
oh so if I make my own colour, its not effected?
nope
hows it know when to replace it?
it swizzles all the named color methods lol https://github.com/acquitelol/flora/blob/main/Tweak/Flora.x
your colors would be custom using [UIColor red:abc blue:def green:ghi alpha:jkl]
which means the code doesnt swizzle it
well [UIColor colorWithHue: (battery * .333) saturation: 1 brightness: 1 alpha: 1.00]; so if I make my own colour its not effected then
ok
well you could easily define it
but probably better not to
would look silly if eliza just cnaged colour at some super specifc colour value
in theory i can swizzle the original UIColor and do my hsv parsing of it where i replace the hue and increment the saturation and brightness
because the way i want to do it doesnt involve just replacing the color altogether
i want to manipulate it to be the same as the original color but with a new hue that the user defines
manipulation :/
isn't that just that one accessiblity feature?
yes
you would be able to define your own two primary and secondary colors and the saturation and brightness of the new color is influenced by the color you define
itll alternate between primary and secondary
it should divide the saturation by 20 to get a value from 1 to 5, it should try to add the new saturation to the existing saturation and if it ends up at > 100 it subtracts the new saturation instead
same for brightness
i can mess with this later i guess
it installs the app via TS then fucks up uicache
sommehow
i'm not sure how it works
oh so THATS why it takes so long on Applying........
yes lol it moves the original .app to .appbackup then reinstalls it w ct signing
then uicache is redirected to the patched .app
that makes more sense i just thought it was a really bad application process
Objective C is cursed part 99999
Tweak.xm:204:37: error: expression is not assignable
204 | adjunctItemView.sizeToMimic.height += 300;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
Tweak.xm:212:37: error: property 'size' not found on object of type 'UIView *'
212 | platterView.backgroundMaterialView.size.height = 160;
| ^
Tweak.xm:213:37: error: property 'origin' not found on object of type 'UIView *'
213 | platterView.backgroundMaterialView.origin.y = 160;
| ^
Tweak.xm:220:25: error: expression is not assignable
220 | self.frame.size.height = 160 + playeradjustwy;
| ~~~~~~~~~~~~~~~~~~~~~~ ^
Tweak.xm:230:37: error: expression is not assignable
230 | thatfrucstakview.frame.size.height = 218 + playeradjustwy;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
Tweak.xm:232:49: error: expression is not assignable
232 | self.controlsView.headerView.frame.size.height += playeradjustwy;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
yea you can only do that in Swift
(ik why, thanks stackoverflow)
you need to copy and re-assign the whole structure
and java too ig
Thanks stackoverflow
ok @indigo peak riddle me this
in Safari the text color is themed with flora but other things like the navigation arent, see how the text is tinted pink (i manually changed the text colors to more pink)
does safari have its own dedicated webkit colors actually
it might
and even if it does that still would make no sense because why is safari themed and calculator isnt
sooo the buttons are manually tinted blue?
is this just flex
yes
The real question is what are they set with?
oh
Do they just grab the system colour and set it?
theyre a property you can probably just _backgroundColor
yea i know but i kinda forgot flex can visualize colors lol
yea exactly
So it should be themed
i theme that and it does nothing
Sorry, I'm new to iOS Developemnt. Is is possible to call dlopen before/during runtime with a dylib on an app through another app? With JIT / entitlements
for the record before you ask
i dont compile for roothide
i compile for rootless and convert to roothide with patcher
because if i compile for roothide none of my swizzles work
roothide
nah
[[nexus]]
nvm not anymore
did gir just leave me on read
fiore did you figure out how to install libgcuniversal yet
no lol
not for roothide
for rootless and rootful yeah sure
you can say roothide here in #development
kwk
and other words i think too, just cause of dev talk though unfortunately
you dont install for roothide you just install altogether
just run install.sh
husk
it got unfiltered
wow pog why
idk you probably have some prefs set from before and your EXMColorPickerCell broke something
reset preferences
either that or its another tweak
Based off this, it already is #development message
what does this mean
yessir
🧽
Bro are you failing English classes now?
can we fix the arch separation now?
^^^
I still don’t see how you properly avoid an arch split in the context of RootHide
we've discussed this for months
I have everything laid out in my head
And Dopamine 2.0 is going to drop the hardcoded /var/jb for non bootstrap packages no matter what
problem is:
- rootless v2 is still not out (this is still an issue)
- how do you prevent installation of 100% incompatible tweaks (tweaks that don’t use rootless v2 with RootHide)
not your problem no one adopted it to begin with
who are you referring to
they want all of 15+ to use iphoneos-arm64
RootHide becomes iphoneos-arm64, devs can support it and rootless with the same package
(Only for external packages)
It doesn't have to be adopted
This is just to make it less painful for package developers
RootHide and Procursus would just be different bootstraps with the same arch
opa i had a question
is roothide actually a good idea compared to rootless
like, putting jbroot in the applications container
Nothing, they work on both
You have a library that handles getting the root path, the jailbreak provides that library and everything using that library can install on both
thing is rootless uses hardcoded /var/jb and roothide uses none of that
- jailbreaks that don't have the library can still be supported by falling back to /var/jb
i know that regular apps like banking apps cant get access to the applications directory because theyre sandboxed but is there any other benefits than that?
the only problem is there will be a transitional period where packages that don't use the library yet won't work on iphoneos-arm64 roothide
can I just honestly ask: how are developers going to be motivated to update to your rootless v2 thing
they just have to recompile if they're using the theos rootless macros (which they should)
keep in mind that it is still not released
we just nicely ask them
I agree with that but at the same token this community will not do that
ok but then what
tbh needing to reinstall theos for roothide is a terrible idea
some package is non functional on roothide
I think a proper guarantee that this is the LAST time we'll have to recompile would get most devs to update
ive hated that from the start
it's the same thing that's currently happening
reinstall?
you just gotta update it
RH has had a custom Theos
if the dev doesn't build for roothide, it doesn't work on root-hide
ok let me rephrase this: what’s the motivation to update theos if the current setup works fine
as in you need to run the theos installer from roothide instead of theos themselves
ah I see
well it has a patcher
in my proposal that won't be needed
shit patcher
no actually, it is a pretty good patcher
does it.. no longer have a custom theos? for the new package scheme? are they finally becoming sane?
we don't have the sources to it
....
isnt it just a fork of haxi0's derootifier but with more thingies lmao
it looks very similar design wise
to support RootHide 😂
only the UI is the same
skidding™️
it’ll probably be OSS’d
I hope so
plus if you're on a build that supports rootless, updating won't be hard
none of the internals are the same at all
ok i see
have they fixed the fact that the credits button does nothing yet
How did you get access to it ?
ok, and what happens if we ditch /var/jb (whether desired or forced by other changes)
I asked tuancc, I needed it as a reference for a project I'm making
/var soon signed 
@naive kraken you're better off making a white paper at this point 
the problem I see is that it would’ve made sense if it wasn’t be layered onto an existing thing
Oops I leaked an iOS 18 security feature
also something important to note: this is just for external packages, the bootstrap can still hardcode the root path if it wants (like Procursus does with /var/jb)
i feel like they will slack with ios 18 innovations in security
even ignoring this I don’t see how RootHide could have adopted this without the API already existing
/var signed™️
as an additional upside of this, we will never have to change anything again even if /var/jb becomes unviable
idk bro they could've instead worked on helping implement it instead of making a whole ass new arch
I begged tuan to just let me make this API for months
he declined
They are straight up lying in their tweets 🤷♂️
tbf they probably wanted a fast solution
this could have been solved in a couple of days
in fact, it will be
give me a week and it's done
thats what i was thinking yea
plus you still have the problem of packages that haven’t been updated yet for it
how's that an issue
it makes the experience worse for an end user
that's merely a period of like a month where people will have figured out after
FYI: the patcher is open source but only the DynamicPatches part isnt:
https://github.com/roothide/RootHidePatcher/tree
cc: @slim bramble
doesnt that just become less of an issue over time
it will be a bit of an annoyance at first, but it will clear up quickly
you’re assuming people will update everything in a month when even with rootless that didn’t happen
oh didn't know
yeah but that's because some devs are lazy, can't do anything about that
you can still use their tweaks on Dopamine if you really want them
and now some devs have left
then no roothide support for those packages
ive never actually had to use that, what kind of tweak needs it? rootful usually works with the simple tweak mode, rootless works with the.. well.. rootless compat layer
wouldn't have happened in the first place
they have to use the patcher for those packages*
things like Filza
again, my point comes back to the end user
how so
ah i see
you're missing the point
you can still do that though with v2
roothide support for those packages wouldn't happen in the first place
yes
yeah the patcher can just be changed and made into iphoneos-arm64
sounds decent enough ig
the end user will be informed about this change and that it's good for them
What I'm saying is, for stuff that was already adapted to RootHide, it will take at maximum a month to work on new RootHide
anything else doesn't matter
it will be installable yes, but it just won't function
binaries won't start, dylibs won't load
this is gonna be like rootful and rootless again where we say it’s good and then people will whine that rootful (or in this case, legacy RootHide) is better for like 6 months
I highly doubt it
this is not comparable
I honestly don't see any people actually liking iphoneos-arm64e currently
maybe on less of a scale, sure, but still
it's bad
honest question: has this been checked before
that doesn't have to be checked
linking will just not work
if my binary links /var/jb/whatever and /var/jb doesn't exist it's not going to run
so there will need to be some flag to indicate that it's supported or not supported
I guess my questions are:
- will it try to create /var/jb
- if it doesn’t, will everything then be handled sanely
such as an extra dpkg field
but how do you add that flag retroactively
all iphoneos-arm64 jailbreaks will have /var/jb
I’m referring to RootHide here
just roothide will have it inside the randomized folder that it uses as it's dpkg root
Is roothide really mandatory or we can get regular rootless jbs on 16+ ?
so for roothide it will be /var/jbroot-<UUID>/var/jb and it will point to /var/jbroot-<UUID>
it was never mandatory
not even close
nothing is mandatory it's just for making the jb undetectable
Then why tf does it exists ?
for making the jb undetectable
you don't because nothing that has iphoneos-arm64 arch supports roothide
you’re missing the context
opa wants to get it to switch to that arch
iphoneos-arm64e packages can be trivially converted to an iphoneos-arm64 package with the flag
because they are designed to take just about any root path
the context is existing iphoneos-arm64 packages on RootHide
I'm thinking if there is a way to prevent installation of old unsupported packages on RootHide iphoneos-arm64
but tbh I don't know
Don't allow installation if the flag is not present
it won't work anyways
But again I don't think this is a neccessity
anything that has a binary postinst will likely fail to install
anything else will install but not work
even if they dont, the tweaks will still work on rootless
at least if it links something that some other package provided
so probably not even that is a concern
yes
make roothide dpkg require a certain control field to be present
but then we'd had to add that control field to everything in theos
is that a problem
that would allow for another feature: not supporting RootHide if it’s undesired
rootless v2 is already going to need changes in theos anyways
to be honest @opal ridge has actually proposed a reasonable solution to the issue
we could just have a flag for whether it uses the rootless-v2 api or not
then RootHide could check it but Dopamine doesn't need to
Question, how will this work with shell scripts?
what about checking the directory structure of the deb?
won't change
roothide shell scripts acts as if /var/jbroot is mounted on /
yeah that's a problem
ah
that sounds like a bit of a hack
no that has to be done either way
to support the iphoneos-arm64 package structure
(which we cannot change)
wait doesn't new abi break compatibility with iOS older than 13.0 or whatever? Does this mean I'll still need some kind of double package setup to support older iOS's if we merge the old arch
we do not merge the old arch
we merge iphoneos-arm64 and iphoneos-arm64e
and this has nothing to do with arm64e
arm64e is roothide, arm64 is rootless
:/
Take a flamethrower and burn it all down 
ok we have figured it all out
oh wait what is iphoneos-arm64e?
roothide
roothide
RootHide package arch
oooh
yes, actually rh requires two apis, jbroot and rootfs, since it both separates access to the jailbroken file system and the original file system, if opa's v2 only provides one, it can't solve the compatibility problem
usually tweak/jailbroken apps only require one api, but if they need to interact with bootstrap, then another API may be needed, and the access to the original file system in the shell is also different, adding /var/jb to jbroot does not guarantee compatibility
this is not an issue.
can we symlink/mount the real root into the jbroot?
that would allow shellscripts to access real root if they need to
external packages will have / as rootfs
and the jailbreak root they get from the API as jbroot
this is why I didn't use the merged package at the beginning. It's not that I didn't want to, it was just that it was really difficult
but in rh / is the jbroot, /rootfs/ is the rootfs
in fact, most current external roothide packages already uses / as the rootfs
i believe
and just call jbroot(something) to access the jbroot
yeah this is how it should be done
I like this idea
what the bootstrap does doesn't matter
it can have whatever the fuck as /
that's fine
already done in rootless-compat
Ah, I see
/ is not the point, /rootfs/ is
No
that's only done for the scheme4 (or something) stuff you did to make the bootstrap work
which again, is fine and doesn't need any changes as the jailbreak ships the bootstrap and the repo
rootless v2 basically does not apply to bootstrap packages
all of what we're discussing only affects third party packages
and for those, the scheme4 patches do not apply
what the jailbreak gives them as root path is the jbroot path
and / is rootfs
the only thing that changes on the bootstrap side is an arch switch to iphoneos-arm64
that’s it
not just about bootstrap packages, tweaks/jailbroken apps usually also need to interact with bootstrap, such as installation scripts, shell scripts, and calling the command line tools of bootstrap
also where are jailbroken tweaks and whatever supposed to store data (when not using defaults). Is it in JB Root? If so how do they access that?
calling command line tools is not an issue, you know what the jb root is
wouldn't a rootfs() api fixes that
I’m guessing this for connecting to the jbroot?
scripts are tricky yes
he means passing arguments to tools which has their own understanding of paths
smh
by using the rootless v2 api?
using the api, just like rootless macros.
the fix is possible on rootless


