github / SoftU2F

Software U2F authenticator for macOS
MIT License
2.21k stars 160 forks source link

Installation failure on macOS 10.12.6 #56

Closed TheInnerParty closed 5 years ago

TheInnerParty commented 6 years ago

I tried installing the latest (v0.0.17) release via the provided installer on Sierra multiple times, but got this error window from installer after each attempt:

screen shot 2018-08-19 at 19 07 28

System information

sw_vers

ProductName:    Mac OS X
ProductVersion: 10.12.6
BuildVersion:   16G1036

file /Library/Extensions/softu2f.kext /Applications/SoftU2F.app ~/Library/LaunchAgents/com.github.SoftU2F.plist

/Library/Extensions/softu2f.kext:                             directory
/Applications/SoftU2F.app:                                    directory
/Users/ldastur/Library/LaunchAgents/com.github.SoftU2F.plist: cannot open `/Users/ldastur/Library/LaunchAgents/com.github.SoftU2F.plist' (No such file or directory)

kextstat -b com.github.SoftU2FDriver

Index Refs Address Size Wired Name (Version) UUID <Linked Against>

ps aux | grep SoftU2F.app

ldastur 19972 0.0 0.0 2432804 1504 s000 R+ 7:15PM 0:00.00 grep SoftU2F.app

grep SoftU2F -a20 -b20 /var/log/install.log | sort -g | uniq | tail -n200

24549934:Aug 19 19:07:25 pc-9 installd[483]: ./postinstall: (kernel) Failed to load kext com.github.SoftU2FDriver (error 0xdc008016).
24550059-Aug 19 19:07:25 pc-9 installd[483]: ./postinstall: Failed to load /Library/Extensions/softu2f.kext - (libkern/kext) link error.
24550187-Aug 19 19:07:25 pc-9 installd[483]: ./postinstall: Check library declarations for your kext with kextlibs(8).
24550297-Aug 19 19:07:25 pc-9 install_monitor[19823]: Re-included: /Applications, /Developer, /Library, /System, /bin, /private, /sbin, /usr
24550429-Aug 19 19:07:26 pc-9 installd[483]: PackageKit: releasing backupd
24550495-Aug 19 19:07:26 pc-9 installd[483]: PackageKit: allow user idle system sleep
24550572:Aug 19 19:07:26 pc-9 installd[483]: PackageKit: Install Failed: Error Domain=PKInstallErrorDomain Code=112 "An error occurred while running scripts from the package “SoftU2F.pkg”." UserInfo={NSFilePath=./postinstall, NSURL=file://localhost/Users/ldastur/Downloads/SoftU2F.pkg, PKInstallPackageIdentifier=com.GitHub.SoftU2F, NSLocalizedDescription=An error occurred while running scripts from the package “SoftU2F.pkg”.} {
24551002-       NSFilePath = "./postinstall";
24551037:       NSLocalizedDescription = "An error occurred while running scripts from the package \U201cSoftU2F.pkg\U201d.";
24551152:       NSURL = "file://localhost/Users/ldastur/Downloads/SoftU2F.pkg";
24551221:       PKInstallPackageIdentifier = "com.GitHub.SoftU2F";
24551277-   }
24551280-Aug 19 19:07:26 pc-9 installd[483]: PackageKit: Running idle tasks
24551347:Aug 19 19:07:26 pc-9 Installer[19800]: install:didFailWithError:Error Domain=PKInstallErrorDomain Code=112 "An error occurred while running scripts from the package “SoftU2F.pkg”." UserInfo={NSFilePath=./postinstall, NSURL=file://localhost/Users/ldastur/Downloads/SoftU2F.pkg, PKInstallPackageIdentifier=com.GitHub.SoftU2F, NSLocalizedDescription=An error occurred while running scripts from the package “SoftU2F.pkg”.}
24551775-Aug 19 19:07:26 pc-9 installd[483]: PackageKit: Removing client PKInstallDaemonClient pid=19800, uid=501 (/System/Library/CoreServices/Installer.app/Contents/MacOS/Installer)
24551950-Aug 19 19:07:26 pc-9 installd[483]: PackageKit: Done with sandbox removals
24552025-Aug 19 19:07:26 pc-9 Installer[19800]: Install failed: The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.
24552203-Aug 19 19:07:26 pc-9 Installer[19800]: IFDInstallController 52E0 state = 8
24552278-Aug 19 19:07:26 pc-9 Installer[19800]: Displaying 'Install Failed' UI.
24552349-Aug 19 19:07:26 pc-9 Installer[19800]: 'Install Failed' UI displayed message:'The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.'.
btoews commented 6 years ago

That's a new one for me. Sorry you're having issues. Can you provide the output from trying to load the kext manually? To do this, run sudo kextutil -v 4 /Library/Extensions/softu2f.kext. I get output like this:

$ sudo kextutil -v 4 /Library/Extensions/softu2f.kext
Kext library architecture set to x86_64.
Defaulting to kernel file '/System/Library/Kernels/kernel'
Kext library recording diagnostics for: validation authentication dependencies warnings.
Reading loaded kext info from kernel.
/Library/Extensions/softu2f.kext appears to be loadable (not including linkage for on-disk libraries).
Reading loaded kext info from kernel.
Loading /Library/Extensions/softu2f.kext.
Reading load info for 9 kexts.
Reading loaded kext info from kernel.
Created mkext for architecture x86_64 containing 1 kexts.
(kernel) Received request from user space to load kext com.github.SoftU2FDriver.
/Library/Extensions/softu2f.kext successfully loaded (or already loaded).
TheInnerParty commented 6 years ago

Thanks for getting back! Sure thing:

Kext library architecture set to x86_64.
Defaulting to kernel file '/System/Library/Kernels/kernel'
Kext library recording diagnostics for: validation authentication dependencies warnings.
/Library/Extensions/softu2f.kext appears to be loadable (not including linkage for on-disk libraries).
Reading loaded kext info from kernel.
Loading /Library/Extensions/softu2f.kext.
Reading load info for 11 kexts.
Reading loaded kext info from kernel.
Adding /Library/Extensions/softu2f.kext to mkext.
/Library/Extensions/softu2f.kext added 69376-byte noncompressed executable to mkext.
Created mkext for architecture x86_64 containing 1 kexts.
Loading /Library/Extensions/softu2f.kext.
(kernel) Received request from user space to load kext com.github.SoftU2FDriver.
(kernel) Loading kext com.github.SoftU2FDriver.
(kernel) Allocated link buffer for kext com.github.SoftU2FDriver at 0xffffff7f8d95a000 (28672 bytes).
(kernel) kxld[com.github.SoftU2FDriver]: The super class vtable '__ZTV11IOHIDDevice' for vtable '__ZTV13SoftU2FDevice' is out of date. Make sure your kext has been built against the correct headers.
(kernel) kxld[com.github.SoftU2FDriver]: The super class vtable '__ZTV11IOHIDDevice' for vtable '__ZTV13SoftU2FDevice' is out of date. Make sure your kext has been built against the correct headers.
(kernel) Can't load kext com.github.SoftU2FDriver - link failed.
(kernel) Failed to load executable for kext com.github.SoftU2FDriver.
(kernel) Kext com.github.SoftU2FDriver failed to load (0xdc008016).
(kernel) Failed to load kext com.github.SoftU2FDriver (error 0xdc008016).
(kernel) Kext com.github.SoftU2FDriver removing all personalities naming it from the IOCatalogue.
Failed to load /Library/Extensions/softu2f.kext - (libkern/kext) link error.
Failed to load /Library/Extensions/softu2f.kext - (libkern/kext) link error.
Check library declarations for your kext with kextlibs(8).
ejcx commented 6 years ago

This happened to me as well:

$ sudo kextutil -v 4 /Library/Extensions/softu2f.kext
Password:
Kext library architecture set to x86_64.
Defaulting to kernel file '/System/Library/Kernels/kernel'
Kext library recording diagnostics for: validation authentication dependencies warnings.
/Library/Extensions/softu2f.kext appears to be loadable (not including linkage for on-disk libraries).
Reading loaded kext info from kernel.
Loading /Library/Extensions/softu2f.kext.
Reading load info for 11 kexts.
Reading loaded kext info from kernel.
Adding /Library/Extensions/softu2f.kext to mkext.
/Library/Extensions/softu2f.kext added 69376-byte noncompressed executable to mkext.
Created mkext for architecture x86_64 containing 1 kexts.
Loading /Library/Extensions/softu2f.kext.
(kernel) Received request from user space to load kext com.github.SoftU2FDriver.
(kernel) Loading kext com.github.SoftU2FDriver.
(kernel) Allocated link buffer for kext com.github.SoftU2FDriver at 0xffffff7f8fb8b000 (28672 bytes).
(kernel) kxld[com.github.SoftU2FDriver]: The super class vtable '__ZTV11IOHIDDevice' for vtable '__ZTV13SoftU2FDevice' is out of date. Make sure your kext has been built against the correct headers.
(kernel) kxld[com.github.SoftU2FDriver]: The super class vtable '__ZTV11IOHIDDevice' for vtable '__ZTV13SoftU2FDevice' is out of date. Make sure your kext has been built against the correct headers.
(kernel) Can't load kext com.github.SoftU2FDriver - link failed.
(kernel) Failed to load executable for kext com.github.SoftU2FDriver.
(kernel) Kext com.github.SoftU2FDriver failed to load (0xdc008016).
(kernel) Failed to load kext com.github.SoftU2FDriver (error 0xdc008016).
(kernel) Kext com.github.SoftU2FDriver removing all personalities naming it from the IOCatalogue.
Failed to load /Library/Extensions/softu2f.kext - (libkern/kext) link error.
Failed to load /Library/Extensions/softu2f.kext - (libkern/kext) link error.
Check library declarations for your kext with kextlibs(8).
btoews commented 6 years ago

Thanks for the additional information. I haven't had much time recently to debug this. My assumption is that I need to make some change to the build in order for the same kext to be loadable by multiple different kernel versions. I'll try to figure this out in the next couple of weeks, but would welcome any suggestions on fixes in the meantime.

btoews commented 5 years ago

I fixed this in #58 and cut v0.0.18 with those changes.

khash commented 5 years ago

This happens on 10.14.4 now

btoews commented 5 years ago

Can you please open a new issue and provide the requested debugging information @khash? Thanks.