X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/m1-debian/blobdiff_plain/f890e3ed589ce79fd10c46eb7f7e6c78ce16a8b7..5d41b6d67a95ecb1b2e59723b490f33228c64acc:/doc/notes.txt
diff --git a/doc/notes.txt b/doc/notes.txt
index 5e773f9..e2b2d8b 100644
--- a/doc/notes.txt
+++ b/doc/notes.txt
@@ -135,3 +135,53 @@ echo 1 > /sys/module/hid_apple/parameters/swap_opt_cmd
cloud-initramfs-growroot
16:00 < Glanzmann> So applying a new uuid to the rootfs needs to be done in the initrd.
tune2fs -U random /dev/whatever
+
+07:54 < VinDuv> So Iâve been looking at how macOS installation from USB works on M1 Macs and I think it might be interesting for the Asashi installer. The way it works is that thereâs a hidden plist file on the USB drive that references a macOS
+ application on the drive; if this file is present, the USB drive will show up in the power-button-held boot menu, and when selected, it will run the application. It doesnât seem to care about file signature
+07:54 < VinDuv> (it works even if the app is just a shell script) and it looks like itâs in 1TR mode.
+07:56 < VinDuv> So the installation workflow from 1TR could be âplug in a USB stick, hold the power button, select Install Asahiâ instead of having to manually open the terminal and run curl | sh. The installer doesnât even need to be graphical since
+ itâs possible for the launched shell script to start the recovery environmentâs Terminal and giving it an arbitrary command to run.
+07:59 < VinDuv> This is also not limited to external USB drives; it also works if the files are in an APFS volume in internal storage, which I guess might be useful to have a Asahi Recovery boot option in the boot menu or something.
+
+---- .IAPhysicalMedia ---------------------------------------------------------
+
+
+
+
+ AppName
+ Some App.app
+ ProductBuildVersion
+ 00A191
+ ProductVersion
+ 12.2.1
+
+
+
+---- Some App.app/Contents/Info.plist -----------------------------------------
+
+
+
+
+ CFBundleDisplayName
+ Some App
+ CFBundleExecutable
+ SomeApp
+
+
+
+---- Some App.app/Contents/Resources/.lproj/InfoPlist.strings ------
+"CFBundleDisplayName" = "Some App";
+
+---- Some App.app/Contents/MacOS/SomeApp (executable) -------------------------
+#!/bin/bash
+exec /System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal "${0%/*}/../Resources/myscript.command"
+
+---- Some App.app/Contents/Resources/myscript.command -------------------------
+#!/bin/sh
+
+echo "Hello, world!"
+exec /bin/bash
+
+
+19:14 marcan: I have done a bit more testing with the .IAPhysicalMedia file and it looks like ProductBuildVersion can be any value including blank. ProductVersion seems to be checked against the minimal macOS version supported by the Mac; on my mini the icon shows up in the boot menu only if itâs >= 11.3.
+19:15 Maybe it should be set to a higher value for forward compatibility with future Macs that will require 13.0? Iâve tested setting it to 99 and it works.