// Attempt to load an IL2CPP application package (APK or IPA) public async Task <bool> LoadPackageAsync(string packageFile) { try { var streams = Inspector.GetStreamsFromPackage(packageFile); if (streams == null) { throw new InvalidOperationException("The supplied package is not an APK or IPA file, or does not contain an IL2CPP application"); } return(await LoadMetadataAsync(streams.Value.Metadata) && await LoadBinaryAsync(streams.Value.Binary)); } catch (Exception ex) { LastException = ex; return(false); } }
// Attempt to load an IL2CPP application package (APK or IPA) public async Task <bool> LoadPackageAsync(IEnumerable <string> packageFiles) { try { OnStatusUpdate?.Invoke(this, "Extracting package"); var streams = await Task.Run(() => Inspector.GetStreamsFromPackage(packageFiles)); if (streams == null) { throw new InvalidOperationException("The supplied package is not an APK or IPA file, or does not contain a complete IL2CPP application"); } return(await LoadMetadataAsync(streams.Value.Metadata) && await LoadBinaryAsync(streams.Value.Binary)); } catch (Exception ex) { LastException = ex; return(false); } }
// Attempt to load an IL2CPP application package (APK or IPA) public async Task <bool> LoadPackageAsync(string packageFile) { try { OnStatusUpdate?.Invoke(this, "Extracting package"); // TODO: Accept multiple APKs var streams = Inspector.GetStreamsFromPackage(new string[] { packageFile }); if (streams == null) { throw new InvalidOperationException("The supplied package is not an APK or IPA file, or does not contain an IL2CPP application"); } return(await LoadMetadataAsync(streams.Value.Metadata) && await LoadBinaryAsync(streams.Value.Binary)); } catch (Exception ex) { LastException = ex; return(false); } }