]> git.zerfleddert.de Git - m1-debian/blobdiff - doc/notes.txt
more notes
[m1-debian] / doc / notes.txt
index fa503205bf05242693b72d04c9581de39257dbea..605979f400ecfb39b419c28f7ed46403e9489c7b 100644 (file)
@@ -79,3 +79,105 @@ echo 1 > /sys/module/hid_apple/parameters/swap_opt_cmd
 
 17:34 <marcan> the image as built will have a real grub config with static UUIDs
 17:35 <marcan> well, a systemd early unit but yes
+
+{
+    "os_list": [
+        {
+            "name": "Asahi Linux reference distro (Arch Linux ARM)",
+            "default_os_name": "Asahi Linux",
+            "boot_object": "m1n1_uboot.bin",
+            "package": "asahi-alarm.zip",
+            "partitions": [
+                {
+                    "name": "EFI",
+                    "type": "EFI",
+                    "size": "512MB",
+                    "format": "fat",
+                    "volume_id": "0x03f103f1",
+                    "copy_firmware": true,
+                    "copy_installer_data": true,
+                    "source": "esp"
+                },
+                {
+                    "name": "Root",
+                    "type": "Linux",
+                    "size": "5GB",
+                    "expand": true,
+                    "image": "root.img"
+                }
+            ]
+        },
+        {
+            "name": "UEFI environment only (m1n1 + U-Boot + ESP)",
+            "default_os_name": "UEFI boot",
+            "boot_object": "m1n1_uboot.bin",
+            "partitions": [
+                {
+                    "name": "EFI",
+                    "type": "EFI",
+                    "size": "512MB",
+                    "format": "fat",
+                    "copy_firmware": true,
+                    "copy_installer_data": true
+                }
+            ]
+        },
+        {
+            "name": "Tethered boot (m1n1, for development)",
+            "default_os_name": "m1n1 proxy",
+            "expert": true,
+            "boot_object": "m1n1.bin",
+            "partitions": []
+        }
+    ]
+}
+
+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 ---------------------------------------------------------
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>AppName</key>
+       <string>Some App.app</string>
+       <key>ProductBuildVersion</key>
+       <string>00A191</string>
+       <key>ProductVersion</key>
+       <string>12.2.1</string>
+</dict>
+</plist>
+
+---- Some App.app/Contents/Info.plist -----------------------------------------
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CFBundleDisplayName</key>
+       <string>Some App</string>
+       <key>CFBundleExecutable</key>
+       <string>SomeApp</string>
+</dict>
+</plist>
+
+---- Some App.app/Contents/Resources/<lang code>.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
Impressum, Datenschutz