我们正与同事一起开展一个项目,涉及使用大量私有和非官方代码.这不适用于AppStore.
我们的第一个也是唯一的要求是不使用越狱.
首先,UDID或者OpenUDID或者任何其他解决方案在这里不起作用,并且它们不被期望.
我们已经做了很多背景研究和测试,从尝试以编程方式获取IMEI,ICCID,IMSI和序列号开始.如果没有越狱,上述方法都不适用于iOS 7及更高版本.
我们还花了几个月的时间IOKit使用着名的IOKitBrowser来使用框架并抛弃iOS内部的全部内容.不幸的是,我们发现随着iOS 8.3它停止工作.
我们在这里谈的不是关于获得UDID或任何其他"主流"的东西,但一般来说我们需要一种方法来获得
任何永久性硬件标识符,其唯一性足以识别在设备擦除和不同iOS版本之间仍然存在的设备
这个问题与其他人没有重复(例如,这里没有找到解决方案),并且仅针对私有API.
任何帮助将受到高度赞赏.
所以一切都很好,然后我决定开始在XCode 5 DP3和iOS7上进行开发
在升级之前,我的项目编译并在我的iPhone 3GS上运行良好(我做了一个小软电话应用程序); 然而,它并没有在我的iPhone 5上运行; 我非常有信心,我还没有将它配置为包含armv7s架构.
我可以在模拟器上构建和运行一切,但是(这是在配置应用程序以包含armv7s架构之后)我无法让它在我的设备上运行.
我收到此错误:
ld: framework not found IOKit
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我甚至不确定如何使用-v来查看调用.我读了一些IOKit仅用于模拟器的地方......这是否意味着我应该在我的设备上构建时将其与我的库取消链接?为什么我在使用我的3gs之前没有得到这个错误?
我为什么它不再适用于我的3gs(虽然错误是相同的)的假设是,它是iOS 6,而SDK可能只支持iOS 7(我的iPhone 5目前是).
com.apple.Dont_Steal_Mac_OS_X是一个IOResources提供商......
类继承:Dont_Steal_Mac_OS_X:IOService:IORegistryEntry:OSObject
它是如何工作的?
它有什么作用?
我正在寻找一本详尽的大学级书籍或学习指南,以便能够编写Mac OS X设备驱动程序.我对这个操作系统完全无知,但我已经熟练使用Linux了.
书籍"Linux设备驱动程序"是否有任何Mac OS X版本?
最佳指南也应该引入OS内部,明确内核空间和用户空间差异等.
提前致谢
我对Mac OS X操作系统的了解有限,现在我开始使用Xcode并正在研究I/O工具包.我需要在命令行工具下在Xcode中创建一个程序,以便列出Mac系统中连接的所有USB设备.那些以前有过这方面经验的人,请帮助我.如果有人能为我提供示例代码,那么它将非常有用,因为我正在寻找起点.
我正在尝试编写一个程序来扫描可用的串行端口并在弹出菜单中显示它们.为什么我不能CFString从IORegistryEntryCreateCFProperty()函数中取直接并在下一行通过字符串插值将其添加到菜单中?由于某种原因,我的变量声明遇到错误:
"NSString不是CFString的子类型".
import Foundation
import Cocoa
import IOKit
import IOKit.serial
@objc class Serial {
init() {
}
@IBOutlet var serialListPullDown : NSPopUpButton!
func refreshSerialList(defaultprompt: String) {
let masterPort: mach_port_t = kIOMasterPortDefault
let classesToMatch: CFDictionary = IOServiceMatching(kIOSerialBSDServiceValue).takeUnretainedValue()
var matchingServices: io_iterator_t = 0
// remove everything from the pull down list
serialListPullDown?.removeAllItems()
// ask for all the serial ports
let kernResult = IOServiceGetMatchingServices(masterPort, classesToMatch, &matchingServices)
if kernResult == KERN_SUCCESS {
// success
while (io_object_t() == IOIteratorNext(matchingServices)) {
var …Run Code Online (Sandbox Code Playgroud) 我正在尝试为Mac编写一个简单的Cocoa App,其目的很简单:将我的戴尔显示器输入切换到另一个(这样我就可以在PC和MAC之间切换).我已经找到了一个Windows应用程序(由entechtaiwan执行mControl),他们解释了他们在那里做了什么:
"要通过软件切换输入,请使用VESA MCCS命令60h.要将该命令发送到监视器,您需要读取和写入连接到监视器的GPU I/O焊盘.同样在Mac上."
有谁知道如何从Cocoa应用程序发送这样的命令?也许这里有一个图书馆......难道不是很简单吗?
如何在OS X中获得CPU温度和风扇速度?
我知道信息是从中获取IOHWSensor的IOKit,但我无法找到有关如何完全做到这一点的任何可靠信息.
我发现了一篇带有示例程序的文章 - http://www.booktou.com/node/148/0321278542/ch10lev1sec7.html,但我得到的只是GPU温度.我确信在一体式Mac上有CPU温度传感器,这意味着我做错了.
我做了小应用程序,允许在多个显示器上快速更改屏幕分辨率.我想将产品名称显示为显示器的标题,使用此代码查找非常简单:
NSDictionary *deviceInfo = (__bridge NSDictionary *)IODisplayCreateInfoDictionary(CGDisplayIOServicePort(dispID), kIODisplayOnlyPreferredName);
NSDictionary *localizedNames = [deviceInfo objectForKey:[NSString stringWithUTF8String:kDisplayProductName]];
if([localizedNames count] > 0) {
_title = [localizedNames objectForKey:[[localizedNames allKeys] objectAtIndex:0]];
} else {
_title = @"Unknown display";
}
Run Code Online (Sandbox Code Playgroud)
但CGDisplayIOServicePort在OS X> = 10.9中已被弃用,Apple的文档称没有替代品.如何在不使用此方法的情况下查找服务端口或产品名称?
我试图迭代IO注册表并尝试使用IOServiceGetMatchingServices方法来查找显示服务,但我不是很熟悉IO注册表,所以我找不到解决方案.
感谢帮助!
我是一个开发人员,从事一个非常大的内存密集型32位应用程序.耗尽虚拟地址空间(内存)对我们来说是个问题.在我调查一些最近的问题时,我注意到IOKit(512MB)保留了大量内存.此内存未分配,但仅保留.进一步调查显示,大多数应用程序(Safari,iTunes等)都保留了这块内存.它似乎保持未分配状态.我正在使用vmmap进行测试.例如,这是使用默认模板使用XCode制作的Cocoa应用程序:
REGION TYPE VIRTUAL
=========== =======
CG backing stores 1008K
CG image 4K
CG raster data 64K
CG shared images 2252K
Carbon 7264K
CoreGraphics 16K
IOKit (reserved) 512.0M reserved VM address space (unallocated)
MALLOC 59.0M see MALLOC ZONE table below
MALLOC guard page 48K
MALLOC metadata 348K
Memory tag=242 12K
STACK GUARD 56.0M
Stack 8712K
VM_ALLOCATE 16.2M
__DATA 8296K
__IMAGE 1240K
__LINKEDIT 31.5M
__TEXT 76.7M
__UNICODE 536K
mapped file 27.4M
shared memory 1320K
=========== =======
TOTAL 809.2M
TOTAL, minus reserved …Run Code Online (Sandbox Code Playgroud) iokit ×10
macos ×6
cocoa ×2
xcode ×2
c++ ×1
cocoa-touch ×1
framebuffer ×1
gpu ×1
ios ×1
ios7 ×1
iphone ×1
objective-c ×1
serial-port ×1
string ×1
swift ×1
temperature ×1
xcode5 ×1