#development

1 messages · Page 506 of 1

twilit jungle
#

What is RemoteLog and why would that be detecting devices on your local network?

#

Why would that be trying to detect and connect to devices on your local network?

#

There is no code in there to ask user for permission

#

Except it doesn't do stuff on local network... it takes an IP you give it and connects to it

#

shrug then check the settings for your app

#

It shouldn't matter if its a theos app or xCODE app

lethal ice
#

xCODE

twilit jungle
#

Just means you are not installing it to the same spot as 3rd party apps

#

Which has nothing to do with theos

#

Same place as 3rd party apps?

late ridge
#

has anyone written an explanation of their assembly tweaks using theos

twilit jungle
#

If you are writing assembly in your tweak, why would you need an explanation for it?

late ridge
#

Oh, I meant a tweak fully written in assembly

lethal ice
#

just make a tweak project, change tweak.xm to tweak.S and write it in asm

#

get rid of cflags pretty much

late ridge
#

for example the facebook crash one you made all makes sense except I don't understand what .section __DATA, __mod_init_func is, that could just be my lack of arm knowledge tho

lethal ice
#

that's a constructor

late ridge
#

specifically what __mod_init_func is

misty cradle
#

it’s Bc u are a JavaScript developer

lethal ice
#

you place a function address under that section to signal that its a constructor

misty cradle
#

Praying for your soul

late ridge
#

LOL

misty cradle
#

Out of all the languages u could’ve chosen

#

U chose JavaScript

late ridge
#

I just realized it's in my bio

lethal ice
#

hmm what should i write in assembly right now

misty cradle
#

I might have to use js soon too in college

#

@lethal ice deez nuts

#

Write Sentro connectivity module in assembly

lethal ice
#

also @late ridge you probably wanna start out making a command line tool first in assembly

#

tweak u gotta do a lot of shit

lethal ice
#

f

#

maximum optimization

#

handwritten asm

misty cradle
late ridge
#

ya that makes sense, I'll try that

lethal ice
#

wait do you know asm

tepid olive
#

hmmm why are buttons on the ls not working tr

misty cradle
#

@late ridge if u have any questions make sure to ping @lethal ice @twilit jungle and @narrow mason

lethal ice
#

true especially @narrow mason

misty cradle
#

or wait

tepid olive
misty cradle
#

U had to hook set touches I think

tepid olive
#

SwiftUI buttons btw

lethal ice
#

there's probably a view above it

tepid olive
#

but that's equivalent to UIButton

misty cradle
#

Unless you hook what I hooked in Veza to get user interaction working

#

lots of people have issues with the LS

late ridge
#

lowkey I was actually gonna ask jules a question abt san antonio but he dipped

misty cradle
#

I got lazy

tepid olive
#

not open source woeis

misty cradle
#

CSNotificationAdjunctListViewController

#

then add it to the stack view

#

At position 0

lethal ice
#

wtf

tepid olive
#

not sure how to that in orion but i will try

misty cradle
#

U add the view

#

At index 0

tepid olive
#

ty intjpray

#

so i need to get an instance of that somehow

indigo peak
#

@tepid olive have you figured out everything?

#

i just got home so i can try some things now sipsip

tepid olive
#

uh

#

i'm working with ivars rn

indigo peak
tepid olive
#

im so pissed

indigo peak
#

havent figured it out either

indigo peak
tepid olive
#

yeah it's pissing me off

indigo peak
#

when i would be using a class method on an instance and vice versa

tepid olive
#

@indigo peak what are you tryna do now

indigo peak
#

well

#

you told me target is what i needed

#

which helps a lot

#

but now

#

when i print target.name()

#
@interface GameIcon : UIView
-(void)setWins:(int)arg1 ;
-(NSString *)name ;
@end

#

which is defined here

#

it prints this

grim sparrow
indigo peak
#

Sep 4 21:09:54 iPhone MessagesExtension[13585] <Notice>: PENIS (Function)

tepid olive
grim sparrow
#

You can’t just expect the linker to link to nothing

tepid olive
grim sparrow
#

You could dynamically create it though

tepid olive
#

i interfaced it?

grim sparrow
#

That’s not gonna give symbols though

#

So the linker can’t link

tepid olive
#

what do i do

#

then

grim sparrow
#

You import the framework that has the symbols

tepid olive
#

i haven't done this in a literal year

#

oh uh

indigo peak
#

@tepid olive

grim sparrow
#

Or you treat it as a UIViewController and set the symbol as a string

lethal ice
#

.x.swift

indigo peak
#

we do a little trolling

tepid olive
#
if let name = target.name as? NSString {
}
#

use that

#

and NSLog(name)

indigo peak
#

like that?

tepid olive
#

no

indigo peak
#

wait

#

i know

tepid olive
#

\(name)

tepid olive
indigo peak
#

that

#

but with interpolation

grim sparrow
#

Yes

tepid olive
#

why are u putting a ;

#

cursed

grim sparrow
#

Why are you casting to NSString

tepid olive
#

tr

grim sparrow
#

Swift will bridge that to String without you doing anything

indigo peak
tepid olive
#

im trying things for him

indigo peak
grim sparrow
#

lol

indigo peak
#

still compile tho

grim sparrow
#

Something something string

indigo peak
#

amy how should i do this then

#

bc in the header is a NSString*

grim sparrow
#

Yes but Swift converts it for you

#

Swift converts most foundation types without you doing anything

#

By the looks of it you’re trying to cast a closure to an NSString?

#

Which is never gonna work

indigo peak
#

so i tried just doing

#

target.name

grim sparrow
#

Yes and that’s a closure

indigo peak
#

but it logs (Function)

grim sparrow
#

Yes, a closure

indigo peak
#

but i want the value

#

li9ke 8 ball

#

Sea Battle

#

BasketBalls

#

would i do

#

String(describing: )

#

?

grim sparrow
#

To get the value if that closure do target.name { NSLog(“\($0)” }

tepid olive
#

pov ur a nerd

grim sparrow
tepid olive
grim sparrow
#

Do you know what a block is in ObjC?

indigo peak
#

sort of

#

like ive seen them

tepid olive
#

ugh

#

HOW DO I SHARE THIS VC

indigo peak
#

i see what they do

grim sparrow
#

Ok well in swift they’re called closures

indigo peak
#

but idk how it actually works

grim sparrow
indigo peak
#

and or how to actually use them

tepid olive
grim sparrow
#

That’s not how VC’s work

tepid olive
#

to fix touches/buttons

#

oh i made it a view oops

#

regardless the view is what i want

#

¯_(ツ)_/¯

grim sparrow
#

Technically you would add the view of the second vc to the view of the first subview

#

But make sure to hold a weak reference to the second view controller somewhere

#

Or it’ll be deallocated and you’ll be left with a fucked up view

tepid olive
#

i just need to share that uiview to the other hook

indigo peak
grim sparrow
tepid olive
#

how

grim sparrow
#

Or figure out how to find it

tepid olive
#

i forgor 💀 most of the tweak dev things i knew

grim sparrow
#

weak var view: UIView?

indigo peak
#

@grim sparrow i made name a property and it works

#

i was calling the getter

#

but it exists as a property

grim sparrow
indigo peak
#

do preference bundles exist with orion yet

#

or is it just not documented

twilit jungle
grim sparrow
twilit jungle
#

! ban

grim sparrow
#

No one gives a fuck if you’re holding a weak reference to a class type

grim sparrow
indigo peak
#

interesting

grim sparrow
#

I think the template is swift preferences?

indigo peak
#

oh yeah there is

#

im dum

#

how do i call just orig

#

like with the default params

grim sparrow
#

I have upset the DGh0st with my rants

grim sparrow
indigo peak
#

i was just gonan say

#

i think i got it

twilit jungle
#

Uhh its a view... its not meant to be global. On top of that, doubt any of the people you are telling to make a global reference to is making it a weak reference.

#

Stop making global references when you can get references to things via chain of calls

#

Which is 99.9999% of the times

grim sparrow
#

That’s effort

twilit jungle
#

Its 5 mins of effort

#

If thats too much then you shouldn't be making the tweak in the first place

indigo peak
twilit jungle
indigo peak
#

@late ridge

#

we do a little trolling

late ridge
#

open source?

indigo peak
#

im not even close to done

#

there is so much setting up i need to do

#

converting the RootListController into swift

late ridge
#

ah tru

indigo peak
#

like wtf is this

late ridge
#

swift is cool until it's not

#

swift seems a lot more fun if you're good at it

indigo peak
#

fr

#

i do not understand this at all

#
- (instancetype)init {
    self = [super init];

    if (self) {
        HBAppearanceSettings *appearanceSettings = [[HBAppearanceSettings alloc] init];
        appearanceSettings.tintColor = [UIColor colorWithRed:1.0f green:0.81f blue:0.86f alpha:1];
        appearanceSettings.tableViewCellSeparatorColor = [UIColor colorWithWhite:0 alpha:0];
        self.hb_appearanceSettings = appearanceSettings;
    }
    return self;
}

#

converting to swift

#

i am lost

twilit jungle
#

Time to learn swift

indigo peak
#

i am trying

#

this is how i learned objc

#

i want to do something

#

so i just

#

do what i can assume

#

and i look up how to do anything i dont know how to do

#

remember that for next time

#

repeat
and bam, i know objc

#

@late ridge im having some trouble getting cephei to work with swift, so rip cepheim and i also cant get the win spoofer page to load

hardy glen
#

Bruh fr

#

If you don’t know swift, then converting to all swift code isn’t ideal.

indigo peak
#

illl beee fineeeee

hardy glen
#

If you wanna learn it in the future, that above is a great resource to learn

indigo peak
#

ty

hardy glen
#

I think it even has a project with SpriteKit

#

That you can try out.

#

I did it along time ago I forgot

lethal ice
#

@indigo peak why are you converting to swift

#

the gods did not plan for this

indigo peak
#

bored

#

and i dont have any weed so im not gonna use assembly

lethal ice
indigo peak
#

i also just wanted to fuck around with it

#

since its new and all

indigo peak
lethal ice
#

using assembly when its not necessary is kinda crusty not gonna lie

indigo peak
#

which is why i spent 4 months trying to extend the pool lines with just hooks

#

but that didnt work

lethal ice
hardy glen
#

4 months monkaS

#

Gah damn

indigo peak
#

i started the project in late april, early may

#

and the whole point was to make just 8 ball hacks

#

like a tweak just for 8 ball

#

and then i was frustrated with not being able to figure it out and get anything to work

#

so i tried archery

#

which was the first game i managed to hook and change values

#

and slowly on and off i would add more to it, while extended lines haunted me

#

ok yeah fuck this

#

fuck swift

#

swift can suck my balls

lethal ice
#

true

indigo peak
#

whoever thought swift was a good idea can eat my balls

hardy glen
#

Swift >

indigo peak
#

swift <

hardy glen
#

C++ >

#

You ever fell in love with a language

indigo peak
#

better

#

italian

hardy glen
#

I think I’m in love with c++ no cap

#

Wait till I come back and show you what I have in store

#

Maybe after about 6 months

tepid olive
#

make me a 3D generated cube in C++

#

please

tepid olive
#

ur loss bro

tepid olive
indigo peak
indigo peak
tepid olive
#

orion is a beta lol

indigo peak
#

yea ik

tepid olive
#

clearly it's rough around the edges

indigo peak
#

i wasnt expecting it to be perfect

tepid olive
#

i just prefer that to using objc because i'll use a swift UI and backend, so might as well make the hooks swift trol

indigo peak
#

i just was bored

#

so i wanted to swift

tepid olive
#

swift is great but it's hard to justify it for tweaks tbh

indigo peak
#

i could tell

#

a lot of people like swift and i was saying to myself "how, this is so annoying"

tepid olive
#

bridging objc <-> swift isn't perfect

indigo peak
#

understandable

tepid olive
#

it's great but for tweaks it feels off

indigo peak
#

i am actually excited to actually try to make a legit tweak in swift

#

and not remake imessage game hacks

tepid olive
#

it'll just be a swiftui xenhtml lol

#

not sure whether the "widgets" will be binaries or json but i'll see

indigo peak
#

i want to make a practical tweak

#

in objc or swift

#

but i cant think of anything

tepid olive
#

i just want some xenhtml alternative that's efficient

indigo peak
tepid olive
#

binaries would just be a nsbundle format with a template

gentle grove
#

boba best

tepid olive
#

i think that's better tbh, json will make widgets super annoying to make

indigo peak
#

tru

#

@tepid olive have you tried using prefs yet?

late ridge
#

lucy made prefs in swiftUI at one point I think

indigo peak
#

@tepid olive

vivid dew
glacial matrix
glacial matrix
slender glade
#

The idea is kinda good IMO

faint timber
#

how do I make my IDE not interpret code as unreachable

slender glade
#

leaked fr code

faint timber
#

this is bootrom shellcode sir

slender glade
#

Same thing

faint timber
#

its nothing to do with restoring

#

@glacial matrix /cc am I somehow overlooking a bug in my code?

lethal ice
#

try changing it to just bool rv = platform_get_boot_device(...);

faint timber
#

nope

lethal ice
#

🤔 what about if (!platform_get_boot_device(...)) and fuck rv

glacial matrix
faint timber
#

tbh noinline is redundant, im just paranoid -fno-inline isn't working

#

@glacial matrix @lethal ice fixed by removing ret var initialization in all those funcs

#

those are all trampoline funcs so there are all inline asm

lethal ice
#

you mean getting rid of the line bool rv = false;?

faint timber
#

in the function itself I have bool rv = false;

#

not the one in the screenshot

#

I changed it to bool rv;

#

fixed the IDE

#

spapghetti code

lethal ice
faint timber
#

thats in the screenshot function I changed it in the actual function called

glacial matrix
#

I don’t get what you changed but good for you for figuring it out

faint timber
#

Ill link code when I commit

glacial matrix
#

Hm?

grim sparrow
#

That would make sense but from my testing it works if it’s weak

#

If I hold no reference the view just distorts and doesn’t work, but holding a weak reference to the vc works

#

Wait no

#

It is a strong reference

#

Ignore me

glacial matrix
grim sparrow
glacial matrix
#

Views becoming distorted due to weak/strong references doesn’t make much sense

grim sparrow
#

I may have a screenshot of it

glacial matrix
# grim sparrow

You have to add the weak modifier to variables, right? Otherwise the default is strong

grim sparrow
#

Yeah

grim sparrow
grim sparrow
#

I was thinking of something else

glacial matrix
#

Last time I wrote Swift was 3.1

twilit jungle
grim sparrow
faint timber
#

shut up orange people

grim sparrow
#

@little garden

#

F

#

Ffs discord

slender glade
#

You meant <@&417306501066260481>?

haughty tulip
#

@advanced developers

tepid olive
indigo peak
grim sparrow
tepid olive
#

widgets are just too limited

#

and it's quite fun to make so why not

grim sparrow
#

Converting JSON to UI code is fun

#

sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/15.0 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

#

use an iOS 15 device with Xcode 12

tepid olive
grim sparrow
#

Why would you do that

tepid olive
#

just write the code in a template and compile to a nsbundle

tepid olive
grim sparrow
#

why

#

its far easier to work with

#

for everyone involved

tepid olive
#

because the person can compile things themselves?

#

the swift compiler runs almost everywhere kek

#

@heavy kernel

#

@lofty juniper scam

#

nvm i can delete it myself here troll

grim sparrow
tepid olive
indigo peak
#

evelyn when they realize they can delete messages sipsip

indigo peak
#

png ^

tepid olive
indigo peak
slender glade
#

noooo

#

@indigo peak do u know anything that can be hooked to change the reachibility thing

#

Like add stuff to it

#

And shit

misty cradle
#

finally hswidgets for ios 14

#

@twilit jungle we need LSWidgets now

#

HSWidgets deprecated

grim sparrow
misty cradle
#

@grim sparrow help me fix issue @grim sparrow

grim sparrow
#

what issue

misty cradle
#

dm issue

indigo peak
slender glade
#

That's def gonna be useful

#

Thank you

indigo peak
#

There’s some reachibility tweaks in the first link

indigo peak
#

@grim sparrow hi

grim sparrow
indigo peak
#

ok so

grim sparrow
#

nope

#

not allowed

misty cradle
#

stop being a @grim sparrow

indigo peak
#
class SeaHook : ClassHook<SeaScene> {
    func update(_ arg1: Double) {
        orig.update(arg1)
        let shipList = Ivars<NSMutableArray>(target).ships

        for ship in (shipList as NSMutableArray as! [SeaShip]) {
            ship.sprite.isHidden = false
        }
    }
}
grim sparrow
#

ok

misty cradle
indigo peak
#

that gives a Undefined symbols for architecture arm64:

slender glade
#

we out here

grim sparrow
#

on which object

grim sparrow
#

on SeaShip?

indigo peak
# grim sparrow on which object
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_SeaShip", referenced from:
      objc-class-ref in Tweak.x.swift.63f79fb2.o
*/```
grim sparrow
#

yeah

#

What type of object is SeaShip

indigo peak
#

@interface SeaShip : SKNode

#

if that’s what you were wondering

grim sparrow
#

then just do as! [SKNode]

#

ezpz

slender glade
grim sparrow
#

yeah me no like that

slender glade
#

Well here we know that SKNode isn't nil so

#

I guess it's safe

grim sparrow
#

eh I guess

slender glade
grim sparrow
#

in this trying time take a seagull

indigo peak
#

So Amy

#

Only thing is

#

I need to set the sprite to not hidden

#

Not the ship

#

So it’s ship.sprite.ishidden

slender glade
#

isBidden

#

o

#

uh

#

I guess if spirits is a member of ship

#

Then that would be ok I guess

indigo peak
#

But when I do as![SKNode] it won’t work

grim sparrow
#

is sprite a property of the seaship object

indigo peak
#

yes

slender glade
indigo peak
#

It just says sprite isn’t a member of SKNode

#

Or something like that

slender glade
grim sparrow
#

because its not

indigo peak
#

Yes

#

I know

#

I might be dumb but I’m not stupid

grim sparrow
#

what did you do in objc

indigo peak
#

Hold

#

% hook SeaScene
-(void)update:(double)arg1 {
%orig;
if([preferences boolForKey:@"seeShips"]) {
for(SeaShip* ship in [self valueForKey:@"ships"]) {
ship.sprite.hidden = false;
}
}
}
%end

slender glade
#

fruhh

floral estuary
#

when i run make package install i get this error

#

clang: error: no input files
make[3]: *** [/Users/giannis/zeus/.theos/obj/arm64/Tweak.x.c5c2f532.o] Error 1
rm /Users/giannis/zeus/.theos/obj/arm64/Tweak.x.m
make[2]: *** [/Users/giannis/zeus/.theos/obj/arm64/FirstTweak13.dylib] Error 2
make[1]: *** [internal-library-all_] Error 2
make: *** [FirstTweak13.all.tweak.variables] Error 2

#

could someone help me?

slender glade
floral estuary
# tepid olive run make clean

i get this error... > Making clean in zeus…
make: *** zeus: No such file or directory. Stop.
make: *** [internal-clean] Error 2

tepid olive
grim sparrow
#

you fucked up

tepid olive
floral estuary
#

i know... lol

#

the problem is with theos or with make?

tepid olive
#

@floral estuary make a new project and copy the code over

floral estuary
slender glade
#

make package install sex

indigo peak
#

@slender glade

#

Trol

slender glade
#

I guess it still works but why is still there leftover text

indigo peak
#

I have to do some checks to make sure I’m removing the right button first

#

But when I get home

#

I made that on my phone in the car

slender glade
#

oh wow

indigo peak
#

I didn’t make it removeFromSuperview

slender glade
indigo peak
slender glade
#

Would removeFromSv remove it completely

indigo peak
#

It should?

#

I don’t see why it wouldn’t

slender glade
#

o

floral estuary
#

==> Compiling Tweak.x (arm64)…
clang: error: no input files
make[3]: *** [/Users/giannis/thunder/.theos/obj/arm64/Tweak.x.4aa6ad30.o] Error 1
rm /Users/giannis/thunder/.theos/obj/arm64/Tweak.x.m
make[2]: *** [/Users/giannis/thunder/.theos/obj/arm64/Thunder.dylib] Error 2
make[1]: *** [internal-library-all_] Error 2
make: *** [Thunder.all.tweak.variables] Error 2

indigo peak
#

@slender glade

restive ether
#

same

indigo peak
#

removeFromSuperview

slender glade
#

now time to clean up

#

The gap

indigo peak
#

shhhh

#

And also

#

Add the other buttons back

weary heath
#
%hook UIView
- (void)layoutSubviews {
    %orig;
    self.hidden = YES;
}
%end
indigo peak
#

Perfect

#

don’t even %orig

indigo peak
#

Yes

#

Have fun uninstalling without safemodr though

weary heath
#

Hmm yes thanks I will do that and install right away

tepid olive
#

you’re wrong

indigo peak
#

That’s the syntax for Ivars in origin, right?

merry glade
#

@indigo peak what's the hello world equivalent to a tweak

indigo peak
#

You could also hook springboard with applicationDidFinishLaunching and NSLog something

#

%hook SBStatusBarManager

-(void)handleStatusBarTapWithEvent:(id)arg0 {
NSLog(@“hello world”);
%orig;
}
%end

#

%hook SpringBoard

-(void)applicationDidFinishLaunching:(id)application {
%orig;
NSLog(@“hello world”);
}
%end

#

or do what I saidthishowitis

#

Or if you’re me is lines

#

Mr assembly

grim sparrow
#

Just say if you’re weird

slender glade
#

Why would you ever write a tweak in assembly

#

🤮

grim sparrow
#

Because you hate yourself

indigo peak
#

proceeds to write tweaks in swift

slender glade
#

I realized long ago this server is more of a mental asylum

indigo peak
slender glade
high citrus
indigo peak
grim sparrow
#

Bro the only thing you need to be getting into is the shower

slender glade
#

go ahead, use a function from another file without needing to import it

indigo peak
slender glade
#

Objective c looking ass

slender glade
indigo peak
#

I’m waiting

grim sparrow
slender glade
#

me tryna find the semicolons in swift

grim sparrow
#

Semi colons are useful in swift

#

If you want to bump your character counts in repos

slender glade
#

no one is doing print("sex"); print("sex 2: the sequel")

#

I think everyone using swift is just putting them in diff lines

high citrus
#

I would definitely wanna try to make a assembly tweak, but I don't know the instruction set, I only know a bit of risc-v :(

grim sparrow
#

Sometimes I do ; because I don’t want to make a statement span over multiple lines

#

Because I hate myself

slender glade
#

lol

high citrus
indigo peak
#

So I can show off to my comp science teacher

slender glade
#

when you create a function of 5 lines and start overthinking how you can make it just one by removing stuff

#

then ending up breaking something

indigo peak
slender glade
#

objective c mfs on their way to convince people swift is actually just ball piss in the form of a programming language

indigo peak
#

I just don’t like either

slender glade
#

And you start using concepts like optionals to your advantage

grim sparrow
#

Never forget

indigo peak
slender glade
slender glade
grim sparrow
slender glade
#

me On my way! To be lazy and just do ?? "not known lol" when I don't want to bother finding out why the variable is nil

#

Ok im overusing the emoji

restive ether
floral estuary
#

Theos I think is installed correctly and the makefile used to work correctly before

indigo peak
#

@floral estuary did you make this yourself or are you trying to compile something you found online

floral estuary
indigo peak
#

Hm that is quite unfortunate

floral estuary
#

FINALPACKAGE = 1

Turns off warnings

GO_EASY_ON_ME = 1

support ios from 13.0 to 13.7

export TARGET = iphone:clang:13.7:13.0

FIX TOOLCHAIN CODE

export PREFIX = "$(THEOS)/toolchain/XcodeDefault.xctoolchain/usr/bin/"

IP for device to install

THEOS_DEVICE_IP=192.168.1.1
export THEOS_DEVICE_PORT=2222

COMPILE ARCHS

ARCHS = arm64 arm64e

what i'm modifing

INSTALL_TARGET_PROCESSES = SpringBoard

include $(THEOS)/makefiles/common.mk

name and frameworks i'm using

TWEAK_NAME = Thunder
Thunder_FRAMEWORKS = AudioToolbox UIKit
Thunder_EXTRA_FRAMEWORKS += Cephei
Thunder_LIBRARIES = sparkapplist

Thunder_FILES = Tweak.x
Thunder_CFLAGS = -fobjc-arc -Wno-deprecated-declarations
SUBPROJECTS += thunderprefs

include $(THEOS_MAKE_PATH)/tweak.mk

FOR PREFERENCES

include $(THEOS_MAKE_PATH)/aggregate.mk

respring after install

after-install::
install.exec "sbreload"

#

oh thank you!! i'm learning the past few months so these was my understanding lol

#

when you say filesystem layout what do you mean? should i run a command for that?

hardy glen
#

he wants to see the layout of your project folder

#

file structure

vivid dew
#

bozo

floral estuary
#

-rwxr-xr-x 1 giannis staff 108 Aug 29 18:46 FirstTweak13.plist
-rwxr-xr-x@ 1 giannis staff 938 Sep 5 21:14 Makefile
-rwxr-xr-x 1 giannis staff 3895 Aug 29 18:46 Tweak.h
-rw-r--r--@ 1 giannis staff 61939 Sep 5 21:06 Tweak.x
-rw-r--r-- 1 giannis staff 57 Sep 5 19:07 Zeus.plist
-rwxr-xr-x 1 giannis staff 12933 Aug 29 18:46 control
drwxr-xr-x 9 giannis staff 306 Aug 29 18:46 firstpreferences
drwxr-xr-x 193 giannis staff 6562 Aug 29 18:46 packages

#

these are in project folder

late ridge
#

why is ur user group "staff"

floral estuary
#

and project's folder located in user folder

floral estuary
late ridge
#

oh wait, are you on windows?

floral estuary
late ridge
#

huh ok

floral estuary
#

i made a new project before trying to fix my old project and copied code so lets try to fix this because it's cleaner

#

FINALPACKAGE = 1

Turns off warnings

GO_EASY_ON_ME = 1

support ios from 13.0 to 13.7

export TARGET = iphone:clang:13.7:13.0

FIX TOOLCHAIN CODE

export PREFIX = "$(THEOS)/toolchain/XcodeDefault.xctoolchain/usr/bin/"

IP for device to install

THEOS_DEVICE_IP=192.168.1.1
export THEOS_DEVICE_PORT=2222

COMPILE ARCHS

ARCHS = arm64 arm64e

what i'm modifing

INSTALL_TARGET_PROCESSES = SpringBoard

include $(THEOS)/makefiles/common.mk

name and frameworks i'm using (?)

TWEAK_NAME = Thunder
Thunder_FRAMEWORKS = AudioToolbox UIKit
Thunder_EXTRA_FRAMEWORKS += Cephei
Thunder_LIBRARIES = sparkapplist

Thunder_FILES = Tweak.x
Thunder_CFLAGS = -fobjc-arc -Wno-deprecated-declarations
SUBPROJECTS += thunderprefs

include $(THEOS_MAKE_PATH)/tweak.mk

FOR PREFERENCES

include $(THEOS_MAKE_PATH)/aggregate.mk

respring after install

after-install::
install.exec "sbreload"

#

the makefile

#

-rw-r--r--@ 1 g_niarchos staff 883 Sep 5 21:50 Makefile
-rw-r--r--@ 1 g_niarchos staff 108 Sep 5 20:04 Thunder.plist
-rw-r--r--@ 1 g_niarchos staff 61939 Sep 5 20:04 Tweak.x
-rw-r--r--@ 1 g_niarchos staff 12931 Sep 5 20:03 control
drwxr-xr-x 9 g_niarchos staff 306 Sep 5 21:40 thunderprefs

#

Makefile:37: /aggregate.mk: No such file or directory
make: *** No rule to make target '/aggregate.mk'. Stop.

#

it gives me this error

indigo peak
#

did you install theos under root

floral estuary
#

oh yes it's empty

hardy glen
indigo peak
floral estuary
indigo peak
#

ah

#

You should probably fix that

hardy glen
#

set theos env var

indigo peak
#

If you’re really smart you don’t install theos and don’t get into tweak development

indigo peak
floral estuary
#

echo "export THEOS=~/theos" >> ~/.profile

#

this will fix it?

late ridge
#

Step 2

#

uhh I think zsh uses .zprofile

#

correct me if Im wrong tho, both might work

floral estuary
#

i'm runing 10.12.6 so i think i must use .profile

#

as the guide says

late ridge
#

y u on sierra heyy

floral estuary
#

yep

indigo peak
late ridge
#

lol

indigo peak
#

I can assume I am not getting invited

#

Can’t you just do source ./profile

#

heyy @late ridge

#

Pogger

late ridge
floral estuary
#

yes now echo $THEOS prints theos path

late ridge
#

pog

hardy glen
#

now try

indigo peak
#

make clean package

floral estuary
#

and now the problem i originaly had these errors

#

==> Compiling Tweak.x (arm64)…
clang: error: no input files
make[3]: *** [/Users/g_niarchos/thunder/.theos/obj/arm64/Tweak.x.4aa6ad30.o] Error 1
rm /Users/g_niarchos/thunder/.theos/obj/arm64/Tweak.x.m
make[2]: *** [/Users/g_niarchos/thunder/.theos/obj/arm64/Thunder.dylib] Error 2
make[1]: *** [internal-library-all_] Error 2
make: *** [Thunder.all.tweak.variables] Error 2

indigo peak
#

Outdated toolchain?

#

Maybe?

restive ether
#

Tweak.x.m

hardy glen
#

thats theos doing that

#

pretty sure

indigo peak
#

Yeah it does

floral estuary
hardy glen
#

can you compile a simple project @floral estuary

indigo peak
late ridge
#

ya u can always try running
$THEOS/bin/nic.pl and trying to compile the basic iphone/tweak template

#

to see if it's working at all

hardy glen
#

try it

floral estuary
#

tried that and again the same errors

late ridge
#

you could always reinstall theos

floral estuary
indigo peak
#

This is my tweak now /s

#

Time to release

floral estuary
late ridge
#

did you forget to include that

#

I don't see it in the zip

indigo peak
floral estuary
#

i tried to run again the first step in theos guide installation and i noticed that when i run brew install ldid xz

#

i get this

#

@grave sparrow maybe thats what makes the problem?

misty cradle
#

virus??

floral estuary
misty cradle
#

bro idk what im saying even

#

ignore me

tepid olive
#

what does which clang output

floral estuary
tepid olive
floral estuary
tepid olive
floral estuary
tepid olive
#

that’s why

#

@floral estuary make an issue on theos github, it probably doesn’t support xcode 9.2/ macOS Sierra

#

you can install Xcode 12 and use only the toolchain maybe, not sure though

indigo peak
#

Compile on device thishowitis

floral estuary
rain falcon
#

n f r

late ridge
#

n f r

indigo peak
#

n f r

#

That’s what I do

#

At least objc, swift I compile on wsl

#

I prob should be compiling for objc on wsl

hardy glen
#

i don’t see a reason why you wouldn’t compile on computer if you have access to wsl

indigo peak
#

well

#

i never actually setup wsl

#

unttil like

#

2 days ago

#

i was always compiling on device bc even though i had a pc, i would be working on tweaks on my phone as well

#

i would ssh over from my pc at home but at school i would do it on my phoen

#

and i never changed how i did it

#

@tepid olive

#

stil getting the fucky wucky error

tepid olive
#

i always get it

indigo peak
#

i get it much more in swift than i did in objc

#

like i would get it in objc by calling a instance method on a raw class

#

but now, i dont even know what the fuck im doing wrong

tepid olive
#

same

#

it's weird

indigo peak
#

could you possibly tell me what im doing wrong

#
class SeaHook : ClassHook<SeaScene> {
    func update(_ arg1: Double) {
        orig.update(arg1)
        let shipList = Ivars<NSMutableArray>(target).ships
        for ship in shipList as! [SeaShip] {
            ship.sprite.isHidden = false;
        }

    }
}
tepid olive
#

no idea

indigo peak
#

this sucks

#

i get the same error when i do this

#
// class BeerHook : ClassHook<BeerView> {
//     func killCup(_ arg1: Any?) {
//         let cupsList = Ivars<NSMutableArray>(target).cups

//         for cup in (cupsList as NSMutableArray as! [BeerCup]) {
//             orig.killCup(cup)
//         }
//     }
// }
hardy glen
#

i never get that error

#

wtf

indigo peak
#

well in objc its my fault

#

but in swift i have no clue

hardy glen
#

wsl

indigo peak
#

gameseagull is on my phone

#

so i can build remotely

hardy glen
#

btw i use fishfr

indigo peak
twilit jungle
hardy glen
#

ngl, using orion with sourcekit auto completion is going to be nice

twilit jungle
#

Its not bruh

#

F

tepid olive
indigo peak
#

@tepid olive so i managed to get rid of the error on the compile, but now it crashes the app

tepid olive
#

what was the fix

indigo peak
#

i wouldnt call it a fix

#

bc idk if it actually does what its supposed to

tepid olive
#

do tell

indigo peak
#
class SeaShip: SKNode {
    var sprite: SKSpriteNode?
}
#

at the top of the file

#

i just made it a class

tepid olive
#

oh fair enough

indigo peak
#

but like i said, it just gets passed the compile error

#

im not actually sure whats causing the crash, other code, or this code

tepid olive
#

i doubt that fixed it

indigo peak
#

worth a shot

tepid olive
#

it doesn't use the class you want i think

#

orion crash logs are unreadable though

indigo peak
#

now im getting a seg fault

#

lmfao

#

@tepid olive the reason why i think its not working for me at least is because im defining SeaShip in the Tweak.h - which is being imported in TestSwiftC - and when you compile a tweak (at least in Orion, idk about Theos) it compiles the .x.swift file first and THEN compiles the Tweak.h which has the symbols for the class

#

but thats prob now how it is

#

thats just what i was speculating

tepid olive
#

makes sense

#

can u interface stuff from swift?

#

i think you can

indigo peak
#

i dont know about that one

#

on a objc to swift converter i found online

#

i slapped a @interface into it

#

and it produced the class SeaShip: SKNode {}

#

so i thought i could bypass the order of the compiling by making a hacked together interface in the swift file

tepid olive
#

@indigo peak you'll need to mark that class as @ objc as bare minimum lol

#

(remove space)

indigo peak
#

i tried something like that

tepid olive
#

¯_(ツ)_/¯

indigo peak
#

Marking it with @objc did no fix it

tepid olive
#

then you need to interface somehow

late ridge
#

TIL people have monthly subscriptions for their tweaks not including patreon

#

for the sake of not offending anyone here who might do that I won't rant abt it, but like mcbruh ._.
you're not netflix or spotify

lethal ice
#

i mean thats the best way to make money

#

get the bag

tepid olive
#

Ur just behind the game bro

vivid dew
#

sub to my patreon

tepid olive
#

ok

pearl sail
hardy glen
#

just got a 100 on my history test floshed

#

clearly you had a hard time in history

hardy glen
tepid olive
twilit jungle
pulsar raven
#

Hi any iOS developer here

tepid olive
#

Yeah many

slender glade
hardy glen
#

im a batch scripting expert whats up

vivid dew
#

i'm black

fallow ravine
hardy glen
#

sure

haughty tulip
tepid olive
haughty tulip
tepid olive
#

lol

haughty tulip
#

bestie hugs

#

i'm aroace

#

aromantic asexual

#

huh

tepid olive
slender glade
#

He used swift. Would you save him

indigo peak
#

muteable

tepid olive
#

this string is too loud how do I mute it

undone nest
#

.mute()

warm cipher
slender glade
#

The other is epic

indigo peak
#

i know, swift is so slow

warm cipher
#

True.

#

Can somebody tell Apple to just switch to C++?

slender glade
#

Their OS is built on decades old C++

#

lol

warm cipher
#

Yes, but apps are built on Swift

tepid olive
#

apps in swift are better than apps in cpp

indigo peak
#

tweaks in swift though monkaSHAKE

tepid olive
indigo peak
#

this doesnt wanna work

#

target.view.addSubview

slender glade
#

make the functions and variables in a cpp file

#

Then use a bridging header

#

And use those functions in swift

warm cipher
#

Someone could’ve told me that earlier

indigo peak
#

yoooooooo

#

i got it to work

indigo peak
#

Pogger

#

I got the button in

slender glade
#

@indigo peak once you make the complete remake

#

Will you continue on with development of your tweak in swift

#

Or will you update it in obj c

indigo peak
#

probably not

slender glade
indigo peak
#

if i still make updates it will be in objc

slender glade
#

W

indigo peak
#

@slender glade do you know why the NSLog isnt running?

#
class AnagramsHook : ClassHook<AnagramsScene> {
    var anagramsButton: UIButton = UIButton(type: .roundedRect)

    func startGame() {
        anagramsButton.frame = CGRect(x: UIScreen.main.bounds.size.width / 2 - 110, y: 10.0, width: 100.0, height: 40.0)
        anagramsButton.backgroundColor = UIColor(red: 255 / 255.0, green: 255 / 255.0, blue: 255 / 255.0, alpha: 0.85)
        anagramsButton.setTitle("Reveal Words", for: .normal)
        anagramsButton.setTitleColor(UIColor.black, for: .normal)
        anagramsButton.addTarget(self, action: #selector(self.anagramsShow), for: .touchUpInside)
        anagramsButton.layer.cornerRadius = 14

        target.view?.addSubview(anagramsButton)

        orig.startGame()
    }

    func toResult() {
        anagramsButton.removeFromSuperview()
    }

    // orion:new
    func anagramsShow() {
        //target.revealWords(true)
        NSLog("PENIS pressed")
    }
}
slender glade
#

Did you ever call the function

indigo peak
#

anagramsButton.addTarget(self, action: #selector(self.anagramsShow), for: .touchUpInside)

slender glade
#

oh

#

No idea

indigo peak
slender glade
#

Add objc to the func TrollFront

#

gonna do nothing

#

but

#

Wait

#

@indigo peak but it reveals the words

#

right

indigo peak
#

its supposed to

#

but im just testing rn

#

so i dont have any other code

slender glade
#

If it doesn't

#

Then the function probably isn't being called properly (??)

#

Which would be why NSLog ain't working in the first place

#

WAAAIT A SECOND

#

@indigo peak I may embarsss myself

#

But don't you need to add () when calling it

indigo peak
slender glade
#

IDK

#

I sent that tr

slender glade
#

When you create a c, cpp, or obj c file Xcode will ask you

#

"You wanna make a bridging header"

#

you should say "ye"

#

then you import that c, cpp, or obj c file in the bridging header

tepid olive
#

there's a THEOS_BRIDGING_HEADER makefile thing iirc

#

or

#

PROJECTNAME_BRIDGING_HEADER

#

i forget

slender glade
#

bro what

#

wtf do you mean fucked up

#

What did the bringing headers do to you

#

Did they fucking kill you

#

make a file called "Bridge.h" or something and in it just put #Import "file name.c or something"

indigo peak
#
// Bridge.h
@interface Cum : Sperm
@end
// Tweak.x
#include "Bridge.h"

#

i think thats what youre talking about Mat

slender glade
#

In swift it's a bit diff I think

#

Let me give you an example

#

You know NSTask()?

indigo peak
#

in objc yeah

slender glade
#

To use it in swift on iOS you need to bridge it

#

So first you make a file called Task.h

#

Lemme get the code

indigo peak
#

cant you do

slender glade
#
#import <Foundation/Foundation.h>

@interface NSTask : NSObject

- (instancetype __nonnull)init;
- (void)launch;
- (void)setArguments:(NSArray<NSString *> * __nullable)arg1;
- (void)setLaunchPath:(NSString * __nullable)arg1;
- (void)setStandardError:(id __nullable)arg1;
- (void)setStandardOutput:(id __nullable)arg1;
- (id __nullable)standardError;
- (id __nullable)standardOutput;

@end```
#

This is the Task.h

#

Then you make a bridging header, in that Bridging header, you put #Import "Task.h"

#

It does bridge the two languages

indigo peak
#

interesting

grim sparrow
#

magic

slender glade
#

@indigo peak

indigo peak
#

hi

slender glade
#

Did you write this thread

indigo peak
#

you think i have the energy to write this

slender glade
#

read what the mf is saying

indigo peak
misty cradle
#

he's false

#

swift is in the dsc since 12.2

slender glade
#

mf was blurting out words bro

indigo peak
#

he also invalidated his own point

#

he said daemons and frameworks

#

ok well the ~80% of tweak devs will go back to hooking apps

slender glade
#

trol

indigo peak
#

who even is this guy

slender glade
#

He made a uhh

#

Theming engine which drains your battery to death

indigo peak
#

anemone?

slender glade
#

no

#

neonbord

indigo peak
slender glade
#

So

#

Who wanna edit this

indigo peak
#

i would

slender glade
indigo peak
#

but idk how to sound smart

slender glade
#

Same

indigo peak
#

uhhhh so today uhhh orion was released and uhhh there are some slight discrepancies and compatibility issues between Swift and Objective-C, but now you are able to compile tweaks for arm64/e devices running ios 12-14. Although Orion is in the beta stages (ABI-unstable), tweaks can be compiled. The docs will be 100% completed soon™️.

#

perfect

slender glade
#

You make it sound like you’re moaning

indigo peak
#

moan so today moan orion was released and moan there are some slight discrepancies and compatibility issues between Swift and Objective-C, but now you are able to compile tweaks for arm64/e devices running ios 12-14. Although Orion is in the beta stages (ABI-unstable), tweaks can be compiled. The docs will be 100% completed soon™️.

slender glade
#

ok that's not what I meant

weary heath
#

moan ÚwÚ so today moan ÚwÚ owion ^-^ was weweased and moan ÚwÚ thewe awe some swight discwepancies and compatibiwity issues between Swift and Objective-C, but nyow whispers to self you awe abwe t-to compiwe tweaks fow awm64/e devices wunnying i-ios 12-14. Awthough Owion is in the x3 beta >w< stages (ABI-unstabwe), tweaks c-can be compiwed. the runs away docs wiww be 100% ;;w;; compweted sees bulge soon™️.

slender glade
#

This is the most disorganized repo I've EVER seen

twilit jungle
tepid olive
#

It is essential that ShortLook is built correctly in release mode, to ensure our DRM and obfuscation is applied. It is required that you test all release builds to ensure that they work correctly -- obfuscation may break certain code changes, so this testing is needed. Please also ensure that the DRM is functioning as intended before releasing.

#

As of ShortLook 1.0.18, Dynastic Rights Mangememt now uses it's own toolchain.

To get setup with it, visit the dynastic/hikari release page and follow install instructions for the latest toolchain.

slender glade
#

OSS with DRM bruhtf

slender glade
#

lol

tepid olive
#

private repo moment

#

it was probably just open sourced as is from the private repo without removing that stuff from the readme

slender glade
#

Shortlook was the best that dynastic had

#

They kept it as their forefront tweak

grim sparrow
#

the dynastic version of hikari is the private version

high citrus
#

When compiling tweaks, does it automatically remove dead code? (because it doesn't look like it)

twilit jungle
#

Whats dead code?

high citrus
#

code that doesn't get called

twilit jungle
#

How does a compiler know that it won't be called?

high citrus
#

because i don't call it fr

tepid olive
#

me when I remove code that has been sitting there unused for the past 3 years

high citrus
#

I'm currently working on 5 different files and I only need to activate one (for testing)

twilit jungle
#

and whats the guarantee that it won't be called by another binary?

high citrus
#

hmm there is none, although some compiler flag that forces the removal would be nice if it exists

twilit jungle
#

a compiler is going to remove stuff that is unused that is not global