#development
1 messages · Page 572 of 1
i really do prefer it a ton to ios
every app runs in a jvm
deez
rip getting a google map result when you type an address now
it’s not nearly as cohesive so there’s more input lag on the majority of phones as well as frame misses with rendering
one of the bills was like a straight anti trust bill aimed at facebook i think
what shitass android phone are u using
one of the bills gave AG’s more power in anti trust lawsuits
most oems have measurably higher lag than the iphone but that was from iphone 5 days
idk about modern
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
the biggest oem samsung ships with literal malware ootb
apple would never do that
I remember using nova launcher… i wish i still had an android but my s8 plus is in ruins
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
biggest reason I love it
Esp with unlocked bootloaders
doesn't require kernel exploits to take advantage of the system
it’s not like apples gonna turn it on
Do universal variants have unlocked bootloaders still?
best part is you dont even need this for most of it
also PiP in YouTube doesn't require a kernel exploit 
Yea true. But i loved fucking with a rooted android
if i do ever get an android im only using custom roms
Lmao remember xposed
That horrifying thing
The xposed framework.
Custom roms make the phone fun to use. Especially custom kernels too
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
Yea lowkey wish i had an android. Maybe like a oneplus phone
But shit like facetime/imessage holds me back
just RE apsd, IDS, and the iMessage frameworks and reimplement it
Lmao too lazy to do that
that’s why i like my iphone and it just works for phone stuff
huh
F
easiest way to help it become more stable is lmk about crashes
i don’t know how that happened
@gentle crescent wtf
filing issues works but you can just ping me here or w/e
Damn i have alot of crashes usually with swift. Also i tried to reverse a tweak to see if there was anything malicious called dzsnap++ which supposedly works on the latest snapchat without causing bans?
i actually turned off some safeguards that prevent crashes with 0.20.1 so i can find problems in a few areas
It crashed with that
oh i think ik why on the swift bins
Let me pull it up rq

not sure how people get tricked into believing these no names magically bypass snapchat detection
based
all i’ve done for 4+ years is just turn off injection
id use another checkrain esque jb in an instant but i’m never touching semi untethered
just don't have friends
how is it so bad
same
most of this server already ahead of the curve
Yea idk. But its reported to be working with no bans which is nuts. He’s doing something weird with hookmessageex or some shit.
jb is dead
I didn’t really look at it much
how could i have friends, I just look at logs all day
I just deleted my snap account yesterday
be like hayden, delete everything
no more twitter or anything
Same. I deleted ig, twitter(except a dummy account for dev), snapchat
I need to delete youtube
And twitch
socials truly overrated for anything other than talking to people you actually know
Too much comparing your life to other peoples
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
already fixed that one as well
really i updated wtf
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
also i think the same error when opening a binary filled with swift
python3 -m pip install --force-reinstall git+git://github.com/cxnder/ktool
@compact swift did you get a change to test this...
np
there's some random assorted info about swift types displayed now, but this is more just debugging stuff for me while i work on it, nothing actually useful yet, probably
but it shouldn't have any issues displaying the backing objc classes now
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;
}
swiff
nice it works now
on both binaries
i guess the shit he is doing is supposedly "bypassing" snap's detection
not even stripping syms
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
dont get why ppl need to tweak snapchat so bad
saving nudes, location spoof, uploading media
no jailbreaker is getting nudes
ew linux
lmao

i compile my window manager so u know i get bitches
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
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
dang
!strcmp
that's an ugly hack
the code is much clearer if you do == 0

they mean the same
if someone reads that code and is not intimately familiar with C, they may mistake it for "these two strings are NOT equal"
this is not code golf
man 3 strcmp
anyone following this "style" is dumb, you can't change my mind
i think you policing your opinions is dumb too
intentionally misleading code is shit, you can't excuse it with "should have read the man page"
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?

if you want i guess
you're completely entitled to have a (wrong) opinion

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

i’m a genius
snapchat would’ve been all over that
i don’t have a test device
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
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

wholesome
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 forgot about that
https://github.com/CRKatri/entitlements
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
@compact swift here
ah, ASAN is only supported on the simulator, not on real phones

My favorite
it finally works
wholesome
very
does anyone know how to check if the device is locked outside of springboard
private or public idrc
can someone decompile AppSupport.framework and show me -[RadiosPreferences notifyTarget:]?
maybe this? (sorry about light mode, there's no dark mode in High Sierra)
curious question, how come you're still on high sierra
I upgraded from Sierra last month 
juice
i have many questions
do you really want to know the answers though?
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"
MacBook Pro (Retina, 15-inch, Mid 2015)
Funny how Catalina and Big Sur were both very stable
Sierra has been for these past 5 years
shouldn't that be able to run Monterey?
or did I misread the requirements
then do tell why you're running high sierra, monterey is good-ish
Nvidia egpu 
not on this mac, I don't think. it says it needs Thunderbolt 3 ports
Nope, thanks for the help
@lime pivot I just purchased a blank orange hoodie, no idea when I’ll have time to get it pressed
eta s0n 😀

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)
who made birdpoop
Cringe
bird poop

who doesn't
that’s epic man
pirated bird poop
Nike x BirdPoop
Nike x Chariz
I’d 100% do that if they gave a shit about me lmao
I would buy a chariz shoe
my pronouns are tcp/ip
my pronouns are sepi/rsep
deez/nuts
Yeah
good to know
Is there anyway to get safaridriver running on ios without a mac? (Directly from the device)
What is safaridriver
Professional driver who goes on a safari in Africa
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
just use github copilot it can autocomplete things like that
sometimes it’s easier to click 100 times than type one key
also true
copilot slaps
working in nano over ssh on my server bc i'm lazy
wait until there's zero width spaces inside that text and then you spend hours debugging because of it 
There's a vsc setting for that
copilot for nano wen
wen
huh, good q, no idea actually

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

is this kppless or checkra1n
or macOS
platform isn't enough to bypass that? huh
oh
seems like an amfi thing, check there instead
I don't understand how to add a timeout to a CFRunLoop, can someone help me
you should be able to use CFRunLoopInMode instead of CFRunLoop to add timeouts
Edit 1: apple docs ref
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Multithreading/RunLoopManagement/RunLoopManagement.html#//apple_ref/doc/uid/10000057i-CH16-SW22
Explains how to use threads in Cocoa applications.
How do i increase/decrease the volume programically
thanks ab
how can one develop keyboard tweaks without being able to investigate it using flex?
guess
im thinking frida.. any better guesses?
i found the class i needed, from this moment ill just frida its ass to follow the flow
thanks!
last name slaves?
.
he he he ha
he he he ha
start with std cout and then you should be able to handle about anything
Until you run into bitwise then get confused by cout << notation 
And use cppreference
To learn the std library
https://youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb also this. probably one of the best things i came across
Especially watch the videos on the compiler/linker
Its not a beginner series. He just explains certain stuff really well
idk why but that guy is annoying to watch
it’s like he’s used to making clickbait videos
and has that tone
Who
haven’t really watched for long so i’m not going to rate the quality of the content though
i hear it’s good
Condomheads be like I’m not addicted I just need them every single time I have sex or something terrible will happen
1080
14823
How to reference an img folder in resources then load all images in folder to an array of imageviews? Using swift and wsl
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;
}
location = /ldid {
return 301 $scheme://man.cameronkatri.com/ldid/ldid.1;
}
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...
My solution is throwing the crash error: "The folder "pics1" doesn't exits." 😭 Please lmk if you guys find anything on this.
real
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.
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.
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
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
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.
Is that objective-c?
^
It looks like that's my solution, but I'm using swift and I don't know enough about objective-c to use both in one project.
it’s available to both languages like most apis
in swift it’s paths(forResourcesOfType:inDirectory:)
ghost blah blah blah
weird vore but ok
would you eat [them]?
no
Thanks! This is what ended up working:
(This is prob easier to read)
Thanks
@silver rampart wondering how you got iOS 15 runtime headers from a device? did I miss something?
DyldExtractor on a dyld shared cache set + ktool on the frameworks in the DSC
same as any other version except dyldex and ktool just barely support iOS 15 changes enough to do headers rn
I ran it on github actions
also what changed in 15
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
since when
you can pull dsc from an unjailbroken device too
yeah iSH literally has read access to it
How
Only kernel level .TEXT not data or daemon
Try looking into mac_policies
Yalu102 and pongo kpf are a good mac policy reference
.
is apple's IMP of MAC open src?
is apple's ÇÞÂÎ¥¢ of ¾\®µ´ open src
snarky comment about "how tf else can your image load frameworks" here
every framework will now be loaded in a separate process for security reasons
all memory access will be ipced back and forth
wholesome
@restive ether
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() { }
didn't ask
can’t believe you made this
believe it
I thought you might enjoy it
cameren, the manpage guy
when are you gonna write the manpage for zsign?
noooo
you know you want to
put too much sugar in my coffee bros

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.
@ocean raptor "remove bashisms" any reason to for a dev tool?
make theos go zoom
Well first of all the commit name is wrong, it should say change shebangs to /usr/bin/env, secondly I just did a grep | xargs sed
alright that’s fine then
Shouldn’t that allow for simpler code like this?
NSLog(`Variable a = ${a}`)
Hi Welcome, Doc strange here but codename is 2z.. I'm glad to share my very first python project on ios.. Appsync Unified 1.0 for Non-jailbroken ios 15 this is based on karens repo the tweak used on jb device where you can install ipa's as many as you can. I ported it to njb ios.. I'm going to release it very soon just fixing some bugs ✌️😉
If ...
gonna write a lsp server for mandoc 
chad
I decided not to 
That is true, it’s just off putting seeing NSLog declared with ‘function’
mega mind, no injection required
Good luck reading the lsp specification
@hardy glen would you know if it's possible to run frida-trace on a jailed device
Inject JavaScript to explore native apps on Windows, macOS, GNU/Linux, iOS, Android, and QNX
I think you should be able to.
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
if you don't want to do it manually https://github.com/haikieu/xcode-developer-disk-image-all-platforms/tree/master/DiskImages/iPhoneOS.platform/DeviceSupport
@indigo peak 1. Mount image 2. move gadget to the correct directory https://github.com/frida/frida/releases/tag/15.1.16 (get it from here). 3. run frida-trace and you should be good
just tested it out rn so you should be able to do it as well
im making the most cursed thing in the world
what are you making
fermi.ts
revolutionizing the makefile, baby
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

it's beautiful
this is more effort though

Not Really
plus
i think its a little easier to read
for me anyway
because im a Java Script Kid
@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
Wot in the fuck
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

why two what's silent for??
what's silent for?
one's make test and the other's make test2
by default, it shows the commands that make is running in the terminal
so if i compiled it'd say gcc -o test test.c in terminal
silent hides it
got it, thanks
Gonna rewrite procursus in this cursed thing
wen
@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.```
yea no parallel building
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

Use gmake
You're using the super old version of make bundled in macOS
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
go transpile some bitches
man
i forgor 💀
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```

good tweak
die
damn ok
nah we beefin now
fuck
noooooooooo
but like, would it be easier for tweaking discord as opposed to objective-c
@nimble parcel rate this from cursed to cursed
honestly probably not since the objs environment is isolated from the React Native environment
though if you did manage to inject stuff into the RN js, you’d benefit from having one language across the tweak
gonna pretend like i didn’t see this
jk it’s actually a nice idea
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
I’d try to optimize out the Theos part entirely but that’s a different level of commitment
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
considering that dragon uses yaml which is a superset of json, maybe it’s a better idea to consolidate efforts there
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 
tbh this is like a taskfile ripoff but made in typescript and formatted with JSON
How is json easier to read then Makefiles???
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
because im a JavaScript kid
@nimble parcel so you think that converting this to OBJS would be better?
so the lang is the same?
you're probably right 
i said multiple times it was a gimmick project anyway
JSON is easier for a computer to read, but Makefiles are a thousand times easier to read for a human
I don’t think you’d see much difference

i was gonna do YAML
but
- lazy
- taskfile ripoff
the way i use this is by having a webserver host the js code and it just does a get request of that server so i can easily change the code without a recompile
so it probably wont be any difference
i call this pattern RCE as a Service
I Know Bro Aint Ripping Off Discord WitchCraft @primal perch /s
@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?

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
I'm not jailbroken
tweak
@grave sparrow @next wadi @ocean raptor please install this DiscordBeGone (Literally crashes discord)
checkmate libtard
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
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
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
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
ld: library not found for -ltard
ld: bitches not found
are you sure you didn't mean libtard4.0?
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
He does want to meet his idol
16
im his idol
(the joke is that i am Donald John Trump)
you're a fucking dumbass
oh
truly
1984
shut up andrew, stop talking to 1 BLOCKED MESSAGE
I didn't say shit either
@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
I also didn't know your name so L
I don't know
@ocean raptor https://www.npmjs.com/package/bordeaux
cope
brdx ./capt.json --build --flag kill
you'll never be able to figure out my name
it's telulah
how did you know 😭
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
32.69
I know, just lazy
i don't think so...
my physics book always have a decimal...
32.17405
my book uses 9.80 m/s^2 and 32.2 ft/s^2
bro
I was able to find it
32.17405 feet per second
I did...
too french 🧌
stop copying me https://github.com/CRKatri/BBS
cope seethe
wtf they even have the same name
thought this was my addy for a min
@lime pivot sick tweak bro https://repo.packix.com/package/ws.hbang.hbhackertools/

totally sick man
it's only like 8 years old
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
shaking my head just build them with procursus
do mach-o binaries have something like plt/iat?
do you by chance know what its called?
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
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?
@grave sparrow
https://github.com/kubo/plthook
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
i identify as a dynamic/linker
those are my pronouns now
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?
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
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
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)?
yesnt
i do get what youre saying but this is still going to be yucky
time to write machoparser
i may have fucked this up because i literally have a massive assembly output
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
what does this even show tho lol
what is it pointing to 
Lmao
still lurking for that hopper license
creating hopper license discord sniper
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@:@");
that doesn't show anything tho
and theres the issue
an actual bindiff
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
@grave sparrow do you by chance know where GOT is even located at? using xmachoviewer and i cant seem to find it
ah, __got 
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
A graphical Mach-O viewer for macOS. Powered by Mach-O Kit. - GitHub - DeVaukz/MachO-Explorer: A graphical Mach-O viewer for macOS. Powered by Mach-O Kit.
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 
lmfao
smack it in lldb 
god xcrun is exactly what we need
profit.
who cares
if it works it works
poc
@grave sparrow https://stackoverflow.com/questions/26945590/how-to-obtain-the-list-of-loaded-symbols-of-another-process
yeah else it would be kinda nfr
is it open source?

wtf
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
WHAT
im back
more like u have to
git init && git add . && git commit -m "." && git push origin
might want to add all
git add -A
yay
wait
I didn't know bindiff supported ghidra

23538 segmentation fault, i missed it
use zstd 19
@grave sparrow is image_info_addr relative to the image address?
BAD_ACCESS, vm_read does not like me
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?
nope, even with disabled sip it does not like it
@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
Make sure you add the PREFIX to it if it exists
ah good call
So that you won't break /p/p/p
that'll be in the env?
rip
Gm
gm
Gm Adam

gm
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
And for each item in that, add one that uses the PREFIX
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
dpkg respects the existing PATH, hence that error, boutta check APT
Unless DPkg::Path is set to a non-empty string, APT could not care less about the PATH
interesting
makes me wonder how literally anything worked
only thing I can think of is maintenance scripts sourcing /etc/profile or something like that
or effectively being hardcoded like it's running PATH=/usr/sbin:/usr/bin:/sbin:/bin ./postinst
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
👍
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
people actually did this way back in the day
yeah it was like literally, appstorereviewtimes.com
kinda became pointless when it came down from 5-10 days to 24 hours
Huh
Learn how long it takes after submitting your app for review on the iOS App Store. Aggregated data on app store submission times.
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
I love that it still says "in 2020"
proof the site is no longer automated
There’s a blog post at the bottom explaining why
TLDR it’s usually less than 24 hours so it’s pointless
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
FYI, PREFIX isn't set by procursus, but AFAIK we don't have a good way to easily grab the prefix so
???
oops yes thanks
setenv copies its inputs
originally wrote it in another file where I do need to strdup
is it actually set currently? if not I'll comment out that logic for now till we do have an answer
yeah for getting the port
idk how to pass that through to apps I guess
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
for no, I think the correct way to do it is just hardcode it during build...
hm, I guess. that sucks
I agree

sure sounds neat
but the prefix should be pretty standard so it shouldn’t necessarily need to grab it (right?)
well that way if we ever have to change it then it won't be hardcoded to a bunch of things
it's true, I'm sudhip
Hi
how r u sir
Wrangling apps in the cold winter. I have my mate though so I’ll survive
Nice
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
true
that indentation though
thank god discord.py got deleted
i wanted to try this but i didnt find any docs describing what the difference is or what the last arg is


