Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unable to install on macOS Catalina #102

Open
dehydratedH2O opened this issue Jul 3, 2019 · 16 comments

Comments

@dehydratedH2O
Copy link

@dehydratedH2O dehydratedH2O commented Jul 3, 2019

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

@M69W

This comment has been minimized.

Copy link

@M69W M69W commented Jul 3, 2019

This is a kext that be pick up from HoRNDIS-9.2.pkg in the S/L on Majova.
I don't know whether it's work in the Catalina?
EFI/Clover/kexts/Other
HoRNDIS.kext.zip

@FengFeng-is-me

This comment has been minimized.

Copy link

@FengFeng-is-me FengFeng-is-me commented Jul 5, 2019

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.

@d235j

This comment has been minimized.

Copy link
Contributor

@d235j d235j commented Jul 5, 2019

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.

@dehydratedH2O

This comment has been minimized.

Copy link
Author

@dehydratedH2O dehydratedH2O commented Jul 5, 2019

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".

@FengFeng-is-me

This comment has been minimized.

Copy link

@FengFeng-is-me FengFeng-is-me commented Jul 5, 2019

image

@hacker1024 hacker1024 mentioned this issue Oct 8, 2019
@lutnos

This comment has been minimized.

Copy link

@lutnos lutnos commented Oct 9, 2019

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

@d235j

This comment has been minimized.

Copy link
Contributor

@d235j d235j commented Oct 9, 2019

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.

@qdtjvszxc

This comment has been minimized.

Copy link

@qdtjvszxc qdtjvszxc commented Oct 9, 2019

2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: Product archive /usr/local/Caskroom/horndis/9.2/HoRNDIS-9.2.pkg trustLevel=350
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: -[IFDInstallController(Private) _buildInstallPlanReturningError:]: location = file://localhost
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: -[IFDInstallController(Private) _buildInstallPlanReturningError:]: file://localhost/usr/local/Caskroom/horndis/9.2/HoRNDIS-9.2.pkg#HoRNDIS-kext.pkg
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: Set authorization level to root for session
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: Administrator authorization granted.
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: Will use PK session
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: Using authorization level of root for IFPKInstallElement
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: Starting installation:
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: Configuring volume "Macintosh HD"
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: Preparing disk for local booted install.
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: Free space on "Macintosh HD": 453.09 GB (453093011456 bytes).
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: Create temporary directory "/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T//Install.289452ieUJ2"
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: IFPKInstallElement (1 packages)
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installd[507]: PackageKit: Adding client PKInstallDaemonClient pid=28945, uid=0 (/usr/sbin/installer)
2019-10-10 03:50:00+08 YipingdeMacBook-Pro installer[28945]: PackageKit: Enqueuing install with framework-specified quality of service (utility)
2019-10-10 03:50:01+08 YipingdeMacBook-Pro installd[507]: PackageKit: ----- Begin install -----
2019-10-10 03:50:01+08 YipingdeMacBook-Pro installd[507]: PackageKit: request=PKInstallRequest <1 packages, destination=/>
2019-10-10 03:50:01+08 YipingdeMacBook-Pro 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>"
)
2019-10-10 03:50:01+08 YipingdeMacBook-Pro installd[507]: PackageKit: Set reponsibility for install to 18666
2019-10-10 03:50:01+08 YipingdeMacBook-Pro 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)
2019-10-10 03:50:01+08 YipingdeMacBook-Pro installd[507]: PackageKit: prevent user idle system sleep
2019-10-10 03:50:01+08 YipingdeMacBook-Pro installd[507]: PackageKit: suspending backupd
2019-10-10 03:50:01+08 YipingdeMacBook-Pro 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
2019-10-10 03:50:01+08 YipingdeMacBook-Pro install_monitor[28946]: Temporarily excluding: /Applications, /Library, /System, /bin, /private, /sbin, /usr
2019-10-10 03:50:01+08 YipingdeMacBook-Pro installd[507]: PackageKit: Shoving /Library/InstallerSandboxes/.PKInstallSandboxManager/603D0B6A-6DB4-4042-B0B8-020C5A71589D.activeSandbox/Root (1 items) to /
2019-10-10 03:50:01+08 YipingdeMacBook-Pro installd[507]: PackageKit: Executing script "./postinstall" in /private/tmp/PKInstallSandbox.tN75vt/Scripts/com.joshuawise.kexts.HoRNDIS.qKEa0q
2019-10-10 03:50:01+08 YipingdeMacBook-Pro installd[507]: ./postinstall: touch: /System/Library/Extensions: Read-only file system
2019-10-10 03:50:01+08 YipingdeMacBook-Pro install_monitor[28946]: Re-included: /Applications, /Library, /System, /bin, /private, /sbin, /usr
2019-10-10 03:50:02+08 YipingdeMacBook-Pro installd[507]: PackageKit: releasing backupd
2019-10-10 03:50:02+08 YipingdeMacBook-Pro installd[507]: PackageKit: allow user idle system sleep
2019-10-10 03:50:02+08 YipingdeMacBook-Pro installd[507]: PackageKit: Cleared responsibility for install from 28945.
2019-10-10 03:50:02+08 YipingdeMacBook-Pro 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";
}
2019-10-10 03:50:02+08 YipingdeMacBook-Pro installd[507]: PackageKit: Running idle tasks
2019-10-10 03:50:02+08 YipingdeMacBook-Pro 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".}
2019-10-10 03:50:02+08 YipingdeMacBook-Pro installd[507]: PackageKit: Removing client PKInstallDaemonClient pid=28945, uid=0 (/usr/sbin/installer)
2019-10-10 03:50:02+08 YipingdeMacBook-Pro installd[507]: PackageKit: Done with sandbox removals
2019-10-10 03:50:02+08 YipingdeMacBook-Pro installer[28945]: Install failed: The installer encountered an error that caused the installation to fail. Please contact the software manufacturer for assistance.

@d235j

This comment has been minimized.

Copy link
Contributor

@d235j d235j commented Oct 9, 2019

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

This comment has been minimized.

Copy link
Contributor

@d235j d235j commented Oct 11, 2019

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

@cheyennerhap

This comment has been minimized.

Copy link

@cheyennerhap cheyennerhap commented Oct 12, 2019

Thanks so much, this update worked perfectly!

@ice-cream-headache

This comment has been minimized.

Copy link

@ice-cream-headache ice-cream-headache commented Oct 14, 2019

It works perfect.Thanks a lot.

@alexandrehuat

This comment has been minimized.

Copy link

@alexandrehuat alexandrehuat commented Oct 17, 2019

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.

@mongezik19

This comment has been minimized.

Copy link

@mongezik19 mongezik19 commented Oct 20, 2019

Thank you so much @d235j

@jadonk

This comment has been minimized.

Copy link

@jadonk jadonk commented Nov 7, 2019

@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. :-(

@whao

This comment has been minimized.

Copy link

@whao whao commented Nov 28, 2019

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
You can’t perform that action at this time.