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