Controlling iPhones
I've spent over 5 years of my life researching and making software and systems to control iOS devices.
I sell a product that does this well: ControlFloor
Almost no one has bought a license for my product in the last 8 months. I can't survive from it despite
it consuming the last 5 years of my life.
It wouldn't be much of an exaggeration to say that outside of Apple employees I am probably one of the
top 10 people on planet in regard to knowing how it all works.
I say much of an exaggeration, because it's entirely possible there are a few hundred people hiding around
the planet secretly know and are hoarding their knowledge. I'm mostly not. I go around blabbering about
this crap all the time. I'm pretty sure people in the iOS automation scene are sick of seeing David comments
appear on every single related thread about it.
I'd like to list out some of the things I have and things I have done:
- I own 30+ iPhones. Different types. Different iOS versions.
- I own 15+ embedded development boards ( pi and clones )
- I own bluetooth monitoring and bluetooth development boards
- I own specialized USB MITM devices
- I own piles of USB hubs ( for testing them for device farm use )
- I've studied private Apple protocols and re-implemented them myself from scratch
- I was the first to publicly release open source code to start XCTests without XCode.
- I wrote my own Ghidra MCP
- I own and have used Hopper extensively.
- I have 30 years of experience in low level analysis and hacking
- I'm a known grey hat hacker.
- I'm the person who cracked loading alternative kernels on the Steam Link
- I regularly use 3 different hackintosh computers running 3 different versions of MacOS
- I also own and use multiple official Apple hardware devices ( m1 and m4 )
- My company has and maintains use of an Apple Developer Account. I attempt to follow Apple rules and not break their restrictions
- I've studied and jailbroken iOS devices, but I don't generally push such techniques. I attempt to use official and approved Apple mechanisms because they are going to continue to work.
- I've written a full suite of my own custom disassemblers, decompilers, static analysis engines, and dynamic instrumentation systems.
Essentially, when it comes to internal Apple bullshit, I've studied the crap out of it and spent years
using that research to build reliable business software that can be used by others to build iOS Device Farms that
function smoothly while powerfully automating iOS devices. It was no small feat to do this and it continues
to require maintenance and further research to keep it working well.
At this point you may be thinking "Yeah yeah ok whatever you think you are a genius and mr all knowing expert
on Apple shit. We get it already. Could you get on with the point of your stupid post? Is there one?"
Which brings me to the point of this post. I'm fucking sick and tired of well meaning clueless dipshits asking
on open source projects "Hey I have an idea! Maybe we can automate clicks and swipes on phones by blah blah
bs bs bs. Isn't this exciting! Get motivated! I want to do this because it would be cool. :D"
Omg every fucking time I encounter these people I want to make them lay down on a pile of broken iPhones
because it just gets on my nerves. I do actually try to educate them without chopping there heads off. I just
slap them in the face a few times while educating them. Nobody really appreciates it. I can't really help it at
this point though.
You see, I know all of the various ways to do what they want. I tell them how. Over, and over, and over, and
fucking over again everywhere ad nauseum. The response I get back "But David I have an idea you should look
into it." No shithead, your idea is crap. AND I already fucking did look into that idea, years ago. AND I
fucking persistently look into it again and fucking again and again and again and a few more fucking thousand
times all the damned time in case something changed. Your crap-ass "I have an idea!" comment is ONLY and
completely annoying and useless trash.
But no. I can't fucking lose it like I'm a lunatic. I have to try to keep it together. Because these people
aren't actually assholes or dipshits. They appear to me to be clueless morons, but they are well meaning clueless
morons in some sense. Maybe even they are actually smart. I don't know. I can't tell. Their posts don't indicate
they are smart. Anyway I'm getting side tracked. It's irrelevant whether they are intelligent or not.
The people asking this shit basically mean well. And then they encounter David. And David's reaction is nearly
equivalent to a giant "FUCK YOU". I don't really mean to come off this way. It's bad for my reputation. It doesn't
win me friends. I am actually attempting to explain what there is to know about this shit every time.
But, well, it's tiring. If I was making good money off all of my hard work in this regard, I wouldn't be so
bitter. I might respond with a friendly "Sure good ideas. Here are the related things, go use them. Thanks for
your question." But, well, that's not the reality in which I exist.
In the reality I exist, the field of iOS automation is fucking cutthroat. My research? My ideas? Fucking
stolen from me by companies with $100m+ in capital. I have... 0 millions. I struggle to have money to pay
my taxes and food.
Why should you care? Because I'm the person most likely to continue pushing forward advancement of iOS
automation. If everyone involved would stop fighting me and enable me to survive instead of trying to funnel
everyone to expensive solutions by greedy companies who won't share their knowledge.
You see, I may be a bitter grouch who tells you to fuck off to your face, but in the middle of telling you
to fuck off I'll still point you at my research and share extensive knowledge with you. I'm just not going
to sit there and pat your head and tell you that you are a good boy for reiterating clueless shitty
ideas that I had 7 years ago and I know won't work out.
Let us return to the topic of the post though, which is Controlling iOS Devices, not "get indoctrinated into
the sympathize with David cult by listening to his sob story."
I talked about this in a presentation I gave for the Appium Conference. In 2021. 5 fucking years ago.
The information I give there hasn't really changed much in the last 5 years. I still wear the same shirt
I'm wearing in that video regularly.
I go through a lot of information rapidly in that video. I'm not going to dive into ALL the details of
everything in this post and instead will focus on one aspect, which is causing taps to occur on iOS devices.
There are a number of ways to do this:
- XCTest
- A touchpad/mouse ( usb or bluetooth )
- Mousekeys accessibility tool
- Universal control ( over Continuity )
- Apple Internal ( restricted and can only be used with private Apple credentials )
My main ire is from people saying "I had the most brilliant idea! Synthetic bluetooth HID devices! OMG OMG this
will be great." STFU you fucking morons. The number of times people have tried to convince me this is the best
and optimal solution is infuriating. I just can't take it. Stop stop stop.
Why?
Because there are piles of software projects on GitHub that do this. It's well understood if you'd spend any
reasonable amount of time looking into it. You can literally fucking ask AI to create software to do this for
you and it will within minutes.
So what's the issue? If it's so well understood and easy to do, how is it not the best solution?
Because it doesn't provide absolute coordinate tapping. It only provides relative movement of an accessibility
mouse cursor. This means that if you want to do automation such as automated testing with it making synthetic
taps, you basically can't.
I say basically because you -can- actually calibrate relative movement and combine it with mousekeys for precise
small movements to do it, but it is very hacky. Still a valid solution. But hacky and fragile and painful.
I've not seen any open source programs that do this optimal way. There are companies that do this with private
code. They haven't shared it. It's not that hard to do though. You could have AI create you the code to do it
these days easily.
So what's my beef? If it can work, why do I still shit on this idea?
Because there's almost no fucking point to it. I say almost because there are situations where it is the best
method. I may get into that...
The reason there is almost no point to doing it this way is because there is an official Apple supported mechanism
for making taps and swipes. And it supports absolute positioning. XCTest. Yes the Apple supported way, XCTest
scripts and the official calls, sucks badly. But you don't have to use that. You can use the underlying private
API to quickly and efficiently make the calls. WebDriverAgent does this for example. MANY MANY open source software
systems for controlling iOS devices use these private API calls. I explained how they work at a high level 5 years
ago in my Appium conferencce presentation.
Just go use those private API calls of XCTest. Done.
So why are people refusing to do this? Because to use XCTest you need to have a developer account with Apple
and sign the code doing it. People just don't want to have to do that.
This is where I think people are dumbasses. Yes I know it's annoying and I dislike Apple for forcing you to
do all that to call the API. But, well, tough shit. That's how it is. If you don't like that, just fucking
jailbreak your phone then.
But NOOOOO, fucktards persistently show up on my projects and every single damn iOS automation project and
say "But I don't want to need a developer account. I think I've figured out a way." No. They haven't. STFU
you fucking annoying ass shitheads. STOP.
I'm cool with people investigating Apple shit and hacking it. Awesome. Go do it. I'm all in favor. Find a way
to do what you want without Apple Developer accounts. Cool beans. But for the love of anything that is holy
fucking stop acting like you've come up with a good idea while having done jack shit to try it.
Go hack the damned devices. Go decompile the code. Go ask AI to figure it out. Go do literally fucking anything
to move the needle forward besides fucking wasting my and other developers time with your crapass GitHub
comments on "Hey what if we make virtual bluetooth devices! Best idea ever!" AAAAARRRGH.
You've made it this far. Your next objection to my ranting crazy man talk? "Uhh David relax these people are
just trying to learn. They don't know any better. Why are you so angry at them?"
Well I've explained why I'm pissed off pretty extensively already. But what you are asking is not really
"why are you pissed off" it is "why are you pissed off at them specifically."
A bunch of reasons:
- They don't respect me at all as an expert ( and they really should )
- They don't listen when I give them the answer ( even without attacking them )
- They sidetrack actual avenues for making advancements that I'm pointing at ( and working on )
- Their ideas suck.
- They are stupid.
- Fuck them.
- Help me please I'm drowning.
- I'm on fire too
- Can I exit the volcano now?
So you see, I'm stuck inside a flaming volcano. The inside of my head has reached 4000 degree and is
melting. I'd like it if someone handed me some water, or rescued me from inside the volcano, but, well,
that's unlikely.
Time for you to reiterate your "David. Life is rough. Cry me a river I don't care. What exactly do you
want from us?"
I want you to understand. It would be nice if you sympathized with my pain, but I don't expect that.
I'd like some support for my work. Send me $5. I have a donation page on my company site. Go to it.
Send me $5 so that I can survive slightly longer before I burn alive inside the volcano.
Oh. Wait. You aren't going to send me $5. You won't send me $1. You aren't here for any of that. You
are here to be entertained by the comical raving ranting David character. That's okay. I'm intentionally
here for you buddy. I write this shit because it -is- actually entertaining to both laugh at and with
David. That's okay. I don't hate you.
I just hate those fucking dipshits on GitHub proclaiming they have an idea on how to discover valuables.
If only we could invent a metal detector! Think of it! A metal detector! Brilliant!
So I've reached a relatively cool spot in the volcano. I can see the interior from here.
There is room to improve even iOS tap automation. I know how. I'd like to work on it. I need someone to support
my efforts though. I can't keep giving the world valuable software while I starve. That doesn't work for me.
No matter though. I'll keep losing weight. I'm still a little pudgy. Starving isn't killing me just yet.
So what I'll request from you is this: Please just stop treating me like I'm an insane lunatic. I'm not. I'm
just a guy with high technical skills who works hard to make a living from my abilities and I tire of being
treated like some troll. While I may appear to exhibit troll like qualities in my comments and ranting, I have
cohesive well reasoned thinking and points to share.
I would like to improve the state of software, both for iOS automation and MANY other software arenas. I simply
would appreciate a bit of understanding of how ridiculous the stuff is that I've had to deal with over many
years of working on this stuff.
I hope you've been entertained. Now please go find a sturdy fireproof rope and throw it down to me so I can
climb out of this fucking volcano.
University Prerequisites
Before I went to a 4-year university I took one semester of classes at a local community college to just see how
it is and get a feeling for it all.
Of the classes I took that semester one was Calculus. I listened very attentively. I took detailed notes. I learned
all the mate...
This invasive test is mandatory
I was homeschooled through all of middle-school and high-school. The result of this is that I'm a raging
lunatic. No wait. I'm supposed to say the result is that I'm the bestest educated now. Urr. Nevermind.
The result of this is that I learned how to learn very well because after ...
Corporate Black Sludge
I've worked for MANY different companies as a software person. One thing all of these companies had was coffee
machines. Some were better than others.
Here is the range of black sludge I've experienced at work:
- Standard drip coffee machines ( very common and eww )
- K...
Behavior not empathy
In my last post I spent a significant number of words pointing out the Amazon is severely lacking in empathy
and care for humans.
I would like to argue a partial flipside to this, against empathy as the thing that matters.
You see, the issue is that empathy on the face of it...
Amazon Lunkhead Points
Full disclosure: I worked for the devil for a little under 2 years. So I'm gulty of associating with these
horrible schmucks. That doesn't, though, mean that I approved of their crimes even while working for them. I
needed money, what can I say?
That said, after having tainted...
In the Grey Sludge
Tags:
movie
I watched the movie "In the Grey". It's basically "run around and pointlessly kill people" mixed random action
movie tropes done badly. Action sludge.
As you are likely aware already, if stuff has glaring flaws I tend to point them out. This sludge was full of
such flaws so I'...
Exit 8 - Make the game better please
Tags:
movie game
In recent history one of the movies I watched was Exit 8. I waited a long time to watch this as it took a long
time to arriving on English streaming.
I did not play the game before watching the movie but I knew about the game. It looked like a fun creepy concept
so I was excit...
Iron Lung is a lukewarm blood bath
Tags:
movie game
So apparently I write movie reviews now, so let's do another.
Iron Lung. It's a the second movie featuring Markiplier that I've seen. Well actually the first movie.
The movie I was thinking of was a tv show, The Edge of Sleep. That show was weird, but I thought fairly
decent.
...
The Boroughs show is stupid
Tags:
tvshow
I'm on a roll with shitting on ArsTechnica articles. Here is another one.
Their review of The Boroughs
I watched the show. It was okay. That's the best I...
LLMs Believe
Tags:
ai
ArsTechnica has become my latest favorite punching bag recently. They published
this slop with the title "LLMs believe false statements even after ...
Bill Gates big reveal
Or... not. You've likely seen and heard that Bill Gates is a giant scumbag who was buddies with Epstein and
that's why his wife divorced them. Between the lines people seem to be implying Gates is a child abuser.
Only... where's the smoking gun? Everyone keeps saying there is all t...
Say no to Microsoft Office
The time has come to say no to Microsoft Office. If someone sends you an Office document, tell them no and demand
they send an open format.
Why? Because Microsoft wasn't happy with being medium sized dicks. They decided to expand their dickishness to
massive size. By effective...
Addressing AI Psychosis Constructively
Tags:
ai
I spent the last post tearing down a worthless article claiming to be about AI Psychosis. ( which I'll refer to
as AIP in this post ) Tearing down what
someone says is relatively easy to do. It takes more effort to build a useful article that isn't worthless shit.
So I'm not g...
Misunderstanding AI Psychosis
Tags:
ai
I recently stumbled upon the following TechCrunch article:
Tech CEOs are apparently suffering from AI psychosis
I think this article is shit quality. And I'll explain why...
Bad Bambu. No.
Bambu Labs is a manufactorer of 3d printers. Those printers are popular.
They offer software to assist in turning 3d models into a format that can be printed.
All 3d printers need such software and such software is called a "slicer".
The bambu labs slicer? It is based on AGP...
Email is nonsensical for decades
I've thought email is a horrible system for a very long time.
I'd like to point out some of the ways it is so and talk a little about why for some of them.
Predates widely available always online servers
Email was created before always online servers were widely a...
Reasons not to reject LLMs
Tags:
ai
I just stumbled on this blog article:
Why I object to and reject generative AI
To some degree I also object to LLMs, but I don't think all of the reasoning in this b...
Crypto Bros
I've been using computers since before the graphical internet existed. 2400 baud modems with green screens? Yep I
was using those. Token ring networks? Also and they were painful. So I can tell you I've seen many cycles of
technology and bullshit.
As a result I have a strong b...
Firmament game is slop
Tags:
game
I've played through and completed all of the Myst series by Cyan Worlds except for URU. I've also played many
similar games over the years. I enjoyed many of those games greatly. I have fond memories of playing them over
the years. I can remember many details within the games even no...
Your diary is evidence
Some eons ago I remember thinking that my diary is my private information and I could rightly complain if
it was made public against my will.
Well, my notion of that has now been shattered.
How? I noticed in the latest lawsuit against OpenAI that they are forcing diary entri...
Tsukuba Center Bicycle Parking
Before I begin fair warning. I'm angry about this and I'm venting, so if cursing and venting about
stuff bothers you, you should bail now.
That said, fuck Tsukuba Center and their automated bicycle parking lots.
Why do I hate them so much? Well it's complicated and I will ex...
Attention is hard for everyone
I recently watched a
YouTube video by Asa Park
about MrBeast. The video is focused on being very critical of him. I'm not a fan of MrBeast and do
think he is strange, but I don't particularly think he is any ultimate evil. So ...
Is the villain the enemy?
What if the villain is not the enemy but is just the label we hoist upon anyone who does not fit the
standard roles society defines as acceptable?
People are not so trivial as to fit within the notions we scope them to. While many will choose to
cooperate with ...
Personal Japan travel guide
Tags:
japan
In light of the potential destruction of the IT industry by AI, or at least the reduction of it to the point
that competition for jobs will drop salary of it, I have been been considering alternative ways to make a
living recently.
A few weeks ago I came up wit...
Love Without Hypocrisy
I was sharing a story from when I was a teenager with a friend of mine and I thought perhaps I shall
share it with all of you as well. To my memory I was 15 at the time this all happened.
I was attending a bible camp called Worldview Academy. They still exist today, and...
0player? Oh no
Tags:
game
Recently I have been working on building a puzzle game. Well another one. I have actually been working on
building a game called TentFires for some 5 years now. Well more to the point I have been playing TentFires
and iterating on it for 4 years after I created a fully wo...
Is Japan Paradise?
Tags:
japan
I recently watched a YouTube video titled
I'm leaving Germany | Brutally Honest Review.
I found the detail of the video good and it made a lot of sense to me. What I found striking initially
was tha...
GuliKit King Kong 3 Max
Tags:
gaming
Some time ago I bought the GuliKit King Kong 3 Max controller. It looked awesome. The price is much more
reasonable than Xbox Elite Series 2 controllers, and it has better tech according to the specs.
I got it; it feels awesome and I was able to use it well for a number...
Let's Reinvent the SD Card
About a month ago some a random LinkedFluencer posted some bullshit about how her SD card failed. She
was raging that she should have been notified by her computer that it was reaching end of life and that
if it just exposed wear leveling through to the system she would h...
Memovich: The Plot Dissolves
Tags:
ai
Two days ago Milla Jovovich posted an extensive account of her side of the MemPalace story.
It was pretty absurd in my view, to put it mildly. I began writing a new blog article titled:
"Memovich: The Plot Thickens".
I started writing something sharp enough to ...
Memovich Continued
Tags:
ai
My last blog article was about MemPalace, the supposedly incredible AI memory project vibe coded
in part by Milla Jovovich.
In the last article I focused primarily on what I view as lack of qualifications of who I believe the
real author of the project was/is, ...
Milla Jovovich and the Fine Art of Selling Cognitive Swill
Tags:
ai
This just in. Milla Jovovich is slapping her name on the ugly bare bottom of a crypto bro trainwreck
ai disasterpiece called MemPalace.
Beneath the choking snake oil you'll find... nothing of value.
Ok ok let's get into this practically, as I can only write s...
Regarding Garry Tan, YCombinator, and Corruption
A few weeks ago I saw an article on Hacker News new with an entire 2 upvotes that piqued my interest. It
was a link to
this website. It's a detailed article about
how Naive (
usenaive ) is j...
Medial Axis Extraction in O(n)
Around three months ago, I solved a long-standing problem in computational geometry and computer vision:
Extracting the true medial axis from a binary image in linear time per pixel.
No thinning.
No iterative label propagation.
No graph recon...
On AI and the Death of Humanity
Tags:
ai
I've been using "AI", as it is currently referred to, for several years now. Mostly I've been using ChatGPT,
although at times I've run a variety of different local models, mainly to test what is possible and ascertain for
myself whether these things are "dangerous" or not. For the m...
USA: Destination Hell
I am a US citizen. I don't, though, live in the US. I reside in Japan, and I intend to do
so permanently. There are a few major reasons why:
- I love my wife, who is Japanese
- I love Japan
- I don't love the US
The third poin...
Decoersion
Something I have believed strongly for many years is that all forms of coercion are unacceptable. Recently I have
been thinking about it more, and realizing how pervasive coercion is throughout society.
So, without further ado, I present to you, decoersion ( intentionally spelled w...
Social Media Decline
Social Media: From Fertile Farms to Wastelands
Social media is in rapid decline. What was once a thriving space for innovation, meaningful discussion, and genuine human connection has become a hollow shell of its former self, plagued by corporate greed, algorithmic manipulation, ...
Toddler Investors
Introduction
The investment landscape is moving at an ever-increasing pace, with investors often making funding decisions in mere minutes. The rise of trend-driven investments, such as artificial intelligence, has led to a system that prioritizes popularity over true innovation. ...
Rethinking PCs: A practical approach
Tags:
tech
The current trajectory of computer hardware development has increasingly diverged from the practical needs of everyday users. Manufacturers continue to push advancements in speed, power efficiency, and display resolutions—yet for most people, these improvements offer diminishing real-world ben...
Peak Mall Theory
Tags:
japan
US mall death, Japan mall life
The decline of shopping malls in the United States is a well-documented phenomenon, while in Japan, malls remain thriving, bustling centers of commerce, entertainment, and community life. This contrast raises an interesting question: why have Japane...
Email is Outdated
Email seems ubiquitous and irreplaceable. Is it though? It was created for a useful purpose, and worked effectively
for a number of years, but I would argue that it is outdated and needs to be replaced by something better as
soon as possible.
I explore here why I believe email...
Identity System
Over my career in software I've repeatedly had to deal with issues of identity. Another way to refer to identity
is usernames. The most pervasive identity system in use is email, although it is quickly being supplanted by
cell phone number.
Almost every user of the internet ha...
LinkedIn is Buggy
The main social platform I use is LinkedIn. I've been using it for many years. Over my years of using it I've
found it to be very buggy. I began posting the bugs I found as LinkedIn posts. That didn't seem to get much
attention or have any meaningful affect, so I created a Github pro...
Hubspot Culture Code
What follows is a critical critique of the
Hubspot Culture Code. This will be an analysis focused on logic. If you are looking for a warm fuzzy
perspective on company culture, this isn't it.
A compa...
Pursuing relationships is inherently puerile
Intro
I've seen a disturbing trend online where expressing interest in others for the purpose of being in a
relationship with them is thought to be inherently puerile. This view is relayed more simply as "men
pursuing women is always sexual and disgusting".
The t...
My time is worth $x per hour
In the all too recent history I was feeling proud of my day job, and I thought to myself "I can made $x per
hour." A bit more thinking I came to the conclusion "I shouldn't do anything that takes me an hour that I could
pay someone else to do for less than $x per hour." I believed th...
Should gaming be a gradeschool subject/sport?
I recently read a post on LinkedIn broadly proclaiming "esports will overtake basketball". My immediate
reaction to this was that that is entirely rubbish, and I responded jokingly making fun of the idea. As you
might expect, there was a mixed reaction to that.
Some few people...
Job Descriptions
I am connected to quite a few recruiters and managers on LinkedIn. As a result of this, I often
see posts about what candidate's resumes should look like, what information they should contain,
how they should approach applying to jobs etc.
Changing the way you apply for roles ...
UMD Data Breach
A bit over 5 years ago I was involved in the events following a serious data breach at the University
of Maryland. I was pulled into the FBI / Secret Service investigation due to my involvement. It may not
be clear, but I did not start the data breach. Criminal elements of unknown so...
Blog
Welcome to my public blog. I haven't blogged publicly in quite a number of years. This is in part due
to the overwhelming amount of random information available about me already, and I am unsure about
adding to the pile.
I have decided that adding information of higher quality...