如何访问存储在Google云端硬盘中的隐藏应用数据?

时间:2018-07-08 22:57:44

标签: ios google-api google-drive-api application-data

我有一个iOS app,它以hidden app data的形式将数据存储在Google云端硬盘中。

我如何访问此应用程序的隐藏应用程序数据(除了使用该应用程序本身以外)?

(已经提出并回答了一个here类似问题,但涉及的是Android应用程序。但是答案使用的是Android apk文件,因为我正在使用某个应用程序,所以我没有这个文件。在iOS上。我猜想可以通过使用Wireshark或Charles Proxy或类似工具分析数据包来获得相同的信息;我只是不确定我要寻找的是什么。)

1 个答案:

答案 0 :(得分:2)

  

Application Data folder”是一个特殊的文件夹,只能由您的应用程序访问。它的内容对用户和其他应用程序都是隐藏的。

访问和查看应用程序数据文件夹的权限已锁定到由其客户端凭据表示的应用程序。要查看其中的唯一方法,就是与该应用程序关联的客户端以及对您的应用程序进行身份验证的用户所授予的同意。

  

我如何访问此应用程序的隐藏应用程序数据(除了使用该应用程序本身以外)?

数据已锁定到您的应用程序。您的应用程序由客户端ID /客户端密码表示。如果您有权访问此应用程序的客户端凭据,则可以创建另一个应用程序并以这种方式访问​​数据。

  

如何访问存储在Google云端硬盘中的隐藏应用数据?

NSData *fileData = [[NSFileManager defaultManager] contentsAtPath:@"files/config.json"];

GTLRDrive_File *metadata = [GTLRDrive_File object];
metadata.name = @"config.json";
metadata.parents = @[@"appDataFolder"];

GTLRUploadParameters *uploadParameters = [GTLRUploadParameters uploadParametersWithData:fileData
                                                                               MIMEType:@"application/json"];
uploadParameters.shouldUploadWithSingleRequest = TRUE;
GTLRDriveQuery_FilesCreate *query = [GTLRDriveQuery_FilesCreate queryWithObject:metadata
                                                               uploadParameters:uploadParameters];
query.fields = @"id";
[driveService executeQuery:query completionHandler:^(GTLRServiceTicket *ticket,
                                                     GTLRDrive_File *file,
                                                     NSError *error) {
    if (error == nil) {
        NSLog(@"File ID %@", file.identifier);
    } else {
        NSLog(@"An error occurred: %@", error);
    }
}];

Storing Application Data被盗的代码示例本页上也有使用其他语言的示例。