←back to thread

79 points cindori | 3 comments | | HN request time: 0s | source

Hi HN, I'm Oskar, a solo indie Mac developer from Sweden. For those in the Mac community, you might know me from my other apps like Sensei and Trim Enabler.

For years, I've been frustrated by the lack of customisation of macOS. In particular the Lock Screen which supports animated wallpapers, but only ones provided by Apple. There's never been a way to add your own personal videos.

I decided to figure out how to solve this, and the result is Backdrop 2.0. Backdrop is my Live Wallpaper app for Mac, it can play video wallpapers on your desktop. And now it can play on your Lock Screen too.

The core technical challenge, as you can imagine, came from trying to do something that Apple otherwise does not allow. However, through extensive reverse engineering of the macOS wallpaper system, I figured out a way to provide Backdrop wallpapers to the system in a way that allows them to play on the lock screen, and even appear in a custom section in System Settings.

I'm here all day to answer any questions—especially about the reverse engineering process, the challenges of integrating with macOS, or the experience of being an indie Mac developer.

Would love to hear your thoughts and feedback.

Show context
pm ◴[] No.45250974[source]
What were some of the technical challenges you experienced while reverse-engineering the wallpaper system? I've been reverse-engineering (for lack of a better term) some of macOS' and Xcode's poorly-documented functionality prototyping a personal developer tool. My investigation isn't sophisticated by any means; it's just been trial-and-error, but I haven't found much online in the way of resources for people going down this route.
replies(1): >>45251051 #
1. cindori ◴[] No.45251051[source]
Reverse engineering is hard! I use Hopper (https://www.hopperapp.com) to disassemble related binaries and frameworks. It's a great way to explore whats actually happening within macOS or Apple apps.

You can also export assembly files and throw various agents (Gemini, Claude etc) at them to learn more. It's surprisingly effective!

replies(1): >>45251928 #
2. hirvi74 ◴[] No.45251928[source]
I'm no pro rev. engineer or anything, but did you try alternatives to Hopper at all? I've never had much luck with Hopper compared to Radare2 and IDA.
replies(1): >>45254143 #
3. cindori ◴[] No.45254143[source]
I haven’t tried those, but Hopper has been working pretty well for me. Although I mostly just sift through the assembly and pseudocode, and don’t use many advanced features.