#development

1 messages · Page 210 of 1

gentle grove
#

you can sort of guess

#

stuff has patterns

#

just because its undefined doesnt mean that the implementation isnt predictable

#

theyre tools that let you do the thing you need

#

nmap does a very usefula nd specific thing

#

ok why is my status bar flickering

#

those mobile security apps (antiviruses and things that are supposed to scan your phone) are complete scams though

#

No, google

#

what

#

idk what thing youre talking about

#

what are you saying

#

what is the security tip thats "dont use x api"

#

What are you talking about

#

It seems like youre talking about something very specific

#

do you have the source for cloudflare cdn

#

bruh

#

what does that eveb mean

#

valgrind and fuzzers are what you do, those are very valid

#

things of that sort

#

i dont think you know how a computer works

#

its not through logic

#

its through sand magic

#

there is no explanation

#

idk what your rant even is

#

your rant reads like a trump speech

#

some people know c

#

those people also make bugs

#

its just not a good environment for writing new, nontrivial software

#

especially if it has security implications

#

that doesnt conflict at all with my statement

manic forum
#

translation: skill issue

gentle grove
#

the developer has a lot of mental load and if you make any mistakes, the damages are potentially very high

manic forum
#

c has the advantage of being very portable

gentle grove
#

yeah and google was smart enough to not use straight c

#

c++ isnt great but its better

#

and abstractions

#

its easier imo to write correct code in c++ because its so much less manual and explicit

wooden yarrow
#

i mean isnt that basically what some of his videos are about

#

i am not surprised he is the teacher for that

#

where does rust fit in

#

oh

gentle grove
manic forum
#

objc doesn't belong in that comparison

gentle grove
#

objc is not a language for serious people outside of apple

wooden yarrow
gentle grove
#

but somehow yoy also accept objc

#

thats cognitive dissonance

#

what are you calling ridiculous bullshit here

manic forum
#

and also apple-only

gentle grove
#

If you say rust im gonna laugh

manic forum
#

gnustep doesn't count

#

no one uses gnustep

#

have you ever used it

wooden yarrow
#

isnt this optimized C as well

#

C doesn't even think it's running on a real machine

gentle grove
#

you have not used rust

wooden yarrow
#

it literally uses a "abstract machine"

gentle grove
#

basically nothing of what you said makes any sense

#

what does "unable to control cpu" mean
what does "unable to control types" mean

#

neither of those are accurate

manic forum
#

then you can't say "stupid syntax"

wooden yarrow
#

you can do all of that in rust

gentle grove
#

you can do all of those.

wooden yarrow
#

yes

#

absolutely

#

you can experience the same segfaults you can in C

manic forum
#

i have not used rust but claiming that rust can't do anything without ever using it isn't right

gentle grove
manic forum
gentle grove
#

you can do it

wooden yarrow
manic forum
#

oh

wooden yarrow
#

but rust does allow you to

gentle grove
manic forum
#

right

gentle grove
#

you do this generally with trait objects which can be downcasted, or you can just use the trait object

wooden yarrow
gentle grove
wooden yarrow
#

oh

#

right

gentle grove
#

wdym by that

#

Theres no metadata at runtime

#

its just like c/c++ in that sense

#

of course the compiler can be asked for metadata and compile that statically

#

which is that

manic forum
#

what is your point here

gentle grove
#

is there such a thing as an isa calling convention

wooden yarrow
#

you can always just #[repr(C)] if you want full compat with all the other programming languages

gentle grove
#

you can use other calling conventions you want for interoperability

#

extern "C" fn

wooden yarrow
#

oh right calling functions

gentle grove
#

linking to libraries is actually made pretty convenient by cargo

#

but also its equally convenient with something like meson for c

#

i was under the impression each OS has its own calling convention

#

like stdcall vs whatever tf macos is vs whatever its called on windows

#

how, when its different between different oses

#

maybe specific to arm i have no clue

#

so basically we established you are hating on rust for reasons that arent even true (aka a strawman)

fading shell
#

i hate python

gentle grove
#

whos to say rust isnt c family

#

just because it isnt c/c++?

native orbit
#

should have 64

#

would be better

#

fr

manic forum
gentle grove
#

I think you should stop spreading misinformation to try and put down languages that are supposedly bad as a meme

wooden yarrow
#

it compiles down to the same LLVM IR

gentle grove
#

thats my main point here

wooden yarrow
#

.

gentle grove
#

so find some real reasons to dislike it

wooden yarrow
#

just because you dont use them doesn't mean they're bad

native orbit
#

the eu should sue arm fr

gentle grove
gentle grove
orchid fulcrum
#

Found the python user /j

gentle grove
#

who

#

how am i the python user

native orbit
#

struggles of the forced 4 byte instruction length intjsad

wooden yarrow
orchid fulcrum
wooden yarrow
gentle grove
wooden yarrow
#

common human fallacy to dislike things then try to assign a reason for it as to be able to continue hating it

#

why not just say you hate it for no other reason than you dont like how it looks without saying bs

gentle grove
#

if you just stopped at "looks ugly" then i wouldnt be so annoyed

#

i dont like when people propagate misinformation just because they dont like a specific thing

manic forum
#

okay this is not directly related but what are your opinions on lisp

#

i've been thinking of learning it recently, it seems weird/interesting

wooden yarrow
#

at first glance that programming language looks like the sandbox language with all the uses of parenthesis and tabulation

#

lmao

placid kraken
#

what are your opinions on V

manic forum
#

the people who use lisp seem to talk about it as if they ascended to a different realm and are now programming gods

placid kraken
#

the V language

placid kraken
manic forum
#

the internet told me haskell isn't a lisp

#

perhaps it lied

wooden yarrow
manic forum
#

whenever i see := i think makefiles what is wrong with me

hasty ruin
#

fuck makefile

placid kraken
manic forum
#

they are so simple

#

unless you're using someone else's rules

wooden yarrow
#

💀

manic forum
#

cmake is great when it works but is it just me or is the documentation non-existent

placid kraken
#

for my next trick i will compile switch statements into a while loop with a break at the bottom and an optional break at every case which is now an if statement

gentle grove
gentle grove
hasty ruin
#

@placid kraken write a tweak in your lang hm

gentle grove
#

meson is easy and simple

placid kraken
manic forum
#

i can't for my life figure out how to do anything with cmake without going through 50 stackoverflow questions, 10 github projects and reading one cmake doc page 15 times

placid kraken
#

it has interop with static and dylibs

#

so yeah i can

gentle grove
manic forum
#

wasn't there someone who actually wrote a tweak in rust

#

was it you

gentle grove
#

No ive never touched ios dev

placid kraken
#

i can’t even get rust to install on ios

#

the target triple doesn’t exist (i wonder why)

placid kraken
#

if i compile from source i can probably just build for darwin but i’m not downloading the whole rust source code on my phone

placid kraken
gentle grove
#

aarch64-apple-ios isnt it?

#

no host tools so no compiling rust on ios itself though

placid kraken
gentle grove
#

why would yoy do that

gentle grove
placid kraken
gentle grove
#

its guaranteed to build

placid kraken
#

time to try again now

gentle grove
#

Trol

placid kraken
#

lmao unknown cpu type iPhone 13,2

#

love

gentle grove
#

whered you put that in even

wind sequoia
gentle grove
gentle grove
frail cedar
gentle grove
#

this is why we use meson

native orbit
#

this is why we use makefile and nothing else

gentle grove
native orbit
#

i am the only person in the world that enjoys make hm

cloud yacht
#

Idk they use it a lot at procursus

orchid fulcrum
#

Make/theos is fire ngl

gentle grove
#

what sucks about meson

#

Is this another moment where you dont know it well so its automatically bad for no reason

gentle grove
#

youre thinking of something else

#

meson is the fastest build system for c/c++ by a long shot

#

and its definitely native, idk what wouldnt be native

marsh yoke
#

releasing definitely not soon, its gonna be a while

reef trail
#

give tim his credit

reef trail
manic forum
lime pivot
faint stag
#

like

#

how do you think webkit works

manic forum
faint stag
#

yes i really pulled out the ancient documentation

acoustic imp
#

@hasty ruin idk if it was you, but didn't you like post about something how you could hide a CALayer from screenshots or smth?

timid furnace
pearl sail
#

You applying bboawanc?

gentle grove
#

no because i dont know that stuff

pearl sail
#

Fair

gentle grove
placid kraken
#

"horrible news for everyone in 1998" LMAOO

clear iron
#

all Linuxes

acoustic imp
shrewd smelt
gentle grove
orchid fulcrum
gentle grove
#

i do understand their frustration with it being leaked though

#

that should not happen

gentle grove
#

so i have to design and write a language runtime

gentle grove
#

yikes

hasty ruin
#

unreal better

lofty juniper
gentle grove
#

ill be writing my own physics engine and game engine anyways

lofty juniper
#

any real game dev forks the engine and fixes it themselves trol

gentle grove
wet pawn
#

hi

#

does anyone know what

dyld[5244]: missing symbol called

means?

gentle grove
wet pawn
#

makes sense, one sec

#

im trying to install theos and yeah im running into an error when pasting the installer in my terminal

gentle grove
#

interesting

hasty ruin
#

Which version of macOS are you on

wet pawn
hasty ruin
#

which ios version?

wet pawn
#

ios 15.7

#

using rootless

#

dopamine 2.0

harsh tide
#

any tweak developers here? looking for someone that can handle a imo simple tweak project, of course paid. More details in DMs and would also appreciate if you guys maybe recommend someone that does custom tweaks 😀

cloud yacht
#

Nope no tweak developers here

torn oriole
#

AtDevelopers surely there are no developers here right

kind herald
#

Aaron tweak developer

reef trail
#

@sacred orbit, sorry to hear that you're leaving tweak dev but if i can ask one thing before you do leave, would you be open sourcing your paid tweaks? It would help new devs have something to learn from

slim bramble
#

Ewwww

shrewd moth
edgy bluff
#

or just message 0xkuj he is a top dev there

reef trail
edgy bluff
#

dude takes every 1 out of 3 bounties lol

reef trail
#

fair

#

i want some too tho

fading shell
reef trail
#

i'm busy atm anyway

#

with hyperion and school

fading shell
blazing warren
#

And rip jelvrek

harsh junco
#

Does anyone know how apple’s demoloop executes itself and shows the demo video?

placid kraken
lusty jacinth
gentle grove
#

im.gonna steal some.minor ellekit for mediascript

placid kraken
#

if you mean the thing i’m making that’s called elle, ellekit is the ios injection framework

gentle grove
#

why am i not just using JS

#

is it because i want a language where you can tightly control the effects system i guess

placid kraken
#

AE uses js

#
const amplitude = .15;
const frequency = 1.7;
const decay = 2.9;

const calculate_velocity = (given_index) => velocityAtTime(key(given_index).time - thisComp.frameDuration/10);

const calculate_bounce = (
    globals = [amplitude, frequency, decay], 
    indexes = [current_velocity, time_index]
) => current_velocity * amplitude * Math.sin(frequency * time_index * 2*Math.PI) / Math.exp(decay * time_index)
const calculate_time_index = (current_index) => current_index == 0 ? current_index : time - key(current_index).time;

let current_index = 0;
const maximum_time = 6;

if (numKeys > 0) {
    current_index = nearestKey(time).index;
    if (key(current_index).time > time) current_index--;
}

const time_index = calculate_time_index(current_index)

if (current_index > 0 && time_index < maximum_time) {
    let current_velocity = calculate_velocity(current_index)
    value + calculate_bounce([amplitude, frequency, decay], [current_velocity, time_index])
} else {
    value;
}
#

i made my own bounce script

gentle grove
gentle grove
placid kraken
gentle grove
#

oh

gentle grove
#

safer than rust

slim bramble
gentle grove
slim bramble
gentle grove
#

it is possible

#

Read the proposal

slim bramble
#

impore and swearseem cool lol

placid kraken
gentle grove
#

what should i try to do first

  • my own wayland compositor like hyprland but actually stable
  • video editor framework and scripting language
placid kraken
#

scripting language

orchid fulcrum
#

Wayland

gentle grove
#

1-1 tie

placid kraken
#

what are your ideas for the scripting language?

#

interpreted? compiled?

gentle grove
placid kraken
#

i wanted to make a very human language earlier

gentle grove
#

so like everything is monads

placid kraken
#

oh

#

lmao

gentle grove
#

you describe the structure of how things should be (like the video processing pipeline) and then that structure gets returned out

#

then it gets actually performed outside in rust code

placid kraken
#
First, set a to 1.
Then, increment a by 1.
Then, multiply a by 5.
Finally, print the value of a.
gentle grove
#

mathematicians already have this, its called latex

placid kraken
#

true

#

wait so

#

what would some video pipeline look like

#

in terms of syntax

gentle grove
placid kraken
#
mechanism of purpose "main"() ->
    promulgate unique designator named "a" to #<signed integer literal>1.
    conjure "print"(<array of characters>"hello world", <signed floating point literal>1.0, <designator of purpose>$"a").
    abscond <unsigned integer literal>0.
gentle grove
#
in = open_container(open_file("foo.mkv")).map(decode::default);

// takes args (video_streams: [impl VideoStream], audio_streams: [impl AudioStream], ...)
out = matroska_container(in.video_streams.map(encode::vp9), in.audio_streams.map(encode::flac));
out

Syntax would have to depend on me learning more about how stuff works so i know how to structure media pipelimes

placid kraken
#

hmm fair enough

#

that looks a heck of a lot like rust

#

lmao

gentle grove
#

but anyways

#

idk how to make type systems work

gentle grove
#

It would be nice if all the libraries were acrually dynamic libs that you load at runtime so its extensible and pluggable

#

It would be nice to let people write their own filters and stuff in native and have them.compiled and available in the script

placid kraken
# gentle grove idk how to make type systems work

i dont really either, elle's type system works by trying to implicitly convert variables to another type and having strict checks to ensure you cant implicitly convert from a string to an int or an Option<i32> to an Option<string> etc

#

type theory is so compplicated

gentle grove
#

i mean not even on that level of theory, just literally how do i make a type system compatible with abi so you can easily deal with foreign ones and can easily make your own stuff

#

you gotta be able to register types in the runtime i guess and then inspect them

#

but has ti happen at runtime

placid kraken
#

i have types in an enum like this

#

then i have a bunch of introspection methods like display, is_function (and is_unknown, is_string, is_int, is_strictly_int (excludes voidptr and strings)), weight (for type checking, things with the same weight can be bitcasted directly without conversions), size, etc

#

this is how i do it idk if something like C has a formal definition of it

gentle grove
#

namespaced types like java are the answer, so you can register types in the mediascript runtime but also be able to receive them back and know theyre the right type (and not one that has the same name but is different)

gentle grove
placid kraken
#

that sounds like a lot of effort

gentle grove
#

because otherwise i still have to do the same work figuring oit how ffi works if you make custom extensiond that interact with those types

#

sucks that i cant make rust type system solve all my problems but conceptually that wont work since that stuff only exists during compile time

placid kraken
#

i actually had a question about that kind of thing

#

how does something like C++ compile templated functions into a static library

#

how do you represent something generic in object files

#

how do you know the size of a generic struct, how do you represent a generic function

#

not only do you not know the size but you also cant calculate offsets into the struct because you dont know the size of fields

#

its something ive always thought about but been too lazy to google

gentle grove
#

if you want to use a template outside of current file, the entire template has to go in the header

placid kraken
#

oh i see

gentle grove
#

then c++ compiler generates concrete functions based on the template, and which actual types are used, the template itself doesnt exist past the compiler

placid kraken
#

lmao yeah i know that much

#

but thank you that helps

#

sometimes i forget the C family has header files

gentle grove
#

so only the generated functions from it being used in code on speciric types gets genrrated in object

placid kraken
#

yeah

gentle grove
gentle grove
#

@placid kraken you know the more i think about it, i think i.would encounter the exact same issues relating (de)serialization of objects into yhe runtime, and calling functions

no matter what language i choose (or make), i think i will always have to come up with a way for

  • libraries to convert types between the runtime and themselves
  • a way for libraries to declare functions in the runtime that call the library's own exported functions

because how else do you do this (cant just compile and ld things because thats not the model im going for)

#

and both javascript (deno) and lua (mlua) have those two bullets as the way you do stuff

#

just deno has awful runtime-developer-facing docs so it wasnt quite apparent how you use it

#

deno has serde support for v8 types and you can declare "ops" which are functions in the runtime that call your own callback

#

and idk about mlua

#

lua is gross

gentle grove
#

mlua has IntoLua and FromLua traits, so same thing

#

maybe i should use lua even with my dislike for its syntax

#

lua is definitely intended for this and more battle tested than v8/deno lmao

gentle grove
#

@grave sparrow the new laptop i preordered contains an arm processor

placid kraken
#

it seems to me like this is exactly the same problem as C -> python

#

how do you get python objects back in C

gentle grove
placid kraken
#

yeah

gentle grove
#

I have to figure out how to downcast stuff i guess

gentle grove
#

This language gets worse every time i do more and more serious work with it

#

now im doing a deep dive into arrays in c (NOT just pointers)

granite frigate
#

python and swift interop 😭😭😭

kind wedge
#

how does nathanLR sign binaries? i know bootstrap used /basebin/fastPathSign but i cant seem to find it here

granite frigate
#

Nathan added it to the dpkg hook i think

#

It’s not an external binary

kind wedge
#

oh

#

how would i sign binaries created with clang then

granite frigate
#

build and ct sign a fastpathsign binary on pc and send it over i guess

#

there isn’t a standalone package

granite frigate
visual meadow
#

Instead of using binary

manic forum
frail cedar
placid kraken
#

dynamic arrays hold a length (amount of elements) and capacity (number of elements that can be held by the memory allocated)

#

if the length exceeds or is equal to the capacity the capacity grows by some factor, usually double

#

and then there’s also heavy arrays that hold keys and values and those are usually used for maps i think

gentle grove
#

but they have subtle semantic difference from pointer even though in 90% of cases it decays to pointer

placid kraken
#

??? they are just a pointer

gentle grove
#

they arent though

placid kraken
#

the capacity is the size of memory allocated thats pointed to by the pointer

#

divided by the size of each element i guess

gentle grove
#

i mean the ones with no capacity

#

Let me find it again

placid kraken
#

do those resize every time a new element is added?

gentle grove
#

This is the thing that set me off

placid kraken
#

any array usually is void *, int size, int capacity so the struct fits into 2 bytes

gentle grove
#

they arent the same thing and i always thought they were

placid kraken
#

because it’s const?

gentle grove
#

its not const

#

its a pointer to a string in rodata i believe

#

or wherever tf you put data but is read only

#

But str2[] makes it stack allocated i think? Dont quote me on that

placid kraken
#

why

gentle grove
#

But in function args then i think it makes no difference

#

since it decays to pointer

placid kraken
#

yeah

gentle grove
#

its the way syntax is reused to mean completely different things

#

thats stupid

#

rust found a way to make things make sense so thats not the problem

#

expression oriented syntax does wonders

placid kraken
#

rust is also much higher level than c

gentle grove
#

but that doesnt really mean anything here

#

and even if you used just c stuff in rust itd be better than rust (but be ridiculous lol)

#

even zig makes it a tiny bit better based on the little stuff ive looked at

#

zig is just supposed to be better and more unstable c i think

#

also the whole void arguments thing, i was never clear on whether thats required or just conceptually better

#

that second one where & is the same is stupid

placid kraken
#

it should not be this way and i hate that it is

gentle grove
#

i wouldve never guessed that

#

id get tripped up by that

placid kraken
#

yeah same

gentle grove
#

& should make a *str[]

#

what other quirks do i not know about c unsized array notation now

placid kraken
# gentle grove also the whole void arguments thing, i was never clear on whether thats required...

in elle i actually check for that and ignore it lol

if r#type == Type::Void
                    && self.parser.current_token().kind == TokenKind::RightParenthesis
                {
                    if self.parser.warnings.has_warning(Warning::CStyleVoid) {
                        println!(
                            "{}",
                            ty_loc.warning("Elle does not support C-style explicit function prototypes.\nPlease remove the 'void' type from this function's signature.\nThis is a warning, which means the compiler will ignore this.")
                        )
                    }

                    break;
                }
gentle grove
#

so hold on

#

oh

#

nvm

#

that confused me because joemama is 7 long so it looked like null termination vs not

#

but no

#

trolled

placid kraken
#

lmao

gentle grove
#

oh also about my video thingy i think itll be most fun if proceed with making my own language and runtime

placid kraken
#

the whole void argument thing really annoys me that it exists at all

gentle grove
#

it may be a big exercise in ffi though since i want everything (including basic std libraries) to be dynamic libs

placid kraken
#

good luck

gentle grove
#

maybe ill make a struct/trait in mediascript called Type and one called Function or Operator or something and then everything is based on that

placid kraken
#

when would you ever need to explicitly state that a function takes no arguments

gentle grove
#

SEE

placid kraken
#

we have a name for that it’s called foo() {}

gentle grove
#

c is shit, end of stor

#

y

#

Wait what was earlier

#

is it because sizeof is an operator and not a funcrion

#

oh

#

so & still makes pointer to array

placid kraken
#

WHY ARE PEOPLE SAYING C IS MORE PRECISE THAN OTHER LANGUAGES WHEN YOU HAVE THIS SHIT IN IT 😭

gentle grove
#

I guess you just have to not do that

placid kraken
#

why would it return a different value

gentle grove
#

glad im not just crazy troll

placid kraken
#

isnt char[] still null terminated

#

also why tf is sizeof(<6 unsigned char>) = 8

gentle grove
#

has to be since all of it is just pointers to rodata

placid kraken
#

vvv

#

oh

#

it’s a pointer

#

right

#

yes

gentle grove
#

i should gloss over smines again and make sure im not messing up anything like this

placid kraken
#

wait why is the first one 7

gentle grove
#

i think i make all my strings static for now

gentle grove
placid kraken
#

yeah but the size is 6 not 7

#

why does it include the null terminator

gentle grove
#

null terminator

placid kraken
#

that’s so cursed

gentle grove
#

because its part of the array

#

that part makes sense to me

placid kraken
#

i guess idk

gentle grove
#

I dont have an issue witj it including the bull terminator

placid kraken
#

yeah lmao true

#

strlen would still return the same value right

#

because it decays to a pointer and it iterates until the null terminator

#

yeah

gentle grove
#

ugh

#

i basically never deal with string manipulation in c

#

glad that thats the case

placid kraken
#

next we will see jailbreaks written in cello

gentle grove
#

if i was a dev id write a jb in rust

#

no reason not to fr

gentle grove
#

yeah thats what i mean by the target working

kind wedge
#

this really should be in procursus or something lol

slender glade
#

I've neverrrrr seen an actual use case of char []

#

no idea why it's taught to beginners, makes me cringe

slender glade
timid furnace
#

do you mean specifically char[] = "string" or char arrays in general?

slender glade
#

the first

placid kraken
#

i implemented this thing as part of the language

#

so now you can do this

#

its like magic

cloud yacht
#

Should do Lua length syntax

orchid fulcrum
placid kraken
#

personal use/hobby

#

there are 1 million issues in random places and the test suite is tiny so there are probably more

#

i dont want the language to end up being a chore to work on because people are actually using it and need things fixed

#

as it is right now its fun to work on because things can be broken and noone cares

fading shell
#

just publish it and immediately archive it

#

/s

placid kraken
#

lmao true

river torrent
#

for some reason when i compile my tweak and try install it, it says

Depends mobilesubstrate:iphoneos-arm
which im guessing is i've compiled it for rootful, how do i compile it for rootless?

control file:

Package: io.bop.cameraspoofer
Name: CameraSpoofer
Version: 0.1.0
Architecture: iphoneos-arm
Description: An awesome Camera Spoofer tweak!
Maintainer: bop
Author: bop
Section: Tweaks
Depends: mobilesubstrate
#

thank you!

orchid fulcrum
gentle grove
#

with the actual semantics of being an array by value

#

this is how you do with getopt for example

#

thats what they recommend i mean

#

it makes sense i guess

#

in my own function it is an array even if the functions get it as decayed to pointer

slender glade
#

Ohhh

#

I misread mb

radiant idol
#

theos does that automatically

gentle grove
#

do you think i should redo this to const char *

#

i guess if i do it this way with static const char[] does it technically mean im not adding a pointer to the stack

#

When should you

#

And does it make any difference in thsi scenario

#

Where i made it static

#

Where

#

i mean static on the char[]

#

it makes it not on the stack

#

thats whar we were talkignabout originally

#

the same scenario

#

yeah but its the same thing i think

#

ill do that but im trying to make sure

#

do you know if theres any difference

#

other than sanity

#

Is there a list of those sections and what they mean

#

or are they somewhat compiler specific

#

what about ELF

#

because fuck macos

native orbit
#

only macho matters 🗣️

gentle grove
#

i guess technically its the string literal that goes there and not the char * troll

#

where can i see examples for real uses of char[]

native orbit
#

random gnu sources prolly

gentle grove
#

m?

#

Mmm?9)

#

wtf is jappening

#

my main function is so ugly

native orbit
#

coreutils got a lot

gentle grove
#

im gon a finally make dome functiond

orchid fulcrum
radiant idol
#

yes

orchid fulcrum
#

Thats cool it was annoying to change it everytime i create a template

radiant idol
#

lmao yeah it's not really documented well but it does do that

river torrent
#

should I use Objective-C or Swift to create tweaks?

#

is there a recommendation or is it just personal preference

cloud yacht
#

There's not much tooling for swift tweaks

#

Your probably better off with objc

river torrent
#

alr

visual meadow
#

anyone here know how to setuid in dopamine

#

from mobile ====> root

kind herald
#

Idk

visual meadow
#

Wait nvm i mightve forgot bit

#

Nvm

#

Still doesn't work

It does nvm im dumb

gentle grove
#

@grave sparrow killall

#

run it on solaris

gentle grove
#

bro

#

my scripting language could solve this

#

video editing as i was imagining it eould be the exsct same.process

native orbit
#

i mean u kinda can tho

#

oh on ios

#

ur cooked on ios

gentle grove
#

UNSAFE C CODE 🔥

native orbit
#

hm

#

u sure thread_set_state aint work

#

like on ur own proc

#

why

#

legit no reason to do that

kind herald
#

You are

gentle grove
#

cant wait to make my own language runtime

#

what could go wrong

#

i just need time

orchid fulcrum
gentle grove
harsh junco
wooden yarrow
#

absolutely

orchid fulcrum
#

Unironically more readable

manic forum
#

what

placid kraken
orchid fulcrum
# placid kraken ugh

You have the answers ?
I found (not sure if i understand the question forrectly though)

Z = (1-i)/2

w = (1+4i)/-3

placid kraken
#

not quite lol

#

or wait

#

that is right

#

except z

lime pivot
slim bramble
placid kraken
#

yeah but with complex numbers

slim bramble
trail nimbus
#

sounds exactly like what a teacher would say

river torrent
#

How hard is it to port ios 14 tweaks to iOS 15?

#

From source

fading shell
river torrent
#

What about a camera-related tweak?
has the API/camera-handling changed much from iOS 14 to 15

orchid fulcrum
#

A good way to check is comparing ios14 vs ios15 headers of relevant classes

river torrent
#

alr thanks

harsh junco
orchid fulcrum
#

This is embarrasing i am in uni and i still think my answer satisfies the equations 💀 (tried one more time, they for sure don't satisfy)

placid kraken
#

i mean it might why not substitute and try it

#

but maybe don’t put it in that form

#

cartesian is much easier to visualize and reason about

visual meadow
#

no they didnt

#

hold on

#
<key>com.apple.private.thread-set-state</key>
<true/>```
#

they just locked it behind an entitlement

#

oh

#

also pretty sure they locked it behind that like

#

mid 16

gentle grove
#

djd someome ghost ping me here

#

bruh

#

@harsh junco i caught you

#

I SEE THAT

#

i have notification histiry

placid kraken
#

hmm sure

#

prove it then

#

:3

gentle grove
#

trolled

placid kraken
#

who could the the the the the the possibly be

gentle grove
#

idk maybe the one named the the the the the right above me

clear iron
#

the the the the the

gentle grove
#

Why dont you go capture the memory of sone bitches

#

who

#

who

placid kraken
#

🦉

wooden yarrow
#

mid

gentle grove
#

youre mid

wooden yarrow
gentle grove
#

switch to linux

#

no more stupid apple

#

correct

#

forgot there were more advantages even

harsh junco
#

vm? frcoal

gentle grove
#

should i call it boxscript

#

because the scripting runtime would be almost like a box similar to std::boxed::Box<T>

#

you register your own types, your methods that can accept those types, and the script gives you something out like a box

placid kraken
#

what do i call a programming language where your code is an essa

#

y

#
First, set a variable named "a" to the value of 3. 
Then, double the variable "a". 
Then, subtract 2 from the variable "a".
Finally, print the variable "a". (4)
gentle grove
#

essayscript

gentle grove
#

i feel like Finally should mean return instead of just being the same as "Then"

placid kraken
#

also double, set a variable, subtract etc are all functions

#

(4) is a comment

placid kraken
#

omg then i can make functions be paragraphs

gentle grove
#

First, accept arguments ...

gentle grove
#

then first isnt the same as Then troll

#

the more i think about this the more i am just making a small JVM

#

rscript

#

oh but r exists

#

rvm doesnt sound good if i make it the Rust Virtual Machine

wooden yarrow
gentle grove
#

?

#

rscript is good though because it haas "rs" which is funny

placid kraken
#

"Custom Add":

First, accept arguments named "a" and "b".
Finally, add "a" and "b".

Summary:

First, set a variable named "result" to the value of "Custom Add" with 1 and 2.
Then, print the variable "result". (3)
Finally, do nothing.

#

summary is the main function

wooden yarrow
placid kraken
#
<program> ::= <statement> | <statement> <program>
<statement> ::= <expression> | <function_definition>
<function_definition> ::= <function>':' <argument_definition> <expression_list>
<argument_definition> ::= 'First, accept arguments named ' <arg_list> '.'
<arg_list> ::= <arg> | <arg> ',' <arg_list>
<arg> ::= '"' <identifier> '"'

<expression_list> ::= <expression> | <expression> <expression_list>
<expression> ::= <line> | <return>
<line> ::= 'Then, ' <declare> | <retrieve> | <call> | <noop> '.'
<return> ::= 'Finally, ' <retrieve> | <call> | <noop> '.' 

<declare> ::= 'set a variable named ' '"' <identifier> '"' 'to the value of' <call> | <number> | <retrieve>
<retrieve> ::= 'get a variable named ' '"' <identifier> '"'
<call> ::= <function> 'with' <param_list>
<noop> ::= 'do nothing'
<function> ::= '"' <identifier> '"' | <identifier>

<param_list> ::= <param> | <param> ',' <param_list>
<param> ::= <number> | <retrieve> | <call>
<identifier> ::= [a-zA-Z_][a-zA-Z0-9_]*
<number> ::= [0-9]+
#

i made formal grammar

#

maybe

placid kraken
#

BNF notation

slender glade
#

in case anyone is interested in reading, I wrote a bit of a detailed writeup on remote views

#

@granite frigate @manic forum

river torrent
#

for some reason AVFoundation being a dummy and says there's no video tracks inside my .mov file even though ffmpeg states it does

and yes it's referring to the correct file as outputted in console

#

ooh ty

#

is there a better path?

#

that won't get me trolled ☠️

#

store a .mov file temporarily

#

nope

#

Is there a way to see per-tweak logs?

#

Camera app

#

AVFoundation(Camera)

#

ah alr all im doing for logs is adding a "[VCam Tweak]" prefix and filtering out console by that string

granite frigate
#

Whatsyop

#

ppp

#

Hahahhahahahaha

river torrent
#

NSLog, i saw that and i think i use it lmao

#

oh sheesh

#

I'll try /tmp/ first(mainly bcs i already compiled the tweak just now)

#

and see if it works

#

It's not necessarily injecting to the Camera app itself, it's hooking into AVCaptureVideoPreviewLayer, AVCaptureSession and basically overwritting the buffer

#

Virtual Camera tweak for ios 15 🙏

#

alr

#

yep ur right, sandbox fucking w me

slender glade
river torrent
#

alr noted

#

alr 😹

#

/tmp/ doesn't auto-purge or anything right?

#

ah makes sense

#

in that case no i need some form of persistence

#

whole OS

#

the tweak works globally on any app that uses AVFoundation pretty much

#

TikTok, Snapchat, Camera App

#

the temp file is based on user-input

#

You select a video/image from your gallery

#

and it'll get stored in cache somewhere(incase the user deletes the file from gallery)

#

like a copy gets stored

#

and if they select another file, old one gets removed/overwritten

#

fk

#

how do tweaks such as Eneko

#

store their stuff

#

is it just based on gallery?

#

hm

#

ah i see

#

reading through console is such a mess bro

#

alr alr

#

so that's that rootful jailbreaks pretty much are

#

it allows tweaks outside of their sandbox?

#

like if this was a rootful tweak, I wouldn't have this issue

#

oh fr?

#

yay 😭

#

I mean

#

what if I just made it based off gallery?

#

If you delete the video off gallery, RIP for u then

#

like it will have a path to gallery

#

rather than cached file

#

libsandy it is

#

yeah

#

yippee :D

#

It doesn't seemt o be creating the temp.mov file in /tmp/ either way

#

oh my console isnt consoling

#

nvm just had to start/stop

#

yep

#

being a tweak developer must be so painful

#

makes sense why there isn't that many tweak devs

visual meadow
#

its so bad

#

like it just nukes console messages

river torrent
#

yep bruh

#

400k messages in 20~ seconds

#

i wonder what iOS jailbreak devving is like

#

reverse engineering IPSW files must be hell

#

I mean I wanna get into it or atleast have an understanding of it
rn im just reading BlueFox ARM RE book rn(first one)

#

oof 😭

#

i can imagine since u find a bunch of dead ends

#

and keep doing random shit pretty much to see if you expose a vuln

#

fair enough 😭

#

oof

#

i mean

#

i wonder how many

#

jailbreak devs

#

apple has stolen

#

i wonder what they do now

#

do they need to sign an agreement saying they'll never release jailbreaks ever again or smth

#

crazy bro

#

couldn't u just put 0 effort on purpose

#

or if u find a vuln, keep it a secret on purpose lmao

weary heath
river torrent
#

tbf ur not the only one devving jbs so doubt you'd be the only one

weary heath
#

Would probably violate your work contract

river torrent
#

oh yeah true

#

yeah and overall money talks

#

crazy how

#

u have a piece of hardware in ur hand

#

and its a pain in the ahh to jailbreak it

#

yeah oof.

weary heath
#

Sideloading is good enough for me but I can live without that too

river torrent
#

i like having tweaks personally

#

and freedom over device

#

customisation

weary heath
#

If only they were as attainable as iPhones

slender glade
#

They’re mutually exclusive

river torrent
#

more freedom = less security*** brainfk

#

same

slender glade
river torrent
#

^ word

river torrent
#

I MEAN

#

T

#

I MEANT

#

more freedom = less security

#

like

#

android users have less security compared to apple

#

but they still be loving android

#

why cant ios be the same broo

weary heath
#

Android security is pretty good it just gives you the ability to disable its safeguards

#

Which you could argue makes it less secure

river torrent
#

custom ROMs, rooting etc

weary heath
#

It’s only less secure because of the human turning it off

slender glade
river torrent
#

hm

weary heath
#

I think these days they’re mostly the same

slender glade
#

Definitely not

weary heath
#

Oh security

river torrent
#

androids allow u to install APKs with a simple button, iOS requires u to have some knowledge of signing certs and stuff

weary heath
#

Idk much about the differences security wise but I do know zerodium pay more for android 0 clicks than iOS

river torrent
#

ios 0 click is crazy

slender glade
#

CoreTrust, Sandbox, AppleMobileFileIntegrity, entitlements, PAC/PPL, TXM

river torrent
slender glade
#

All either better than android counterparts or in some cases an android counterpart doesn’t exist

river torrent
#

also doesnt android have that vuln that's like

#

unpatchable or smth

#

if u have like an older android vers

#

you're susceptable to a bluetooth keyboard connecting to ur device ☠️

slender glade
#

iOS does too

river torrent
#

oh true

#

is there any like

#

visual representations of how iOS works in a nutshell

slender glade
river torrent
#

like im still trying to understand how operating systems fundamentally work

#

you have the kernel

#

drivers run on the kernel(ring 0)

#

and u have the user-level where all ur apps run

#

the iOS kernel is XNU

#

each app is sandboxed meaning they can only access their own shit, nothing else

#

some exceptions depending on permissions given(photos, files)

#

and there's still the security part i need to learn such as SEP, Code-Signing/Certs

#

but for the time being i need to learn how tweaks work but it's relatively straightforward

#

u hook into methods/functions in a process/framework and you can basically make it execute ur own code prty much

#

also any way to make this stfu?(it compiles so idk why it's yelling)

slender glade
#

When you change this address

#

It calls your exchanges function

reef trail
river torrent
river torrent
#

oh wait nah it says make: *** No rule to make target 'command'. Stop.

torn oriole
#

commands

#

Not command

river torrent
#

oh mb

#

yep thanks, it worked!
gonna head out, kinda late ☠️

torn oriole
#

wtf is this implying 😭

#

oh

hasty ruin
#

I’m with the Inc on this one.

torn oriole
hasty ruin
#

yes

torn oriole
#

oh

slim bramble
#

🙄

gentle grove
#

but yeah most androids are pretty bad

#

i know i like to make fun of ios for not having verified boot until ios 15 but thats just one smaller detail and ios definitely has more of them down than the majority of other android manufacturers

#

pixel OS is very solid overall

#

im pretty sure they have MTE and PAC enabled too on pixel 8 and up (theyre the first ones to have the hardware support)

#

and pixels have an SEP equivalent

#

apps are sandboxed and permissioned just like ios

gentle grove
#

i guess because it creates rare compatibility issues for badly written apps with native interfaces

granite frigate
#

Sick writeup 🔥

native orbit
torn oriole
gentle grove
#

how is my own message unread

gentle grove
#

i am unsure of what it considers system data

#

is user data "system data"

#

because it seems to include it

torn oriole
gentle grove
#

is .bs extension taken for BoxScript

#

i need a better name

#

bscript

#

or should i make it shortened

#

Bscri

#

see if i call if b script, people are tempted to shorten it to "B"

#

thats a name conflict

#

vscript exists apparently, for source engine

gentle grove
#

I wanna write my own printing stack

river torrent
#

You know how if you want to downgrade, it will only work if the version you’re downgrading to is being signed

#

How does that process work?

wooden yarrow
# river torrent How does that process work?
  1. Version info and device info is sent to Apple's servers
  2. Apple's servers signs the firmware using their private keys, and gives you the signature along with other info
  3. The firmware component is sent to the device
  4. The device BootROM verifies that the components are signed only by Apple's private key
  5. It boots if it succeeds, and not if not
river torrent
wooden yarrow
river torrent
#

So

  1. Device & Version info gets sent

  2. Apple Signs it

  3. Capture the request being sent by Apple in home network and store it somewhere

river torrent
#

Does the nonce get sent too?

wooden yarrow
river torrent
#

Ah rip 😭

#

Thanks though

wooden yarrow
#

yeah no problem, common question trol

river torrent
#

It was just like a random thought in my head like why can’t we do that but I guess not rip

#

Nonce is stored inside the kernel right

wooden yarrow
#

stored in the NVRAM that's only accessible with sufficient privileges

#

the nonce was settable actually, which is why people were able to downgrade up until iOS 15

#

then from iOS 16 onwards there was Cryptex, which ruined compatibility and also needed a nonce, but one which couldn't be set properly

#

thus we are in the state where we cannot downgrade from 16 and up

river torrent
#

But theoretically if you could make it so that the nonce doesn’t change you’d be able to downgrade assuming you have the original intercepted requests

wooden yarrow
#

SEP and the Baseband also have nonces, but latest firmwares for those can be compatible with older versions, so the latest firmware was flashed

river torrent
#

Or are there other caveats?

wooden yarrow
#

well

#

in order to restore

#

i think it reboots at least once

#

so the nonce would be ruined

#

(?)

river torrent
#

not sure 🤷‍♀️

#

It’s all interesting af tho

#

but I heard it gets boring 😂

wooden yarrow
#

(kinda, it just sets the nonce to a known value for next reboot)

river torrent
#

Ah makes sense

#

So jailbreaks currently rn do that?

wooden yarrow
#

the ones for iOS 15 and under allow for that, yes

#

but from 16 onwards there's no point

#

can't set Cryptex nonce

river torrent
#

cryptex 🤔

#

I wonder how iOS 16 jailbreaks were developed

#

no.

river torrent
wooden yarrow
river torrent
#

With XNU and everything

river torrent
#

Oh and roughly how long do people spend a day looking for exploits

wooden yarrow
#

that just depends on the person

river torrent
#

Is it something they do all day or?

#

ah but on average?

wooden yarrow
#

not something i would know unfortunately

river torrent
#

alr alr ty 🙏

river torrent
#

wow nobody has srsly msged in this channel for nearly a day

hasty ruin
#

balls

river torrent
#

anyways, my tweak doesn't seem to be picking up libsandy

#

and yes i've included it:
#include <libSandy/libSandy.h>

and inside my makefile

#
TTtest_FILES = Tweak.x
TTtest_CFLAGS = -fobjc-arc -I$(LIBSANDY_PATH)/include

# Link against libSandy
TTtest_LIBRARIES = sandy 

#

oh sh i dont think thats an actual lib func

#

is there any docs?

orchid fulcrum
river torrent
#

ohh it's within the repo ty

#
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>AllowedProcesses</key>
        <array>
            <string>*</string>
        </array>
        <key>Conditions</key>
        <array>
            <dict>
                <key>ConditionType</key>
                <string>FileExistance</string>
                <key>FilePath</key>
                <string>/var/mobile/Library/Caches/temp.mov</string>
                <true/>
            </dict>
        </array>
        <key>Extensions</key>
        <array>
            <dict>
                <key>type</key>
                <string>file</string>
                <key>extension_class</key>
                <string>com.apple.app-sandbox.read</string>
                <key>path</key>
                <string>/</string>
            </dict>
            <dict>
                <key>type</key>
                <string>file</string>
                <key>extension_class</key>
                <string>com.apple.app-sandbox.read-write</string>
                <key>path</key>
                <string>/var</string>
            </dict>
        </array>
    </dict>
</plist>

Not entirely sure if I've done my plist correctly since sandbox is denying it

#

I want all processes to have access to temp.mov

#

indicated with an asterisk(*)
<string>*</string>

#

but I've successfully applied the profile though

cloud yacht
river torrent
#

midday*

indigo peak
#

wish i had time to finish mine

slim bramble
#

I'm stuck with it not working too

#

I'm getting status code 2 vexedtomato

river torrent
river torrent
#

idk how the original tweak doesn't have sandboxing problems

#

cuz i have sandboxing issues and i need to use libSandy to give access

river torrent
# slim bramble How lol

create the .plist file with tweak_FileAccess

You can use the template provided in the github repo

import libsandy in ur main tweak file and do libSandy_applyProfile("Tweak_FileAccess");

#

and voila

#

but my issue is:

#

so maybe im doing smth wrong

#

cant output to my logs file either

#

oh shit

#

wait

#

didn't know i had to add /private

#

???