我正在开发一个小调整来更改/var/preferences
. 这是我的构造函数:
%ctor
{
NSLog(@"\n\n\n Tweak Loading... \n\n\n ");
NSError *error = [[NSError alloc] init];
BOOL success = [[NSFileManager defaultManager] copyItemAtPath:somePath toPath:someOtherPath error:&error];
if (success)
{
NSLog(@"\n\n\n Success:) \n\n\n ");
} else {
NSLog(@"\n\n\n Failure! \n\n\n ");
}
//Method hook initialization
%init;
}
由于用户/var/preferences/
无法访问,mobile
因此应在根进程中加载调整。通过一点点搜索,我发现它wifid
具有 root 权限。所以我改变了我的过滤器来com.apple.wifid
过滤捆绑标识符。
在我重新启动 wifid 守护程序后,没有任何反应,并且没有加载调整。我认为这是这个特定守护进程的问题,所以我编写了一个简单的命令行工具用于测试,其中包含一个运行循环(它就像一个启动守护进程,但它没有在启动时运行的 plist)。然后我将 plist 修改为:
<?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>Filter</key>
<dict>
<key>Executables</key>
<array>
<string>myExecutableName</string>
</array>
</dict>
</dict>
</plist>
再次没有任何反应,并且没有加载调整。我怎么解决这个问题?为什么在这些过程中不加载此调整?