#development

1 messages Ā· Page 40 of 1

next wadi
#

not on asahi

ocean raptor
#

No

#

Use kabirs

#

He has scripts to make it

#

If he doesn't have arm already

#

Arm is there

primal perch
#

uh technically its not arm but armv8 or arm64

ocean raptor
primal perch
#

arm refers to a family of 32 bit processors

#

šŸ¤“

#

capt explaining why armv8 is nectar of the gods yet armv7 sucks

nimble parcel
#

just keep in mind that this toolchain requires the orion branch of Theos

gentle grove
#

thank you iterm

#

i resized my terminal

next wadi
#

bro im dumb as shit today oh my god

ocean raptor
nimble parcel
#

eta son

ocean raptor
next wadi
#

it would download it and untar it with the install script

next wadi
#

ty trol

nimble parcel
#

just keep in mind that there’s some extra configuration required

#

use iphone/bin/swiftc and pass -resource-dir iphone/lib/swift

#

also avoid using swiftc -frontend, you should always use the driver instead and pass all Swift files at once (use an output-file-map for inputs and outputs). Feel free to use instance/rules.mk and swift-support as inspiration.

tepid olive
#

anyone know how to grow a apfs dmg in the terminal on macos

vivid dew
primal perch
#

🧢

vivid dew
primal perch
#

boobs

vivid dew
#

uhh... stop sexualizing women?

primal perch
vivid dew
#

its 2023?

primal perch
vivid dew
#

ncam

primal perch
#

ncam

tepid olive
primal perch
#

the kernel panic one gets me

snow python
ocean raptor
#

aarch64

gentle grove
#

vtuber

cloud yacht
# next wadi not on asahi

ok but if that doesn't work just use like qemu or parallels or whatever you use on macos to just make a AMD64 Linux vm. It doesn't need many resources, a GUI is not even needed

next wadi
#

@cloud yacht @marble perch hmm

#

what do yall think of this

#

this is a way more linux friendly approach imo

cloud yacht
#

Yeah but also maybe an env barivlr for additional places to look

#

So we can tell it to look in theos's sdk's, etc

lime pivot
next wadi
glacial matrix
#

Don’t they check the return value of a script (postinst?) to do nothing, respring or reboot?
(It wasn’t clear in the chat at that moment if that was explained)

glacial matrix
#

Oof

ocean snow
#

Hi guys, how do i fake a http response to a request made by an iOS app. So the scenario is that i have an app that http GETs a json file from game server, but i want to redirect that request to my own custom server(and hence replace the json file). So far i've tried using a proxy server(squid)+squidwall redirect, it does redirect http requests made in ios browsers, but still not from within the app for some reason. Any ideas?

#

is there a jailbreak app that does this?

topaz yew
#

Does ellekit work on x86_64? @tepid olive?

slate echo
#

Hi when I try to install frida I get the following error:
Symbol not found: _objc_claimAutoreleasedReturnValue
Referenced from: /usr/bin/launchctl
Expected in: /usr/lib/libobjc.A.dylib

Anyone had the similar issue ?

glacial matrix
#

Ah yes

slate echo
faint stag
tepid olive
#

the rest yes

blazing vault
topaz yew
next wadi
glacial matrix
#

Everyone replying now but not two days ago?

ocean raptor
#
  1. They install a dpkg trigger for /usr/lib/TweakInject (or whatever substrate uses) and if a file in there is modified, then it will respring
  2. They pass another file descriptor to all maint scripts under the variable $CYDIA that you can send custom strings to for different actions
ocean raptor
#

finish:return - nothing
finish:reopen - reopen cydia/zebra/sileo
finish:restart - respring
finish:reload - sbreload
finish:reboot - ldrestart(?)

#

So in your postinst/preinst/postrm/prerm run echo "finish:restart > &$CYDIA

ocean raptor
restive ether
#

need finish:userspacereboot

ocean raptor
restive ether
#

but how do you check that consistently

ocean raptor
restive ether
#

real

restive ether
#

does that work in dash

ocean raptor
ocean raptor
#

On another note: I will never forgive saurik for making extrainst_

restive ether
#

i dare you to remove the patch

ocean raptor
#

I don't understand the point of this line @lime pivot

# Cydia control fd version != 1: bail out
[[ ${cydia[1]} -eq 1 ]] || return
steady nest
#

cydia2 confirmed

ocean raptor
#
#!/bin/sh
## Acceptable parameters for finish
# return - normal behaviour (return to cydia)
# reopen - exit cydia
# restart - reload springboard
# reload - reload springboard
# reboot - reboot device
##
# Historically, 'restart' restarted springboard but did not reload the launchdaemon.
# (reload was used for this purpose.) Now, restart and reload are equivalent.
finish() {
    f="${1}"

    # No control fd: bail out
    [ "${f}" = "" ] ||  [ "${CYDIA}" = "" ] && return
    
    fd="$(echo "${CYDIA}" | cut -d' ' -f1)"
    ver="$(echo "${CYDIA}" | cut -d' ' -f2)"

    # Cydia control fd version != 1: bail out
    [ "${ver}" -ge 1 ] || return

    echo "finish:${f}" >&"${fd}"
}
#

@restive ether @lime pivot POSIX shell version

vivid dew
#

how to trim newlines in only 350 lines of posix sh [easy]

topaz yew
#

@tepid olive hey know what this is? (im trying to do a C Hook)

#

oh my this discord update is awful

wind ravine
#

how do i make a grid with user-resizable/reorganizable elements?

#

google and chatgpt dont even know how to do it

restive ether
#

i think that’s it

tepid olive
#

there’s a profile as well

#

you need to unredact logs

ocean raptor
# ocean raptor ```sh #!/bin/sh ## Acceptable parameters for finish # return - normal behaviour ...
#include <sys/uio.h> /* writev */

#include <stdlib.h> /* getenv, strtol */
#include <string.h> /* strlen */

int
cydiafinish(char *action)
{
    int fd, ver, err;
    fd = ver = err = 0;
    char *endptr = NULL;
    const char *cydia = NULL;

    int iovcnt = 2;
    struct iovec iov[2];

    if ((cydia = getenv("CYDIA")) == NULL)
        return 1;

    fd = strtol(cydia, &endptr, 0);
    if (endptr == cydia)
        return 2;

    ver = strtol(endptr, NULL, 0);
    if (ver < 1)
        return 3;

    iov[0].iov_base = "finish:";
    iov[0].iov_len = 7;
    iov[1].iov_base = action;
    iov[1].iov_len = strlen(action);
    err = writev(fd, iov, iovcnt);
    if (err == -1)
        return 4;

    return 0;
}
#

C version

#

@lime pivot add these to your wiki

topaz yew
topaz yew
restive ether
#

it’s in the replies

topaz yew
#

thumbsUp thanks

lime pivot
#

add it yourself

ocean raptor
#

iPhone wiki all over again smh

lime pivot
#

our wiki

restive ether
#

weird lookin dog

ocean raptor
lime pivot
primal perch
#

live oreo reaction

ocean raptor
ocean raptor
#

Also, add a note on the rootless page that locales don't work

lime pivot
ocean raptor
#

I'm fine just asking you to make changes for me

next wadi
#

@marble perch @timid furnace @cloud yacht can i have some opinions please hmm

timid furnace
#

if you wanna do it that way copy pyinstaller

next wadi
#

this is a valid point, but at the same time for most purposes LuzGen will handle the build files

#

besides, its meant to be totally portable without having to change the build file at all

timid furnace
hasty ruin
#

use a csv file for configs

timid furnace
#

basically just have people make an instance of your Meta class in your config file and just import it

hasty ruin
#

thats what the c stands for

next wadi
#

i'll try this

timid furnace
#

idk if pyinstaller hardcodes the variable names or if it does some shenanigans with importing those specific classes but that's up to you

primal perch
hasty ruin
lime pivot
#

you stand for cunt

hasty ruin
#

oh

primal perch
#

fr

hasty ruin
#

@primal perch

#

search zelda

#

in tenor gifs

primal perch
#

lmfao

#

least horny tenor user

hasty ruin
#

fr

primal perch
#

james cabello

hasty ruin
#

i dont think i wanna do any more research than this

primal perch
gentle grove
next wadi
#
from luz.parser import Control, Meta, Module

meta = Meta()

control = Control(
    id="com.jaidan.trolleytool",
    name="TrolleyTool",
    version="1.0.0",
    maintainer="Jaidan",
    architecture="iphoneos-arm64",
)

modules = [
    Module(files="Sources/Tool.m"),
]```
#

rate

#

@timid furnace @marble perch

next wadi
#

true!

#

@marble perch stupid question maybe but a Control doesnt need to have Name does it? i feel like i remember that it can do fine with just Package

#

like obviously Name is recommended

#

but is it needed

#

it does already funwaaaaa

#

ok gotcha

#

u too

cloud yacht
next wadi
#

definitely easier than Makefile i think

hasty ruin
#

shit wrong chat

cloud yacht
#

True. If it's autogenerated for the most part, that's good too

timid furnace
#

Otherwise great

next wadi
ocean raptor
#

@next wadi how about md5sums

next wadi
cloud yacht
#

Are thoes applicable for the deb file or just the Packages file?

next wadi
#
Version: 1.0.0
Maintainer: Jaidan
Author: Jaidan
Architecture: iphoneos-arm64
Essential: no```
#

LFG baby i got that DAWG in me

cloud yacht
#

Like the sums

next wadi
#

OHH i thought you meant theos

#

troll

#

i have No Idea!

cloud yacht
#

in my system, just the Packages has the sums

next wadi
#

btw if you couldnt tell this is gonna speed up build time

#

like a lot

cloud yacht
#

So theos doesn't add them

#

Thats cool I still can't build whatsoever

next wadi
#

i know

#

thats added after compilation

cloud yacht
#

Essential: yes troll

next wadi
cloud yacht
#

Why does theos use a package's name instead of bundle id for the dylib file name? Everything else seems to use bundle id's, and this method seems like a great way to create conflicts.

lone stump
#

can someone link 15.6 rc

lime pivot
primal perch
#

wtf

#

ipsw beta is blocked?

lime pivot
ocean raptor
lime pivot
#

I’ll update it when I’m back home if you haven’t beat me to it

ocean raptor
#

I'll add it tomorrow

lime pivot
#

ok ty

ocean raptor
#

I wasn't at my computer when I sent those messages trol

wind ravine
#

im having a stroke trying to figure out fonts

primal perch
glacial matrix
ocean snow
#

Hi, there is a ios game that makes http requests to a server, i could catch it using wireshark(wired connected to the ipad), but i've tried several proxies such as mitmproxy, proxyman but couldn't catch this http request? any ideas

#

in additional, i'm not even sure if that was actually a 'http request' in the general sense

next wadi
#

@glacial matrix @marble perch @cloud yacht LFG funwaaaaa

#

config used to build:

from luz.config import Control, Meta, Module

control = Control(
    architecture="all",
    maintainer="Jaidan",
    description="Modern fetch utility. Made with Swift.",
    id="com.jaidan.info",
    name="Info",
    version="1.0.0"
)

meta = Meta(
    rootless=False,
    platform="macosx",
    archs=["arm64"]
)

modules = [
    Module(
        name="dinfo",
        type="tool",
        files=[
            "Sources/*.swift",
            "Sources/modules/*.swift",
        ],
        frameworks=[
            "Foundation",
            "CoreFoundation"
        ],
        install_dir="/usr/local/bin"
    )
]

zenith hatch
#

make sure you open source these test projects

#

trol

next wadi
#

true

#

i will

next wadi
primal perch
#

now get m2

#

rn

wind ravine
#

why is importingFontURL still nil when i show the sheet even though i change it to the url?

gentle grove
#

why is importingFontURL still nil when i show the sheet even though i change it to the url?

wind ravine
gentle grove
#

initWithEnableFan:enableAirConditioner:enableClimateControl:enableAutoMode:airCirculationMode:fanSpeedIndex:fanSpeedPercentage:relativeFanSpeedSetting:temperature:relativeTemperatureSetting:climateZone:

#

you're supposed to use snake case

next wadi
#

luz used a mismatch of camel case and snake case in its code

blazing vault
#

hello furries

next wadi
#

cuz im dumb

#

šŸšŽ

nimble parcel
sour ruin
#

Hey I've got this for my switch toggle code and when you click the switch it print on successfully, but I would like it to use a conditional statement so it has different outputs depending on the switches state, how would I do this?

primal perch
#

@zenith hatch

zenith hatch
#

gm

#

why is his code indents bad

#

ctrl i that shit

zenith hatch
# sour ruin

use an if statement in the viewbuilder if you want to change your ui entirely or change your sf symbol with ternary conditionals or whatever the fuck its called

#

ill give 2 examples hold up

fathom snow
zenith hatch
#

auto indents

#
struct cock: View {
    @State var toggle: Bool = false
    
    var body: some View {
        Form {
            Toggle(isOn: $toggle) {
                Text("Gay Porn")
            }
            
            Section("changing ui entirely") {
                if toggle {
                    let url = URL(string: "https://cdn.discordapp.com/emojis/1003207290574348428.gif?size=240&quality=lossless")!
                    AsyncImage(url: url) {
                        $0
                            .resizable()
                            .aspectRatio(contentMode: .fit)
                            
                    } placeholder: {
                        ProgressView()
                    }
                } else {
                    Text("Feel that? That's true...")
                }
            }
            
            Section("ternary operator or something") {
                Text(toggle ? "gn" : "gm")
            }
        }
    }
}```
fathom snow
#

that’s by far the best example you could’ve given

zenith hatch
#

yw

primal perch
#

fr

#

GORN

#

GAY PORN

zenith hatch
glacial matrix
primal perch
#

gorn

#

pop gorn

#

new register naming convention

#

ayo

glacial matrix
#

torn, horn, worn

bold forge
#

i just tried to make a repo for themes and whenever i try to add it to sileo no packages appear inside of it

#

are there any common mistakes people make?

restive ether
ocean raptor
restive ether
#

so true…

ocean raptor
#

Why do we have 3 config files per dist? I have no idea

restive ether
#

ask the man himself

ocean raptor
#

I could

#

But on the other hand I used to know I just forgot, if I looked at it again I would be able to figure it out

bold forge
#

where do you guys learn how to do all of this?

#

is it just something that makes sense once you learn certain skills?

faint stag
zenith hatch
pearl sail
#

Shut your dyslexic nerd ass up

zenith hatch
#

agreed

dreamy mason
dreamy mason
lime pivot
ocean raptor
#

He deserves it

primal perch
tepid olive
#

true

hasty ruin
turbid fjord
cloud yacht
#

Tbh I attempted to figure out how procursus's layout works and even I don't know how package managers find the Packages file

cloud yacht
#

Yeah but how would sileo of whatever find out what those values are just from the url?

ocean raptor
#

From the sources file

#

It's literally talked about at the top of that page

cloud yacht
#

Yeah but In package manager I just give the url, not any of the other stuff. How does the package manager infer the stuff to add to the sources file?

ocean raptor
#

So it just assumes ./ as the dist

restive ether
faint stag
cloud yacht
#

Oh that makes sense. Thanks

gentle grove
lime pivot
primal perch
#

fr

ocean raptor
#

you with #include

#

I'm gonna PR a change to llvm to fix it

primal perch
gentle grove
#

so only c and c++? trol

hasty ruin
cloud yacht
#

Is asm really a derivative of c

steady nest
#

is

hexed knot
#

this dude

timid furnace
#

did you figure this out

tepid olive
#

i’m jealous of developers who try things thinking they might work on ios

#

nothing ever works at least i know that trol

timid furnace
#

ffs i don't even have perms to recreate the folder

#

rip

gentle grove
cloud yacht
#

capt was saying it was

snow python
#

Why are you the way you are

gentle grove
ocean raptor
#

@native dune stop you procursus update cronjob

#

I NEED TO PULL FILES

#

@native dune PLEASE

native dune
#

I'll try hold on

#

@ocean raptor ok I stopped it

#

was it too late

ocean raptor
#

THANK YOU

ocean raptor
#

THANK YOU SO MUCH

native dune
#

np

ocean raptor
#

accidentally deleted 355 debs

native dune
#

how does that happen 😭😭

ocean raptor
#

I pressed enter instead of tab

native dune
#

oh

hasty ruin
ocean raptor
#

when trying to tab complete to rm -r pool/main/big_sur/ to rm -r pool/main/big_sur/gzip

native dune
#

one time I hit ; instead of /

#

(it did not go well)

ocean raptor
#

thank you so much

#

I'll let you know when I finish downloading the debs

#

I gotta figure out why my backup isn't working woeis

#

I have a backup set to run and take a zfs snapshot everytime there is an update on my NAS

#

but it hasn't updated since december androidskull

native dune
#

lmao

#

maybe a system update broke it

ocean raptor
#

it's freenas

#

an old version of freenas

#

I haven't bothered to update it

#

@native dune ok, you can resume your mirror, I was able to restore all the files

#

thank you so much

native dune
#

no problem

gentle grove
#

little do you know nebula embedded nebuvirus in all of the debs

unkempt raft
timid furnace
unkempt raft
#

you have to look into processes that have both executable stored on system and don't have a container

#

because I did find one process, I could remove specified folders owned by root, but only in its own container

timid furnace
#

arbitrary folders?

unkempt raft
timid furnace
#

hm

#

don't have a container
isn't this basically just most daemons

timid furnace
#

i'm confused then

#

doesn't that give you tons of options to choose from

#

unless if i'm misunderstanding the first criteria

unkempt raft
#

the daemon i found was locationd, inside /usr/libexec/

#

but as I described above it has limitations

primal perch
timid furnace
#

was there just a function that deleted a hardcoded directory and you replaced the path?

timid furnace
#

oh

#

i thought it would be something more complex, rip

tepid olive
#

there are better ways to do this

timid furnace
unkempt raft
tepid olive
#

ok

blazing vault
#

os_variant_has_internal_diagnostics("com.apple.siri.actions")

#

is there a way to fake that you have an internal build of voice shortcuts

#

with macdirtycow

#

idk anything about os_* functions

tepid olive
#

there is a lot of code that helps you do that online

pearl sail
blazing vault
#

where

tepid olive
peak quartz
#

guys im developing and app and in my app i have NSTask that is running a command in bash [task setLaunchPath:@"/bin/sh"]; ONLY in taurine its crashing, saying "launch path inaccessible" does someone know wtf is going on?

snow python
#

You should check and make sure that path exists and is accessible within the application, it appears it’s not. You should also ask yourself if what you are doing by running a bash script can be accomplished by calling the relevant apis programmatically

peak quartz
#

running the command manually via ssh of course works, so nothing wrong with the command itself

#

maybe theres a sandbox fix for taurine? never touched this jailbreak in my life

restive ether
#

probably sandbox stuff

peak quartz
restive ether
#

idk what you’re running this for but /bin/sh isn’t bash on taurine either

peak quartz
#

all of these bins exists in the bin directory, and run just fine via ssh

#

just not from my app

#

every single fucking time need to deal with stuff from taurine

#

what a shit tool

restive ether
#

i don’t think ensuring you can’t arbitrarily launch things from an app makes it bad..

#

that’s just respecting sandboxing

tepid olive
#

add entitlements

#

taurine actually tightens the sandbox properly

restive ether
#

u0 running on easy mode

peak quartz
#

well easy mode sounds the right mode for jailbreak

tepid olive
#

as always

#

no it doesn’t

#

easy mode is how you like to develop

restive ether
#

insane mentality

tepid olive
#

learn to do it right ig

peak quartz
#

anyways i got the right entitlements and now its working

tepid olive
#

see it’s not that hard appleyawn

peak quartz
#

i hate those differences between tools

#

no standards, its a mad whore house

#

what will be the best way to run uicache in all jailbreak tools after installation in my postinst @tepid olive ?

#

this is different between them all as well

primal perch
restive ether
peak quartz
#

then what is it?

restive ether
#

either -a or -p

#

-p will be faster on both

#

-a will be faster in just taurine

peak quartz
restive ether
#

you need to specify path

peak quartz
restive ether
#

dog -p literally means path

peak quartz
#

wait it also says that on taurine my bad

#

what about xina? it will be the same there?

restive ether
#

i don’t think you should need to even specify uicache in a postinst but i don’t know how cydia works

#

sileo and zebra shouldn’t need it

restive ether
#

it probably doesn’t

#

unless he replaced the binary with his own, because it’s all broken

snow python
restive ether
#

ideally your package manager would auto trigger uicache

snow python
#

^

peak quartz
#

yeah cydia does not afaik

restive ether
#

no idea if cydia has interest triggers though

#

it might

snow python
#

It does

restive ether
#

they probably don’t work in rootless

faint stag
restive ether
#

i don’t know if those were ever prefixed in sileo or zebra

faint stag
#

wouldn't the right thing to do is resolve and search $PATH when dealing with binaries

#

cause there's zero reason for that to not be set

#

i mean yea certain things are expected in /bin /usr/bin with a prefix if there
but i'd expect someone to mess that up somewhere

gentle grove
#

/fin

faint stag
#

checkm8 weirdos could just run from a binpack or something

peak quartz
#

lol

faint stag
#

i actually did encounter someone who was avoiding bootstrapping at all costs due to jb detection

restive ether
#

hooks are a bigger issue overall

primal perch
faint stag
restive ether
#

u0 jailbreak type beat

#

checkra1n moment

faint stag
#

sandbox nuke before boot

#

amazing

#

thankfully u0 rootless will never exist

restive ether
#

that’s what they want you to think

faint stag
#

a jailbreak worse than xina

restive ether
faint stag
restive ether
#

you would think it’s necessary

#

but history has proven some think otherwise

faint stag
#

let's not talk about setuid

restive ether
#

rest in piss

faint stag
#

and wait, where's my kern r/w

#

oh it died on 14.6

restive ether
#

it’s ok we have posix spawn dog

#

everyone loves posix spawn

faint stag
#

gotta be my favorite syscall

faint stag
timid furnace
#

@unkempt raft @wind ravine um

#

why can't you just rebuild icon cache normally???

wind ravine
#

because mdc cant access it

#

its owned by root

timid furnace
#

mf you don't even need MDC

unkempt raft
#

It’s a private api

timid furnace
#

no

wind ravine
#

wdym

faint stag
timid furnace
#

ignore the naming this was originally xpc sample code from google
also it's objective c because i have no clue how to work around the unavailability attribute in swift

    NSXPCInterface *myCookieInterface =
        [NSXPCInterface interfaceWithProtocol:
            @protocol(ISIconCacheServiceProtocol)];
    
    NSXPCConnection* myConnection = [NSXPCConnection alloc];
    id result = [(id) myConnection initWithMachServiceName:@"com.apple.iconservices" options:0];
    NSLog(@"Connection: %@", myConnection);
    NSLog(@"Result: %@", result);

    myConnection.remoteObjectInterface = myCookieInterface;
    [myConnection resume];
    [[myConnection remoteObjectProxy] clearCachedItemsForBundeID:nil reply:^(bool a, NSError* b){
        NSLog(@"Successfully responded (%d, %@)", a, b ? b : @"(null)");
        
    }];
unkempt raft
#

Can you access xpc services from sandbox though?

#

And connect to them

timid furnace
unkempt raft
#

And send messages

timid furnace
#

this works without MDC

unkempt raft
#

Real

timid furnace
#

this is an accessible XPC service

timid furnace
#

nice the stocks app died

timid furnace
unkempt raft
#

I just had no idea you could connect to xpc services and do such stuff on stock iOS lol

#

Thanks again

topaz yew
#

ellekits nice

topaz yew
#

uh

#

i found that myself lol

#

btw u know the function that triggers the display of expose

#

or anyone..

#

āœ…

topaz yew
#

@grave sparrow how could i find all the swift classes in a process?

#

searching through these dumped headers is.. a pain

topaz yew
#

thats interesting, flex has a mac version?

#

ah

hardy sail
#

This is a question for tweak devs, how did you learn how to make tweaks and what docs did you use?

topaz yew
#

phew uh

#

looking at others code helped alot, as far as docs apple

hardy sail
#

Like swift docs?

topaz yew
#

apple's usually suffice for what your trying to do

hardy sail
#

Do you have a link?

topaz yew
#

you can search for lots of classes and functions etc here

#

for tweak dev, i read theos docs

#

yup cant forget this!

#

welp looks like im in for a long night disassembling the dock binary..

#

yup i found that out a longgg time ago

#

dear god

#

wait

#

you said hopper or IDA?

#

no

#

i wanna use IDA but uh

#

šŸ˜„

#

does IDA even run on the M1

#

what version do you have

faint timber
#

this is why you use binja

topaz yew
timid furnace
#

i mean

#

if you're reversing macOS binaries, you could just use IDA Free

ocean raptor
#

Stfu

#

Ghidra is great

topaz yew
#

binary ninja feels pretty good

#

and its not junk this time!

#

wait.. maybe it is

primal perch
#

binja is pretty solid and growing fast

tepid olive
#

i didn’t

tepid olive
topaz yew
#

hmm, seems like im saved from dealing with swift garbage for now

primal perch
#

chad

brazen timber
#

real and true

topaz yew
#

welp back to dealing with apples swift garbage + finding functions

crisp frost
#

can you refer me to some trustworthy places?

tepid olive
#

adobe zii

indigo peak
#

I got you

blazing vault
#

Would %hookf work on an x86_64 simulator or would I need to manually hook the c function for xcode simulator

crisp frost
#

fr

ocean raptor
topaz yew
#

uh i may need to dm shepgoba too

#

/j

faint timber
#

how to make unzip not ignore umask?

gaunt helm
faint timber
#

I gave all the information

#

clearly you aren't intelligent enough

gaunt helm
#

guess you don't need my help then

#

figure it out yourself

faint timber
#

just trolling

glacial matrix
pearl sail
#
-K

[AtheOS, BeOS, Unix only] retain SUID/SGID/Tacky file attributes. Without this flag, these attribute bits are cleared for security reasons. 
faint timber
#

doesn't work

pearl sail
unkempt raft
timid furnace
#

yup

unkempt raft
# timid furnace yup

hm, I tried using your code but in Swift, it shows this message, but no syslogs from iconservicesd appear.

func rebuildIconCache() {
    let myCookieInterface = NSXPCInterface(with: ISIconCacheServiceProtocol.self)

    let myConnection = Dynamic.NSXPCConnection(machServiceName: "com.apple.iconservices", options: []).asObject as! NSXPCConnection
    print("Connection: \(myConnection)")
    myConnection.remoteObjectInterface = myCookieInterface
    myConnection.resume()

    (myConnection.remoteObjectProxy as AnyObject).clearCachedItems(forBundeID: "com.apple.MobileSMS") { (a, b) in
        print("Successfully responded (\(a), \(b ?? "(null)"))")
    }
}
#

i suppose null here isn't supposed to appear, right?

timid furnace
#

but no syslogs from iconservicesd appear

#

enable debug logs in console

timid furnace
#

no error

unkempt raft
timid furnace
#

how did you get the NSXPCConnection(machServiceName:) unavailable message to fuck off

#

out of curiosity

unkempt raft
#

it's a swift library for accessing private apis

#

works wonderfully and has rich api

timid furnace
#

interesting

unkempt raft
#

it basically creates a Dynamic instance, and then you can use .asObject, .asDouble, asAnyObject etc to convert it back to your type

#

together with type casting of course

#

.asObject as! NSXPCConnection

tepid olive
unkempt raft
tepid olive
#

Just use performSelector

unkempt raft
#

it's clunky

#

and takes a lot of space

#

in source code

tepid olive
#

Just like u

#

.

timid furnace
#

wish i knew about this

#

stack overflow told me to cast to id or use objc_msgSend

unkempt raft
tepid olive
unkempt raft
#

nvm

#

it does

timid furnace
#

congratulations

#

you are no longer going to brick devices

unkempt raft
#

@timid furnace if I want to call this method a couple hundreds of times, can I reuse the connection?

#

or do I have to create it every single time

timid furnace
#

you can reuse it

unkempt raft
#

thanks!

timid furnace
#

for any further XPC questions you should ping capt

#

lmao

peak quartz
#

hey guys,
palera1n app development issue -
i developed an app that runs some bash commands (no other way to do this)
problem is - once its trying to run the bash command the app is crashing with error "couldnt posix_spawn: error 1" so i was thinking those was just the entitlements.
but once i add the entitlement file and recompile, the app is crashing from start even without any command making it crash (no crash log in this case)
my question is - what can i do to fix this? should i resign it with ldid or smth?

NOTE - it crashes only on palera1n. taurine / unc0ver runs just fine

appreciate the help

timid furnace
#

(no crash log in this case)

#

there's nothing in analytics?

#
  • what are you using to sign your app?
restive ether
#

and what version

peak quartz
restive ether
#

is it rootless or rootful

peak quartz
#

Semi tethered is rootless?

restive ether
#

no semi untether is rootless

peak quartz
#

then rootless

#

Sorry rootful

restive ether
#

how did you sign it?

peak quartz
restive ether
#

did you sign it with com.apple.private.persona-mgmt

#

i think that’s the one you’re looking for

peak quartz
#

By sign it with that you mean add that to my entitlements file?

restive ether
#

yeah

peak quartz
peak quartz
#

still crashing

#

thats my entitlement file:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>com.0xkuj.ipr</string>
    <key>com.apple.private.persona-mgmt</key>
    <true/>
</dict>
</plist>```
timid furnace
#

add ```plist
<key>platform-application</key>
<true/>
<key>com.apple.private.security.no-container</key>
<true/>

restive ether
#

oh i didn’t realize you didn’t sign with basically anything as is

peak quartz
restive ether
#

that’s a lot of entitlements to give an app

peak quartz
#

its a testing stage, i wont release it that way, just trying to make it work at first

timid furnace
#

hm

peak quartz
#

on all jailbreaks

timid furnace
#

theos

#

run ldid --version

restive ether
#

if it’s not procursus ldid it definitely won’t work

peak quartz
peak quartz
timid furnace
#

oh it doesn't have a version flag

#

just run ldid in a terminal

#

and see what version it is

peak quartz
timid furnace
#

sure? i mean unless if you have PATH overrides it shouldn't matter

restive ether
#

no just ldid

restive ether
peak quartz
#

not sure i follow you guys.. i run this on my terminal


Command 'ldid' not found, did you mean:

  command 'lid' from deb id-utils (4.6+git20120811-4ubuntu2)
  command 'ldd' from deb libc-bin (2.31-0ubuntu9.2)

Try: sudo apt install <deb name>```

where i am running "make package install"
#

thats basically WSL if that matters

#

and this does not exists in my theos folder $THEOS/bin/ldid

#

so im guessing.. i need to download ldid?

restive ether
#

if there’s no ldid then i don’t see how they’d be getting signed at all

peak quartz
#

no idea, thats the first app ever i developed via theos

#

i just hit make package install and it installs the app on my device

unkempt raft
#

@timid furnace your method doesn't seem to work on my other 2 test devices, which are both on ios 16 uhh
only worked on 15.4 to this moment

#

(not through TS, regular sideloading)

#

that's not an xpc question, right?

#

should I ping capt?

timid furnace
#

i don't have iOS 16

#

and "doesn't seem to work" isn't exactly helpful debugging info

#

be more specific

unkempt raft
#

true

#

icons don't change after editing .car files

#

logs appear

#

Successfully responded (true, (null))

#

but icons stay the same, despite having the same changes and logs as on 15.4

#

any ideas?

timid furnace
unkempt raft
#

and in Console.app I see . . . Done

timid furnace
#

are those log entries present on iOS 16

#

make sure debug/info is enabled

unkempt raft
#

yep

#

yeah, they do appear

#

just no visible effect like on ios 15

timid furnace
#

wait a sec

#

smh

#

why did you send bundle ID to "com.apple.MobileSMS"

unkempt raft
timid furnace
#

it should be null otherwise it runs different code

unkempt raft
#

it now is ran for every id

#

lemme send you my updated code

#
var connection: NSXPCConnection?

func remvoeIconCache(forBundleID bundleID: String) {
    print("removing cache for \(bundleID)")
    if connection == nil {
        let myCookieInterface = NSXPCInterface(with: ISIconCacheServiceProtocol.self)
        connection = Dynamic.NSXPCConnection(machServiceName: "com.apple.iconservices", options: []).asObject as? NSXPCConnection
        print("Connection: \(connection!)")
        connection!.remoteObjectInterface = myCookieInterface
        connection!.resume()
    }
    (connection!.remoteObjectProxy as AnyObject).clearCachedItems(forBundeID: "com.apple.MobileSMS") { (a, b) in
        print("Successfully responded (\(a), \(b ?? "(null)"))")
    }
}
#

first logs removing cache for ... and then Successfully responded (...)

#

but after a respring icons don't change, like they do on ios 15

timid furnace
#

yea no, you're clearing stale icon cache entries instead of all icon cache entries

#

set forBundeID to null/nil/whatever it is in swift

unkempt raft
#

nil ok

timid furnace
#

also what happened to the approach where you replaced the SystemVersion.plist string with something else

#

i saw it in the code but commented out

unkempt raft
#

looks promising

#

respringing

#

pog

#

thank you :)

#

it works

unkempt raft
#

maybe ios has some hardcoded ios versions that it does something upon

timid furnace
#

then why did you switch to messing with SystemVersion.plist directly

unkempt raft
#

there were just two different approaches to changing the value

#

but result is the same in both ways

timid furnace
#

i'm talking about this

#

why switch from that to

timid furnace
unkempt raft
#

what I mean is ios might be checking for specific versions somewhere in the code, triggers some rare changes and caused a bootloop?

#

since we used a Int.random(range:) method before that might be the case

timid furnace
#

it is likely you were breaking things related to update handling

unkempt raft
#

anyway, I will give the beta to some eta wen kids and test if it bootloops anymore

timid furnace
#

have fun

unkempt raft
#

thanks a ton Dhinak :)

#

can I add you to credits?

#

to Cowabunga

timid furnace
#

sure

timid furnace
#

it should find it and use it

#

hopefully

peak quartz
timid furnace
#

and how many people use it? 1

restive ether
#

anyone who makes a watch app has to use it i think

#

or any extension for that matter

#

isn’t that what it’s for

primal perch
#

@grave sparrow faptain kink

ocean raptor
#

@grave sparrow can you explain this???

> CC="xcrun -sdk iphoneos cc" CFLAGS="-miphoneos-version-min=13.0 -Iinclude" LDFLAGS="-miphoneos-version-min=13.0" gmake
<TRIM>

> ipsw macho info launchctl --symbols | grep "xpc_user_sessions_enabled"
              <external|undefined>          _xpc_user_sessions_enabled               (libSystem.B.dylib)
0x100014300: __DATA  __la_symbol_ptr   0x100014300  LAZY                  0 libSystem.B.dylib              _xpc_user_sessions_enabled

> gmake clean

> CC="xcrun -sdk iphoneos cc" CFLAGS="-miphoneos-version-min=14.0 -Iinclude" LDFLAGS="-miphoneos-version-min=14.0" gmake
<TRIM>

> ipsw macho info launchctl --symbols | grep "xpc_user_sessions_enabled"
              <external|undefined>          _xpc_user_sessions_enabled               (libSystem.B.dylib)
primal perch
#

@captinc can you explain this???

#

@grave sparrow

hasty ruin
#

shirp — Today at 02:24
@captinc can you explain this???
@grave sparrow

ocean raptor
#

I don't want ifdefs, I want weak linking woeis

#

ifdefs it is

unkempt raft
#

hi, what the methods of getting something device specific information (like UDID) in sandbox?

gentle grove
grim sparrow
#

In sandbox, you don’t

#

You give mr tim apple the sloppy toppy so he gives you the ents to get it

tepid olive
#

WHAT.

restive ether
#

appstore apps can’t have UDID šŸ’ŖšŸ’ŖšŸ’Ŗ

tepid olive
#

@grim sparrow is there a user client class you can use to get the udid

#

i might actually do the user client hacks

grim sparrow
#

You need 4

tepid olive
#

thats chile

grim sparrow
#

If you get user client pls let me know

unkempt raft
#

ig I'll just ask for password then

blazing vault
#

Very dumb question

Let's say I had a binary that uses a class, say, call it, UIColorPickerViewController. And this class is not available on the iOS device's version I'm testing on. So let's say I were to provide a shim for this class that replicates it enough for it to theoretically be used in this binary that uses it. However, when this binary opens, dyld detects that the symbols for this class aren't in the framework the binary would usually get this class from so the binary crashes. Is there any way at all to add this shim of the class to the binary at runtime and link it somehow rather than patching the binary to use the shim

#

If I used %subclass would it be adding the symbols in memory and before dyld checks for the symbol

blazing vault
blazing vault
#

o wait maybe i misunderstood that

blazing vault
primal perch
glacial matrix
#

Forgot about c++ constructors

#

Go with c constructors?

glacial matrix
#

All of those are called when dlopening a dylib that has objc classes

#
  1. All initializers in frameworks that link to you.
#

I can’t answer that, but a simple log might do it

dreamy mason
#

@grave sparrow Are you a debugger?

timid furnace
late ridge
#

does anyone have an iOS 14 springboard binary they can send me

timid furnace
#

Like use NSClassFromString

unkempt raft
#

it's an app, got it

#

i ended up using passwords instead

primal perch
#

gorn

hasty ruin
topaz yew
#

hi

robust radish
#

disabling Facebook/Instagram's pinning is easy if you have the address of the function verifies the x509 cert, but they strip too many symbols to locate it without making some type of patchfinder. Given a known address of that function, the following disables pinning:

#import <mach-o/dyld.h>

static int _x509_verify_func(int arg1) {
    return 1;
}

%ctor {

    int framework_index = 0;
    for (int i = 0; i < _dyld_image_count(); i++) {
        if (strstr(_dyld_get_image_name(i), "FBSharedFramework")) {
            framework_index = i;
        }
    }

    // TODO: use xrefs to (exported function) X509_free to dynamically find this address 
    uint64_t _x509_verify_func_addr =  _dyld_get_image_vmaddr_slide(framework_index) + 0x00003385d0;
    MSHookFunction((void *)_x509_verify_func_addr, (void *)_x509_verify_func);
}

the target function invokes X509_free which is exported, so you can probably hook that and then examine the callstack when it's invoked to know which address actually needs to be hooked. otherwise I would use capstone + some known strings within invoking functions to locate the target function.

You can also avoid the hardcoded image name search by using dladdr to find the image containing the impl for X509_free

trail niche
#

Does anyone know how I could create a custom window for a MacOS cocoa app?

#

like, custom window decorations

lime pivot
trail niche
#

anyone here know how to set the background of a MacOS app to an image

#

im using cocoa

#

I just did this

#
@objc
class AppDelegate : NSObject, NSApplicationDelegate {
    // @available(macOS 11.0, *)
    public func applicationDidFinishLaunching(_ notif: Notification)
    {
        let fpath = "/" + CommandLine.arguments[0].split(separator: "/").dropLast().joined(separator: "/") + "/Resources/window.png"
        //check if file exists
        if !FileManager.default.fileExists(atPath: fpath) {
            print("File \"\(fpath)\" does not exist")
            exit(1)
        }
        //Load the file into an NSImage
        let windBackground = NSImage(contentsOfFile: fpath)!
        print(windBackground.size)
        let window = NSWindow(contentRect: NSRect(x: 0, y: 0, width: windBackground.size.width, height: windBackground.size.height),
                              styleMask: [.titled, .closable, .fullSizeContentView, .borderless],
                              backing: .buffered, defer: false)

        window.center()
        window.makeKeyAndOrderFront(nil)

        window.backgroundColor = NSColor(patternImage: windBackground)

        //Remove all buttons except the close button
        window.standardWindowButton(.miniaturizeButton)?.isHidden = true
        window.standardWindowButton(.zoomButton)?.isHidden = true

        //hide the title bar
        window.titlebarAppearsTransparent = true
        window.titleVisibility = .hidden
    }

    public func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
        return true
    }
}
#

is this bad or no

#

the comments are there for copilot dw im not a bad programmer, just lazy

#

its hilarious

#

cant be bothered to make an xcode project

#

why?

#

but it literally does

trail niche
#

this is a screenshot

#

yeah, it was cringe

#

so If I just use subview

#

same result without the cringe?

#

lmao

#

u sure I shouldnt just set the contentView to be the NSImageView?

#

wow that seems like a lot of work I dont want to do

#

backgroundColor it is

trail niche
#

if I do this will the image resize with the window

#

Yes apparently

#

yeah

#

I just got it to work

#

well

#

well I say "well"

#

its beautiful tho!

#

this is a real window

#
    public func applicationDidFinishLaunching(_ notif: Notification)
    {
        let fpath = "/" + CommandLine.arguments[0].split(separator: "/").dropLast().joined(separator: "/") + "/Resources/window.png"
        if !FileManager.default.fileExists(atPath: fpath) {
            print("File \"\(fpath)\" does not exist")
            exit(1)
        }

        let windBackground = NSImage(contentsOfFile: fpath)!
        print(windBackground.size)
        let window = NSWindow(contentRect: NSRect(x: 0, y: 0, width: windBackground.size.width / 2, height: windBackground.size.height / 2),
                              styleMask: [.closable, .fullSizeContentView, .borderless, .resizable],
                              backing: .buffered, defer: false)

        window.contentView!.wantsLayer = true
        window.contentView!.layer?.contents = windBackground
        window.contentView!.layer?.contentsGravity = .resizeAspectFill

        //Make the titlebar transparent
        window.titlebarAppearsTransparent = true
        window.titleVisibility = .hidden

        window.center()
        window.makeKeyAndOrderFront(nil)
    }
#

the fixed code

#

also

#

I get a segfault when I try to close it

#

you got a clue why?

topaz yew
#

woa how did you do that

#

oh nvm

tepid olive
#

yeah i got the ivar name right first try

#

window.isReleasedWhenClosed = false will stop the window from getting released and causing a segfault

trail niche
#

Caused by auto release

trail niche
#

lmfao

#

my end goal is to make a minecraft launcher

#

that looks like a minecraft menu

#

im gonna rewrite it in at

gentle grove
#

true

trail niche
#

qt

gentle grove
#

wtf

#

no

#

we already have prism and multimc

#

qt

trail niche
#

yeah

#

I dont want this to be MacOS only

#

ill use electron then TrollFront

gentle grove
#

use rust ā„¢ļø and wgpu

ocean raptor
#

UI in rust šŸ’€

gentle grove
#

d3d, metal, and vulkan all native

trail niche
gentle grove
#

fr

trail niche
trail niche
#

will do

gentle grove
trail niche
#

too bad

trail niche
#

vulkan is the future

gentle grove
#

yeah

#

but idk how you sry those up

#

set

#

and webgpu/wgpu makes all 3 abstracted away and native

timid furnace
#

@grave sparrow gm

#

Git submodule vs making my semi tiny shared ObjC code a framework

#

Why not

#

It's easier trolley

#

Wdym it's not, I move the shared code into a repo, make it a submodule, and add it as a group into xcode

#

oh wait

#

xcode references the files, if I add/remove files xcode will say fuck you

#

damn

#

Alright guess it's time to figure out how to make a framework

#

It'd be a separate project

#

And how would I link with it if it's a separate project

#
  • how to do headers
#

I see

#

Will xcode automatically pick up the headers when I add in the compiled framework

#

Ok

#

I will try it sometime in the next 6 months

#

Thank you for your assistance

#

That's why I code in vscode and use xcode for everything else trolley

#

When you make an ide and people use it for everything besides coding in it (ignore the fact that they're forced to)

#

Developers in 5 years: how to jailbreak xcode????

primal perch
#

i have nothing better to do

#

3

#

no

crisp frost
#

idk if this is a dumb question but why does that macdirtycow patcher for installd not invalidate the signature? I tried something and it always invalidates the signature

crisp frost
timid furnace
#

__TEXT is codesigned

crisp frost
#

oh fr

timid furnace
#

WDBRemoveThreeAppLimit doesn't touch __TEXT

crisp frost
#

thanks... maybe i can work around this some other way

timid furnace
#

ĀÆ_(惄)_/ĀÆ

#

depends on what you're trying to do

topaz yew
#

(excuse my dumb)

hasty ruin
#

Me omw to spam Xcode in dms

snow python
#

gottem

#

I think i have a mastodon social still, from when twitter was gonna blow up last time

restive ether
#

twitter already blew up today

#

guess that’s what happens when you fire literally every person who understood your networking infrastructure

snow python
#

Havent been on twitter in months, what happened today?

restive ether
#

went down again

snow python
#

epic

tepid olive
#

which would require finding hash collisions

topaz yew
#

idk what that is but i trust you

blazing vault
#

SBCoverSheetWeDontNeedNoEducation

#

SBFudgeShortcutsToCauseMaximumPain

late ridge
#

ooh bet, forgot they changed their site domain

#

Also if people are gonna contribute to the dev wikis are we still using the iPhoneDevWiki or theapplewiki

unkempt raft
#

@timid furnace Cowabunga with the new icon refresh method is still bootlooping some people frcoal

#

any ideas why?

#

maybe it's ssv getting triggered then?

hasty ruin
primal perch
wind ravine
#

i got bootlooped, even with the new icon cache reset

#

i hope to god i can come back to it and not have to update

unkempt raft
#

Cowabunga overwrites just .car files, nothing more

#

It didn’t appear before when replacing .pngs inside app bundles

ocean raptor
#

Zefram moment

primal perch
#

fr

hasty ruin
#

Capt really has to impersonate shep because no one likes him as he is

#

that’s the point

#

Which ones

#

Dm them pussy

ocean raptor
hasty ruin
#

Um actually you sent it after saying done

#

same ones?

#

boring 🄱

cursive rampart
#

@grave sparrow zefram bootlooped my phone !11!1!1!1

cursive rampart
#

fr

primal perch
#

fr

hasty ruin
#

gonna have to use ntwerk tweak to spot the imposter

timid furnace
timid furnace
#
  • if it bootloops, does it bootloop consistently?
#

Any logs?

tepid olive
#

ok deleting cowabunga

#

i can’t risk bootlooping

hexed knot
primal perch
#

UwU

next wadi
#

daily reminder to luz

hexed knot
#

una luz

next wadi
#

true

#

los luces

primal perch
#

daily reminder to use theos

timid furnace
#

Also how many goddamned files are you replacing @unkempt raft

next wadi
#

NO.

#

NO I DONT LIKE THIS GAME.

next wadi
#

luz > theos

hexed knot
#

wtf is luz

timid furnace
hexed knot
timid furnace
#

I want to move off of hardcoding the theos sdk

hexed knot
#

its not los

timid furnace
next wadi
#

i think

timid furnace
#

Sad

#

Ok I'll look at the script

next wadi
#

i didnt know that frcoal

#

first year of spanish moment

#

my service is so bad what the frick

next wadi
#
  1. Install clang, git, and ldid
hexed knot
#

dude made something called luz and doesnt even know about the word

next wadi
#
  1. Install from git
#
  1. Profit
primal perch
#

apt install bash curl sudo

next wadi
#

troll

primal perch
#

bash -c "$(curl -fsSL https://raw.githubusercontent.com/theos/theos/master/bin/install-theos)"

primal perch
next wadi
#

more like