jwise / HoRNDIS

Android USB tethering driver for Mac OS X
Other
2.96k stars 327 forks source link

M1 support? #135

Open shlowe opened 3 years ago

LayerCorp commented 1 year ago

Hello everyone,

I'm uploading my M1 binary so that other people don't have to install Xcode on their 256GB mac ;)

HoRNDIS-M1.zip

Installation steps

  1. Disable SIP for kernel extensions 1.1. Restart your Mac in recovery mode by powering it off then restarting with a long press on the power button 1.2. Execute csrutil disable then csrutil enable --without kext 1.3. Restart mac to normal mode
  2. Run the .pkg that you'll find in the .zip I uploaded.
  3. Try tethering data with a nearby Android phone -- currently using my data plan ;)

Big thanks! is working flawless in my Macbook Pro M1 Pro with Monterey.

I have a few questions, maybe someone can help me.

Since I did this, I cant open iPad Apps in my mac, I think is because kext are disabled in my system? If so, is there a way to re-enable the kexts on my computer and how? Also, if I re-enable the kexts I will lost the Horndis connection or will stay working? I want to use horndis and also my ipad apps if possible.

Thanks!

samip5 commented 1 year ago

Hmm, can I actually load a custom system extension with kext enabled aka can I sign my own modules so I can actually keep it enabled?

dmytro-fedko commented 1 year ago

Bump. MacOS 12.5.1 (M1)

hyeonchang commented 1 year ago

Hello everyone,

I'm uploading my M1 binary so that other people don't have to install Xcode on their 256GB mac ;)

HoRNDIS-M1.zip

Installation steps

  1. Disable SIP for kernel extensions 1.1. Restart your Mac in recovery mode by powering it off then restarting with a long press on the power button 1.2. Execute csrutil disable then csrutil enable --without kext 1.3. Restart mac to normal mode
  2. Run the .pkg that you'll find in the .zip I uploaded.
  3. Try tethering data with a nearby Android phone -- currently using my data plan ;)

This is very helpful for me. Thanks.

I have tested this on M1 (MacOS Ventura).

https://support.apple.com/guide/security/startup-disk-security-policy-control-sec7d92dc49f/web

This article is helpful for me to enable the HoRNDIS.

[Summary]

Step.1. run "crsutil disable" then reboot. (in recovery mode) Step.2. install HoRNDIS. Step.3. reboot and entering recovery mode. Step.4. check "allow user menagement... " in permissive security below.

dimmyv commented 1 year ago

Hello everyone, I'm uploading my M1 binary so that other people don't have to install Xcode on their 256GB mac ;) HoRNDIS-M1.zip Installation steps

  1. Disable SIP for kernel extensions 1.1. Restart your Mac in recovery mode by powering it off then restarting with a long press on the power button 1.2. Execute csrutil disable then csrutil enable --without kext 1.3. Restart mac to normal mode
  2. Run the .pkg that you'll find in the .zip I uploaded.
  3. Try tethering data with a nearby Android phone -- currently using my data plan ;)

This is very helpful for me. Thanks.

I have tested this on M1 (MacOS Ventura).

https://support.apple.com/guide/security/startup-disk-security-policy-control-sec7d92dc49f/web

This article is helpful for me to enable the HoRNDIS.

[Summary]

Step.1. run "crsutil disable" then reboot. (in recovery mode) Step.2. install HoRNDIS. Step.3. reboot and entering recovery mode. Step.4. check "allow user menagement... " in permissive security below.

I can confirm this solution still works when updating your DJI Goggles V2 to latest firmware ending .0607 running Mac OS 13 on M1 MacBook Pro

https://youtu.be/1Y-Hgcz1sT4

Thanks again Brian for this download, much appreciated.

samip5 commented 1 year ago

Any ideas as to how to get this WITHOUT running crsutil disable?

dimmyv commented 1 year ago

Any ideas as to how to get this WITHOUT running crsutil disable?

Run what you need to update and once you have updated go back into recovery mode and turn the SIP settings back to default.

samip5 commented 1 year ago

Any ideas as to how to get this WITHOUT running crsutil disable?

Run what you need to update and once you have updated go back into recovery mode and turn the SIP settings back to default.

Huh? I don't want to disable it to begin with.

samip5 commented 1 year ago

Can anyone (verified developer) just sign the the build? I know it works but disabling kext protection totally on macos isn't secure.

HoRNDIS-kext.pkg.zip

Here's my build.

Can you explain why it needs a verified developer to sign it?

xros commented 1 year ago

If it's signed by a verified developer, then you don't have to Disable SIP for kernel extensions in macOS when you tried to install it.

Gorgonthedestroyer commented 1 year ago

ATTENTION M1/M2 USERS ON OS VENTURA (Sorry for yelling, I just spent a few hours fixing this issue)

There is a new set of instructions to follow if you want to make this work given the layout of some things has changed.

  1. Shut down, long hold the power button to open Disk Recovery
  2. In the top bar options click Utility and then click Terminal (once in the terminal put in: csrutil disable (You may be asked for a password, enter it, then you’ll be asked Y/N put in Y then click enter.)
  3. Go out of the terminal in your top bar options, (Select Utilities, where you found Terminal.)
  4. Click Security (the top option)
  5. Open Security, under permissible access (the bottom of the 3 screen options, you didn’t have this option before and now you do) you’ll want to select the top box of the 2 options given (DO NOT SELECT THE BOTTOM ONE AS WELL). This is a necessary step if you skip this then it won’t work in my experience.
  6. Click the Apple logo and Restart.
  7. Go try it again. After opening the Kext it will need to be allowed 2 times in security (have this open when installing .kext) then it will restart.
  8. Open Dji assistant and it should work. I just spent 2 hours doing this process over again after following the instructions above.

Let me know if this works for anyone else. There is some better terminology I'm sure I could have used but someone can refine this list if they like haha.

achandec commented 1 year ago

Hello everyone,

I'm uploading my M1 binary so that other people don't have to install Xcode on their 256GB mac ;)

HoRNDIS-M1.zip

Installation steps

  1. Disable SIP for kernel extensions 1.1. Restart your Mac in recovery mode by powering it off then restarting with a long press on the power button 1.2. Execute csrutil disable then csrutil enable --without kext 1.3. Restart mac to normal mode
  2. Run the .pkg that you'll find in the .zip I uploaded.
  3. Try tethering data with a nearby Android phone -- currently using my data plan ;)

Just tried it today, and this just solved my issue. Thanks for uploading this. After 3 hours, I am finally able to connect my DJI Mini 3 Pro to DJI Assistant 2 (Consumer Drones) and calibrate it.

achandec commented 1 year ago

date && hostname && sw_vers && kmutil dumpstate | grep --invert-match com.apple

This one also worked for me.

idDreameR commented 1 year ago

Hello everyone,

I'm uploading my M1 binary so that other people don't have to install Xcode on their 256GB mac ;)

HoRNDIS-M1.zip

Installation steps

  1. Disable SIP for kernel extensions 1.1. Restart your Mac in recovery mode by powering it off then restarting with a long press on the power button 1.2. Execute csrutil disable then csrutil enable --without kext 1.3. Restart mac to normal mode
  2. Run the .pkg that you'll find in the .zip I uploaded.
  3. Try tethering data with a nearby Android phone -- currently using my data plan ;)

Работает на чипе M2! СПАСИБО!!!

xjzyy commented 1 year ago

我执行:sudo kextload -t /Library/Extensions/horndis.kext 的时候报下面的错: 有人遇到过吗?

Notice: -print-diagnostics (-t) ignored; use kextutil(8) to test kexts. Executing: /usr/bin/kmutil load -p /Library/Extensions/horndis.kext Error Domain=KMErrorDomain Code=29 "Authenticating extension failed: Kext com.joshuawise.kexts.HoRNDIS v9.2 in executable kext bundle com.joshuawise.kexts.HoRNDIS at /private/var/db/KernelExtensionManagement/Staging/com.joshuawise.kexts.HoRNDIS.3F64G1/HoRNDIS.kext:

Authenticating extension failed: Bad code signature" UserInfo={NSLocalizedDescription=Authenticating extension failed: Kext com.joshuawise.kexts.HoRNDIS v9.2 in executable kext bundle com.joshuawise.kexts.HoRNDIS at /private/var/db/KernelExtensionManagement/Staging/com.joshuawise.kexts.HoRNDIS.3F64G1/HoRNDIS.kext:

Authenticating extension failed: Bad code signature}

sumsethan commented 1 year ago

我执行:sudo kextload -t /Library/Extensions/horndis.kext 的时候报下面的错: 有人遇到过吗?

Notice: -print-diagnostics (-t) ignored; use kextutil(8) to test kexts. Executing: /usr/bin/kmutil load -p /Library/Extensions/horndis.kext Error Domain=KMErrorDomain Code=29 "Authenticating extension failed: Kext com.joshuawise.kexts.HoRNDIS v9.2 in executable kext bundle com.joshuawise.kexts.HoRNDIS at /private/var/db/KernelExtensionManagement/Staging/com.joshuawise.kexts.HoRNDIS.3F64G1/HoRNDIS.kext:

Authenticating extension failed: Bad code signature" UserInfo={NSLocalizedDescription=Authenticating extension failed: Kext com.joshuawise.kexts.HoRNDIS v9.2 in executable kext bundle com.joshuawise.kexts.HoRNDIS at /private/var/db/KernelExtensionManagement/Staging/com.joshuawise.kexts.HoRNDIS.3F64G1/HoRNDIS.kext:

Authenticating extension failed: Bad code signature}

至少要把SIP的Kext关了,步骤上面说的很清楚了