예제 #1
0
        // 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);
            }
        }
예제 #2
0
        // 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);
            }
        }
예제 #3
0
        // 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);
            }
        }