Go Apple

Open-source Go projects categorized as Apple

Top 11 Go Apple Projects

  • macdriver

    Native Mac APIs for Go

  • 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-05

    Not 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.

  • micromdm

    Mobile Device Management server

    Project mention: MDM for iPads | reddit.com/r/sysadmin | 2023-03-17

    Not personally used it but have a look at MicroMDM and see if that fits your needs.

  • ipsw

    iOS/macOS Research Swiss Army Knife

    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.

  • apple-store-helper

    Apple Store iPhone预约助手

  • 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.

  • goplay2

    Airplay 2 Receiver written in Go

    Project mention: How can i run airplay on my pinea64+? | reddit.com/r/PINE64official | 2023-04-06
  • quill

    Simple mac binary signing from any platform (by anchore)

    Project mention: quill: a tool for signing and notarizing darwin (mac) binaries written in go | reddit.com/r/golang | 2022-10-24
  • cool

    Never let the heat slow your pre-2018 Mac down again.

  • macschema

    Toolchain for generating JSON definitions of Apple APIs

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-05-05.

Go Apple related posts

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
Access the most powerful time series database as a service
Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
www.influxdata.com