Skip to content

Instantly share code, notes, and snippets.

@devnoname120
devnoname120 / launchd.org
Created November 17, 2025 00:09 — forked from dabrahams/launchd.org
Notes on Apple's under-documented launchd

Notes on Apple’s Under-Documented LaunchD

Start triggers fire regardless of other conditions

For example, StartOnMount=true will cause the job to start when anything is mounted even if other conditions, e.g. QueueDirectories, say the job should not run

Rhythm of repeating jobs

The StartInterval timer begins ticking at the moment the plist is loaded. If something like QueueDirectories is preventing the job from

@devnoname120
devnoname120 / launchd.org
Created November 17, 2025 00:09 — forked from dabrahams/launchd.org
Notes on Apple's under-documented launchd

Notes on Apple’s Under-Documented LaunchD

Start triggers fire regardless of other conditions

For example, StartOnMount=true will cause the job to start when anything is mounted even if other conditions, e.g. QueueDirectories, say the job should not run

Rhythm of repeating jobs

The StartInterval timer begins ticking at the moment the plist is loaded. If something like QueueDirectories is preventing the job from

@devnoname120
devnoname120 / psv.h
Last active November 26, 2024 08:24 — forked from yifanlu/psv.h
/**
* Motivation: One unified .psv format for archiving (preserving) Vita games.
* The goal is to preserve as much of the original game structure while ensuring
* the all the information needed to decrypt and extract data can be derived
* from just the file and a hacked Vita.
*
* We want something akin to .nds or .3ds/.cia or .iso but for Vita games. The
* unique challenge is that Vita cart games require a per-cart key to decrypt
* and digital games require a similar key from activation. With just the raw
* game image, it is not possible to extract the game data.
@devnoname120
devnoname120 / db.log
Last active November 26, 2024 08:25 — forked from frangarcj/dbv2.json
Vitasdk dbv2.json validator
jsonschema -i dbv2.json db_schema.json > db.log 2>&1
0x8: '0x8' does not match '^0x[0-9A-F]{8}$'
0xCE: '0xCE' does not match '^0x[0-9A-F]{8}$'
0xCF: '0xCF' does not match '^0x[0-9A-F]{8}$'
0x0: '0x0' does not match '^0x[0-9A-F]{8}$'
0x71: '0x71' does not match '^0x[0-9A-F]{8}$'
0x3A: '0x3A' does not match '^0x[0-9A-F]{8}$'
0x38: '0x38' does not match '^0x[0-9A-F]{8}$'
0x3: '0x3' does not match '^0x[0-9A-F]{8}$'
0x5: '0x5' does not match '^0x[0-9A-F]{8}$'