Initial commit. Basic driverkit dext works, no USB functionality.
This commit is contained in:
		
							
								
								
									
										105
									
								
								HackRFDriver/HackRFDriver.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								HackRFDriver/HackRFDriver.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,105 @@
 | 
			
		||||
//
 | 
			
		||||
//  HackRFDriver.cpp
 | 
			
		||||
//  HackRFDriver
 | 
			
		||||
//
 | 
			
		||||
//  Created by maddiefuzz on 7/28/22.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#include <os/log.h>
 | 
			
		||||
 | 
			
		||||
#include <DriverKit/IOUserServer.h>
 | 
			
		||||
#include <DriverKit/IOLib.h>
 | 
			
		||||
#include <USBDriverKit/IOUSBHostInterface.h>
 | 
			
		||||
#include <USBDriverKit/IOUSBHostPipe.h>
 | 
			
		||||
#include <USBDriverKit/IOUSBHostDevice.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include "HackRFDriver.h"
 | 
			
		||||
 | 
			
		||||
struct HackRFDriver_IVars
 | 
			
		||||
{
 | 
			
		||||
    IOUSBHostInterface *interface;
 | 
			
		||||
    IOUSBHostDevice *device;
 | 
			
		||||
    IOUSBHostPipe *inPipe;
 | 
			
		||||
    OSAction *ioCompleteCallback;
 | 
			
		||||
    IOBufferMemoryDescriptor *inData;
 | 
			
		||||
    uint16_t maxPacketSize;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const uint32_t kMyEndpointAddress = 1;
 | 
			
		||||
 | 
			
		||||
kern_return_t
 | 
			
		||||
IMPL(HackRFDriver, Start)
 | 
			
		||||
{
 | 
			
		||||
    kern_return_t ret;
 | 
			
		||||
    
 | 
			
		||||
    ret = Start(provider, SUPERDISPATCH);
 | 
			
		||||
    
 | 
			
		||||
    os_log(OS_LOG_DEFAULT, "Beginning Start function...");
 | 
			
		||||
    
 | 
			
		||||
    os_log(OS_LOG_DEFAULT, "All the start stuff went good, captain.");
 | 
			
		||||
    
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
kern_return_t
 | 
			
		||||
IMPL(HackRFDriver, Stop)
 | 
			
		||||
{
 | 
			
		||||
    kern_return_t ret;
 | 
			
		||||
    ret = Stop(provider, SUPERDISPATCH);
 | 
			
		||||
    os_log(OS_LOG_DEFAULT, "Goodbye World");
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void HackRFDriver::free()
 | 
			
		||||
{
 | 
			
		||||
    return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool HackRFDriver::init()
 | 
			
		||||
{
 | 
			
		||||
    if(!super::init()) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    ivars = IONewZero(HackRFDriver_IVars, 1);
 | 
			
		||||
    if(!ivars) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    os_log(OS_LOG_DEFAULT, "HackRFDriver Init Function Called.");
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//kern_return_t HackRFDriver::CopyDescriptor(uint8_t type, uint16_t *length, uint8_t index, uint16_t languageID, uint8_t requestType, uint8_t requestRecipient, uint8_t *descriptor)
 | 
			
		||||
//{
 | 
			
		||||
//    return 0;
 | 
			
		||||
//}
 | 
			
		||||
//
 | 
			
		||||
//const IOUSBDeviceDescriptor * HackRFDriver::CopyDeviceDescriptor(void)
 | 
			
		||||
//{
 | 
			
		||||
//    return NULL;
 | 
			
		||||
//}
 | 
			
		||||
//
 | 
			
		||||
//const IOUSBStringDescriptor * HackRFDriver::CopyStringDescriptor(uint8_t index)
 | 
			
		||||
//{
 | 
			
		||||
//    return NULL;
 | 
			
		||||
//}
 | 
			
		||||
//
 | 
			
		||||
//const IOUSBStringDescriptor * HackRFDriver::CopyStringDescriptor(uint8_t index, uint16_t languageID)
 | 
			
		||||
//{
 | 
			
		||||
//    return NULL;
 | 
			
		||||
//}
 | 
			
		||||
//
 | 
			
		||||
//const IOUSBBOSDescriptor * CopyCapabilityDescriptors(void)
 | 
			
		||||
//{
 | 
			
		||||
//    return NULL;
 | 
			
		||||
//}
 | 
			
		||||
 | 
			
		||||
//kern_return_t
 | 
			
		||||
//IMPL(HackRFDriver, CopyDescriptor)
 | 
			
		||||
//{
 | 
			
		||||
//    kern_return_t ret;
 | 
			
		||||
//    ret = CopyDescriptor(0, 0, 0, 0, 0, 0, 0);
 | 
			
		||||
//    return ret;
 | 
			
		||||
//}
 | 
			
		||||
							
								
								
									
										8
									
								
								HackRFDriver/HackRFDriver.entitlements
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								HackRFDriver/HackRFDriver.entitlements
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>com.apple.developer.driverkit</key>
 | 
			
		||||
	<true/>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
							
								
								
									
										31
									
								
								HackRFDriver/HackRFDriver.iig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								HackRFDriver/HackRFDriver.iig
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
//
 | 
			
		||||
//  HackRFDriver.iig
 | 
			
		||||
//  HackRFDriver
 | 
			
		||||
//
 | 
			
		||||
//  Created by maddiefuzz on 7/28/22.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef HackRFDriver_h
 | 
			
		||||
#define HackRFDriver_h
 | 
			
		||||
 | 
			
		||||
#include <Availability.h>
 | 
			
		||||
#include <DriverKit/IOService.iig>
 | 
			
		||||
#include <USBDriverKit/IOUSBHostDevice.iig>
 | 
			
		||||
 | 
			
		||||
struct HackRFDriver_IVars;
 | 
			
		||||
 | 
			
		||||
class HackRFDriver: public IOService
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    virtual bool init () override;
 | 
			
		||||
    virtual kern_return_t Start(IOService * provider) override;
 | 
			
		||||
    virtual kern_return_t Stop(IOService * provider) override;
 | 
			
		||||
    virtual void free () override;
 | 
			
		||||
private:
 | 
			
		||||
    //    kern_return_t CopyDescriptor(uint8_t type, uint16_t *length, uint8_t index, uint16_t languageID, uint8_t requestType, uint8_t requestRecipient, uint8_t *descriptor) override;
 | 
			
		||||
//    const IOUSBDeviceDescriptor * CopyDeviceDescriptor(void) override;
 | 
			
		||||
//    const IOUSBStringDescriptor * CopyStringDescriptor(uint8_t index) override;
 | 
			
		||||
//    const IOUSBStringDescriptor * CopyStringDescriptor(uint8_t index, uint16_t languageID) override;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif /* HackRFDriver_h */
 | 
			
		||||
							
								
								
									
										28
									
								
								HackRFDriver/Info.plist
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								HackRFDriver/Info.plist
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>IOKitPersonalities</key>
 | 
			
		||||
	<dict>
 | 
			
		||||
		<key>HackRFDriver</key>
 | 
			
		||||
		<dict>
 | 
			
		||||
			<key>IOResourceMatch</key>
 | 
			
		||||
			<string>IOKit</string>
 | 
			
		||||
			<key>CFBundleIdentifier</key>
 | 
			
		||||
			<string>info.maddie.HackRFProto.HackRFDriver</string>
 | 
			
		||||
			<key>CFBundleIdentifierKernel</key>
 | 
			
		||||
			<string>com.apple.kpi.iokit</string>
 | 
			
		||||
			<key>IOClass</key>
 | 
			
		||||
			<string>IOUserService</string>
 | 
			
		||||
			<key>IOProviderClass</key>
 | 
			
		||||
			<string>IOUserResources</string>
 | 
			
		||||
			<key>IOUserClass</key>
 | 
			
		||||
			<string>HackRFDriver</string>
 | 
			
		||||
			<key>IOUserServerName</key>
 | 
			
		||||
			<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
 | 
			
		||||
		</dict>
 | 
			
		||||
	</dict>
 | 
			
		||||
	<key>OSBundleUsageDescription</key>
 | 
			
		||||
	<string></string>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
		Reference in New Issue
	
	Block a user