#development

1 messages · Page 572 of 1

restive ether
#

which was uh

#

weird?

silver rampart
#

i really do prefer it a ton to ios

primal perch
#

every app runs in a jvm

grim sparrow
#

deez

restive ether
#

rip getting a google map result when you type an address now

primal perch
#

it’s not nearly as cohesive so there’s more input lag on the majority of phones as well as frame misses with rendering

restive ether
#

one of the bills was like a straight anti trust bill aimed at facebook i think

silver rampart
restive ether
#

one of the bills gave AG’s more power in anti trust lawsuits

primal perch
#

most oems have measurably higher lag than the iphone but that was from iphone 5 days

#

idk about modern

silver rampart
#

old androids sucked butt

#

I apparently got into the ecosystem right when things started not sucking butt

#

current setup w android 12 + nova launcher just feels like a faster and better iPhone

#

same gesture controls and UI and all

primal perch
#

the biggest oem samsung ships with literal malware ootb

silver rampart
#

apple would never do that

primal perch
#

i mean

#

it’s facebook

#

way worse than whatever windows or apple is doing

silver rampart
#

mine doesn't have it

#

haven't rooted my phone or anything in any way

hardy glen
primal perch
#

maybe they changed it then

#

as of 2020 they shipped it with everything

hardy glen
#

Touchwiz was fucking scary

#

One ui is better i think

#

Heres my s8 plus

primal perch
#

on the one hand apple has vastly better hardware but you can’t use it with ios really at all

#

android lets you actually do stuff

silver rampart
#

biggest reason I love it

hardy glen
#

Esp with unlocked bootloaders

primal perch
#

a15 has nested virtualization but uh

#

idk why

silver rampart
#

doesn't require kernel exploits to take advantage of the system

primal perch
#

it’s not like apples gonna turn it on

hardy glen
silver rampart
#

also PiP in YouTube doesn't require a kernel exploit fr

hardy glen
#

Yea true. But i loved fucking with a rooted android

primal perch
#

if i do ever get an android im only using custom roms

hardy glen
#

Lmao remember xposed

#

That horrifying thing

#

The xposed framework.

#

Custom roms make the phone fun to use. Especially custom kernels too

silver rampart
#

i do like being able to fuck with my phone's UI and minor things without having to jb it and write tweaks and crap to do it

#

idk it's just nice having a phone that's just a phone, not something for me to fuck around with and break constantly

hardy glen
#

Yea lowkey wish i had an android. Maybe like a oneplus phone

#

But shit like facetime/imessage holds me back

silver rampart
#

just RE apsd, IDS, and the iMessage frameworks and reimplement it

hardy glen
#

Lmao too lazy to do that

primal perch
#

huh

hardy glen
#

F

primal perch
#

it’d be nice ig to run emulators but i have a pc

#

weird

silver rampart
#

easiest way to help it become more stable is lmk about crashes

restive ether
#

i don’t know how that happened

primal perch
#

@gentle crescent wtf

silver rampart
#

filing issues works but you can just ping me here or w/e

hardy glen
silver rampart
#

i actually turned off some safeguards that prevent crashes with 0.20.1 so i can find problems in a few areas

hardy glen
#

It crashed with that

silver rampart
hardy glen
#

Let me pull it up rq

ocean raptor
#

@compact swift netctl airplane [status | toggle | on | off]

primal perch
restive ether
primal perch
#

solutions: don’t jb, don’t use snap

#

i go with both

silver rampart
#

based

restive ether
#

all i’ve done for 4+ years is just turn off injection

primal perch
#

id use another checkrain esque jb in an instant but i’m never touching semi untethered

silver rampart
#

just don't have friends

primal perch
#

how is it so bad

silver rampart
#

most of this server already ahead of the curve

hardy glen
primal perch
#

jb is dead

hardy glen
#

I didn’t really look at it much

grim sparrow
#

how could i have friends, I just look at logs all day

hardy glen
#

I just deleted my snap account yesterday

primal perch
#

based

#

redpilled

#

i only have a discord and reddit at this point

restive ether
#

be like hayden, delete everything

primal perch
#

no more twitter or anything

hardy glen
#

Same. I deleted ig, twitter(except a dummy account for dev), snapchat

#

I need to delete youtube

#

And twitch

silver rampart
hardy glen
#

Too much comparing your life to other peoples

grim sparrow
#

no

#

serial logs

silver rampart
#

my snap is just a few close friends and donato, same with IG

#

and twitter feels a lot better when i actually recognize everyone following me

hardy glen
silver rampart
#

already fixed that one as well

hardy glen
#

really i updated wtf

silver rampart
#

lemme see if I can push specifically the bigfixes

#

it's not all pushed yet bc there's a shitton of indev stuff too

#

I'll just disable the wip fixup processing

#

there's super rudimentary swift stuff now

hardy glen
#

also i think the same error when opening a binary filled with swift

silver rampart
ocean raptor
#

np

silver rampart
#

but it shouldn't have any issues displaying the backing objc classes now

ocean raptor
#

literally the most painfree thing to be added to netctl, it's refreshing

#import <Foundation/Foundation.h>

@interface RadiosPreferences : NSObject
@property (nonatomic) bool airplaneMode;
- (void)refresh;
@end

int airplane(char *set) {
    RadiosPreferences *radiosPreferences = [RadiosPreferences new];

    [radiosPreferences refresh];

    if (set == NULL || !strcmp(set, "status")) {
        printf("%s\n", [radiosPreferences airplaneMode] ? "on" : "off");
        return 0;
    } else if (!strcmp(set, "on")) {
        [radiosPreferences setAirplaneMode:1];
        return 0;
    } else if (!strcmp(set, "off")) {
        [radiosPreferences setAirplaneMode:0];
        return 0;
    } else if (!strcmp(set, "toggle")) {
        [radiosPreferences setAirplaneMode:![radiosPreferences airplaneMode]];
        return 0;
    } else {
        fprintf(stderr, "Usage: netctl airplane [status | toggle | on | off]\n");
        return 1;
    }

    return 1;
}
silver rampart
hardy glen
#

nice it works now

#

on both binaries

#

i guess the shit he is doing is supposedly "bypassing" snap's detection

silver rampart
#

not even stripping syms

hardy glen
#

ik like idk if i believe it

#

even a lil bit

#

you would expect him to be smart and strip and obfuscate but no. I haven't personally installed it and tested it since i deleted snap

silver rampart
#

dont get why ppl need to tweak snapchat so bad

hardy glen
#

saving nudes, location spoof, uploading media

silver rampart
#

no jailbreaker is getting nudes

primal perch
#

ew linux

hardy glen
#

lmao

hardy glen
#

just wanted to put that out there

primal perch
hardy glen
#

i compile my window manager so u know i get bitches

silver rampart
#

oh also if the import window shows this

#

means the bin is using chained fixups

#

for some reason the table generator freaks tf out if a table is empty and i'm too scared to touch it

hardy glen
#

I had a question, i was looking into snapchat and most nsurls look like spotify:local:::somethingsomething

#

what does that mean, is that url converted into an actual readable url later on?

#

was looking into something to do with local imports

ocean raptor
#

dang

tepid olive
#

that's an ugly hack

#

the code is much clearer if you do == 0

ocean raptor
primal perch
#

it’s all style

#

doesn’t matter at all

ocean raptor
#

they mean the same

tepid olive
#

if someone reads that code and is not intimately familiar with C, they may mistake it for "these two strings are NOT equal"

primal perch
#

that’s their problem

#

it’s a common c style

tepid olive
#

this is not code golf

tepid olive
#

anyone following this "style" is dumb, you can't change my mind

primal perch
#

i think you policing your opinions is dumb too

tepid olive
#

intentionally misleading code is shit, you can't excuse it with "should have read the man page"

primal perch
#

but whatever

#

owo!

tepid olive
#

if you wanna do !strcmp(x, y) then I'm gonna use !(x ^ y) to check if two numbers are equal

#

see how stupid that is?

primal perch
#

if you want i guess

tepid olive
primal perch
#

write your code how you want dawg

#

i’m not losing sleep over it

#

i do lose sleep over other things admittedly but not that

#

capt is literally writing the bible

ocean raptor
restive ether
#

i don’t have a test device

shell sphinx
#

I GOT IT TO WORK

#

nevermind

primal perch
#

me trying to use cad software at school with mouse acceleration on and a really high tracking speed

#

can’t change it because enterprise moment

#

and the softwares cursor doesn’t use hardware cursor

#

leading to even more lag

#

enterprise windows i mean

#

can’t change settings

#

win+r disabled

#

i have ps and cmd but no main.cpl

#

haven’t been able to change any settings

#

restrictions prevent that

#

yeah rip

ocean raptor
primal perch
#

i was getting some commands to run without restriction error but no effect

#

probably didn’t do it right

#

either way i finished and i’m eating taco bell rn

restive ether
#

wholesome

ocean raptor
#

cool

#
#import <CoreFoundation/CoreFoundation.h>
#import <Foundation/Foundation.h>

@protocol RadiosPreferencesDelegate <NSObject>
-(void)airplaneModeChanged;
@end

@interface RadiosPreferences : NSObject
@property (nonatomic) bool airplaneMode;
@property (nonatomic) id <RadiosPreferencesDelegate> delegate;
-(void)refresh;
@end

@interface NCRadiosPreferencesDelegate : NSObject<RadiosPreferencesDelegate>
@end

@implementation NCRadiosPreferencesDelegate
-(void)airplaneModeChanged {
    CFRunLoopStop(CFRunLoopGetCurrent());
}
@end

int airplane(char *set) {
    RadiosPreferences *radiosPreferences = [RadiosPreferences new];

    [radiosPreferences refresh];

    radiosPreferences.delegate = [NCRadiosPreferencesDelegate new];

    if (set == NULL || !strcmp(set, "status")) {
        printf("%s\n", [radiosPreferences airplaneMode] ? "on" : "off");
        return 0;
    } else if (!strcmp(set, "on")) {
        [radiosPreferences setAirplaneMode:1];
    } else if (!strcmp(set, "off")) {
        [radiosPreferences setAirplaneMode:0];
    } else if (!strcmp(set, "toggle")) {
        [radiosPreferences setAirplaneMode:![radiosPreferences airplaneMode]];
    } else {
        fprintf(stderr, "Usage: netctl airplane [status | toggle | on | off]\n");
        return 1;
    }

    CFRunLoopRun();

    return 0;
}
#

maybe I need an ent for it

#

I'll be able to try and fix it when I get home

#

I added

    <key>com.apple.SystemConfiguration.SCPreferences-write-access</key>
    <array>
        <string>preferences.plist</string>
        <string>com.apple.radios.plist</string>
    </array>
#

ah, I built it with ASAN

#

ah, ASAN is only supported on the simulator, not on real phones

pearl sail
ocean raptor
#

My favorite

shell sphinx
#

it finally works

primal perch
#

wholesome

shell sphinx
#

very

subtle grail
#

does anyone know how to check if the device is locked outside of springboard

#

private or public idrc

ocean raptor
#

ghidra core dumps every two seconds and wine refuses to start

ocean raptor
#

can someone decompile AppSupport.framework and show me -[RadiosPreferences notifyTarget:]?

glacial matrix
tardy narwhal
glacial matrix
restive ether
#

juice

tardy narwhal
#

KEKW i have many questions

glacial matrix
#

do you really want to know the answers though?

tardy narwhal
#

honestly, yes

#

i'd guess hackintoshing but I'd also assume you own a mac

#

or the good ol' mantra "never change a running system"

glacial matrix
#

MacBook Pro (Retina, 15-inch, Mid 2015)

faint timber
#

Funny how Catalina and Big Sur were both very stable

glacial matrix
#

Sierra has been for these past 5 years

tardy narwhal
#

or did I misread the requirements

glacial matrix
#

@ocean raptor anything else before I close Hopper?

tardy narwhal
torn oriole
#

Nvidia egpu troll

glacial matrix
ocean raptor
primal perch
#

:Intjcum:

#

finally without changing bios

indigo peak
#

@lime pivot I just purchased a blank orange hoodie, no idea when I’ll have time to get it pressed

#

eta s0n 😀

primal perch
ocean raptor
#

I hate iOS

(lldb) po NSStringFromSelector($arg2)
warning: could not execute support code to read Objective-C class data in the process. This may reduce the quality of type information available.
error: error: Couldn't JIT the function: Unable to find target for this triple (no targets are registered)
indigo peak
#

@primal perch birdpoop merch when?

#

been waiting 🙄🙄

primal perch
#

who made birdpoop

indigo peak
#

dgh0st I think

#

but I think you should make a hoodie

indigo peak
#

that stitching

#

but of the birdpoop logo

primal perch
#

bird poop

rain falcon
indigo peak
#

why tf do i have a file called BirdPoop.S

torn oriole
#

who doesn't

restive ether
#

that’s epic man

native dune
#

pirated bird poop

sour halo
#

why do people buy birdshit

#

does it have anything better than gameseagal

primal perch
#

yea

#

cup pong hax

#

or so im told

lime pivot
indigo peak
#

Nike x Chariz

lime pivot
sour halo
#

I would buy a chariz shoe

tacit spade
#

my pronouns are tcp/ip

faint timber
#

my pronouns are sepi/rsep

gentle grove
#

mine are TCP/UDI

#

UDP

primal perch
#

deez/nuts

lime pivot
#

left or right?

sour halo
#

Yeah

faint timber
#

this fails

#

how fix

lime pivot
shadow geyser
#

Is there anyway to get safaridriver running on ios without a mac? (Directly from the device)

sour halo
#

What is safaridriver

gentle grove
#

Professional driver who goes on a safari in Africa

silver rampart
#

just copied a whole 3 letters to paste into my program i'm working on

#

truly a god tier programmer that doesn't need no stackoverflow

high citrus
#

just use github copilot it can autocomplete things like that

primal perch
#

sometimes it’s easier to click 100 times than type one key

#

also true

#

copilot slaps

silver rampart
gentle grove
sour halo
#

There's a vsc setting for that

misty cradle
primal perch
#

wen

steady nest
#

huh, good q, no idea actually

primal perch
tepid olive
#

tfw you accidentally release the -debug_1 version of your tweak and nobody notices

primal perch
steady nest
#

is this kppless or checkra1n

#

or macOS

#

platform isn't enough to bypass that? huh

#

oh

nimble parcel
#

seems like an amfi thing, check there instead

ocean raptor
#

I don't understand how to add a timeout to a CFRunLoop, can someone help me

tardy narwhal
hollow mango
#

How do i increase/decrease the volume programically

ocean raptor
restive ether
#

thanks ab

peak quartz
#

how can one develop keyboard tweaks without being able to investigate it using flex?

primal perch
#

guess

peak quartz
#

im thinking frida.. any better guesses?

peak quartz
#

i found the class i needed, from this moment ill just frida its ass to follow the flow

#

thanks!

sour halo
#

last name slaves?

native dune
#

.

primal perch
torn oriole
#

he he he ha

primal perch
#

he he he ha

steep veldt
#

he he ha

#

anyone have a c++ roadma[p to know what to learkn if order

primal perch
#

start with std cout and then you should be able to handle about anything

faint timber
hardy glen
#

And use cppreference

#

To learn the std library

#

Especially watch the videos on the compiler/linker

#

Its not a beginner series. He just explains certain stuff really well

primal perch
#

idk why but that guy is annoying to watch

#

it’s like he’s used to making clickbait videos

#

and has that tone

crystal prism
#

Who

primal perch
#

haven’t really watched for long so i’m not going to rate the quality of the content though

#

i hear it’s good

vivid dew
crimson plover
#

How to reference an img folder in resources then load all images in folder to an array of imageviews? Using swift and wsl

ocean raptor
#

how do I write an nginx rule to rewrite /ldid as /ldid/ldid.1

#

got it!

location = /ldid {
  return 301 $scheme://man.cameronkatri.com/ldid/ldid.1;
}
indigo peak
crimson plover
#

let path = Bundle.main.resourcePath!

#

I want to reference a specific folder in the resourcepath.

#

Is that possible with swift?

#

Something like this: Bundle.main.resourcePath!.findFolder(folder: "pic1")

#

I found this: let path = "(Bundle.main.resourcePath!)/data/text/example.txt"

#

Apple keeps shitty documentation if you aren't using xcode...

crimson plover
#

My solution is throwing the crash error: "The folder "pics1" doesn't exits." 😭 Please lmk if you guys find anything on this.

vivid dew
#

real

crimson plover
#

I'm trying to create a CollectionView of all images that are within a specific directory in the main bundle of my application. It should load automatically without user input. I need to get the contents of this directory and iterate through every image. My file structure is 'Root/Resources/pics1', I need all images in pics1.

primal perch
#

I'm trying to create a CollectionView of all images that are within a specific directory in the main bundle of my application. It should load automatically without user input. I need to get the contents of this directory and iterate through every image. My file structure is 'Root/Resources/pics1', I need all images in pics1.

vivid dew
#

if you’re using a resource group in xcode all the files are flattened into the root by the way

#

you need to set it to folder when importing

primal perch
#

wtf

#

real development advice from @vivid dew

crimson plover
#

No, the images are loaded by the application and do not need to be changed post-compile

#

I'm working in theos windows 10 wsl, not xcode

vivid dew
#

wtf

#

theos

crimson plover
#

How do I get the files from that directory? RN I have this

#

let fm = FileManager.default
let path = Bundle.main.resourcePath!
let items = try! fm.contentsOfDirectory(atPath: path)

for item in items {
  if item.hasPrefix("var_two_pic_") {
    var imgView = UIImageView()
    imgView.contentMode = .scaleAspectFit
    imgView.image = UIImage(named: item)
    pictures.append(imgView)
  }
}
#

I can get imgs that are in the resource folder, but not in the pics1 folder that is inside the resource folder.

crimson plover
#

Is that objective-c?

crimson plover
vivid dew
#

it’s available to both languages like most apis

#

in swift it’s paths(forResourcesOfType:inDirectory:)

primal perch
#

ghost blah blah blah

vivid dew
primal perch
#

weird vore but ok

vivid dew
#

would you eat [them]?

primal perch
#

no

crimson plover
#

(This is prob easier to read)

primal perch
tacit spade
#

@silver rampart wondering how you got iOS 15 runtime headers from a device? did I miss something?

silver rampart
#

same as any other version except dyldex and ktool just barely support iOS 15 changes enough to do headers rn

tacit spade
#

i mean like

#

Does that work sandboxed?

silver rampart
tacit spade
#

also what changed in 15

silver rampart
#

DSC is now in a new format and split

#

chained fixups (used in arn64e on iOS 14) are now used on all arches

#

dyld_info_command is gone

tacit spade
#

extracted from an ipsw

#

okay that clears it up

primal perch
#

since when

tepid olive
#

yeah iSH literally has read access to it

primal perch
#

read

faint timber
#

Only kernel level .TEXT not data or daemon

#

Try looking into mac_policies

#

Yalu102 and pongo kpf are a good mac policy reference

vivid dew
#

.

primal perch
#

is apple's IMP of MAC open src?

vivid dew
#

is apple's ÇÞÂÎ¥¢ of ¾\®µ´ open src

silver rampart
#

snarky comment about "how tf else can your image load frameworks" here

vivid dew
#

every framework will now be loaded in a separate process for security reasons

#

all memory access will be ipced back and forth

primal perch
ocean raptor
ocean raptor
#

first time writing js/ts

#
import * as vscode from 'vscode';
import { spawn } from 'child_process';


export function activate(context: vscode.ExtensionContext) {
    var mdocPreview: MdocPreview;

    const sidePreview = vscode.commands.registerCommand('mdoc.sidePreview', async () => {
        mdocPreview = new MdocPreview(vscode.window.activeTextEditor);
    });

    context.subscriptions.push(sidePreview);

    vscode.workspace.onDidChangeTextDocument(() => {
        if (mdocPreview) { mdocPreview.update(); }
    });
}

class MdocPreview {
    private panel: vscode.WebviewPanel | undefined;

    constructor(private editor: vscode.TextEditor | undefined) {
        this.editor = editor;
        this.panel = vscode.window.createWebviewPanel('livePreview', 'Live Preview', 2, {});
        this.update();
    }

    private async mdocCompiler(mdocInput: string): Promise<string> {
        return new Promise((resolve, reject) => {
            const mdocProcess = spawn('mandoc', ['-Thtml']);
            mdocProcess.stdin.write(mdocInput);
            mdocProcess.stdin.end();
            mdocProcess.stdout.on('readable', () => {
                const output = mdocProcess.stdout.read().toString();
                resolve(output);
            });
        });
    }

    public async update() {
        if (this.editor && this.panel) {
            this.panel.webview.html = await this.mdocCompiler(this.editor.document.getText());
        }
    }
}

export function deactivate() { }
restive ether
ocean raptor
#

I thought you might enjoy it

#

cameren, the manpage guy

#

when are you gonna write the manpage for zsign?

restive ether
#

noooo

ocean raptor
primal perch
vivid dew
#

put too much sugar in my coffee bros

primal perch
gusty pelican
#

man man

#
MAN(1)                                                      Manual pager utils                                                      MAN(1)

NAME
       man - an interface to the system reference manuals

SYNOPSIS
       man [man options] [[section] page ...] ...
       man -k [apropos options] regexp ...
       man -K [man options] [section] term ...
       man -f [whatis options] page ...
       man -l [man options] file ...
       man -w|-W [man options] page ...

DESCRIPTION
       man  is  the  system's  manual pager.  Each page argument given to man is normally the name of a program, utility or function.  The
       manual page associated with each of these arguments is then found and displayed.  A section, if provided, will direct man  to  look
       only in that section of the manual.  The default action is to search in all of the available sections following a pre-defined order
       (see DEFAULTS), and to show only the first page found, even if page exists in several sections.

       The table below shows the section numbers of the manual followed by the types of pages they contain.

       1   Executable programs or shell commands
       2   System calls (functions provided by the kernel)
       3   Library calls (functions within program libraries)
       4   Special files (usually found in /dev)
       5   File formats and conventions, e.g. /etc/passwd
       6   Games
       7   Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
       8   System administration commands (usually only for root)
       9   Kernel routines [Non standard]

       A manual page consists of several sections.

       Conventional section names include NAME, SYNOPSIS, CONFIGURATION, DESCRIPTION, OPTIONS, EXIT STATUS, RETURN VALUE, ERRORS, ENVIRON‐
       MENT, FILES, VERSIONS, CONFORMING TO, NOTES, BUGS, EXAMPLE, AUTHORS, and SEE ALSO.
lime pivot
#

@ocean raptor "remove bashisms" any reason to for a dev tool?

restive ether
#

make theos go zoom

untold river
#

discord tweak devs

indigo peak
#

that’s fucking disgusting

ocean raptor
graceful gate
# indigo peak

Shouldn’t that allow for simpler code like this?

NSLog(`Variable a = ${a}`)
icy elk
native dune
#

uh

#

ok

primal perch
#

uh

#

ok

hasty ruin
#

uh

#

ok

celest quiver
#

uh

#

ok

ocean raptor
#

gonna write a lsp server for mandoc troll

ocean raptor
indigo peak
restive ether
#

mega mind, no injection required

hardy glen
indigo peak
#

@hardy glen would you know if it's possible to run frida-trace on a jailed device

hardy glen
#

I think you should be able to.

indigo peak
#

without mac

hardy glen
#

It will work.

#

Ideviceimagemounter

#

You need the iOS dev disk image

#

Think you can get it from the ipsw or on mac, its stored somewhere i forgot

#

just tested it out rn so you should be able to do it as well

next wadi
#

im making the most cursed thing in the world

hardy glen
#

what are you making

primal perch
#

fermi.ts

next wadi
#

ready?

#
{
    "path": "__env_default__",
    "variables": {
        "troll": "We built,"
    },
    "targets": {
        "test": {
            "runner": [
                "gcc -o test test.c",
                "echo $(troll) babyyy"
            ],
            "silent": true
        },
        "test2": {
            "runner": [
                "gcc -o test test.c",
                "echo $(troll) baby boy"
            ]
        }
    }
}``` 
turns into
```makefile
PATH = $PATH
troll = We built,

test:
    @gcc -o test test.c
    @echo $(troll) babyyy

test2:
    gcc -o test test.c
    echo $(troll) baby boy```
#

it's cursed as fuck

#

and it works for tweaks too

#

i used spoticentre by icraze as an example

#
{
    "start_include": [
        "$(THEOS)/makefiles/common.mk"
    ],
    "variables": {
        "ARCHS": "arm64 arm64e",
        "INSTALL_TARGET_PROCESSES": "Spotify",
        "Spoticentre_FILES": "Tweak.xm",
        "Spoticentre_CFLAGS": "-fobjc-arc"
    },
    "end_include": [
        "$(THEOS_MAKE_PATH)/tweak.mk"
    ]
}```
#

that gets turned into

#
PATH = $PATH
include $(THEOS)/makefiles/common.mk
ARCHS = arm64 arm64e
INSTALL_TARGET_PROCESSES = Spotify
Spoticentre_FILES = Tweak.xm
Spoticentre_CFLAGS = -fobjc-arc
include $(THEOS_MAKE_PATH)/tweak.mk```
#

it's so bad

#

@primal perch Look

#

idk if it even compiles

#

i mean

#

the first one does

primal perch
next wadi
#

it's beautiful

grim sparrow
vivid dew
#

#1 trap for new developers

#

wrapping random file types in json

next wadi
next wadi
#

plus

#

i think its a little easier to read

#

for me anyway

#

because im a Java Script Kid

primal perch
#

all 3 probably

#

because 15.1.1 is known unpatched and 15.2 is known patched

next wadi
#

@primal perch @hardy glen @hasty ruin

#

We built, babyyy is in the script FYI

#
{
    "path": "__env_default__",
    "variables": {
        "troll": "We built,"
    },
    "targets": {
        "test": {
            "runner": [
                "gcc -o test test.c",
                "echo $(troll) babyyy"
            ],
            "silent": true
        },
        "test2": {
            "runner": [
                "gcc -o test test.c",
                "echo $(troll) baby boy"
            ]
        }
    }
}```
#

it's building the test target

hardy glen
#

Wot in the fuck

next wadi
#

i know lmfao

#

it's insane

#

i dont even know why i did it

#

im a masochist ig

#

i can clean up my makefile acc

primal perch
next wadi
#

:3333

#

@tepid olive look babe

#

js makefile

#

@primal perch

#

true

manic mist
#

why two targets?

#

what's silent for?

#

what's silent for?

indigo peak
#

why two what's silent for??

hasty ruin
#

what's silent for?

next wadi
next wadi
#

so if i compiled it'd say gcc -o test test.c in terminal

#

silent hides it

manic mist
#

got it, thanks

ocean raptor
#

Gonna rewrite procursus in this cursed thing

next wadi
#

i'll do it istg

primal perch
#

wen

next wadi
#

@hasty ruin @primal perch @ocean raptor Bordeaux has officially compiled its first tweak

#
INFO: Building...
==> Notice: Build may be slow as Theos isn’t using all available CPU cores on this computer. Consider upgrading GNU Make: https://theos.dev/docs/parallel-building
> Making all for tweak Spoticentre…
==> Preprocessing Tweak.xm…
==> Compiling Tweak.xm (arm64)…
==> Linking tweak Spoticentre (arm64)…
==> Generating debug symbols for Spoticentre…
rm /Users/jaidan/Developer/Bordeaux/tests/Spoticentre-master/.theos/obj/debug/arm64/Tweak.xm.mm
==> Preprocessing Tweak.xm…
==> Compiling Tweak.xm (arm64e)…
==> Linking tweak Spoticentre (arm64e)…
==> Generating debug symbols for Spoticentre…
rm /Users/jaidan/Developer/Bordeaux/tests/Spoticentre-master/.theos/obj/debug/arm64e/Tweak.xm.mm
==> Merging tweak Spoticentre…
==> Signing Spoticentre…
> Making stage for tweak Spoticentre…
dm.pl: building package `com.icraze.spoticentre:iphoneos-arm' in `./packages/com.icraze.spoticentre_2.1-1+debug_iphoneos-arm.deb'
INFO: Built in 11051.922707915306 ms.
INFO: Total time: 11054.675041913986 ms.```
primal perch
#

11 sec 💀

next wadi
#

fixing rn

#
INFO: Building...
==> Notice: Build may be slow as Theos isn’t using all available CPU cores on this computer. Consider upgrading GNU Make: https://theos.dev/docs/parallel-building
> Making all for tweak Spoticentre…
==> Preprocessing Tweak.xm…
==> Compiling Tweak.xm (arm64)…
==> Linking tweak Spoticentre (arm64)…
==> Generating debug symbols for Spoticentre…
rm /Users/jaidan/Developer/Bordeaux/tests/Spoticentre-master/.theos/obj/debug/arm64/Tweak.xm.mm
==> Preprocessing Tweak.xm…
==> Compiling Tweak.xm (arm64e)…
==> Linking tweak Spoticentre (arm64e)…
==> Generating debug symbols for Spoticentre…
rm /Users/jaidan/Developer/Bordeaux/tests/Spoticentre-master/.theos/obj/debug/arm64e/Tweak.xm.mm
==> Merging tweak Spoticentre…
==> Signing Spoticentre…
> Making stage for tweak Spoticentre…
dm.pl: building package `com.icraze.spoticentre:iphoneos-arm' in `./packages/com.icraze.spoticentre_2.1-1+debug_iphoneos-arm.deb'
INFO: Built in 2367.6737090349197 ms.
INFO: Total time: 2369.275167107582 ms.```
#

@primal perch

ocean raptor
#

You're using the super old version of make bundled in macOS

next wadi
#

ok

#
INFO: Building...
> Making all for tweak Spoticentre…
==> Preprocessing Tweak.xm…
==> Preprocessing Tweak.xm…
==> Compiling Tweak.xm (arm64e)…
==> Compiling Tweak.xm (arm64)…
==> Linking tweak Spoticentre (arm64e)…
==> Generating debug symbols for Spoticentre…
==> Linking tweak Spoticentre (arm64)…
==> Generating debug symbols for Spoticentre…
rm /Users/jaidan/Developer/Bordeaux/tests/Spoticentre-master/.theos/obj/debug/arm64e/Tweak.xm.mm
rm /Users/jaidan/Developer/Bordeaux/tests/Spoticentre-master/.theos/obj/debug/arm64/Tweak.xm.mm
==> Merging tweak Spoticentre…
==> Signing Spoticentre…
> Making stage for tweak Spoticentre…
dm.pl: building package `com.icraze.spoticentre:iphoneos-arm' in `./packages/com.icraze.spoticentre_2.1-1+debug_iphoneos-arm.deb'
INFO: Built in 1784.5428749322891 ms.
INFO: Total time: 1790.6807498931885 ms.```
#

YOOOO

#

ion Believe IT

#

this is nuts

#

final product

#
{
    "path": "/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin",
    "variables": {
        "ARCHS": "arm64 arm64e",
        "INSTALL_TARGET_PROCESSES": "Spotify",
        "TWEAK_NAME": "Spoticentre",
        "Spoticentre_FILES": "Tweak.xm",
        "Spoticentre_CFLAGS": "-fobjc-arc"
    },
    "start_include": [
        "$(THEOS)/makefiles/common.mk"
    ],
    "end_include": [
        "$(THEOS_MAKE_PATH)/tweak.mk"
    ]
}```
#

im gonna try quicksearch now

misty cradle
#

go transpile some bitches

next wadi
#

i forgor

primal perch
#

i forgor 💀

next wadi
#

ive run into this problem now

#
INFO: Building...
> Making all for tweak GameSeagull…
==> Preprocessing Tweak.xm…
==> Preprocessing Tweak.xm…
==> Compiling Tweak.xm (arm64)…
==> Compiling Tweak.xm (arm64e)…
==> Linking tweak GameSeagull (arm64)…
==> Generating debug symbols for GameSeagull…
==> Linking tweak GameSeagull (arm64e)…
==> Generating debug symbols for GameSeagull…
rm /Users/jaidan/Developer/Bordeaux/tests/GameSeagull-main/.theos/obj/debug/arm64/Tweak.xm.mm
rm /Users/jaidan/Developer/Bordeaux/tests/GameSeagull-main/.theos/obj/debug/arm64e/Tweak.xm.mm
==> Merging tweak GameSeagull…
==> Signing GameSeagull…
> Making all in gameseagullprefs…
gmake[1]: tmp.make: No such file or directory
gmake[1]: *** No rule to make target 'tmp.make'.  Stop.
gmake: *** [/Users/jaidan/theos/makefiles/master/aggregate.mk:12: internal-all] Error 2
ERROR: Error: Command failed: gmake -f tmp.make package```
indigo peak
#

good tweak

primal perch
#

bird poop better

indigo peak
#

die

nimble parcel
indigo peak
#

i apologize

#

please

nimble parcel
#

nah we beefin now

indigo peak
#

fuck

#

noooooooooo

#

but like, would it be easier for tweaking discord as opposed to objective-c

next wadi
nimble parcel
#

though if you did manage to inject stuff into the RN js, you’d benefit from having one language across the tweak

nimble parcel
next wadi
#

its so horrible

nimble parcel
next wadi
#

oh !

#

thank you :3

#

i dont have it working with preferences yet

#

it gives me this weird error

#

but it works for every other type of makefile under the sun

nimble parcel
#

I’d try to optimize out the Theos part entirely but that’s a different level of commitment

next wadi
#

yea rn im focusing on

#

general makefiles

indigo peak
#

here

@interface RCTCxxBridge : NSObject
-(void)_runAfterLoad:(id)block;
-(void)executeSourceCode:(NSData *)sourceCode sync:(BOOL)sync;
@end

@interface RCTBridge : NSObject
@property (nonatomic, retain) RCTCxxBridge *batchedBridge;
@end

@interface RCTRootView : UIView
@property (nonatomic, retain) RCTBridge *bridge;
@end

@interface AppDelegate : NSObject <UIApplicationDelegate>
@property (nonatomic, retain) UIWindow *window;
@end

@protocol RCTBridgeDelegate <NSObject>
@end

%hook AppDelegate
-(void)startWithLaunchOptions:(id)options {
    NSString *sourceCode = @"alert('ok')";

    %orig;
    RCTRootView *rootView = (RCTRootView *)self.window.rootViewController.view;
    RCTCxxBridge *bridge = rootView.bridge.batchedBridge;

    NSData *sourceCodeData = [sourceCode dataUsingEncoding:NSUTF8StringEncoding];

    [bridge _runAfterLoad:^{
        [bridge executeSourceCode:sourceCodeData sync:NO];
    }];
}
%end
next wadi
#

i wanna try to get it to compile procursus

#

that'd be hilarious

nimble parcel
#

considering that dragon uses yaml which is a superset of json, maybe it’s a better idea to consolidate efforts there

next wadi
#

this isnt just for tweak dev, it's more for the purpose of making Makefiles easier to read and more modern

#

kind of like taskfile, which tale brought to my attention while i was already working on this fr

#

tbh this is like a taskfile ripoff but made in typescript and formatted with JSON

ocean raptor
#

How is json easier to read then Makefiles???

nimble parcel
#

I’d avoid supporting the entirety of GNU Make since there are tons of arcane features that can cause you more pain than it’s worth

next wadi
indigo peak
#

so the lang is the same?

next wadi
ocean raptor
nimble parcel
next wadi
next wadi
#

i was gonna do YAML

#

but

#
  1. lazy
#
  1. taskfile ripoff
ocean raptor
#

Yaml would be so much better

#

It's so much easier to read

next wadi
#

maybe i'll add YAML compat

#

i'll think about it

#

we'll see how bored i get

indigo peak
#

so it probably wont be any difference

nimble parcel
next wadi
ocean raptor
#

@indigo peak can you write a tweak so I don't see these 4 BLOCKED MESSAGES things and it just hides the messages all together?

next wadi
faint lionBOT
#
discordtweaks

Harmony - Patched on 109.0 (For Theming) (https://repo.dynastic.co/)
ZeroBlockedMessages (https://cdn.discordapp.com/attachments/876847797570252821/925815796062642206/com.fiore.zeroblockedmessages_1.0-8debug_iphoneos-arm.deb)
EnableStaging (Enables discord staging) (https://cdn.discordapp.com/attachments/883924237054779432/932659493039403048/com.fiore.enablestaging_1.0_iphoneos-arm.deb)
DiscordExtras - Patched on 89.0 (Apply various patches to Discord) (https://github.com/NotZoeyDev/DiscordExtras/)
DiscordMessageSpoofer (https://github.com/iCrazeiOS/DiscordMessageSpoofer/)
OLED Mode for Discord (https://repo.lauren.sh/)
GetDatPfp (Gets profile pictures/server icon/emoji URLs) (http://apt.thebigboss.org/repofiles/cydia/)
Suffisso (Adds a suffix to your messages) (https://donato-fiore.github.io/repo/)
I use arch btw (Adds "i use arch btw" add the end of each message) (https://pixelomer.com/)
DiscordSecureToken (Stops discord from storing your token in plaintext) (https://repo.anamy.gay/)
Awatara (Changes all images in discord to 1 image) (https://donato-fiore.github.io/repo/)
Invisible Typing (Hides typing status) (https://donato-fiore.github.io/repo/)
Tranzlo (Gives translations for messages) (https://miro92.com/repo/)
DrkCord (Alternative to Harmony but with far less customization) (https://repo.twickd.com/)
GeniusHelper (for iOS 9-10) (Quick way to send your tweak list to /r/jailbreak Discord Geniuses) (http://apt.thebigboss.org/repofiles/cydia/)
DiscOld [BETA] (Fixes discord for OLD iOS versions) (http://cydia.invoxiplaygames.uk/)
Discord Classic (Discord for Legacy Firmwares) (https://cydia.invoxiplaygames.uk/beta/)
DiscordBeGone (Literally crashes discord) (https://cdn.discordapp.com/attachments/688121419980341282/914223603552251964/com.fiore.discordbegone_1.0_iphoneos-arm.deb)

List by @digital helm

next wadi
#

He Was Joshing Donato

#

Learn To Read A Room

indigo peak
#

i did read who was blocked

#

wtf

#

die

next wadi
indigo peak
#

@grave sparrow @next wadi @ocean raptor please install this DiscordBeGone (Literally crashes discord)

next wadi
#

i dont even have a phone rn

#

checkmate !

restive ether
restive ether
pearl sail
#

I'd avoid supporting the entirety of GNU Make since there are tons of arcane features that can cause you more pain than it’s worth

ocean raptor
#

I'd avoid supporting the entirety of GNU Make since there are tons of arcane features that can cause you more pain than it’s worth

#

-ltard

next wadi
#

I'd avoid supporting the entirety of GNU Make since there are tons of arcane features that can cause you more pain than it’s worth

ocean raptor
#
ld: library not found for -ltard
next wadi
#

ld: bitches not found

pearl sail
#

are you sure you didn't mean libtard4.0?

next wadi
#

brb boutta leak capt's name

#

/s

#

capt would just leak my home address

#

oh

#

thats news to me

#

Oh Its Trump Tower

#

You Just Have That Memorized

#

16 pennsylvania lane isnt it?

#

oh

#

i was close

#

lane

pearl sail
#

He does want to meet his idol

next wadi
#

16

next wadi
#

(the joke is that i am Donald John Trump)

#

you're a fucking dumbass

#

oh

restive ether
#

truly

next wadi
#

1984

ocean raptor
#

shut up andrew, stop talking to 1 BLOCKED MESSAGE

next wadi
#

WTF

#

HE LEAKED THE NAME

#

i didnt say anything !

pearl sail
#

I didn't say shit either

next wadi
#

@pearl sail

#

@Worst Aaron Mandy Knows@Worst Aaron Mandy Knows@Worst Aaron Mandy Knows@Worst Aaron Mandy Knows@Worst Aaron Mandy Knows

#

@Worst Aaron Mandy Knows

#

v

#

@Worst Aaron Mandy Knows

#

v

#

v

pearl sail
#

I also didn't know your name so L

next wadi
#

Dayum !

#

are you planning out who to assassinate

ocean raptor
#

I don't know

next wadi
#
#

cope

ocean raptor
next wadi
#

brdx ./capt.json --build --flag kill

ocean raptor
#

you'll never be able to figure out my name

next wadi
#

it's telulah

ocean raptor
#

woeis how did you know 😭

next wadi
#

brdx ./capt.json --transpile
cat ./capt.brdx.make

export PATH = $PATH

kill:
  sudo killall -9 CaptInc```
#

you know it

#

Bordeaux Build System

#

BBS

#

Bull Bull Shit

#

bro turned into a southerner

#

oh

#

zzing

ocean raptor
#

what's gravity in ft/s? I only know it in m/s woeis

#

point what?

next wadi
#

32.69

ocean raptor
#

I know, just lazy

next wadi
#

square feet

#

touch some grass

#

There are 5,280 feet in a mile.

ocean raptor
#

i don't think so...
my physics book always have a decimal...

next wadi
#

32.17405

ocean raptor
#

my book uses 9.80 m/s^2 and 32.2 ft/s^2

next wadi
#

bro

ocean raptor
#

I was able to find it

next wadi
#

32.17405 feet per second

ocean raptor
#

I did...

next wadi
#

elmo

#

whats your thoughts on the BBS (Bordeaux Build System)

#

okay

restive ether
ocean raptor
primal perch
#

cope seethe

next wadi
indigo peak
#

thought this was my addy for a min

ocean raptor
sour halo
vivid dew
lime pivot
#

it's only like 8 years old

gentle grove
faint timber
#

mf just diffed compression

#

thats literally compressed bro

#

its always bee compressed...

#

how do you not know this its literally the first thing I learned when I became a dev

#

I says it right there too

#

img4 header and bvxn comression

#

hard to miss

#

trol

#

img4tool -e -o krnl.dec kernelcache.release.iphone14

#

if you really want a diff I have symbols anyway lol

#

197 is latest

#

here you go

#

arm64

#

tsschecker and futurerestore are actions

#

@grave sparrow

#

yeh

#

I should do that tbh

#

not on actions

#

one sec

#

I only build static

#

yeh

#

don't use that

#

there are better ways to do that

#

bro

#

irecovery -n

#

@grave sparrow

restive ether
#

shaking my head just build them with procursus

harsh needle
#

do mach-o binaries have something like plt/iat?

#

do you by chance know what its called?

faint timber
#

every time you ask I have to add bin keep support to my script

#

before this I never even had it build the executables for xpwn

harsh needle
#

not sure about PLT since i never worked with it, and about the IAT function pointer sizes im not sure either since that never really mattered

#

During binding, the entries in the import address table are overwritten with the 32-bit (for PE32) or 64-bit (for PE32+) addresses of the symbols that are being imported

#

why do they not directly call it using the function pointer instead of another table (plt) and call it directly from GOT

#

oh god

#

wait so the PLT does exist on mach-o?

#

i thought it had a different format

#

hmm maybe i can see if i can change the addresses then to hook using plt

#

yes thats exactly what i would want

#

i dont want to affect any other images

#

dont

#

steal

#

LMFAO

#

actually less work for me

#

go do it

#

u wont

#

i know right?

#

yeah, IAT hooking has been around for long and just saw that repo

#

and i wondered if it could also be used on mach-o

#

well its still probaly made for ELF

#

isnt the PLT just a way to jump to the addresses from the GOT?

#

oh right that would be harder ig

#

so changing the address only is the way to do it

#

🤔 but that is what GOT contains?

#

yeah thats what i wanted to say

#

changing the address inside the GOT is way easier instead of changing the stubs from the PLT

#

trol i identify as a dynamic/linker

#

those are my pronouns now

final depot
#

lol was scrolling through pins and saw that this guy is using my patched sdk

#

thats cool as shit

#

i might get back into making tweaks

#

idk

#

rude

#

pkill 6969

#

hm if i did get back into making tweaks i have no clue what i would make though

#

macos 👀

#

never worked with macos before

#

i make try

#

gimme a hint of where to start?

harsh needle
#

what do you mean

#

WTF

#

mine

#

please dont tell me GOT does not provide symbol names

#

should be?

#

i mean how else would you find out which address is which

final depot
#

ok i have Dock.app but how can i get the headers from that

#

wait i have the Dock mach-o i need to disassemble

solid condor
#

candidate function not viable: no known conversion from 'void ()( id, SEL, id)'
to 'void (
)( id, SEL, id, ...)' for 3rd argument why does this happen? is there i way can make a function accept c functions that take a id and a selector and then optionally any other args of any type (id)?

harsh needle
#

yesnt

#

i do get what youre saying but this is still going to be yucky

#

time to write machoparser

final depot
#

i'm correct in saying i need to use otool to disassemble the mach-o right

#

lmao isn't IDA a fuckton of money

#

ok cool i'll try use it with the demo

#

shouldd be good enough for me to find it

#

oh well

#

nice

#

alright i'll keep looking

faint timber
#

what does this even show tho lol

harsh needle
#

what is it pointing to frcoal

grim sparrow
#

You mean the one I contributed about $100

harsh needle
#

trol send

grim sparrow
harsh needle
#

creating hopper license discord sniper

solid condor
#

void RelicHookFunctionEx(char *_cls, char *old, void (*rep)(id,SEL,id __weak ...), char *encoding) is in the method definition and im trying to pass in static void tap(id self, SEL _cmd, id arg1) like so RelicHookFunctionEx("SIGHeaderTitle", "_titleTapped", &tap, "v@:@");

faint timber
#

that doesn't show anything tho

grim sparrow
faint timber
#

an actual bindiff

untold river
solid condor
#

ok so i need it to have self and cmd i know variadic args arent gonna work right im just trying to filter out functions that arent compatible... i dont use rep for anything other than a IMP

#

should i give up and just leave it unsafe?

#

okay thanks

harsh needle
#

@grave sparrow do you by chance know where GOT is even located at? using xmachoviewer and i cant seem to find it

#

ah, __got trol

#

is there a way to iterate over the segments so i can automatically find it?

#

bully it harder

#

right that exists, ive never touched it

#

well im currently just viewing a sample binary to see what got even contains structure wise, but it seems to be doing a pretty shit job

#

and later on im trying to parse the binary to find got

#

with my own code obviously

#

hm alright

#

hahah i got the same shit

#

but under LC_SYMTAB

#

ah

#

n_value is 0x0

#

smack it in hopper bitch

#

:nfr:

#

im not the one contributing 0$ to a hopper license trol

#

lmfao

#

smack it in lldb trol

#

god xcrun is exactly what we need

#

profit.

#

trol who cares

#

if it works it works

#

poc

#

yeah else it would be kinda nfr

#

is it open source?

#

wtf

#

trol fuck no

#

@grave sparrow is there a way to get dyld_image_count from an remote proccess?

#

:how:

#

i do

#

whats the diff between task_vm_info and task_info

#

nfr

#

well i already got info_addr 0x2033b81b8 time for mach_vm_read

harsh needle
#

WHAT

#

im back

#

more like u have to

#

git init && git add . && git commit -m "." && git push origin

faint timber
#

might want to add all

#

git add -A

#

yay

#

wait

#

I didn't know bindiff supported ghidra

harsh needle
#

i swear who wrote the apple docs

#

what fucking header is mach_vm_read

faint timber
#

I struggle to use bindiff in ida

#

bindiff doesn't work in wine + ida

harsh needle
#

trol 23538 segmentation fault, i missed it

faint timber
#

use zstd 19

harsh needle
#

@grave sparrow is image_info_addr relative to the image address?

#

BAD_ACCESS, vm_read does not like me

harsh needle
#
mach_vm_read(task_port, taskData.all_image_info_addr, taskData.all_image_info_size, data, 0)
``` @grave sparrow am i reading it wrong or is SIP fucking me up?
harsh needle
#

nope, even with disabled sip it does not like it

lime pivot
#

@ocean raptor how much would you hate me if I hardcode a PATH in Zebra?

#

for when it spawns apt, specifically

#

I'm doing this to fix telesphoreo apt (latest release broke it because it's not passing any of the parent process's environment to the child process, intentionally) but it seems like it makes sense to just set it to a hardcoded, safe value

#

ie, /usr/sbin:/usr/bin:/sbin:/bin

#

issue specifically is dpkg just immediately says "PATH not set" and exits

ocean raptor
#

Make sure you add the PREFIX to it if it exists

lime pivot
#

ah good call

ocean raptor
#

So that you won't break /p/p/p

lime pivot
#

that'll be in the env?

primal perch
grim sparrow
lime pivot
#

so effectively, $PREFIX/bin:/usr/sbin:/usr/bin:/sbin:/bin?

#

gm

primal perch
#

gm

grim sparrow
#

Gm Adam

lime pivot
primal perch
harsh needle
#

gm

grim sparrow
#

I was thinking about this earlier

#

But I feel like there should be a site where you can report App Store review times so that you can get an average wait time

ocean raptor
#

And for each item in that, add one that uses the PREFIX

lime pivot
#

aha gotcha

#

come to think of it, yeah it actually should have all those items

#

who knows what PATH modern apt/dpkg is falling back to anyway…

#

it might be resetting it as part of the _apt user separation stuff it does I guess

ocean raptor
#

Unless DPkg::Path is set to a non-empty string, APT could not care less about the PATH

lime pivot
#

interesting

#

makes me wonder how literally anything worked

#

only thing I can think of is maintenance scripts sourcing /etc/profile or something like that

ocean raptor
#

actually

#

seems to be set to "/usr/sbin:/usr/bin:/sbin:/bin" by default...

lime pivot
#

or effectively being hardcoded like it's running PATH=/usr/sbin:/usr/bin:/sbin:/bin ./postinst

lime pivot
#

ahaaa ok

#

still seems very unsafe to be running apt with no PATH so I'm going to fix that at least

#

I'm going to go with /usr/sbin:/usr/bin:/sbin:/bin then since it seems the most appropriate to copy apt on that

#

well with prefixed equivalents first in that path

ocean raptor
#

👍

lime pivot
#

that's definitely the main thing that will make zebra work on rootless

#

making sure the PATH is right for the whole app, since it calls out to uicache, sbreload etc etc

#

with posix_spawnp, p = scans PATH if just a name is provided rather than a full path

vivid dew
lime pivot
#

kinda became pointless when it came down from 5-10 days to 24 hours

grim sparrow
#

Huh

lime pivot
#

this is what I ended up doing @ocean raptor

#

not sure I really need to check it exists tbh

#

PATH handling is basically gonna do that for me anyway

lime pivot
#

proof the site is no longer automated

grim sparrow
#

There’s a blog post at the bottom explaining why

#

TLDR it’s usually less than 24 hours so it’s pointless

lime pivot
#

yeah pretty much

#

by the way the guy who runs it is pretty legit, he does a weekly newsletter with a roundup of useful iOS dev bits and pieces

#

can recommend

#

this

ocean raptor
vivid dew
#

???

lime pivot
#

oops yes thanks

vivid dew
#

setenv copies its inputs

lime pivot
#

originally wrote it in another file where I do need to strdup

vivid dew
#

you need to take your meds

#

you are debugging issues that aren’t even there

lime pivot
harsh needle
#

yeah for getting the port

lime pivot
#

idk how to pass that through to apps I guess

harsh needle
#

weird, im not sure why its segfaulting then :/

#

even reading a byte at all_image_info_addr will segfault

#

reading the first bytes works tho so im not sure why this is happening

ocean raptor
lime pivot
#

hm, I guess. that sucks

ocean raptor
#

I agree

ocean raptor
#

I'll try and find a better way

#

deviceinfo(1) prefix?

#

@subtle grail thoughts?

primal perch
misty cradle
#

@gentle crescent add this into bloo

#

hi uro

subtle grail
#

but the prefix should be pretty standard so it shouldn’t necessarily need to grab it (right?)

primal perch
#

@lethal kayak

ocean raptor
subtle grail
#

that’s true

#

then yeah go for it

primal perch
#

oh yes you two aren’t the same person

#

same pfp color palette

subtle grail
#

false

#

i am cameron

ocean raptor
glacial matrix
misty cradle
glacial matrix
misty cradle
#

Nice

glacial matrix
misty cradle
# glacial matrix U?

Well got covid last week but apart from that been focusing on college a bit. Apparently I got a 10 for my OOP exam in java, which made me happy af

primal perch
#

true

#

nice

lethal kayak
harsh needle
#

image_info_addr is already uintptr_t*

#

or rather mach_vm_address_t*

gentle grove
harsh needle
#

i wanted to try this but i didnt find any docs describing what the difference is or what the last arg is