kext | FUSE kernel extension | Storage library

 by   osxfuse C Version: Current License: Non-SPDX

kandi X-RAY | kext Summary

kandi X-RAY | kext Summary

kext is a C library typically used in Storage applications. kext has no bugs, it has no vulnerabilities and it has low support. However kext has a Non-SPDX License. You can download it from GitHub.

FUSE kernel extension
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              kext has a low active ecosystem.
              It has 68 star(s) with 46 fork(s). There are 14 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              kext has no issues reported. There are 2 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of kext is current.

            kandi-Quality Quality

              kext has 0 bugs and 0 code smells.

            kandi-Security Security

              kext has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              kext code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              kext has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              kext releases are not available. You will need to build from source code and install.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of kext
            Get all kandi verified functions for this library.

            kext Key Features

            No Key Features are available at this moment for kext.

            kext Examples and Code Snippets

            No Code Snippets are available at this moment for kext.

            Community Discussions

            QUESTION

            C function for combining an array of strings into a single string in a loop and return the string after freeing the allocated memory
            Asked 2022-Mar-18 at 07:54

            I'm working on a procfs kernel extension for macOS and trying to implement a feature that emulates Linux’s /proc/cpuinfo similar to what FreeBSD does with its linprocfs. Since I'm trying to learn, and since not every bit of FreeBSD code can simply be copied over to XNU and be expected to work right out of the jar, I'm writing this feature from scratch, with FreeBSD and NetBSD's linux-based procfs features as a reference. Anyways...

            Under Linux, $cat /proc/cpuinfo showes me something like this:

            ...

            ANSWER

            Answered 2022-Mar-18 at 07:54

            There is no need to allocate memory for this task: pass a pointer to a local array along with its size and use strlcat properly:

            Source https://stackoverflow.com/questions/71518714

            QUESTION

            How to memory-map a PCI BAR using PCIDriverKit?
            Asked 2022-Jan-18 at 13:08

            How to memory-map a PCI Base Address Register (BAR) from a PCIDriverKit driver (DEXT) to a userspace application?

            Memory-mapping from a driver extension to an application can be accomplished by implementing the IOUserClient::CopyClientMemoryForType in the user client subclass (on the driver side) and then calling IOConnectMapMemory64 (from the user-space application side). This has been very nicely and thoroughly explained in this related answer.

            The only missing bit is getting an IOMemoryDescriptor corresponding to the desired PCI BAR in order to return it from the CopyClientMemoryForType implementation.

            Sample code

            Asked another way, given the following simplified code, what would be the implementation of imaginaryFunctionWhichReturnsTheBARBuffer?

            ...

            ANSWER

            Answered 2022-Jan-16 at 17:01

            Turns out IOPCIDevice::_CopyDeviceMemoryWithIndex was indeed the function needed to implement this (but the fact that it's private is still an inconvenient).

            Sample code

            Bellow is some sample code showing how this could be implemented (the code uses MyDriver for the driver class name and MyDriverUserClient for the user client).

            Relevant sections from MyDriver.cpp implementation:

            Source https://stackoverflow.com/questions/69946860

            QUESTION

            Insert Python dictionary into another dictionary, to generate .plist file?
            Asked 2021-Sep-30 at 03:43

            I'm trying to generate a .plist file with plistlib library, available in macOS Python 2.7.

            The following code works:

            ...

            ANSWER

            Answered 2021-Sep-30 at 03:43

            The desired output does not look correct. Your "dictionary of dictionary" does not have a key with it. I suspect it should be something like

            Source https://stackoverflow.com/questions/69385642

            QUESTION

            Android Studio Arctic Fox (2020.3.1) RC 1 Mac (Apple Silicon) Preview version crashing on start for first time on MacBook Pro
            Asked 2021-Aug-05 at 05:51

            This is my MacBook Pro details overview:

            • Model Name: MacBook Pro
            • Chip: Apple M1
            • Total Number of Cores: 8 (4 performance and 4 efficiency)
            • Memory: 8 GB
            • System Version: macOS 11.2.2 (20D80) -- macOS Big Sur

            Andriod Studio Preview for Arm64 M1 Chip details are as shown in below image:

            Crash Error report page after computer restarted:

            ...

            ANSWER

            Answered 2021-Aug-05 at 05:51

            I have updated to latest Android Studio preview release on my MacBook Pro. It's not crashing now. You can find all android studio release and its preview release here: https://developer.android.com/studio/archive

            Source https://stackoverflow.com/questions/68554445

            QUESTION

            PCIDriverKit Entitlement check failed (migrate KEXT to DEXT)
            Asked 2021-Jul-11 at 19:40
            kernel: DK: MyDriver-0x100000f45: provider entitlements check failed
            kernel: DK: IOUserServer(com.MyDriver-0x100000f45)::exit(Entitlements check failed)
            kernel: (com.MyDriver.dext) Kernel requested exit (Entitlements check failed)
            
            ...

            ANSWER

            Answered 2021-Jul-11 at 19:39

            I don't have a 100% answer as to why it's going wrong in your case. To load a dext on an unmodified system, you definitely need the following when codesigning your dext:

            • Sign with a 'Developer ID Application' certificate identity and be notarised, or signed with an 'Apple Developer' certificate
            • Embedded code signing entitlements including the generic DriverKit entitlement, any family-specific entitlements, and entitlements regarding user client access if necessary.
            • A provisioning profile from Apple which matches:
              1. The code signing entitlements you are embedding in the dext.
              2. The type and specific instance of the code signing identity you are using to sign the dext.
              3. The Application & Bundle ID of the dext.
              4. If using an Apple Developer signing identity, the hardware IDs of the Macs on which you will be testing the dext.

            For local testing, you can try the following things to temporarily work around code signing issues:

            • Disabling System Integrity Protection (SIP). For purposes of DriverKit extensions, this disables some codesigning checks.
            • Disabling DriverKit-specific entitlements checks. This turns off checking for a lot of family-specific entitlements. To disable the checks, set flag 0x8000 in the dk kernel boot argument, which is a bitfield. Note that unless you set flag 0x1, DriverKit will be entirely disabled. So use dk=0x8001 to disable DriverKit entitlement checks.
            • Disabling AMFI checks. AMFI will normally kill your process if you try to claim entitlements which need to be enabled in a provisioning profile. You can disable AMFI with the amfi_get_out_of_my_way=1 kernel boot argument.

            Obviously, you only have limited control over the provisioning profile, as the entitlements in it must be approved by Apple. (For this reason, if you're planning to ship your dext publicly, I generally recommend you try to work out what entitlements you might need before starting full development on the dext, and request them from Apple. The process can take months.) So while it would be interesting to know the exact minimum combination of workarounds required when you don't have these profiles, I haven't exhaustively tested this out yet. I realise this doesn't help much with getting your dext as close to shipping as possible while still waiting for Apple to grant missing entitlements. Hopefully one of these days I can systematically explore and document all of this.

            Source https://stackoverflow.com/questions/68242561

            QUESTION

            Alternative for Virtual file system (VFS) kernel extension on macOS M1
            Asked 2021-Jun-02 at 11:36

            we have developed a kernel extension (KEXT) for a virtual file system (VFS) on macOS to integrate our software with external programs like Adobe InDesign or Microsoft Word. Our software and the KEXT are used by many of our customers.

            As it looks like KEXTs are deprecated and may be removed completely in future versions of macOS, particularly on Apple Silicon based computers. See e.g. Apple's announcement in its security guide:

            "This is why developers are being strongly encouraged to adopt system extensions before kext support is removed from macOS for future Mac computers with Apple silicon"

            Therefore we are currently investigating in possible alternatives.

            Apple suggests to migrate to System Extensions instead of KEXTs. However, the only VFS related API we found is to implement a File Provider that is based on an NSFileProviderReplicatedExtension.

            Unfortunately that NSFileProviderReplicatedExtension has several flaws:

            1. Files can either be in the cloud or downloaded. It is not possible to download/read only a portion of a file. This is a big performance problem for us, since we work with large images (> 1GB). The programs we integrate with typically only read a part of the image, e.g. the embedded preview. The API does not offer a way to access selected blocks of a file (random access file).
            2. The File Provider learns about the file system content via enumerators. So everything that is inside a folder must be enumerated (listed) first. Otherwise it cannot be accessed. However, we cannot enumerate our VFS. Most of the content of our VFS is fully dynamic. It only exists when it is accessed by a client the first time. Such dynamic content also includes dynamic parameters like the client's locale or the size of a box where the image will be placed. Since we do not know those parameters in advance, we cannot enumerate the VFS's content in advance.

            This means, an NSFileProviderReplicatedExtension in its current state isn't a replacement for a "real" VFS and therefore cannot be used by us as a replacement for our current VFS KEXT.

            My questions:

            1. Will Apple allow kernel extensions also in future versions of (Apple Silicon/M1 based) operating systems? Or is there at least a clear deadline?
            2. If not, what is Apple's officially suggested replacement for KEXT based VFS solutions?
            3. Will the API of an NSFileProviderReplicatedExtension be improved to behave like a "real" file system so that above mentioned flaws will no longer be an issue?

            Many thanks for any answers or comments!

            Best regards,

            Michael

            ...

            ANSWER

            Answered 2021-Jun-02 at 11:14

            Will Apple allow kernel extensions also in future versions of (Apple Silicon/M1 based) operating systems? Or is there at least a clear deadline?

            Apple doesn't really give timelines, and they also occasionally break promises of support.

            However, this sort of hard API deprecation and removal usually is done as part of a major release, so you will typically get deprecation notice for it at WWDC one year, users might start seeing deprecation notices when the .0 of the OS release ships at the earliest, and sometimes the .3 or .4 revision. Then you'll typically be told at the next WWDC that the API is blocked in the upcoming release, so by that point you should have implemented a replacement.

            If not, what is Apple's officially suggested replacement for KEXT based VFS solutions?

            As far as I'm aware, NSFileProviderReplicatedExtension is currently the only one.

            Will the API of an NSFileProviderReplicatedExtension be improved to behave like a "real" file system so that above mentioned flaws will no longer be an issue?

            Other than via beta SDKs, Apple generally doesn't pre-announce future APIs.

            My advice:

            • File issues for each of the file provider shortcomings you are hitting using Feedback Assistant. (Radar)
            • File an "enhancement request" feedback issue with Apple for a "real" file system API replacement for the VFS KPI.
            • If your vfs kext is critical to your business/product, I suggest additionally asking Apple's DTS via a TSI what they recommend for your situation. Reference the feedback IDs of the issues filed, otherwise they will recommend that you file issues.

            Source https://stackoverflow.com/questions/67803451

            QUESTION

            Kernel debug two physical MacBook pro devices
            Asked 2021-May-09 at 09:52

            I'm trying to kernel debug a physical Macbook pro device. When my setup contains a VM, between a host MacOS and guest MacOS, its working with no problem using lldb -o "kdp-remote "

            my boot-args on my remote (to debug) Macbook are:

            ...

            ANSWER

            Answered 2021-May-09 at 09:52

            Your hardware setup sounds fine. Note that you don't necessarily need a direct ethernet cable connection, you can use your normal office-/home-wide wired network, it's fine to have a switch (or even more than one) between debugger and target. The debugger machine can even be using wifi as long as it can reach the target's wired network connection that way, though it's not recommended. The Thunderbolt Ethernet interface need not be Apple branded, but its driver does need to include kernel debugging support. In practice, for example, I've successfully used the Ethernet port in a OWC brand Thunderbolt Dock as well. Using one of Apple's own adapters of course guarantees it will work.

            If the boot-args on your target machine are the same as what you used in the VM, that's probably where your problem is coming from. You should specify the device to be used for kernel debugging, using the kdp_match_name= option. Use the ifconfig command in the Terminal to work out which of the listed devices is your Thunderbolt ethernet adapter (enX), possibly based on the IP address. en0 is typically wifi in Mac laptops, so you're usually looking for X > 0.

            So you'll end up with something like kdp_match_name=en1 added to your boot-args. Make sure to reboot the machine cleanly before attempting a debugging session after updating the boot-args setting.

            A few more comments:

            kext-dev-mode=1

            This option no longer has any effect. It only existed in OS X 10.10. You can remove it.

            I didn't find the exact KDK version, but I don't think it should be the problem here

            Having a KDK version that doesn't match the target's exact kernel binary UUID will not prevent a connection, but it will prevent you from doing any meaningful debugging as the memory layout of threads etc. will not be available.

            My debugger is Big Sur, and my debuggee is Catalina

            If you ever run Big Sur on your target, make sure to add wdt=-1 to your boot-args or the hung/crashed machine will reboot before you get a chance to connect with the debugger.

            Source https://stackoverflow.com/questions/67455980

            QUESTION

            How to access unexported symbol from Kext?
            Asked 2021-Apr-27 at 02:45

            I tried to load kext module on M1 machine running 11.4 Beta (20F5046g) Big Sur and encounter some error messages on binding at kext module loading.

            Accessing kernel symbol exported from Apple kext modules

            First, to access the kernel functions exported from apple's kext module, com.apple.kpi.unsupported, I used the below extern declaration.

            ...

            ANSWER

            Answered 2021-Apr-26 at 11:52

            I have just checked, and the crucial detail appears to be that you are trying to access this function on arm64/aarch64. As it turns out, it's exported in the "unsupported" KPI for x86_64, but not on arm64:

            There's no straightforward way of accessing unexported symbols. If you know the offset of a symbol in the exact version of the running kernel, you should be able to compute the address by offsetting from a known function address; at least, this worked on x86-64. arm64 may require extra effort due to PAC (pointer authentication).

            As this circumvents Apple's policies, I don't recommend using this type of technique in a shipping product.

            Source https://stackoverflow.com/questions/67264758

            QUESTION

            macFuse requires Recovery mode on Mac OS 11+
            Asked 2021-Feb-25 at 14:30

            Since Mac OS 11 Big Sur release Apple allows installation of kext drivers in the Recovery mode only. It also prohibits installation of kext drivers from Apple store. Which I guess is the end of macFuse, at least for virtual/cloud file systems. What would be the migration path and how to build virtual file systems for Mac OS 11+, in particular for document management and cloud storage, similar to OneDrive, DropBox, etc.

            I can also guess that a similar issue may appear on Windows too. I can imagine that Microsoft will follow Apple's path and will prohibit file system drivers and filters on Windows for these purposes in future releases. Any hint for future migration if such a situation happens would be appreciated.

            ...

            ANSWER

            Answered 2021-Feb-25 at 14:30

            Since macOS 11, Apple has updated documentation of the File Provider API which can be used to sync files between client and server and may serve as a replacement for file system drivers. Until this day Apple has not officially announced that functionality on macOS. The API is similar to the File Provider API that Apple has provided for iOS 11 some time ago but still it has some differences in mostly how main FileProvider class extension works and which abilities it has. There is no examples at this moment that I’ve seen but it looks like this functionality works at least on basic level. Based on what people say on the forums.

            On Windows, Microsoft has introduced the Cloud Storage Provider (Cloud Sync Engine) API for Windows 10 in the year 2018 (Windows Creators update). It is used in One Drive for Windows. Here are some examples on GitHub in C++ and in C#.

            Source https://stackoverflow.com/questions/66353216

            QUESTION

            Can't install kext, "Read-only file system"
            Asked 2020-Nov-22 at 19:01

            So, I've been racking my brain against the wall for the last 6 hours trying to get this to work and I'm still at a loss..

            I'm trying to install a kext on Big Sur from this repo, https://github.com/SimulPiscator/vpcm, and when I try and move the compiled kext to /System/Library/Extensions I keep getting 'Read-only file system' error..

            • I have disabled SIP
            • Tried enabling root user
            • Added myself to the 'wheel' group
            • Reduced security level in security utility
            • Tried changing permissions on the /System dir, keeps telling me I don't have permission.

            I feel like I'm missing something obvious... Every article I've seen online tells me to put the kext in that directory and run kextload.. But how the heck do I get write permissions to that directory??

            ...

            ANSWER

            Answered 2020-Nov-22 at 05:03

            So, I'm not sure if this is what is supposed to happen or not, but placing the kext in /Library/Extensions instead of /System/Library/Extensions worked.

            I'm not sure if this is the correct thing to do but since it works, I'm not complaining.

            Source https://stackoverflow.com/questions/64948331

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install kext

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/osxfuse/kext.git

          • CLI

            gh repo clone osxfuse/kext

          • sshUrl

            git@github.com:osxfuse/kext.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Storage Libraries

            localForage

            by localForage

            seaweedfs

            by chrislusf

            Cloudreve

            by cloudreve

            store.js

            by marcuswestin

            go-ipfs

            by ipfs

            Try Top Libraries by osxfuse

            sshfs

            by osxfuseC

            filesystems

            by osxfuseC

            fuse

            by osxfuseC

            osxfuse.github.com

            by osxfuseHTML

            support

            by osxfuseShell