static void ReadApkManifest(String manifestPath, String resourcesPath) { AxmlFile axml = new AxmlFile(StreamLoader.FromFile(manifestPath)); ArscFile resources = new ArscFile(File.ReadAllBytes(resourcesPath)); if (!axml.Header.IsValid || !resources.Header.IsValid) { throw new InvalidOperationException(); } AndroidManifest apk = AndroidManifest.Load(axml, resources); Console.WriteLine("Label: " + apk.Application.Label); Console.WriteLine("Package: " + apk.Package); Console.WriteLine("Icon: " + apk.Application.Icon); Console.WriteLine("Permissions: " + String.Join(", ", apk.UsesPermission.Select(p => p.Name))); Console.WriteLine("Services: " + String.Join(", ", apk.Application.Service)); Console.WriteLine("Activities: " + String.Join(", ", apk.Application.Activity)); Console.WriteLine("Reciever: " + String.Join(", ", apk.Application.Reciever)); Console.WriteLine("Features: " + String.Join(", ", apk.UsesFeature)); Console.WriteLine("Uses Libraries: " + String.Join(", ", apk.Application.UsesLibrary.Select(p => p.Name))); }