diff --git a/src/frameworks/CMakeLists.txt b/src/frameworks/CMakeLists.txt
index 44b601ae9..113c583f7 100644
--- a/src/frameworks/CMakeLists.txt
+++ b/src/frameworks/CMakeLists.txt
@@ -11,6 +11,7 @@ add_subdirectory(Carbon)
add_subdirectory(CloudKit)
add_subdirectory(ColorSync)
add_subdirectory(Contacts)
+add_subdirectory(CoreBluetooth)
add_subdirectory(CoreImage)
add_subdirectory(CoreLocation)
add_subdirectory(CoreMIDI)
diff --git a/src/frameworks/CoreBluetooth/CMakeLists.txt b/src/frameworks/CoreBluetooth/CMakeLists.txt
new file mode 100644
index 000000000..f64714c9d
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/CMakeLists.txt
@@ -0,0 +1,42 @@
+project(CoreBluetooth)
+
+set(DYLIB_COMPAT_VERSION "1.0.0")
+set(DYLIB_CURRENT_VERSION "1.0.0")
+
+add_framework(CoreBluetooth
+ FAT
+ CURRENT_VERSION
+ VERSION "A"
+
+ SOURCES
+ src/CoreBluetooth.m
+ src/BTDevicePicker.m
+ src/CBClassicPeer.m
+ src/CBCentralManager.m
+ src/CBRFCOMMChannel.m
+ src/CBCharacteristic.m
+ src/CBMutableCharacteristic.m
+ src/CBScalablePipeManager.m
+ src/CBAttribute.m
+ src/CBScalablePipe.m
+ src/CBDescriptor.m
+ src/CBMutableDescriptor.m
+ src/CBPeripheral.m
+ src/CBService.m
+ src/CBMutableService.m
+ src/CBUUID.m
+ src/CBL2CAPChannel.m
+ src/CBPeer.m
+ src/CBClassicManager.m
+ src/CBXpcConnection.m
+ src/CBPeripheralManager.m
+ src/CBCentral.m
+ src/CBManager.m
+ src/CBATTRequest.m
+ src/CBPairingAgent.m
+
+ DEPENDENCIES
+ system
+ objc
+ Foundation
+)
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/BTDevicePicker.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/BTDevicePicker.h
new file mode 100644
index 000000000..4a1a7cb8b
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/BTDevicePicker.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface BTDevicePicker : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBATTRequest.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBATTRequest.h
new file mode 100644
index 000000000..216edb70d
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBATTRequest.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBATTRequest : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBAttribute.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBAttribute.h
new file mode 100644
index 000000000..bc6a7f8c1
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBAttribute.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBAttribute : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBCentral.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBCentral.h
new file mode 100644
index 000000000..4fb361c73
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBCentral.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBCentral : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBCentralManager.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBCentralManager.h
new file mode 100644
index 000000000..d8d316eb6
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBCentralManager.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBCentralManager : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBCharacteristic.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBCharacteristic.h
new file mode 100644
index 000000000..84a07dd70
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBCharacteristic.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBCharacteristic : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBClassicManager.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBClassicManager.h
new file mode 100644
index 000000000..b90c7b4ce
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBClassicManager.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBClassicManager : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBClassicPeer.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBClassicPeer.h
new file mode 100644
index 000000000..d445705be
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBClassicPeer.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBClassicPeer : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBDescriptor.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBDescriptor.h
new file mode 100644
index 000000000..12901fc3e
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBDescriptor.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBDescriptor : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBL2CAPChannel.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBL2CAPChannel.h
new file mode 100644
index 000000000..a148f4102
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBL2CAPChannel.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBL2CAPChannel : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBManager.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBManager.h
new file mode 100644
index 000000000..fee79ea1f
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBManager.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBManager : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBMutableCharacteristic.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBMutableCharacteristic.h
new file mode 100644
index 000000000..62856105f
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBMutableCharacteristic.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBMutableCharacteristic : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBMutableDescriptor.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBMutableDescriptor.h
new file mode 100644
index 000000000..4585a7a73
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBMutableDescriptor.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBMutableDescriptor : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBMutableService.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBMutableService.h
new file mode 100644
index 000000000..3cca1665a
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBMutableService.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBMutableService : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPairingAgent.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPairingAgent.h
new file mode 100644
index 000000000..d0dd9987f
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPairingAgent.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBPairingAgent : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPairingAgentParentDelegate.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPairingAgentParentDelegate.h
new file mode 100644
index 000000000..c31571355
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPairingAgentParentDelegate.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@protocol CBPairingAgentParentDelegate
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPeer.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPeer.h
new file mode 100644
index 000000000..b816f85fc
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPeer.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBPeer : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPeripheral.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPeripheral.h
new file mode 100644
index 000000000..4725045f1
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPeripheral.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBPeripheral : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPeripheralManager.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPeripheralManager.h
new file mode 100644
index 000000000..58cceb6c9
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBPeripheralManager.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBPeripheralManager : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBRFCOMMChannel.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBRFCOMMChannel.h
new file mode 100644
index 000000000..cd453a9aa
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBRFCOMMChannel.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBRFCOMMChannel : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBScalablePipe.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBScalablePipe.h
new file mode 100644
index 000000000..6e87522b3
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBScalablePipe.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBScalablePipe : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBScalablePipeManager.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBScalablePipeManager.h
new file mode 100644
index 000000000..8c21b47c8
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBScalablePipeManager.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBScalablePipeManager : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBService.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBService.h
new file mode 100644
index 000000000..1afaff8d7
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBService.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBService : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBUUID.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBUUID.h
new file mode 100644
index 000000000..3eaedfdbe
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBUUID.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBUUID : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBXpcConnection.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBXpcConnection.h
new file mode 100644
index 000000000..979e5ef9d
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBXpcConnection.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@interface CBXpcConnection : NSObject
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBXpcConnectionDelegate.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBXpcConnectionDelegate.h
new file mode 100644
index 000000000..33b4118be
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CBXpcConnectionDelegate.h
@@ -0,0 +1,24 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#include
+
+@protocol CBXpcConnectionDelegate
+
+@end
diff --git a/src/frameworks/CoreBluetooth/include/CoreBluetooth/CoreBluetooth.h b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CoreBluetooth.h
new file mode 100644
index 000000000..23c482f9a
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/include/CoreBluetooth/CoreBluetooth.h
@@ -0,0 +1,54 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+
+#ifndef _CoreBluetooth_H_
+#define _CoreBluetooth_H_
+
+#import
+
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+#import
+
+
+#endif
diff --git a/src/frameworks/CoreBluetooth/src/BTDevicePicker.m b/src/frameworks/CoreBluetooth/src/BTDevicePicker.m
new file mode 100644
index 000000000..efdfbe5d8
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/BTDevicePicker.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation BTDevicePicker
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBATTRequest.m b/src/frameworks/CoreBluetooth/src/CBATTRequest.m
new file mode 100644
index 000000000..3688a4857
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBATTRequest.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBATTRequest
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBAttribute.m b/src/frameworks/CoreBluetooth/src/CBAttribute.m
new file mode 100644
index 000000000..fd0781861
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBAttribute.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBAttribute
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBCentral.m b/src/frameworks/CoreBluetooth/src/CBCentral.m
new file mode 100644
index 000000000..e16e6ff28
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBCentral.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBCentral
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBCentralManager.m b/src/frameworks/CoreBluetooth/src/CBCentralManager.m
new file mode 100644
index 000000000..dd8f66d6e
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBCentralManager.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBCentralManager
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBCharacteristic.m b/src/frameworks/CoreBluetooth/src/CBCharacteristic.m
new file mode 100644
index 000000000..b45488fab
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBCharacteristic.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBCharacteristic
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBClassicManager.m b/src/frameworks/CoreBluetooth/src/CBClassicManager.m
new file mode 100644
index 000000000..cd0f08d4a
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBClassicManager.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBClassicManager
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBClassicPeer.m b/src/frameworks/CoreBluetooth/src/CBClassicPeer.m
new file mode 100644
index 000000000..d9c4ee2b7
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBClassicPeer.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBClassicPeer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBDescriptor.m b/src/frameworks/CoreBluetooth/src/CBDescriptor.m
new file mode 100644
index 000000000..d627a9c90
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBDescriptor.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBDescriptor
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBL2CAPChannel.m b/src/frameworks/CoreBluetooth/src/CBL2CAPChannel.m
new file mode 100644
index 000000000..19ad57a90
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBL2CAPChannel.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBL2CAPChannel
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBManager.m b/src/frameworks/CoreBluetooth/src/CBManager.m
new file mode 100644
index 000000000..a91b84185
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBManager.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBManager
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBMutableCharacteristic.m b/src/frameworks/CoreBluetooth/src/CBMutableCharacteristic.m
new file mode 100644
index 000000000..ba449d2a9
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBMutableCharacteristic.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBMutableCharacteristic
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBMutableDescriptor.m b/src/frameworks/CoreBluetooth/src/CBMutableDescriptor.m
new file mode 100644
index 000000000..911108a0e
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBMutableDescriptor.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBMutableDescriptor
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBMutableService.m b/src/frameworks/CoreBluetooth/src/CBMutableService.m
new file mode 100644
index 000000000..cfa11bf29
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBMutableService.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBMutableService
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBPairingAgent.m b/src/frameworks/CoreBluetooth/src/CBPairingAgent.m
new file mode 100644
index 000000000..3cbcb3988
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBPairingAgent.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBPairingAgent
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBPeer.m b/src/frameworks/CoreBluetooth/src/CBPeer.m
new file mode 100644
index 000000000..ec9f5821b
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBPeer.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBPeer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBPeripheral.m b/src/frameworks/CoreBluetooth/src/CBPeripheral.m
new file mode 100644
index 000000000..8e2cc10d6
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBPeripheral.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBPeripheral
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBPeripheralManager.m b/src/frameworks/CoreBluetooth/src/CBPeripheralManager.m
new file mode 100644
index 000000000..7c8c39f13
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBPeripheralManager.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBPeripheralManager
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBRFCOMMChannel.m b/src/frameworks/CoreBluetooth/src/CBRFCOMMChannel.m
new file mode 100644
index 000000000..71bd8acbc
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBRFCOMMChannel.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBRFCOMMChannel
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBScalablePipe.m b/src/frameworks/CoreBluetooth/src/CBScalablePipe.m
new file mode 100644
index 000000000..5b008c53d
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBScalablePipe.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBScalablePipe
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBScalablePipeManager.m b/src/frameworks/CoreBluetooth/src/CBScalablePipeManager.m
new file mode 100644
index 000000000..645e2f0bb
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBScalablePipeManager.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBScalablePipeManager
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBService.m b/src/frameworks/CoreBluetooth/src/CBService.m
new file mode 100644
index 000000000..f0aeeb362
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBService.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBService
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBUUID.m b/src/frameworks/CoreBluetooth/src/CBUUID.m
new file mode 100644
index 000000000..dfc657901
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBUUID.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBUUID
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CBXpcConnection.m b/src/frameworks/CoreBluetooth/src/CBXpcConnection.m
new file mode 100644
index 000000000..e4b63bcd2
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CBXpcConnection.m
@@ -0,0 +1,34 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+#import
+
+@implementation CBXpcConnection
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
diff --git a/src/frameworks/CoreBluetooth/src/CoreBluetooth.m b/src/frameworks/CoreBluetooth/src/CoreBluetooth.m
new file mode 100644
index 000000000..020b8e4c2
--- /dev/null
+++ b/src/frameworks/CoreBluetooth/src/CoreBluetooth.m
@@ -0,0 +1,30 @@
+/*
+ This file is part of Darling.
+
+ Copyright (C) 2019 Lubos Dolezel
+
+ Darling is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Darling is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Darling. If not, see .
+*/
+
+
+#include
+#include
+#include
+
+static int verbose = 0;
+
+__attribute__((constructor))
+static void initme(void) {
+ verbose = getenv("STUB_VERBOSE") != NULL;
+}
diff --git a/src/frameworks/include/CoreBluetooth b/src/frameworks/include/CoreBluetooth
new file mode 120000
index 000000000..77f364411
--- /dev/null
+++ b/src/frameworks/include/CoreBluetooth
@@ -0,0 +1 @@
+../CoreBluetooth/include/CoreBluetooth
\ No newline at end of file