1P painfully slow in VMware Fusion

adam2104
adam2104
Community Member

I've been running 1P inside of a MacOS guest VM with VMware Fusion for a while now. 1P is painfully slow to open if 1P is locked. This seems to be because 1P is trying to query for TouchID support, which doesn't exist, so it just sits and grinds away waiting for whatever TouchID API call was made to timeout. The thing that's frustrating is I don't understand why VMware exposes TouchID hardware support to the VM when it doesn't work. This causes all kinds of slowness elsewhere in guest VM but there doesn't appear to be an option to stop VMware from giving MacOS the impression that TouchID hardware is present when it's not.

So, this isn't a 1P specific problem, but I would absolutely love if there was a 1P toggle, or hidden option, a plist setting, something, that would stop 1P from trying to check if TouchID is configured and/or supported.

I'm running a 2017 15'' MacBook Pro, TouchBar, Fusion 11.0.1, MacOS Mojave 10.14.1 VM. 1P is running 7.2.2.

Help?


1Password Version: Not Provided
Extension Version: Not Provided
OS Version: Not Provided
Sync Type: Not Provided

Comments

  • Lars
    Lars
    1Password Alumni

    @adam2104 - that definitely sounds annoying. I've got Parallels, and it seems not to have that problem. Might be a solution for you, albeit a not-cheap one. Other than that, there IS a switch to turn off Touch ID in Preferences > Security, but as I don't use Fusion, I couldn't say whether that would prevent it from TRYING/checking? Worth a shot, though. Let us know how you get on.

  • adam2104
    adam2104
    Community Member

    Hi Lars,

    The problem is, 1P's preferences takes easily upwards of a minute to open on this VM. TouchID isn't setup, so when it finally does open, all I get is a "Set up TouchID" button in Preferences --> Security. Of course, I can't actually set it up because this a virtual machine. So, 1P seems to be checking for TouchID capability in general, even if it isn't turned on, which makes 1P very slow to open/use. Is there anything else I can try?

    Thanks!

  • Lars
    Lars
    1Password Alumni

    @adam2104 - other than what I suggested above, no, I'm afraid not - that I'm aware of, anyway. Sorry for the inconvenience!

  • ericpardee
    ericpardee
    Community Member
    edited February 2020

    @adam2104 - ever find a solution to this? I know it's been a while, having the same issue myself

    1Password Version: 1Password 7, Version 7.4.1 (70401001), Mac App Store
    Extension Version: N/A
    OS Version: macOS Mojave 10.14.6 (18G2022) in VMware Fusion Professional Version 11.5.0
    Sync Type: N/A

    I might have to switch to Parallels

  • adam2104
    adam2104
    Community Member

    @ericpardee Nope, I didn't. It has to do with 1password checking for TouchID, which the Mac VM thinks it has, but doesn't. So, presumably, the system calls that 1P is making to check for TouchID are eventually timing out. It'd be nice if 1P added a toggle that said "Don't look for TouchID" which would likely speed this up, but it seems that isn't in the cards.

  • If our system calls to check for Touch ID are getting incorrect results back from the operating system I would argue that is more of a VMWare issue. Have you tried other software that has Touch ID capabilities to see if similar issues exist? I'd loop back on this:

    The thing that's frustrating is I don't understand why VMware exposes TouchID hardware support to the VM when it doesn't work. This causes all kinds of slowness elsewhere in guest VM but there doesn't appear to be an option to stop VMware from giving MacOS the impression that TouchID hardware is present when it's not.

    And see if there is a way to file a bug report with VMware on that point.

    Ben

  • Lars
    Lars
    1Password Alumni

    For what it's worth, can confirm that this issue has never happened to me as a (frequent) Parallels user. I'm not nearly as familiar with VMWare's Fusion offering, but I'd suggest either looking at perhaps a setting you may have overlooked, or -- as Ben suggested -- getting in touch with the VMWare folks.

  • ericpardee
    ericpardee
    Community Member

    This has plagued me in VMware Fusion and now that I switched to Parallels, Parallels also.

    The solution is a tad involved but stay with me.

    Reboot the VM into Recovery Mode
    Parallels: https://kb.parallels.com/cn/116526
    Fusion: https://babodee.wordpress.com/2018/10/10/booting-into-macos-recovery-in-vmware-fusion-10/

    Once into Recovery Mode
    Disable SIP( ;) ) : https://www.macworld.co.uk/how-to/mac/how-turn-off-mac-os-x-system-integrity-protection-rootless-3638975/

    Now in your macOS VM
    Open Terminal
    # Remove the biometric kit daemons
    sudo launchctl remove -w /System/Library/LaunchDaemons/com.apple.biometrickitd.plist
    sudo launchctl remove -w /System/Library/LaunchDaemons/com.apple.biokitaggdd.plist
    # Move daemons out of LaunchDaemons to your Documents folder (or change mv to rm to remove them permanently)
    sudo mv /System/Library/LaunchDaemons/com.apple.biometrickitd.plist ~/Documents/
    sudo mv /System/Library/LaunchDaemons/com.apple.biokitaggdd.plist ~/Documents/

    Enjoy 1Password again without waiting for biometric kit daemon to timeout!

    Disclaimer
    Disabling SIP is not recommended by Apple. You may chose to re-enable it after your remove the Biometric daemon (thing that makes Touch ID work).

  • We would echo Apple's concern about disabling SIP. Additionally, this could cause unforeseen problems, such as issues with OS upgrades. Caveat emptor. That said, I'm glad to hear you found a solution that is working for you. An alternative for someone who doesn't want to disable these protections might be to use 1Password X inside the virtual machine, instead of 1Password for Mac.

    Ben

  • Aktariel
    Aktariel
    Community Member
    edited August 2020

    Something to be aware of - you do not need to disable SIP, you can move the plists in recovery mode (which you have to boot to in order to disable SIP anyway...)

    In recovery mode, after ensuring the HD is mounted:

    $ cd /Volumes/Macintosh\ HD/System/Library/LaunchDaemons
    $ mv com.apple.biometrickitd.plist com.apple.biometrickitd.bak
    $ mv com.apple.biokitaggdd.plist com.apple.biokitaggdd.bak
    $ reboot

    I updated a VM from 10.14.5 to 10.14.6 after doing this with no issues, and the daemons remained disabled.

    YMMV of course, as different updates might change different daemons, or not; but the update should just put a known good copy of the plist in place if it needs to be updated, so the worst that happens is that you need to re-do these steps after an update.

    Thanks @ericpardee for the tip; my authentication steps in System Preferences are much much faster now!

  • ag_ana
    ag_ana
    1Password Alumni

    Thank you for taking the time to share your experience with the community @Aktariel :)

This discussion has been closed.