Skip to content

Commit 4b86524

Browse files
VinDuvrickmark
authored andcommitted
README: Update for Monterey and new MBPs
- Indicate how to get the serial device on Monterey - Document the location of the debug port on 14"/16" MBPs Signed-off-by: Vincent Duvert <[email protected]> Signed-off-by: Rick Mark <[email protected]>
1 parent 2d8d29b commit 4b86524

2 files changed

Lines changed: 114 additions & 6 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
macvdmtool
2+
*.o

README.md

Lines changed: 113 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Apple Silicon to Apple Silicon VDM tool
22

3-
This tool lets you get a serial console on an Apple Silicon device and reboot it remotely, using only another Apple Silicon device running macOS and a standard Type C cable.
3+
This tool lets you send common Apple VDM messages from an Apple Sillicon Mac. It can send messages to the T2 DFU port, the Apple M1 DFU port or any USB-C based iPad. Currently it requires the sending device to be M1 based and the "DFU" port, but it should be possible to use any port and work from an Intel Mac (they have the same USB-C port controller) with some additonal patching.
4+
5+
`dfu` and `reboot` are confirmed to work on iPad and T2. Serial can probably be adapted to work with checkra1n.
46

57
## Disclaimer
68

@@ -15,17 +17,122 @@ This is based on portions of [ThunderboltPatcher](https://github.com/osy/Thunder
1517

1618
Thanks to t8012.dev and mrarm for assistance with the VDM and Ace2 host interface commands.
1719

20+
<<<<<<< HEAD
21+
=======
22+
<<<<<<< HEAD
23+
<<<<<<< HEAD
24+
## Note about macOS 12
25+
26+
To have access to the serial console device on macOS Monterey (12), you need to disable the `AppleSerialShim` extension.
27+
28+
**Note:** This requires downgrading the system security and may cause problems with upgrades. Use it at your own risk!
29+
30+
Start by generating a new kernel cache, without the `AppleSerialShim` extension:
31+
32+
```
33+
sudo kmutil create -n boot -a arm64e -B /Library/KernelCollections/kc.noshim.macho -V release -k /System/Library/Kernels/kernel.release.<soc> -r /System/Library/Extensions -r /System/Library/DriverExtensions -x $(kmutil inspect -V release --no-header | awk '!/AppleSerialShim/ { print " -b "$1; }')
34+
```
35+
36+
Replace `<soc>` with `t8101` on M1 Macs and `t6000` on M1 Pro/Max Macs. If you’re unsure, `uname -v` and look at the end of the version string (`RELEASE_ARM64_<soc>`).
37+
38+
Then, enter 1TR:
39+
40+
1. Power off your Mac
41+
2. Press and hold the Power button until the boot menu appears
42+
3. Select “Options”, then (if necessary) select your macOS volume and enter your administrative password.
43+
44+
Select Utilities>Startup security and switch the macOS installation to reduced security. Exit Startup security.
45+
46+
Select Utilities>Terminal and install your custom kernel:
47+
48+
```
49+
kmutil configure-boot -c /Volume/<volume>/Library/KernelCollections/kc.noshim.macho -C -v /Volume/<volume>
50+
```
51+
52+
Replace `<volume>` with the name of your boot volume.
53+
54+
You can now reboot: macOS should start as normal, and the serial device `/dev/cu.debug-console` should be available.
55+
56+
To revert back to the default kernel, enter 1TR again, access Utilities>Startup security and switch to full or reduced security.
57+
=======
58+
The documentation of the ACE and its USB-PD VPDs is here https://blog.t8012.dev/ace-part-1/
59+
>>>>>>> b396565 (Added T2 and iPad data)
60+
=======
61+
The documentation of the ACE and its USB-PD VPDs is here https://blog.t8012.dev/ace-part-1/
62+
>>>>>>> 239e733 (Added T2 and iPad data)
63+
64+
>>>>>>> 31c618f (README: Update for Monterey and new MBPs)
65+
## Note about macOS 12
66+
67+
To have access to the serial console device on macOS Monterey (12), you need to disable the `AppleSerialShim` extension.
68+
69+
**Note:** This requires downgrading the system security and may cause problems with upgrades. Use it at your own risk!
70+
71+
Start by generating a new kernel cache, without the `AppleSerialShim` extension:
72+
73+
```
74+
sudo kmutil create -n boot -a arm64e -B /Library/KernelCollections/kc.noshim.macho -V release -k /System/Library/Kernels/kernel.release.<soc> -r /System/Library/Extensions -r /System/Library/DriverExtensions -x $(kmutil inspect -V release --no-header | awk '!/AppleSerialShim/ { print " -b "$1; }')
75+
```
76+
77+
Replace `<soc>` with `t8101` on M1 Macs and `t6000` on M1 Pro/Max Macs. If you’re unsure, `uname -v` and look at the end of the version string (`RELEASE_ARM64_<soc>`).
78+
79+
Then, enter 1TR:
80+
81+
1. Power off your Mac
82+
2. Press and hold the Power button until the boot menu appears
83+
3. Select “Options”, then (if necessary) select your macOS volume and enter your administrative password.
84+
85+
Select Utilities>Startup security and switch the macOS installation to reduced security. Exit Startup security.
86+
87+
Select Utilities>Terminal and install your custom kernel:
88+
89+
```
90+
kmutil configure-boot -c /Volume/<volume>/Library/KernelCollections/kc.noshim.macho -C -v /Volume/<volume>
91+
```
92+
93+
Replace `<volume>` with the name of your boot volume.
94+
95+
You can now reboot: macOS should start as normal, and the serial device `/dev/cu.debug-console` should be available.
96+
97+
To revert back to the default kernel, enter 1TR again, access Utilities>Startup security and switch to full or reduced security.
98+
1899
## Building
19100

20101
Install the XCode commandline tools and type `make`.
21102

22103
## Usage
23104

24-
Connect the two devices via their DFU ports. That's the rear port on MacBooks and the port nearest to the power plug on Mac Minis.
25-
26-
You need to use a *USB 3.0 compatible* (SuperSpeed) Type C cable. USB 2.0-only cables, including most cables meant for charging, will not work, as they do not have the required pins. Thunderbolt cables work too.
27-
28-
Run it as root (`sudo ./macvdmtool`).
105+
<<<<<<< HEAD
106+
=======
107+
<<<<<<< HEAD
108+
<<<<<<< HEAD
109+
<<<<<<< HEAD
110+
>>>>>>> 31c618f (README: Update for Monterey and new MBPs)
111+
Connect the two devices via their DFU ports. That's:
112+
- the rear port on MacBook Air and 13" MacBook Pro
113+
- the port next to the MagSafe connector on the 14" and 16" MacBook Pro
114+
- the port nearest to the power plug on Mac Mini
115+
<<<<<<< HEAD
116+
=======
117+
=======
118+
Connect the two devices via their DFU ports. That's the furthest left port on M1 MacBooks, the closest left port on the T2, and the only port on the iPad. See Apple's DFU recovery support articles to identify these ports on other models.
119+
>>>>>>> b396565 (Added T2 and iPad data)
120+
=======
121+
Connect the two devices via their DFU ports. That's the furthest left port on M1 MacBooks, the closest left port on the T2, and the only port on the iPad. See Apple's DFU recovery support articles to identify these ports on other models.
122+
>>>>>>> 239e733 (Added T2 and iPad data)
123+
=======
124+
Connect the two devices via their DFU ports. That's:
125+
- the rear port on MacBook Air and 13" MacBook Pro (Apple M Series)
126+
- the port next to the MagSafe connector on the 14" and 16" MacBook Pro
127+
- the port nearest to the power plug on Mac Mini (Apple M Series)
128+
- the closest (to the user) USB port on T2 based MacBooks
129+
- the only port on the iPad / iPhone
130+
>>>>>>> 567ee0e (README: Update for Monterey and new MBPs)
131+
>>>>>>> 31c618f (README: Update for Monterey and new MBPs)
132+
133+
You need to use a *USB 3.0 compatible* (SuperSpeed) Type C cable. USB 2.0-only cables, including most cables meant for charging, will not work, as they do not have the required pins (USB CC1/CC2 where USB-PD are transmitted). Thunderbolt cables work too.
134+
135+
Run it as root (`sudo ./macvdmtool`) as root privledge is required to open the needed IOKit IOService.
29136

30137
```
31138
Usage: ./macvdmtool <command>

0 commit comments

Comments
 (0)