Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today. Learn more →
Top 11 Go Apple Projects
-
-
ipatool
Command-line tool that allows searching and downloading app packages (known as ipa files) from the iOS App Store
Project mention: [request] a program that allows you to download apps without a device | reddit.com/r/jailbreak | 2023-05-05Not an app with a gui, but a cli tool, IPATool, , can do these but only for free apps.
-
ONLYOFFICE
ONLYOFFICE Docs — document collaboration in your environment. Powerful document editing and collaboration in your app or environment. Ultimate security, API and 30+ ready connectors, SaaS or on-premises
-
APNs2
⚡ HTTP/2 Apple Push Notification Service (APNs) push provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps, using the APNs HTTP/2 protocol.
-
Not personally used it but have a look at MicroMDM and see if that fits your needs.
-
Project mention: A 17-line C program freezes the Mac kernel (2018) | news.ycombinator.com | 2022-12-09
In theory I have all of those, but currently I have none, so it's manual work. Your best friend in diagnosing a kernel crash is a KDK. If you have one that matches your build, it will have symbols in it. With a little bit of math you can take the backtrace in the crash log and slide it appropriately to match the binary. Personally I use LLDB for this. Here's an example of what this looks like on an x86-64 kernel (Apple silicon has its own math but it's largely the same): https://github.com/saagarjha/unxip/issues/14#issuecomment-10.... The kernel is typically compiled with optimization, so there's a lot of inlining and code folding, but with function names, source files, and instruction offsets it's pretty trivial to match it to the code Apple publishes.
In this case I do not have a KDK for that build. In fact Apple has been unable to produce one for a couple of months, a inadequacy which I have repeatedly emphasized to them because of how critical they are for stuff like this. Supposedly they are working on it. Whatever; in lieu of that I got to figure out how good the tooling for analyzing kernels is these days, which was my real goal anyways.
For this crash log I downloaded the IPSW file for your build, 22A400. All of them get linked on The iPhone Wiki, e.g. https://www.theiphonewiki.com/wiki/Firmware/Mac/13.x. Once you unpack the IPSW (it's a zip file) there are compressed kernelcache files inside. Apple changed the format of these this year so most of the tooling breaks on it, but https://github.com/blacktop/ipsw was able to decompress them. Then I loaded it in to Binary Ninja, which apparently doesn't support them either but compiling this person's plugin (+166 submodules, and a LLVM & Boost build) gets it to work: https://github.com/skr0x1c0/binja_kc.
From there you can load up the faulting address from the crash log and see what the function looks like. In this case, a bunch of junk has been inlined into it but there's a really obvious and fairly unique string reference for "invalid knote %p detach, filter: %d". From there, you can compare it against the actual source code to see which one matches the "shape" of the function you're looking at. I happened to also pull up an older kernel which did have a KDK available and then compared its assembly to the new one to match it up to ptsd_kqops_detach. The disassembly of the crashing code is obviously doing a linked list walk so you can figure out exactly which line it is from that.
If I wasn't lazy I might also fire up a debugger to see why the function had walked off the end of the list but without KDKs things get pretty bad, not that they're very good to begin with. I don't have a m1n1 setup (I should probably do this at some point) and the things I do have, like remote debugging or the VM GDB stub, are not really worth suffering through for a Hacker News comment.
-
-
vz
Create virtual machines and run Linux-based operating systems in Go using Apple Virtualization.framework.
Project mention: Release Supported to run macOS VM (v2.1.0) · Code-Hex/vz | reddit.com/r/golang | 2022-08-26 -
CodiumAI
TestGPT | Generating meaningful tests for busy devs. Get non-trivial tests (and trivial, too!) suggested right inside your IDE, so you can code smart, create more value, and stay confident when you push.
-
-
Project mention: quill: a tool for signing and notarizing darwin (mac) binaries written in go | reddit.com/r/golang | 2022-10-24
-
-
Go Apple related posts
- [request] a program that allows you to download apps without a device
- How can i run airplay on my pinea64+?
- [Question] Any way to download this app on ios 15.2?
- MDM for iPads
- Alternatives to airdrop
- Is it possible to download any .ipa file from appstore?
- Simple, preferrably FOSS / Self-hosted MDM solution for iPads / iOS devices
-
A note from our sponsor - SonarLint
www.sonarlint.org | 28 May 2023
Index
What are some of the best open-source Apple projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | macdriver | 3,994 |
2 | ipatool | 3,578 |
3 | APNs2 | 2,805 |
4 | micromdm | 1,814 |
5 | ipsw | 1,048 |
6 | apple-store-helper | 704 |
7 | vz | 393 |
8 | goplay2 | 322 |
9 | quill | 188 |
10 | cool | 43 |
11 | macschema | 19 |