HoRNDIS icon indicating copy to clipboard operation
HoRNDIS copied to clipboard

unable to install on macOS Catalina

Open dehydratedH2O opened this issue 6 years ago • 94 comments

HoRNDIS is incompatible with Catalina due to the new read-only system partition. installation via the .pkg or brew will fail.

see the What's New in APFS session from WWDC19: https://developer.apple.com/videos/play/wwdc2019/710/

there may be a workaround by disabling SIP using csrutil in Recovery Mode, but I haven't had a chance to try it yet.

the "right" way to fix HoRNDIS long term is likely to migrate it to using the new DriverKit framework, documented at https://developer.apple.com/documentation/driverkit

dehydratedH2O avatar Jul 03 '19 00:07 dehydratedH2O

My OS version is 10.15 beat3 it work,it's able work on Catalina. try second times or restart your machine.And if installed contected phone it always not work or can't find your network You just need to copy /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist and /Library/Preferences/SystemConfiguration/preferences.plis delete these file. But if you try this,you may not connect the network anymore.and you just backup these two file,you will find it work.It's amazing. You have to remember to backup before you delete system file.

wwwfeng avatar Jul 05 '19 17:07 wwwfeng

Is the installer still trying to put files in /System? It should not be doing that.

I don't believe network driver kexts are blocked just yet, but it would not surprise me if that becomes the case in 10.16. NetworkingDriverKit will be the way to go.

d235j avatar Jul 05 '19 17:07 d235j

In 10.16 basically anything not in /Users or /Applications is write protected. The installer is attempting to write to protected locations. Using an old .kext won't work without disabling SIP, which should not be required for users.

DriverKit should be adopted before Catalina is released if this project wants to support it. If I find time to do it myself, I will, but until then if anyone has a chance to do it, it's the "right way".

dehydratedH2O avatar Jul 05 '19 18:07 dehydratedH2O

image

wwwfeng avatar Jul 05 '19 18:07 wwwfeng

I now have HoRNDIS installed and working on the release 10.15 Catalina.

The process:

  • Shutdown
  • Hold command+R and press power
  • Launch terminal
  • csrutil disable
  • Reboot
  • Launch terminal
  • mount -uw /
  • Run the HoRNDIS 9.2 installer
  • Shutdown
  • Hold command+R and press power
  • Launch terminal
  • csrutil enable
  • Reboot

Ultimately, DriverKit is the way too go.

But for now I hope that this helps others

lutnos avatar Oct 09 '19 16:10 lutnos

Can one of you provide a copy of the Installer log from a failed installation, with all logs enabled, not only errors? (Keep SIP enabled and everything else on defaults.)

I'm not on Catalina yet so I can't test.

d235j avatar Oct 09 '19 16:10 d235j

installer[28945]: Product archive /usr/local/Caskroom/horndis/9.2/HoRNDIS-9.2.pkg trustLevel=350
installer[28945]: -[IFDInstallController(Private) _buildInstallPlanReturningError:]: location = file://localhost
installer[28945]: -[IFDInstallController(Private) _buildInstallPlanReturningError:]: file://localhost/usr/local/Caskroom/horndis/9.2/HoRNDIS-9.2.pkg#HoRNDIS-kext.pkg
installer[28945]: Set authorization level to root for session
installer[28945]: Administrator authorization granted.
installer[28945]: Will use PK session
installer[28945]: Using authorization level of root for IFPKInstallElement
installer[28945]: Starting installation:
installer[28945]: Configuring volume "Macintosh HD"
installer[28945]: Preparing disk for local booted install.
installer[28945]: Free space on "Macintosh HD": 453.09 GB (453093011456 bytes).
installer[28945]: Create temporary directory "/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T//Install.289452ieUJ2"
installer[28945]: IFPKInstallElement (1 packages)
installd[507]: PackageKit: Adding client PKInstallDaemonClient pid=28945, uid=0 (/usr/sbin/installer)
installer[28945]: PackageKit: Enqueuing install with framework-specified quality of service (utility)
installd[507]: PackageKit: ----- Begin install -----
installd[507]: PackageKit: request=PKInstallRequest <1 packages, destination=/>
installd[507]: PackageKit: packages=(
	    "PKLeopardPackage <id=com.joshuawise.kexts.HoRNDIS, version=0, url=file://localhost/usr/local/Caskroom/horndis/9.2/HoRNDIS-9.2.pkg#HoRNDIS-kext.pkg>"
	)
installd[507]: PackageKit: Set reponsibility for install to 18666
installd[507]: PackageKit: Extracting file://localhost/usr/local/Caskroom/horndis/9.2/HoRNDIS-9.2.pkg#HoRNDIS-kext.pkg (destination=/Library/InstallerSandboxes/.PKInstallSandboxManager/603D0B6A-6DB4-4042-B0B8-020C5A71589D.activeSandbox/Root, uid=0)
installd[507]: PackageKit: prevent user idle system sleep
installd[507]: PackageKit: suspending backupd
installd[507]: PackageKit: Using trashcan path /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/PKInstallSandboxTrash/603D0B6A-6DB4-4042-B0B8-020C5A71589D.sandboxTrash for sandbox /Library/InstallerSandboxes/.PKInstallSandboxManager/603D0B6A-6DB4-4042-B0B8-020C5A71589D.activeSandbox
install_monitor[28946]: Temporarily excluding: /Applications, /Library, /System, /bin, /private, /sbin, /usr
installd[507]: PackageKit: Shoving /Library/InstallerSandboxes/.PKInstallSandboxManager/603D0B6A-6DB4-4042-B0B8-020C5A71589D.activeSandbox/Root (1 items) to /
installd[507]: PackageKit: Executing script "./postinstall" in /private/tmp/PKInstallSandbox.tN75vt/Scripts/com.joshuawise.kexts.HoRNDIS.qKEa0q
installd[507]: ./postinstall: touch: /System/Library/Extensions: Read-only file system
install_monitor[28946]: Re-included: /Applications, /Library, /System, /bin, /private, /sbin, /usr
installd[507]: PackageKit: releasing backupd
installd[507]: PackageKit: allow user idle system sleep
installd[507]: PackageKit: Cleared responsibility for install from 28945.
installd[507]: PackageKit: Install Failed: Error Domain=PKInstallErrorDomain Code=112 "An error occurred while running the script for the package "HoRNDIS-9.2.pkg"." UserInfo={NSFilePath=./postinstall, NSURL=file://localhost/usr/local/Caskroom/horndis/9.2/HoRNDIS-9.2.pkg#HoRNDIS-kext.pkg, PKInstallPackageIdentifier=com.joshuawise.kexts.HoRNDIS, NSLocalizedDescription=An error occurred while running the script for the package "HoRNDIS-9.2.pkg".} {
	    NSFilePath = "./postinstall";
	    NSLocalizedDescription = "\U8fd0\U884c\U8f6f\U4ef6\U5305\U201cHoRNDIS-9.2.pkg\U201d\U7684\U811a\U672c\U65f6\U51fa\U9519\U3002";
	    NSURL = "file://localhost/usr/local/Caskroom/horndis/9.2/HoRNDIS-9.2.pkg#HoRNDIS-kext.pkg";
	    PKInstallPackageIdentifier = "com.joshuawise.kexts.HoRNDIS";
	}
installd[507]: PackageKit: Running idle tasks
installer[28945]: install:didFailWithError:Error Domain=PKInstallErrorDomain Code=112 "An error occurred while running the script for the package "HoRNDIS-9.2.pkg"." UserInfo={NSFilePath=./postinstall, NSURL=file://localhost/usr/local/Caskroom/horndis/9.2/HoRNDIS-9.2.pkg#HoRNDIS-kext.pkg, PKInstallPackageIdentifier=com.joshuawise.kexts.HoRNDIS, NSLocalizedDescription=An error occurred while running the script for the package "HoRNDIS-9.2.pkg".}
installd[507]: PackageKit: Removing client PKInstallDaemonClient pid=28945, uid=0 (/usr/sbin/installer)
installd[507]: PackageKit: Done with sandbox removals
installer[28945]: Install failed: The installer encountered an error that caused the installation to fail. Please contact the software manufacturer for assistance.

ghost avatar Oct 09 '19 19:10 ghost

The post-install script needs to be changed.

sudo touch /System/Library/Extensions was deprecated a while ago for rebuilding the kextcache. The currently supported method is sudo kextcache -system-prelinked-kernel.

Since that command is trying to write to /System, it is failing and causing the Installer to throw an error — even though the kext is already installed in /Library/Extensions.

@jwise @mikhailai can you take a look? The kext and package will also need notarization. I can do some testing once I have a Catalina install set up.

d235j avatar Oct 09 '19 20:10 d235j

Here's a version packaging the exact same binary-identical .kext together with a modified install script. This does mean the .pkg is unsigned (so you'd have to trust me and bypass Gatekeeper with the right-click-and-open method). I'll try to get a PR to the project in place soon. HoRNDIS-9.2-catalina_install.pkg.zip

d235j avatar Oct 11 '19 21:10 d235j

Thanks so much, this update worked perfectly!

cheyennerhap avatar Oct 12 '19 01:10 cheyennerhap

It works perfect.Thanks a lot.

ice-cream-headache avatar Oct 14 '19 08:10 ice-cream-headache

Here's a version packaging the exact same binary-identical .kext together with a modified install script. This does mean the .pkg is unsigned (so you'd have to trust me and bypass Gatekeeper with the right-click-and-open method). I'll try to get a PR to the project in place soon. HoRNDIS-9.2-catalina_install.pkg.zip

Wonderful! It works. Thank you. Great job.

alexandrehuat avatar Oct 17 '19 16:10 alexandrehuat

Thank you so much @d235j

mongezik19 avatar Oct 20 '19 21:10 mongezik19

@d235j any updates on a PR? Catalina has a regression related to BeagleBone's USB configuration, which includes a composite adapter including Mass Storage Class, CDC-ACM (serial), RNDIS and CDC-ECM (networking, previously supported by OS X). It appears to get the CDC-ECM working, we have to disable the RNDIS support (or perhaps enumerate it after RNDIS?). Therefore, we are considering just removing CDC-ECM, which otherwise breaks the latest Windows 10 if included in the composite adapter before RNDIS. Proprietary OS vendors. :-(

jadonk avatar Nov 07 '19 20:11 jadonk

@d235j I tried your binary and it worked well! Thanks so much for your job! But there is a small issue. Every time I reconnect my phone to mac, it creates a new interface in Preference -> Network. And the interface number increases. For example, it creates Ethernet Adapter (en6), after plugging out and in, it creates Ethernet Adapter (en7), and en6 is still there. Now it is alreay en15 on my laptop and I don't know how to delete old ones. Deleting in the Network panel doesn't work.

whao avatar Nov 28 '19 07:11 whao

Catalina 10.15.2 straight up forbids the whole installation even when you bypass Gatekeeper because of "incompatibility".

mabdullahsari avatar Dec 13 '19 15:12 mabdullahsari

not working in 10.15.2 update

suru1994 avatar Dec 14 '19 06:12 suru1994

not working in 10.15.2 update

Unfortunately...

marcocursi avatar Dec 14 '19 13:12 marcocursi

not working in 10.15.2 update

It's working on my 10.15.2. Did had to accept something on a privacy and safety popup

johanf85 avatar Dec 16 '19 13:12 johanf85

not working in 10.15.2 update

It's working on my 10.15.2. Did had to accept something on a privacy and safety popup

Really?! I try again.

marcocursi avatar Dec 16 '19 15:12 marcocursi

not working in 10.15.2 update

It's working on my 10.15.2. Did had to accept something on a privacy and safety popup

Really?! I try again.

No problem on 10.15.1 updated 10.15.2. New Mac with 10.15.2 no working. Error “ Contact software developer “.

marcocursi avatar Dec 16 '19 15:12 marcocursi

I go to system preferences -> security & privacy. I see - System software from developer "Joshua Wise" was blocked from loading. unblock it by pressing "Allow" it's working under 10.15.2

aivils avatar Dec 20 '19 18:12 aivils

Here's a version packaging the exact same binary-identical .kext together with a modified install script. This does mean the .pkg is unsigned (so you'd have to trust me and bypass Gatekeeper with the right-click-and-open method). I'll try to get a PR to the project in place soon. HoRNDIS-9.2-catalina_install.pkg.zip

Thank you so much, you just saved my life !

svalab-hatci avatar Dec 25 '19 13:12 svalab-hatci

Here's a version packaging the exact same binary-identical .kext together with a modified install script. This does mean the .pkg is unsigned (so you'd have to trust me and bypass Gatekeeper with the right-click-and-open method). I'll try to get a PR to the project in place soon. HoRNDIS-9.2-catalina_install.pkg.zip

Works perfectly for me and the DJI application on Catalina. Thank you very much !

air2terre avatar Dec 30 '19 20:12 air2terre

@d235j I tried your binary and it worked well! Thanks so much for your job! But there is a small issue. Every time I reconnect my phone to mac, it creates a new interface in Preference -> Network. And the interface number increases. For example, it creates Ethernet Adapter (en6), after plugging out and in, it creates Ethernet Adapter (en7), and en6 is still there. Now it is alreay en15 on my laptop and I don't know how to delete old ones. Deleting in the Network panel doesn't work.

Happens to me too.

gmcinalli avatar Jan 24 '20 08:01 gmcinalli

Here's a version packaging the exact same binary-identical .kext together with a modified install script. This does mean the .pkg is unsigned (so you'd have to trust me and bypass Gatekeeper with the right-click-and-open method). I'll try to get a PR to the project in place soon. HoRNDIS-9.2-catalina_install.pkg.zip

MVP TRIGGERED

Adriano-A3 avatar Jan 27 '20 15:01 Adriano-A3

Here's a version packaging the exact same binary-identical .kext together with a modified install script. This does mean the .pkg is unsigned (so you'd have to trust me and bypass Gatekeeper with the right-click-and-open method). I'll try to get a PR to the project in place soon. HoRNDIS-9.2-catalina_install.pkg.zip

Hi @d235j, I am using your version, and it works. However, each time I disconnect and connect my device for USB tethering, it created a new network interface (en2-en8 shown in screenshot below), which is quite annoying. I realised that it doesn't recognised my phone model (Xiaomi Pocophone F1). Can you help me solve this issue, thanks in advance!

WhatsApp Image 2020-02-15 at 7 08 52 PM

liho98 avatar Feb 15 '20 15:02 liho98

Thanks @d235j, your version does get correctly installed on Catalina.

@liho98 I'm experiencing the same issue: this is due to Android generating a new MAC address every time the USB tethering is enabled. It's called MAC Randomization and is considered an official security feature

dragfly avatar Feb 23 '20 22:02 dragfly

Thanks @d235j, your version does get correctly installed on Catalina.

@liho98 I'm experiencing the same issue: this is due to Android generating a new MAC address every time the USB tethering is enabled. It's called MAC Randomization and is considered an official security feature

Great information, hopefully there will be a solution. . . But it looks difficult ... Btw thanks.

liho98 avatar Feb 24 '20 00:02 liho98

The installer works in 10.15.3 but I cannot tether my pixel 3

billy1380 avatar Feb 26 '20 18:02 billy1380