我正在尝试编写一些代码来检查或更改用户设备上安装的其他iOS应用程序(不是恶意的或类似的东西)。特别是在越狱设备上。在越狱设备上,我能够查看应用程序沙箱之外的文件,当我使用NSFileManager查看“/ private / var / mobile / Applications /”时,我看到目录列表(以某种十六进制方案命名) 。正如所料。
不幸的是,当我查看每个目录时,所有这些目录都返回(除了正在运行的应用程序本身),对于isDirectory返回FALSE,对于attributesOfItemAtPath返回NULL。我需要访问每个文件夹中的.app,但我无法在下面看到它们,并且每个文件都返回无效信息。
以下是我正在使用的代码:
NSString *path = @"/private/var/mobile/Applications/";
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *fileList = [manager contentsOfDirectoryAtPath:path error:nil];
for(NSString *file in fileList) {
NSString *fullpath = [path stringByAppendingPathComponent:file];
NSLog(@"fullpath = %@", fullpath);
BOOL isDir = nil;
[manager fileExistsAtPath:fullpath isDirectory:(&isDir)];
if(isDir) {
NSLog(@"isDir");
//NSArray *subfiles = [self filesBeneathDirectory:fullpath withExtension:extension];
} else {
NSLog(@"!isDir");
NSDictionary *attributes = [manager attributesOfItemAtPath:fullpath error:nil];
NSLog(@"attributes = %@",attributes);
}
}
我很感激在检测这些目录下的文件方面有任何帮助。我原以为iPhone会有完全的root访问权限(成为越狱设备)。
答案 0 :(得分:2)
从您的应用程序中,您只能访问自己的沙箱。如果您访问其他目录中的文件,它将不会有任何好处,Apple有限制访问权限的原因有很多。