首页 > 解决方案 > 如何访问存储在 Google Drive 中的隐藏应用数据?

问题描述

我有一个iOS 应用程序,将 Google Drive 中的数据存储为隐藏的应用程序数据

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

(此处已提出并回答了类似的问题,但参考了Android应用程序。但是,答案使用了Android apk文件,因为我在iOS上使用了应用程序,所以我没有该文件。我猜通过使用 Wireshark 或 Charles Proxy 等分析数据包可以获得相同的信息;我只是不确定我在寻找什么。)

标签: iosgoogle-apigoogle-drive-apiapplication-data

解决方案


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

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

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

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

如何访问存储在 Google Drive 中的隐藏应用数据?

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);
    }
}];

从存储应用程序数据中窃取的代码示例在此页面上也有使用其他语言的示例。


推荐阅读