Skip to content

Commit

Permalink
add HoRNDIS to support usb tethering when using online usb installer
Browse files Browse the repository at this point in the history
  • Loading branch information
jloisel committed Jul 27, 2020
1 parent 8f19b89 commit 02c7f22
Show file tree
Hide file tree
Showing 5 changed files with 307 additions and 2 deletions.
124 changes: 124 additions & 0 deletions EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
<?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>BuildMachineOSBuild</key>
<string>16G1212</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>HoRNDIS</string>
<key>CFBundleGetInfoString</key>
<string>Android/RNDIS tethering driver</string>
<key>CFBundleIdentifier</key>
<string>com.joshuawise.kexts.HoRNDIS</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>HoRNDIS</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>9.2</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>7D1014</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>15E60</string>
<key>DTSDKName</key>
<string>macosx10.11</string>
<key>DTXcode</key>
<string>0731</string>
<key>DTXcodeBuild</key>
<string>7D1014</string>
<key>IOKitPersonalities</key>
<dict>
<key>RNDISControlLinuxGadget</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.joshuawise.kexts.HoRNDIS</string>
<key>IOClass</key>
<string>HoRNDIS</string>
<key>IOProviderClass</key>
<string>IOUSBHostInterface</string>
<key>bInterfaceClass</key>
<integer>2</integer>
<key>bInterfaceProtocol</key>
<integer>255</integer>
<key>bInterfaceSubClass</key>
<integer>2</integer>
</dict>
<key>RNDISControlMiscDeviceRoE</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.joshuawise.kexts.HoRNDIS</string>
<key>IOClass</key>
<string>HoRNDIS</string>
<key>IOProviderClass</key>
<string>IOUSBHostInterface</string>
<key>bInterfaceClass</key>
<integer>239</integer>
<key>bInterfaceProtocol</key>
<integer>1</integer>
<key>bInterfaceSubClass</key>
<integer>4</integer>
</dict>
<key>RNDISControlStockAndroid</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.joshuawise.kexts.HoRNDIS</string>
<key>IOClass</key>
<string>HoRNDIS</string>
<key>IOProviderClass</key>
<string>IOUSBHostInterface</string>
<key>bInterfaceClass</key>
<integer>224</integer>
<key>bInterfaceProtocol</key>
<integer>3</integer>
<key>bInterfaceSubClass</key>
<integer>1</integer>
</dict>
<key>WirelessControllerDevice</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.joshuawise.kexts.HoRNDIS</string>
<key>IOClass</key>
<string>HoRNDIS</string>
<key>IOProviderClass</key>
<string>IOUSBHostDevice</string>
<key>bDeviceClass</key>
<integer>224</integer>
<key>bDeviceProtocol</key>
<integer>0</integer>
<key>bDeviceSubClass</key>
<integer>0</integer>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.iokit.IONetworkingFamily</key>
<string>3.2</string>
<key>com.apple.iokit.IOUSBHostFamily</key>
<string>1.0.1</string>
<key>com.apple.kpi.bsd</key>
<string>15.0</string>
<key>com.apple.kpi.iokit</key>
<string>15.0</string>
<key>com.apple.kpi.libkern</key>
<string>15.0</string>
<key>com.apple.kpi.mach</key>
<string>15.0</string>
<key>com.apple.kpi.unsupported</key>
<string>15.0</string>
</dict>
</dict>
</plist>
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
<?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>files</key>
<dict>
<key>Resources/en.lproj/InfoPlist.strings</key>
<dict>
<key>hash</key>
<data>
MiLKDDnrUKr4EmuvhS5VQwxHGK8=
</data>
<key>optional</key>
<true/>
</dict>
</dict>
<key>files2</key>
<dict>
<key>Resources/en.lproj/InfoPlist.strings</key>
<dict>
<key>hash</key>
<data>
MiLKDDnrUKr4EmuvhS5VQwxHGK8=
</data>
<key>hash2</key>
<data>
Oc8u4Ht7Mz58F50L9NeYpbcq9qTlhPUeZCcDu/pPyCg=
</data>
<key>optional</key>
<true/>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>
46 changes: 44 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,32 @@
![T440p MacOS Mojave](https://raw.githubusercontent.com/jloisel/t440p/master/t440p-macos-mojave.jpg)
*T440p running on MacOS Mojave with i7 4712MQ, 16GB RAM and Western Digital 500GB SSD + 1TB HDD in Sata Ultrabay*

## What works


- Power management/sleep
- Brightness/Volume Control
- Battery Information
- Audio : from internal speaker and headphone jack (see `Known problems` below)
- USB Ports, Built-in Camera
- Graphics Acceleration
- FaceTime/iMessage
- DVD Drive
- Automatic OS updates
- Trackpoint/Touchpad (gestures and scrolling included)
- Dock USB ports
- Dock DisplayPorts, HDMI, DVI and VGA

## Known problems


- Ultra Dock problems (sleep/shutdown causes kernel panic and reboot when docked, also audio jack broken)
- Strong white noise from audio jack when waking up from sleep (reboot solves)
- WiFi and Bluetooth
- SD card reader
- Automatic switching between internal and external speakers through jack (need to switch manually)


## Changelog
=======

Expand Down Expand Up @@ -105,9 +131,12 @@ In `Startup` menu, set the following options:

Now you can go through the install.

### Bootable USB Drive
## Bootable USB Drive

### From macOS

The guide [how to create a macOS USB Installer Drive](https://hackintosher.com/guides/how-to-make-a-macos-10-14-mojave-flash-drive-installer/) explains how to create a USB flash drive to install MacOs on your T440p.

The guide [how to create a Mojave USB Installer Drive](https://hackintosher.com/guides/how-to-make-a-macos-10-14-mojave-flash-drive-installer/) explains how to create a USB flash drive to install MacOs on your T440p.

### Copy EFI Folder to USB

Expand All @@ -134,6 +163,19 @@ You're almost done! Reboot and enjoy macOS on your Thinpad T440p.

## Miscellaneous

### Internet Connection needed for installing macOS

The problem is the following: for some reason when you write the USB from a PC (not a mac) it only writes the online installer, even though it downloads the full offline installer. Why? Good question, haven't figured out yet.
Why ethernet won't work? Because in mojave / catalina, recovery it's disabled.

Solutions:

- You'll need to have a wireless network card compatible with mac, OR
- use usb tethering your wifi from your phone.

This is why `HoRNDIS.kext` has been added to the kexts. Make sure to connect your android phone with an USB cable to your laptop when installing macOS. Share the phone wi-fi connection with the connected laptop.


### for DW1820A WiFi Card

- Please see the contents of DW1820A folder:
Expand Down

0 comments on commit 02c7f22

Please sign in to comment.