From 02c7f221c87b3f2b0a48596092c42456aeae0ccf Mon Sep 17 00:00:00 2001 From: jloisel Date: Mon, 27 Jul 2020 13:48:24 +0200 Subject: [PATCH] add HoRNDIS to support usb tethering when using online usb installer --- .../Other/HoRNDIS.kext/Contents/Info.plist | 124 ++++++++++++++++ .../Other/HoRNDIS.kext/Contents/MacOS/HoRNDIS | Bin 0 -> 87088 bytes .../Resources/en.lproj/InfoPlist.strings | Bin 0 -> 92 bytes .../Contents/_CodeSignature/CodeResources | 139 ++++++++++++++++++ README.md | 46 +++++- 5 files changed, 307 insertions(+), 2 deletions(-) create mode 100644 EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/Info.plist create mode 100755 EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/MacOS/HoRNDIS create mode 100644 EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/Resources/en.lproj/InfoPlist.strings create mode 100644 EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/_CodeSignature/CodeResources diff --git a/EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/Info.plist b/EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/Info.plist new file mode 100644 index 0000000..3668e75 --- /dev/null +++ b/EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/Info.plist @@ -0,0 +1,124 @@ + + + + + BuildMachineOSBuild + 16G1212 + CFBundleDevelopmentRegion + English + CFBundleExecutable + HoRNDIS + CFBundleGetInfoString + Android/RNDIS tethering driver + CFBundleIdentifier + com.joshuawise.kexts.HoRNDIS + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + HoRNDIS + CFBundlePackageType + KEXT + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 9.2 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 7D1014 + DTPlatformVersion + GM + DTSDKBuild + 15E60 + DTSDKName + macosx10.11 + DTXcode + 0731 + DTXcodeBuild + 7D1014 + IOKitPersonalities + + RNDISControlLinuxGadget + + CFBundleIdentifier + com.joshuawise.kexts.HoRNDIS + IOClass + HoRNDIS + IOProviderClass + IOUSBHostInterface + bInterfaceClass + 2 + bInterfaceProtocol + 255 + bInterfaceSubClass + 2 + + RNDISControlMiscDeviceRoE + + CFBundleIdentifier + com.joshuawise.kexts.HoRNDIS + IOClass + HoRNDIS + IOProviderClass + IOUSBHostInterface + bInterfaceClass + 239 + bInterfaceProtocol + 1 + bInterfaceSubClass + 4 + + RNDISControlStockAndroid + + CFBundleIdentifier + com.joshuawise.kexts.HoRNDIS + IOClass + HoRNDIS + IOProviderClass + IOUSBHostInterface + bInterfaceClass + 224 + bInterfaceProtocol + 3 + bInterfaceSubClass + 1 + + WirelessControllerDevice + + CFBundleIdentifier + com.joshuawise.kexts.HoRNDIS + IOClass + HoRNDIS + IOProviderClass + IOUSBHostDevice + bDeviceClass + 224 + bDeviceProtocol + 0 + bDeviceSubClass + 0 + + + OSBundleLibraries + + com.apple.iokit.IONetworkingFamily + 3.2 + com.apple.iokit.IOUSBHostFamily + 1.0.1 + com.apple.kpi.bsd + 15.0 + com.apple.kpi.iokit + 15.0 + com.apple.kpi.libkern + 15.0 + com.apple.kpi.mach + 15.0 + com.apple.kpi.unsupported + 15.0 + + + diff --git a/EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/MacOS/HoRNDIS b/EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/MacOS/HoRNDIS new file mode 100755 index 0000000000000000000000000000000000000000..623899b8a6f7c1bc25bd366a544719d26965c9d7 GIT binary patch literal 87088 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 O83Hl{WC;ALCj|yTg2Mz+o9F%uHlf9u}h9EuK`F a!Y*1dX%G66ZqL#C$|bw0ZoP5@jOGW1ArT7z literal 0 HcmV?d00001 diff --git a/EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/_CodeSignature/CodeResources b/EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/_CodeSignature/CodeResources new file mode 100644 index 0000000..b155906 --- /dev/null +++ b/EFI/CLOVER/kexts/Other/HoRNDIS.kext/Contents/_CodeSignature/CodeResources @@ -0,0 +1,139 @@ + + + + + files + + Resources/en.lproj/InfoPlist.strings + + hash + + MiLKDDnrUKr4EmuvhS5VQwxHGK8= + + optional + + + + files2 + + Resources/en.lproj/InfoPlist.strings + + hash + + MiLKDDnrUKr4EmuvhS5VQwxHGK8= + + hash2 + + Oc8u4Ht7Mz58F50L9NeYpbcq9qTlhPUeZCcDu/pPyCg= + + optional + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/README.md b/README.md index 4ec2100..a1f3cad 100644 --- a/README.md +++ b/README.md @@ -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 ======= @@ -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 @@ -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: